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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1300) hide show
  1. package/a11y/action-creators/index.js +9 -0
  2. package/a11y/components/FocusTrap/index.js +1 -0
  3. package/a11y/components/LiveMessage/index.js +1 -1
  4. package/a11y/components/LiveMessenger/helpers.js +1 -1
  5. package/a11y/components/LiveMessenger/index.js +2 -2
  6. package/a11y/components/ModalStateTracker/index.js +14 -0
  7. package/a11y/components/Navigation/index.js +1 -1
  8. package/a11y/components/Section/index.js +3 -3
  9. package/a11y/components/VisuallyHidden/index.js +1 -1
  10. package/a11y/components/index.js +1 -1
  11. package/a11y/constants/index.js +1 -0
  12. package/a11y/helpers/index.js +1 -0
  13. package/a11y/hooks/index.js +37 -0
  14. package/a11y/index.js +1 -4
  15. package/a11y/reducers/index.js +6 -0
  16. package/a11y/selectors/index.js +8 -0
  17. package/a11y/styles.js +2 -0
  18. package/account/actions/addContacts.js +4 -0
  19. package/account/actions/deleteContact.js +5 -0
  20. package/account/actions/deleteCustomer.js +4 -0
  21. package/account/actions/fetchContacts.js +4 -0
  22. package/account/actions/fetchCustomer.js +4 -0
  23. package/account/actions/updateContact.js +4 -0
  24. package/account/actions/updateCustomer.js +4 -0
  25. package/account/components/Account/Account.connector.js +5 -0
  26. package/account/components/Account/Account.js +4 -0
  27. package/account/components/Account/Account.style.js +1 -0
  28. package/account/components/Account/index.js +1 -0
  29. package/account/components/Profile/Profile.config.js +11 -0
  30. package/account/components/Profile/Profile.constraints.js +1 -0
  31. package/account/components/Profile/Profile.js +1 -0
  32. package/account/components/Profile/Profile.provider.js +22 -0
  33. package/account/components/Profile/ProfileAddressBook.js +6 -0
  34. package/account/components/Profile/ProfileAddressCard.js +3 -0
  35. package/account/components/Profile/ProfileForm.js +3 -0
  36. package/account/components/Profile/ProfileHeader.js +3 -0
  37. package/account/components/Profile/index.js +1 -0
  38. package/account/components/ProfileContact/ProfileContact.config.js +11 -0
  39. package/account/components/ProfileContact/ProfileContact.constraints.js +5 -0
  40. package/account/components/ProfileContact/ProfileContact.js +13 -0
  41. package/account/components/ProfileContact/index.js +1 -0
  42. package/account/components/index.js +1 -0
  43. package/account/constants/actions.js +1 -0
  44. package/account/constants/index.js +1 -1
  45. package/account/constants/pipelines.js +1 -0
  46. package/account/helper/form.js +61 -0
  47. package/account/index.js +1 -1
  48. package/account/reducers/index.js +6 -0
  49. package/account/selectors/contacts.js +7 -0
  50. package/account/selectors/customer.js +7 -0
  51. package/app-rating/actions/showModal.js +3 -3
  52. package/app-rating/helpers/index.js +1 -1
  53. package/app-rating/subscriptions/index.js +11 -6
  54. package/back-in-stock/actions/index.js +1 -1
  55. package/back-in-stock/components/BackInStockButton/index.js +3 -3
  56. package/back-in-stock/components/CharacteristicsButton/index.js +1 -1
  57. package/back-in-stock/components/ProductInfoBackInStockButton/index.js +1 -1
  58. package/back-in-stock/components/Subscriptions/components/List/index.js +2 -2
  59. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -2
  60. package/back-in-stock/components/Subscriptions/index.js +1 -1
  61. package/back-in-stock/providers/BackInStockSubscriptionsProvider.context.js +1 -1
  62. package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +1 -1
  63. package/back-in-stock/selectors/index.js +5 -3
  64. package/back-in-stock/streams/index.js +1 -1
  65. package/back-in-stock/subscriptions/index.js +2 -2
  66. package/cart/cart.constants.js +1 -0
  67. package/cart/cart.context.js +1 -0
  68. package/cart/cart.helpers.js +15 -0
  69. package/cart/cart.hooks.js +4 -0
  70. package/cart/cart.selectors.js +34 -0
  71. package/cart/cart.types.js +1 -0
  72. package/cart/components/CartHeaderWide/CartHeaderWide.js +3 -0
  73. package/cart/components/CartHeaderWide/CartHeaderWide.style.js +1 -0
  74. package/cart/components/CartHeaderWide/index.js +1 -0
  75. package/cart/components/CartItem/CartItem.hooks.js +7 -0
  76. package/cart/components/CartItem/CartItem.js +7 -0
  77. package/cart/components/CartItem/CartItem.style.js +1 -0
  78. package/cart/components/CartItem/CartItemCoupon.connector.js +7 -0
  79. package/cart/components/CartItem/CartItemCoupon.js +20 -0
  80. package/cart/components/CartItem/CartItemCoupon.style.js +5 -0
  81. package/cart/components/CartItem/CartItemCoupon.types.js +0 -0
  82. package/cart/components/CartItem/CartItemCouponCode.js +5 -0
  83. package/cart/components/CartItem/CartItemCouponDelete.js +5 -0
  84. package/cart/components/CartItem/CartItemCouponDelete.style.js +1 -0
  85. package/cart/components/CartItem/CartItemCouponFreeShipping.js +5 -0
  86. package/cart/components/CartItem/CartItemCouponIcon.js +4 -0
  87. package/cart/components/CartItem/CartItemCouponLayout.js +6 -0
  88. package/cart/components/CartItem/CartItemCouponLayout.style.js +5 -0
  89. package/cart/components/CartItem/CartItemCouponPrice.js +5 -0
  90. package/cart/components/CartItem/CartItemCouponPrice.style.js +1 -0
  91. package/cart/components/CartItem/CartItemCouponTitle.js +5 -0
  92. package/cart/components/CartItem/CartItemCouponTitle.style.js +1 -0
  93. package/cart/components/CartItem/CartItemProduct.js +5 -0
  94. package/cart/components/CartItem/CartItemProduct.style.js +1 -0
  95. package/cart/components/CartItem/CartItemProductLayout.js +6 -0
  96. package/cart/components/CartItem/CartItemProductLayout.style.js +1 -0
  97. package/cart/components/CartItem/CartItemProductLayoutWide.js +4 -0
  98. package/cart/components/CartItem/CartItemProductLayoutWide.style.js +1 -0
  99. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +4 -0
  100. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.style.js +1 -0
  101. package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +3 -0
  102. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +4 -0
  103. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.style.js +1 -0
  104. package/cart/components/CartItem/CartItemProductOrderDetails.js +3 -0
  105. package/cart/components/CartItem/CartItemProductOrderDetails.style.js +1 -0
  106. package/cart/components/CartItem/CartItemProductPriceCaption.js +4 -0
  107. package/cart/components/CartItem/CartItemProductPriceCaption.style.js +1 -0
  108. package/cart/components/CartItem/CartItemProductPriceList.js +5 -0
  109. package/cart/components/CartItem/CartItemProductPriceListPromotion.js +10 -0
  110. package/cart/components/CartItem/CartItemProductProvider.connector.js +9 -0
  111. package/cart/components/CartItem/CartItemProductProvider.context.js +1 -0
  112. package/cart/components/CartItem/CartItemProductProvider.js +12 -0
  113. package/cart/components/CartItem/CartItemProductProvider.types.js +1 -0
  114. package/cart/components/CartItem/CartItemProductProviderLegacy.js +22 -0
  115. package/cart/components/CartItem/CartItemProductTitle.js +7 -0
  116. package/cart/components/CartItem/CartItemProductTitle.style.js +1 -0
  117. package/cart/components/CartItem/CartItemProvider.connector.js +3 -0
  118. package/cart/components/CartItem/CartItemProvider.context.js +1 -0
  119. package/cart/components/CartItem/CartItemProvider.js +5 -0
  120. package/cart/components/CartItem/CartItemQuantityPicker.js +38 -0
  121. package/cart/components/CartItem/CartItemQuantityPicker.style.js +1 -0
  122. package/cart/components/CartItem/CartItemSubstitution.connector.js +5 -0
  123. package/cart/components/CartItem/CartItemSubstitution.js +5 -0
  124. package/cart/components/CartItem/CartItemSubstitution.style.js +1 -0
  125. package/cart/components/CartItem/index.js +1 -0
  126. package/cart/components/CartItems/CartItem.connector.js +4 -0
  127. package/cart/components/CartItems/CartItemCard.js +5 -0
  128. package/cart/components/CartItems/CartItemCard.style.js +1 -0
  129. package/cart/components/CartItems/CartItemCardReservation.js +5 -0
  130. package/cart/components/CartItems/CartItemCardReservationAccordion.js +4 -0
  131. package/cart/components/CartItems/CartItemCardReservationLabel.js +5 -0
  132. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +3 -0
  133. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.style.js +1 -0
  134. package/cart/components/CartItems/CartItemGroup.js +5 -0
  135. package/cart/components/CartItems/CartItemGroup.style.js +1 -0
  136. package/cart/components/CartItems/CartItemGroupReservation.js +5 -0
  137. package/cart/components/CartItems/CartItemGroupReservationLabel.js +5 -0
  138. package/cart/components/CartItems/CartItemGroupShipping.js +4 -0
  139. package/cart/components/CartItems/CartItems.js +5 -0
  140. package/cart/components/CartItems/CartItems.style.js +1 -0
  141. package/cart/components/CartItems/CartItemsHeaderWide.connector.js +3 -0
  142. package/cart/components/CartItems/CartItemsHeaderWide.js +3 -0
  143. package/cart/components/CartItems/CartItemsHeaderWide.style.js +1 -0
  144. package/cart/components/CartItems/CartItemsSubscription.connector.js +5 -0
  145. package/cart/components/CartItems/CartItemsSubstitution.js +5 -0
  146. package/cart/components/CartItems/index.js +1 -0
  147. package/cart/components/CartSummaryWide/CartSummaryWide.connector.js +4 -0
  148. package/cart/components/CartSummaryWide/CartSummaryWide.js +4 -0
  149. package/cart/components/CartSummaryWide/CartSummaryWide.style.js +1 -0
  150. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.connector.js +5 -0
  151. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +4 -0
  152. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.style.js +1 -0
  153. package/cart/components/CartSummaryWide/CartSummaryWideFooter.js +3 -0
  154. package/cart/components/CartSummaryWide/index.js +1 -0
  155. package/cart/components/PaymentBar/PaymentBar.js +5 -0
  156. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.connector.js +5 -0
  157. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.js +3 -0
  158. package/cart/components/PaymentBar/PaymentBarCheckoutButton.connector.js +5 -0
  159. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +5 -0
  160. package/cart/components/PaymentBar/PaymentBarCheckoutButton.style.js +1 -0
  161. package/cart/components/PaymentBar/PaymentBarContent.js +4 -0
  162. package/cart/components/PaymentBar/PaymentBarContent.style.js +1 -0
  163. package/cart/components/PaymentBar/PaymentBarDiscounts.connector.js +5 -0
  164. package/cart/components/PaymentBar/PaymentBarDiscounts.js +4 -0
  165. package/cart/components/PaymentBar/PaymentBarGrandTotal.connector.js +5 -0
  166. package/cart/components/PaymentBar/PaymentBarGrandTotal.js +4 -0
  167. package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +4 -0
  168. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.connector.js +8 -0
  169. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +3 -0
  170. package/cart/components/PaymentBar/PaymentBarPromotionalText.js +4 -0
  171. package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +1 -0
  172. package/cart/components/PaymentBar/PaymentBarReserveButton.js +7 -0
  173. package/cart/components/PaymentBar/PaymentBarShippingCost.connector.js +5 -0
  174. package/cart/components/PaymentBar/PaymentBarShippingCost.js +3 -0
  175. package/cart/components/PaymentBar/PaymentBarSubTotal.connector.js +5 -0
  176. package/cart/components/PaymentBar/PaymentBarSubTotal.js +3 -0
  177. package/cart/components/PaymentBar/PaymentBarTax.connector.js +5 -0
  178. package/cart/components/PaymentBar/PaymentBarTax.js +4 -0
  179. package/cart/components/PaymentBar/index.js +1 -0
  180. package/cart/components/Substitution/connector.js +5 -0
  181. package/cart/components/Substitution/index.js +9 -0
  182. package/cart/components/Substitution/style.js +1 -0
  183. package/cart/components/SupplementalContent/SupplementalContent.connector.js +4 -0
  184. package/cart/components/SupplementalContent/SupplementalContent.js +5 -0
  185. package/cart/components/SupplementalContent/SupplementalContent.styles.js +1 -0
  186. package/cart/components/SupplementalContent/index.js +1 -0
  187. package/cart/index.js +10 -5
  188. package/cart/streams/index.js +1 -0
  189. package/category/actions/index.js +1 -0
  190. package/category/components/CategoryImage/connector.js +5 -0
  191. package/category/components/CategoryImage/index.js +5 -0
  192. package/category/components/CategoryList/index.js +2 -2
  193. package/category/components/CategoryList/style.js +1 -1
  194. package/category/components/index.js +1 -0
  195. package/category/constants/index.js +1 -0
  196. package/category/helpers/index.js +1 -0
  197. package/category/index.js +1 -7
  198. package/category/selectors/index.js +2 -0
  199. package/category/streams/index.js +1 -0
  200. package/checkout/action-creators/addCheckoutCampaign.js +5 -0
  201. package/checkout/action-creators/clearCheckoutCampaign.js +5 -0
  202. package/checkout/action-creators/clearCheckoutOrder.js +4 -0
  203. package/checkout/action-creators/index.js +1 -0
  204. package/checkout/action-creators/validationErrorsCheckout.js +5 -0
  205. package/checkout/actions/errorCheckout.js +17 -0
  206. package/checkout/actions/fetchCheckoutOrder.js +4 -0
  207. package/checkout/actions/fetchPaymentMethods.js +4 -0
  208. package/checkout/actions/index.js +1 -0
  209. package/checkout/actions/initializeCheckout.js +4 -0
  210. package/checkout/actions/prepareCheckout.js +8 -0
  211. package/checkout/actions/submitCheckoutOrder.js +5 -0
  212. package/checkout/actions/updateCheckoutOrder.js +5 -0
  213. package/checkout/components/AddressBook/AddressBook.js +5 -0
  214. package/checkout/components/AddressBook/AddressList.js +9 -0
  215. package/checkout/components/AddressBook/index.js +1 -0
  216. package/checkout/components/AddressBookContact/AddressBookContact.js +5 -0
  217. package/checkout/components/AddressBookContact/index.js +1 -0
  218. package/checkout/components/Checkout/Checkout.js +4 -0
  219. package/checkout/components/Checkout/CheckoutActions.js +4 -0
  220. package/checkout/components/Checkout/CheckoutAddress.js +6 -0
  221. package/checkout/components/Checkout/CheckoutHeader.js +4 -0
  222. package/checkout/components/Checkout/CheckoutPickupContactForm.config.js +8 -0
  223. package/checkout/components/Checkout/CheckoutPickupContactForm.js +4 -0
  224. package/checkout/components/Checkout/CheckoutSection.js +4 -0
  225. package/checkout/components/Checkout/CheckoutSectionInfo.js +4 -0
  226. package/checkout/components/Checkout/CheckoutSectionMessages.js +4 -0
  227. package/checkout/components/Checkout/CheckoutSummary.js +4 -0
  228. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.connector.js +3 -0
  229. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +7 -0
  230. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +4 -0
  231. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderContact.js +4 -0
  232. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderSummary.js +4 -0
  233. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickUpContact.js +4 -0
  234. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickupNotes.js +4 -0
  235. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +4 -0
  236. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationShippedTo.js +4 -0
  237. package/checkout/components/CheckoutConfirmation/index.js +1 -0
  238. package/checkout/components/GuestCheckout/GuestCheckout.js +4 -0
  239. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.config.js +4 -0
  240. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.js +3 -0
  241. package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +4 -0
  242. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.config.js +4 -0
  243. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.js +4 -0
  244. package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +5 -0
  245. package/checkout/components/PaymentMethodButton/index.js +1 -0
  246. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +4 -0
  247. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.style.js +1 -0
  248. package/checkout/components/ResponsiveBackButton/index.js +1 -0
  249. package/checkout/components/ShippingMethods/ShippingMethod.js +5 -0
  250. package/checkout/components/ShippingMethods/ShippingMethods.js +23 -0
  251. package/checkout/components/ShippingMethods/connector.js +7 -0
  252. package/checkout/components/ShippingMethods/index.js +1 -0
  253. package/checkout/components/SupplementalContent/SupplementalContent.connector.js +4 -0
  254. package/checkout/components/SupplementalContent/SupplementalContent.js +5 -0
  255. package/checkout/components/SupplementalContent/SupplementalContent.styles.js +1 -0
  256. package/checkout/components/SupplementalContent/index.js +1 -0
  257. package/checkout/components/index.js +1 -0
  258. package/checkout/constants/actionTypes.js +1 -0
  259. package/checkout/constants/errorCodes.js +1 -0
  260. package/checkout/constants/index.js +1 -0
  261. package/checkout/constants/routes.js +1 -0
  262. package/checkout/helpers/index.js +34 -0
  263. package/checkout/hooks/common.js +7 -0
  264. package/checkout/index.js +6 -5
  265. package/checkout/paymentMethods/context.js +1 -0
  266. package/checkout/paymentMethods/index.js +28 -0
  267. package/checkout/paymentMethods/paypal/PaypalButton.js +5 -0
  268. package/checkout/paymentMethods/paypal/PaypalButtonApp.js +4 -0
  269. package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +8 -0
  270. package/checkout/paymentMethods/paypal/PaypalPayButton.js +12 -0
  271. package/checkout/paymentMethods/paypal/PaypalProvider.js +6 -0
  272. package/checkout/paymentMethods/paypal/index.js +1 -0
  273. package/checkout/paymentMethods/paypal/paypal_logo.png +0 -0
  274. package/checkout/paymentMethods/paypal/sdk.js +9 -0
  275. package/checkout/paymentMethods/stripe/StripeButton.connector.js +6 -0
  276. package/checkout/paymentMethods/stripe/StripeButton.js +5 -0
  277. package/checkout/paymentMethods/stripe/StripeCreditCard.js +10 -0
  278. package/checkout/paymentMethods/stripe/StripePayButton.js +6 -0
  279. package/checkout/paymentMethods/stripe/StripeProvider.connector.js +6 -0
  280. package/checkout/paymentMethods/stripe/StripeProvider.context.js +1 -0
  281. package/checkout/paymentMethods/stripe/StripeProvider.js +33 -0
  282. package/checkout/paymentMethods/stripe/applepay.svg +84 -0
  283. package/checkout/paymentMethods/stripe/googlepay.png +0 -0
  284. package/checkout/paymentMethods/stripe/index.js +1 -0
  285. package/checkout/paymentMethods/stripe/sdk.js +9 -0
  286. package/checkout/providers/AddressBookProvider.context.js +1 -0
  287. package/checkout/providers/AddressBookProvider.js +11 -0
  288. package/checkout/providers/CheckoutProvider.connector.js +7 -0
  289. package/checkout/providers/CheckoutProvider.constraints.js +1 -0
  290. package/checkout/providers/CheckoutProvider.context.js +1 -0
  291. package/checkout/providers/CheckoutProvider.js +28 -0
  292. package/checkout/reducers/index.js +6 -0
  293. package/checkout/selectors/campaign.js +5 -0
  294. package/checkout/selectors/guestCheckout.js +5 -0
  295. package/checkout/selectors/order.js +59 -0
  296. package/checkout/selectors/payment.js +17 -0
  297. package/checkout/selectors/route.js +4 -0
  298. package/checkout/streams/index.js +1 -0
  299. package/checkout/subscriptions/index.js +3 -0
  300. package/components/BrandingColorBanner/BrandingColorBanner.js +5 -0
  301. package/components/BrandingColorBanner/index.js +1 -0
  302. package/components/ChipLayout/index.js +7 -7
  303. package/components/ChipLayout/spec.js +1 -1
  304. package/components/ChipLayout/style.js +2 -2
  305. package/components/ConditionalWrapper/ConditionalWrapper.js +10 -0
  306. package/components/ConditionalWrapper/index.js +1 -5
  307. package/components/ConnectedReactPortal/index.js +13 -0
  308. package/components/Footer/Footer.js +4 -23
  309. package/components/Footer/Footer.style.js +1 -7
  310. package/components/Footer/constants.js +1 -0
  311. package/components/Footer/helpers.js +75 -0
  312. package/components/Form/Builder/Builder.constants.js +1 -1
  313. package/components/Form/Builder/Builder.js +53 -37
  314. package/components/Form/Builder/ElementCheckbox.js +2 -2
  315. package/components/Form/Builder/ElementMultiSelect.js +6 -0
  316. package/components/Form/Builder/ElementPhoneNumber.js +20 -0
  317. package/components/Form/Builder/ElementRadio.js +2 -2
  318. package/components/Form/Builder/ElementSelect.js +3 -3
  319. package/components/Form/Builder/ElementText.js +4 -4
  320. package/components/Form/Builder/FormHelper.js +5 -0
  321. package/components/Form/Builder/classes/ActionListener.constants.js +2 -2
  322. package/components/Form/Builder/classes/ActionListener.js +72 -15
  323. package/components/Form/Builder/helpers/buildCountryList.js +3 -3
  324. package/components/Form/Builder/helpers/buildFormDefaults.js +1 -1
  325. package/components/Form/Builder/helpers/buildProvinceList.js +1 -1
  326. package/components/Form/Builder/helpers/common.js +6 -0
  327. package/components/Form/Builder/stylePresets.js +1 -0
  328. package/components/Form/Form.js +11 -8
  329. package/components/Form/index.js +1 -1
  330. package/components/IntersectionVisibility/index.js +13 -6
  331. package/components/Logo/connector.js +4 -0
  332. package/components/Logo/index.js +2 -2
  333. package/components/Logo/spec.js +1 -1
  334. package/components/Logo/style.js +1 -1
  335. package/components/Menu/components/Item/index.js +8 -0
  336. package/components/Menu/components/Item/style.js +4 -0
  337. package/components/Menu/components/Position/index.js +16 -0
  338. package/components/Menu/components/Position/style.js +1 -0
  339. package/components/Menu/index.js +12 -0
  340. package/components/Menu/style.js +1 -0
  341. package/components/MessageBar/MessageBar.js +9 -0
  342. package/components/MessageBar/MessageBar.style.js +11 -0
  343. package/components/MessageBar/index.js +1 -7
  344. package/components/NavigationHandler/connector.js +1 -1
  345. package/components/NavigationHandler/index.js +6 -6
  346. package/components/NavigationHandler/spec.js +1 -1
  347. package/components/Picker/components/Button/index.js +1 -1
  348. package/components/Picker/components/List/index.js +2 -2
  349. package/components/Picker/components/Modal/index.js +7 -7
  350. package/components/Picker/index.js +19 -10
  351. package/components/Picker/spec.js +2 -2
  352. package/components/PickerUtilize/components/Button/index.js +1 -1
  353. package/components/PickerUtilize/index.js +8 -6
  354. package/components/PickerUtilize/spec.js +2 -1
  355. package/components/QuantityInput/QuantityInput.js +5 -4
  356. package/components/QuantityLabel/QuantityLabel.js +4 -0
  357. package/components/QuantityLabel/index.js +1 -0
  358. package/components/Radio/Radio.js +5 -0
  359. package/components/Radio/index.js +1 -0
  360. package/components/RadioCard/RadioCard.js +9 -0
  361. package/components/RadioCard/index.js +1 -0
  362. package/components/RadioGroup/RadioGroup.context.js +1 -0
  363. package/components/RadioGroup/RadioGroup.js +4 -0
  364. package/components/RadioGroup/index.js +1 -0
  365. package/components/RadioGroup/useRadioGroup.js +4 -0
  366. package/components/RangeSlider/components/Handle/index.js +2 -2
  367. package/components/RangeSlider/components/Handle/style.js +1 -1
  368. package/components/RangeSlider/helper.js +3 -3
  369. package/components/RangeSlider/index.js +35 -23
  370. package/components/RangeSlider/spec.js +4 -4
  371. package/components/ResponsiveContainer/ResponsiveContainer.js +6 -0
  372. package/components/ResponsiveContainer/breakpoints.js +14 -0
  373. package/components/ResponsiveContainer/condition.js +6 -0
  374. package/components/ResponsiveContainer/hooks.js +20 -0
  375. package/components/ResponsiveContainer/index.js +1 -0
  376. package/components/ResponsiveContainer/listener.js +10 -0
  377. package/components/ResponsiveContainer/mediaQuery.js +8 -0
  378. package/components/ScrollHeader/index.js +22 -5
  379. package/components/ScrollHeader/style.js +1 -1
  380. package/components/SheetDrawer/index.js +4 -3
  381. package/components/SheetList/components/Item/index.js +5 -5
  382. package/components/SheetList/components/Item/spec.js +2 -2
  383. package/components/SheetList/components/Item/style.js +1 -1
  384. package/components/SheetList/index.js +4 -4
  385. package/components/SheetList/spec.js +1 -1
  386. package/components/SheetList/style.js +1 -1
  387. package/components/SideNavigation/SideNavigation.hooks.js +4 -0
  388. package/components/SideNavigation/SideNavigation.js +4 -0
  389. package/components/SideNavigation/SideNavigationCategories.connector.js +8 -0
  390. package/components/SideNavigation/SideNavigationCategories.js +4 -0
  391. package/components/SideNavigation/SideNavigationCategories.style.js +1 -0
  392. package/components/SideNavigation/SideNavigationCategoriesItem.connector.js +8 -0
  393. package/components/SideNavigation/SideNavigationCategoriesItem.js +5 -0
  394. package/components/SideNavigation/SideNavigationCategoriesItem.style.js +2 -0
  395. package/components/SideNavigation/SideNavigationCategoriesItemChildren.js +5 -0
  396. package/components/SideNavigation/SideNavigationContent.js +3 -0
  397. package/components/SideNavigation/SideNavigationContent.style.js +4 -0
  398. package/components/SideNavigation/SideNavigationItem.js +4 -0
  399. package/components/SideNavigation/SideNavigationItem.style.js +4 -0
  400. package/components/SideNavigation/SideNavigationLinks.js +4 -0
  401. package/components/SideNavigation/SideNavigationLinksLegal.connector.js +4 -0
  402. package/components/SideNavigation/SideNavigationLinksLegal.js +5 -0
  403. package/components/SideNavigation/SideNavigationLinksQuicklinks.connector.js +4 -0
  404. package/components/SideNavigation/SideNavigationLinksQuicklinks.js +5 -0
  405. package/components/SideNavigation/SideNavigationNestedItem.js +4 -0
  406. package/components/SideNavigation/SideNavigationProvider.connector.js +8 -0
  407. package/components/SideNavigation/SideNavigationProvider.context.js +1 -0
  408. package/components/SideNavigation/SideNavigationProvider.js +4 -0
  409. package/components/SideNavigation/index.js +1 -0
  410. package/components/SideNavigation/selectors.js +17 -0
  411. package/components/SnackBarContainer/index.js +1 -1
  412. package/components/Switch/index.js +1 -1
  413. package/components/Tabs/TabContext.js +7 -0
  414. package/components/Tabs/components/Tab.js +11 -0
  415. package/components/Tabs/components/Tab.style.js +1 -0
  416. package/components/Tabs/components/TabIndicator.js +5 -0
  417. package/components/Tabs/components/TabIndicator.style.js +1 -0
  418. package/components/Tabs/components/TabPanel.js +5 -0
  419. package/components/Tabs/components/Tabs.js +11 -0
  420. package/components/Tabs/components/Tabs.style.js +2 -0
  421. package/components/Tabs/debounce.js +11 -0
  422. package/components/Tabs/index.js +1 -0
  423. package/components/Tabs/ownerDocument.js +4 -0
  424. package/components/Tabs/ownerWindow.js +4 -0
  425. package/components/Tabs/useEventCallback.js +6 -0
  426. package/components/TextLink/TextLink.js +5 -0
  427. package/components/TextLink/TextLink.style.js +1 -0
  428. package/components/TimeBoundary/index.js +10 -8
  429. package/components/TimeBoundary/spec.js +3 -3
  430. package/components/Toggle/index.js +5 -0
  431. package/components/Toggle/style.js +1 -0
  432. package/components/VideoPlayer/index.js +9 -6
  433. package/components/View/components/Above/index.js +1 -1
  434. package/components/View/components/Below/index.js +1 -1
  435. package/components/View/components/Content/index.js +13 -13
  436. package/components/View/components/Content/style.js +1 -1
  437. package/components/View/context.js +1 -1
  438. package/components/View/index.js +5 -5
  439. package/components/View/provider.js +24 -7
  440. package/components/View/style.js +1 -6
  441. package/components/index.js +4 -4
  442. package/core/action-creators/appPermissions.js +1 -1
  443. package/core/action-creators/index.js +1 -1
  444. package/core/action-creators/merchantSettings.js +5 -0
  445. package/core/action-creators/optIns.js +37 -0
  446. package/core/action-creators/shopSettings.js +9 -0
  447. package/core/actions/getGeolocation.js +2 -2
  448. package/core/actions/grantAppTrackingTransparencyPermission.js +3 -1
  449. package/core/actions/grantGeolocationPermissions.js +6 -2
  450. package/core/actions/grantPermissions.js +16 -4
  451. package/core/actions/grantPushPermissions.js +4 -3
  452. package/core/actions/index.js +2 -2
  453. package/core/actions/requestAppPermission.js +7 -2
  454. package/core/actions/requestAppPermissionStatus.js +7 -2
  455. package/core/actions/updateStatusBarBackground.js +3 -3
  456. package/core/classes/GeolocationRequest.js +8 -4
  457. package/core/classes/GeolocationRequestApp.js +16 -0
  458. package/core/classes/GeolocationRequestBrowser.js +8 -0
  459. package/core/collections/AppInitialization.js +4 -6
  460. package/core/config/ThemeConfigResolver.js +3 -3
  461. package/core/config/config.action-creators.js +12 -0
  462. package/core/config/config.actions.js +3 -0
  463. package/core/config/config.constants.js +1 -0
  464. package/core/config/config.reducers.js +6 -0
  465. package/core/config/config.selectors.js +39 -0
  466. package/core/config/config.streams.js +1 -0
  467. package/core/config/config.subscriptions.js +4 -0
  468. package/core/config/config.types.js +0 -0
  469. package/core/config/index.js +1 -0
  470. package/core/constants/appFeatures.js +1 -1
  471. package/core/constants/deviceTypes.js +1 -0
  472. package/core/constants/geolocationRequest.js +1 -1
  473. package/core/constants/index.js +9 -3
  474. package/core/constants/merchantSettings.js +1 -0
  475. package/core/constants/optIns.js +1 -0
  476. package/core/constants/pipelines.js +1 -0
  477. package/core/constants/shopSettings.js +2 -0
  478. package/core/contexts/AppContext.js +1 -1
  479. package/core/contexts/ThemeResourcesContext.d.ts +69 -0
  480. package/core/contexts/ThemeResourcesContext.js +3 -0
  481. package/core/contexts/index.js +1 -0
  482. package/core/events/index.js +1 -0
  483. package/core/helpers/androidNavigationBar.js +12 -0
  484. package/core/helpers/appFeatures.js +21 -9
  485. package/core/helpers/appPermissions.js +58 -0
  486. package/core/helpers/baseUrl.js +1 -1
  487. package/core/helpers/bridge.js +4 -0
  488. package/core/helpers/deviceType.js +5 -0
  489. package/core/helpers/environment.js +4 -0
  490. package/core/helpers/errorBehavior.js +32 -0
  491. package/core/helpers/featureFlag.js +11 -0
  492. package/core/helpers/getFullImageSource.js +21 -2
  493. package/core/helpers/googleMaps.js +8 -0
  494. package/core/helpers/i18n.js +10 -5
  495. package/core/helpers/index.js +3 -3
  496. package/core/helpers/isIOSTheme.js +4 -0
  497. package/core/helpers/isTouchDevice.js +4 -0
  498. package/core/helpers/nl2br.js +1 -0
  499. package/core/helpers/scrollContainer.js +4 -0
  500. package/core/helpers/string.js +9 -0
  501. package/core/helpers/svgToDataUrl.js +9 -0
  502. package/core/helpers/updateLegacyNavigationBar.js +5 -2
  503. package/core/hocs/index.js +1 -0
  504. package/core/hocs/withApp.js +1 -1
  505. package/core/hocs/withCurrentProduct.js +3 -3
  506. package/core/hocs/withForwardedRef.js +1 -1
  507. package/core/hocs/withNavigation.js +1 -1
  508. package/core/hocs/withRoute.js +1 -1
  509. package/core/hocs/withTheme.js +42 -3
  510. package/core/hocs/withThemeResources.js +19 -0
  511. package/core/hocs/withWidgetSettings.js +1 -1
  512. package/core/hocs/withWidgetStyles.js +1 -1
  513. package/core/hooks/events/index.js +1 -0
  514. package/core/hooks/events/useLongPress.d.ts +68 -0
  515. package/core/hooks/events/useLongPress.js +13 -0
  516. package/core/hooks/events/usePressHandler.js +38 -0
  517. package/core/hooks/events/useScrollDirectionChange.d.ts +74 -0
  518. package/core/hooks/events/useScrollDirectionChange.js +18 -0
  519. package/core/hooks/html/useLoadImage.js +1 -1
  520. package/core/hooks/index.js +1 -0
  521. package/core/hooks/layout/index.js +1 -0
  522. package/core/hooks/layout/useElementSize.d.ts +46 -0
  523. package/core/hooks/layout/useElementSize.js +18 -0
  524. package/core/hooks/useAsyncMemo.js +12 -0
  525. package/core/hooks/useFormState.js +27 -0
  526. package/core/hooks/usePrevious.js +2 -0
  527. package/core/hooks/useScrollTo.js +5 -0
  528. package/core/hooks/useTheme.js +38 -2
  529. package/core/hooks/useThemeResources.js +22 -0
  530. package/core/hooks/useWidgetStyles.js +1 -1
  531. package/core/index.js +5 -11
  532. package/core/initialization/index.js +19 -4
  533. package/core/providers/AppProvider.js +9 -9
  534. package/core/providers/ThemeResourcesProvider.js +19 -0
  535. package/core/providers/index.js +1 -0
  536. package/core/reducers/index.js +1 -1
  537. package/core/reducers/merchantSettings.js +6 -0
  538. package/core/reducers/shopSettings.js +6 -0
  539. package/core/selectors/index.js +1 -1
  540. package/core/selectors/merchantSettings.js +10 -0
  541. package/core/selectors/shopSettings.js +25 -0
  542. package/core/streams/app.js +1 -1
  543. package/core/streams/index.js +1 -1
  544. package/core/streams/optIns.js +13 -0
  545. package/core/subscriptions/app.js +4 -3
  546. package/core/validation/index.js +1 -0
  547. package/core/validation/validation.hooks.js +4 -0
  548. package/core/validation/validation.js +12 -0
  549. package/development/action-creators/index.js +1 -0
  550. package/development/action-creators/settings.js +9 -0
  551. package/development/action-creators/storage.js +6 -0
  552. package/development/components/DevelopmentTools/DevelopmentTools.js +6 -0
  553. package/development/components/DevelopmentTools/Shortcuts.js +4 -0
  554. package/development/components/DevelopmentTools/hooks.js +8 -0
  555. package/development/components/DevelopmentTools/index.js +1 -0
  556. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +7 -0
  557. package/development/components/SimulatedInsets/SimulatedInsetTop.js +12 -0
  558. package/development/components/SimulatedInsets/SimulatedInsets.js +6 -0
  559. package/development/components/SimulatedInsets/index.js +1 -0
  560. package/development/components/index.js +1 -0
  561. package/development/constants/actionTypes.js +1 -0
  562. package/development/constants/index.js +1 -0
  563. package/development/reducers/index.js +1 -0
  564. package/development/reducers/settings.js +10 -0
  565. package/development/reducers/storage.js +9 -0
  566. package/development/selectors/index.js +1 -0
  567. package/development/selectors/settings.js +21 -0
  568. package/development/selectors/storage.js +16 -0
  569. package/development/streams/index.js +1 -0
  570. package/development/streams/insets.js +4 -0
  571. package/development/subscriptions/index.js +6 -0
  572. package/favorites/components/CommentDialog/CommentDialog.js +12 -0
  573. package/favorites/components/CommentDialog/index.js +1 -0
  574. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +8 -0
  575. package/favorites/components/FavoriteButtonWide/index.js +1 -0
  576. package/favorites/components/Item/Item.js +13 -9
  577. package/favorites/components/Item/ItemCharacteristics.js +2 -2
  578. package/favorites/components/Item/ItemNotes.js +7 -0
  579. package/favorites/components/Item/ItemQuantity.js +7 -0
  580. package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +4 -0
  581. package/favorites/components/ItemFulfillmentMethod/index.js +1 -0
  582. package/favorites/components/List/List.js +19 -15
  583. package/favorites/components/List/ListAccordionHeader.js +8 -0
  584. package/favorites/components/List/ListAccordionLabel.js +5 -0
  585. package/favorites/components/List/ListContent.js +8 -0
  586. package/favorites/components/List/ListItemWrapper.js +6 -0
  587. package/favorites/components/List/styles.js +1 -0
  588. package/favorites/components/ListChooser/ListChooser.js +2 -2
  589. package/favorites/components/ListChooser/ListChooserItem.js +4 -5
  590. package/favorites/components/Lists/Lists.js +17 -13
  591. package/favorites/components/Lists/ListsModal.js +3 -4
  592. package/favorites/components/RemoveButton/RemoveButton.js +2 -2
  593. package/favorites/constants/Portals.js +1 -2
  594. package/favorites/constants/index.js +1 -0
  595. package/favorites/index.js +2 -2
  596. package/filter/actions/index.js +1 -0
  597. package/filter/components/FilterItem/index.js +2 -2
  598. package/filter/components/FilterItem/spec.js +1 -1
  599. package/filter/components/FilterPageContent/components/ApplyButton/index.js +7 -0
  600. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +1 -0
  601. package/filter/components/FilterPageContent/components/ApplyButton/style.js +1 -0
  602. package/filter/components/FilterPageContent/components/ResetButton/index.js +7 -0
  603. package/filter/components/FilterPageContent/components/ResetButton/spec.js +1 -0
  604. package/filter/components/FilterPageContent/components/ResetButton/style.js +1 -0
  605. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +7 -0
  606. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +1 -0
  607. package/filter/components/FilterPageContent/components/Selector/components/Selected/style.js +1 -0
  608. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +7 -0
  609. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +1 -0
  610. package/filter/components/FilterPageContent/components/Selector/components/Toggle/style.js +1 -0
  611. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +7 -0
  612. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +1 -0
  613. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/style.js +1 -0
  614. package/filter/components/FilterPageContent/components/Selector/index.js +19 -0
  615. package/filter/components/FilterPageContent/components/Selector/spec.js +1 -0
  616. package/filter/components/FilterPageContent/components/Selector/style.js +1 -0
  617. package/filter/components/FilterPageContent/index.js +6 -0
  618. package/filter/components/FilterPageContentWithProvider/index.js +16 -0
  619. package/filter/components/PriceSlider/components/Label/index.js +3 -3
  620. package/filter/components/PriceSlider/components/Label/spec.js +1 -1
  621. package/filter/components/PriceSlider/index.js +8 -8
  622. package/filter/components/PriceSlider/spec.js +1 -1
  623. package/filter/components/PriceSlider/style.js +1 -1
  624. package/filter/components/index.js +1 -0
  625. package/filter/constants/index.js +1 -0
  626. package/filter/constants/sort.js +11 -0
  627. package/filter/helpers/buildFilterParamsForFetchFiltersRequest.js +2 -2
  628. package/filter/helpers/buildInitialFilters.js +2 -2
  629. package/filter/helpers/buildUpdatedFilters.js +2 -2
  630. package/filter/helpers/index.js +1 -0
  631. package/filter/helpers/translateFilterLabel.js +3 -3
  632. package/filter/hocs/index.js +1 -0
  633. package/filter/hocs/withSort.js +16 -0
  634. package/filter/hooks/filterPage.js +5 -0
  635. package/filter/hooks/index.js +4 -0
  636. package/filter/index.js +2 -7
  637. package/filter/providers/FilterPageProvider.context.js +54 -0
  638. package/filter/providers/FilterPageProvider.js +98 -0
  639. package/filter/providers/SortProvider.connector.js +3 -0
  640. package/filter/providers/SortProvider.context.js +1 -0
  641. package/filter/providers/SortProvider.helpers.js +8 -0
  642. package/filter/providers/SortProvider.js +6 -0
  643. package/filter/providers/index.js +1 -0
  644. package/filter/selectors/index.js +17 -0
  645. package/filter/streams/index.js +1 -0
  646. package/i18n/countries.helpers.js +6 -0
  647. package/i18n/countries.hooks.js +6 -0
  648. package/i18n/index.js +1 -0
  649. package/i18n/locale/cs-cz/countries.json +255 -0
  650. package/i18n/locale/de-de/countries.json +255 -0
  651. package/i18n/locale/el-gr/countries.json +255 -0
  652. package/i18n/locale/en-us/countries.json +255 -0
  653. package/i18n/locale/es-es/countries.json +255 -0
  654. package/i18n/locale/fi-fi/countries.json +255 -0
  655. package/i18n/locale/fr-fr/countries.json +255 -0
  656. package/i18n/locale/hu-hu/countries.json +255 -0
  657. package/i18n/locale/it-it/countries.json +255 -0
  658. package/i18n/locale/nl-nl/countries.json +255 -0
  659. package/i18n/locale/pl-pl/countries.json +255 -0
  660. package/i18n/locale/pt-pt/countries.json +255 -0
  661. package/i18n/locale/ro-ro/countries.json +255 -0
  662. package/i18n/locale/sv-se/countries.json +255 -0
  663. package/locations/action-creators/errorInventories.js +7 -0
  664. package/locations/action-creators/errorLocations.js +6 -0
  665. package/locations/action-creators/errorProductInventories.js +7 -0
  666. package/locations/action-creators/errorProductLocations.js +6 -0
  667. package/locations/action-creators/index.js +1 -0
  668. package/locations/action-creators/provideProductAlternativeLocation.js +5 -0
  669. package/locations/action-creators/receiveInventories.js +5 -0
  670. package/locations/action-creators/receiveLocations.js +6 -0
  671. package/locations/action-creators/receiveProductInventories.js +7 -0
  672. package/locations/action-creators/receiveProductLocations.js +7 -0
  673. package/locations/action-creators/requestInventories.js +6 -0
  674. package/locations/action-creators/requestLocations.js +5 -0
  675. package/locations/action-creators/requestProductInventories.js +6 -0
  676. package/locations/action-creators/requestProductLocations.js +5 -0
  677. package/locations/action-creators/selectGlobalLocation.js +5 -0
  678. package/locations/action-creators/selectLocation.js +6 -0
  679. package/locations/action-creators/setStoreFinderSearchRadius.js +5 -0
  680. package/locations/action-creators/setUserGeolocation.js +5 -0
  681. package/locations/action-creators/setUserSearchCountryCode.js +7 -0
  682. package/locations/action-creators/setUserSearchGeolocation.js +8 -0
  683. package/locations/action-creators/setUserSearchPostalCode.js +7 -0
  684. package/locations/action-creators/storeFormInput.js +5 -0
  685. package/locations/action-creators/storeFulfillmentMethod.js +5 -0
  686. package/locations/action-creators/submitReservationError.js +5 -0
  687. package/locations/action-creators/submitReservationRequest.js +5 -0
  688. package/locations/action-creators/submitReservationSuccess.js +5 -0
  689. package/locations/actions/fetchDefaultLocation.js +4 -0
  690. package/locations/actions/fetchFulfillmentSlots.js +6 -0
  691. package/locations/actions/fetchInventories.js +6 -0
  692. package/locations/actions/fetchLocations.js +19 -0
  693. package/locations/actions/fetchProductInventories.js +7 -0
  694. package/locations/actions/fetchProductLocations.js +12 -0
  695. package/locations/actions/index.js +5 -0
  696. package/locations/actions/sendDefaultLocationCode.js +6 -0
  697. package/locations/actions/setUserGeolocation.js +1 -0
  698. package/locations/actions/setUserSearchGeolocation.js +1 -0
  699. package/locations/actions/submitReservation.js +5 -0
  700. package/locations/assets/leaflet.css +765 -0
  701. package/locations/components/Cart/CartChangeFulfillmentMethod.connector.js +4 -0
  702. package/locations/components/Cart/CartChangeFulfillmentMethod.js +8 -0
  703. package/locations/components/Cart/CartChangeFulfillmentMethod.types.js +0 -0
  704. package/locations/components/Cart/CartContextMenuChangeFulfillment.js +6 -0
  705. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +5 -0
  706. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.style.js +1 -0
  707. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.connector.js +4 -0
  708. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +6 -0
  709. package/locations/components/Cart/CartContextMenuItemChangeLocation.js +7 -0
  710. package/locations/components/Cart/CartItemProductChangeLocation.connector.js +5 -0
  711. package/locations/components/Cart/CartItemProductChangeLocation.js +11 -0
  712. package/locations/components/Cart/CartItemProductChangeLocation.types.js +0 -0
  713. package/locations/components/Cart/index.js +1 -0
  714. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +4 -0
  715. package/locations/components/ChangeLocationButton/ChangeLocationButton.style.js +2 -0
  716. package/locations/components/ChangeLocationButton/index.js +1 -0
  717. package/locations/components/FulfillmentPath/FulfillmentPath.js +4 -0
  718. package/locations/components/FulfillmentPath/FulfillmentPath.style.js +2 -0
  719. package/locations/components/FulfillmentPath/FulfillmentPathItem.js +6 -0
  720. package/locations/components/FulfillmentPath/index.js +1 -0
  721. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +14 -0
  722. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.style.js +1 -0
  723. package/locations/components/FulfillmentPathSelector/index.js +1 -0
  724. package/locations/components/FulfillmentSelector/FulfillmentSelector.connector.js +9 -0
  725. package/locations/components/FulfillmentSelector/FulfillmentSelector.context.js +1 -0
  726. package/locations/components/FulfillmentSelector/FulfillmentSelector.hooks.js +3 -0
  727. package/locations/components/FulfillmentSelector/FulfillmentSelector.js +20 -0
  728. package/locations/components/FulfillmentSelector/FulfillmentSelector.style.js +1 -0
  729. package/locations/components/FulfillmentSelector/FulfillmentSelector.types.js +1 -0
  730. package/locations/components/FulfillmentSelector/FulfillmentSelectorAddToCart.js +10 -0
  731. package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +8 -0
  732. package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +4 -0
  733. package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +5 -0
  734. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +4 -0
  735. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.style.js +1 -0
  736. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +4 -0
  737. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.style.js +1 -0
  738. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +8 -0
  739. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.style.js +1 -0
  740. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +4 -0
  741. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.style.js +1 -0
  742. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +3 -0
  743. package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +4 -0
  744. package/locations/components/FulfillmentSelector/index.js +1 -0
  745. package/locations/components/FulfillmentSheet/FulfillmentSheet.js +6 -0
  746. package/locations/components/FulfillmentSheet/FulfillmentSheet.style.js +1 -0
  747. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +6 -0
  748. package/locations/components/FulfillmentSheet/index.js +1 -0
  749. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +28 -0
  750. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.connector.js +8 -0
  751. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.context.js +1 -0
  752. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +9 -0
  753. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.connector.js +4 -0
  754. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +4 -0
  755. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +3 -0
  756. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.style.js +1 -0
  757. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +3 -0
  758. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.style.js +1 -0
  759. package/locations/components/FulfillmentSlotSwitcher/index.js +1 -0
  760. package/locations/components/FulfillmentSlotSwitcher/time.js +5 -0
  761. package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +16 -0
  762. package/locations/components/GlobalLocationSelector/index.js +1 -0
  763. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.connector.js +8 -0
  764. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +3 -0
  765. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +3 -0
  766. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.style.js +1 -0
  767. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +3 -0
  768. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.style.js +1 -0
  769. package/locations/components/GlobalLocationSwitcher/index.js +1 -0
  770. package/locations/components/ReservationResponses/ReservationError.js +4 -0
  771. package/locations/components/ReservationResponses/ReservationResponse.style.js +1 -0
  772. package/locations/components/ReservationResponses/ReservationSuccess.js +4 -0
  773. package/locations/components/ReservationResponses/index.js +1 -0
  774. package/locations/components/ReserveForm/ReserveForm.constraints.js +1 -0
  775. package/locations/components/ReserveForm/ReserveForm.js +10 -0
  776. package/locations/components/ReserveForm/ReserveForm.style.js +1 -0
  777. package/locations/components/ReserveForm/ReserveFormPhone.connector.js +3 -0
  778. package/locations/components/ReserveForm/ReserveFormPhone.js +5 -0
  779. package/locations/components/ReserveForm/ReserveFormPhone.types.js +0 -0
  780. package/locations/components/ReserveForm/index.js +1 -0
  781. package/locations/components/StockInfo/StockInfo.defaultSettings.js +1 -0
  782. package/locations/components/StockInfo/StockInfo.js +8 -0
  783. package/locations/components/StockInfo/StockInfoInventory.js +9 -0
  784. package/locations/components/StockInfo/index.js +1 -0
  785. package/locations/components/StockInfoLists/index.js +9 -0
  786. package/locations/components/StoreDetails/components/FindMoreStores.js +4 -0
  787. package/locations/components/StoreDetails/components/GetDirectionsButton.js +7 -0
  788. package/locations/components/StoreDetails/components/StoreDetails.js +5 -0
  789. package/locations/components/StoreDetails/components/StoreFinderMap.js +20 -0
  790. package/locations/components/StoreDetails/components/StoreFinderMap.style.js +1 -0
  791. package/locations/components/StoreDetails/components/StoreLocationMap.js +4 -0
  792. package/locations/components/StoreDetails/components/StoresNearby.js +4 -0
  793. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +9 -0
  794. package/locations/components/StoreDetails/index.js +4 -0
  795. package/locations/components/StoreFinder/Store.context.js +1 -0
  796. package/locations/components/StoreFinder/StoreFinder.js +3 -0
  797. package/locations/components/StoreFinder/StoreFinder.style.js +1 -0
  798. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +4 -0
  799. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +4 -0
  800. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.style.js +1 -0
  801. package/locations/components/StoreFinder/StoreFinderLocation.js +3 -0
  802. package/locations/components/StoreFinder/StoreFinderLocation.style.js +1 -0
  803. package/locations/components/StoreFinder/StoreFinderLocationDetails.js +3 -0
  804. package/locations/components/StoreFinder/StoreFinderLocationDetails.style.js +1 -0
  805. package/locations/components/StoreFinder/StoreFinderLocationHeader.js +3 -0
  806. package/locations/components/StoreFinder/StoreFinderLocationHeader.style.js +1 -0
  807. package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +4 -0
  808. package/locations/components/StoreFinder/StoreFinderLocations.js +5 -0
  809. package/locations/components/StoreFinder/StoreFinderLocations.style.js +1 -0
  810. package/locations/components/StoreFinder/StoreFinderSearch.js +3 -0
  811. package/locations/components/StoreFinder/StoreFinderSearch.style.js +1 -0
  812. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -0
  813. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +8 -0
  814. package/locations/components/StoreFinder/index.js +1 -0
  815. package/locations/components/StoreList/Store.context.js +1 -0
  816. package/locations/components/StoreList/Store.style.js +1 -0
  817. package/locations/components/StoreList/StoreAddress.js +7 -0
  818. package/locations/components/StoreList/StoreAddressShort.js +7 -0
  819. package/locations/components/StoreList/StoreCard.js +4 -0
  820. package/locations/components/StoreList/StoreDetails.js +4 -0
  821. package/locations/components/StoreList/StoreDetailsLine.js +8 -0
  822. package/locations/components/StoreList/StoreDistance.js +7 -0
  823. package/locations/components/StoreList/StoreHeader.js +4 -0
  824. package/locations/components/StoreList/StoreHoursToday.js +7 -0
  825. package/locations/components/StoreList/StoreList.js +4 -0
  826. package/locations/components/StoreList/StoreListLocations.js +4 -0
  827. package/locations/components/StoreList/StoreListProduct.js +4 -0
  828. package/locations/components/StoreList/StoreListProduct.style.js +1 -0
  829. package/locations/components/StoreList/StoreListProductInfo.js +4 -0
  830. package/locations/components/StoreList/StoreListProductName.js +4 -0
  831. package/locations/components/StoreList/StoreListSearch.connector.js +7 -0
  832. package/locations/components/StoreList/StoreListSearch.js +23 -0
  833. package/locations/components/StoreList/StoreListSearch.style.js +1 -0
  834. package/locations/components/StoreList/StoreListSearchRadius.connector.js +7 -0
  835. package/locations/components/StoreList/StoreListSearchRadius.js +4 -0
  836. package/locations/components/StoreList/StoreListSearchRadius.style.js +1 -0
  837. package/locations/components/StoreList/StoreOpeningHours.js +7 -0
  838. package/locations/components/StoreList/StoreOpeningHoursLine.js +7 -0
  839. package/locations/components/StoreList/StorePhoneNumber.js +6 -0
  840. package/locations/components/StoreList/StoreSelectLocationButton.js +4 -0
  841. package/locations/components/StoreList/index.js +1 -0
  842. package/locations/components/index.js +1 -0
  843. package/locations/constants/ActionTypes.js +10 -0
  844. package/locations/constants/Pipelines.js +1 -0
  845. package/locations/constants/Portals.js +2 -0
  846. package/locations/constants/Stages.js +1 -0
  847. package/locations/constants/index.js +7 -0
  848. package/locations/constants/routes.js +1 -0
  849. package/locations/helpers/createOrder.js +28 -0
  850. package/locations/helpers/formatDistance.js +9 -0
  851. package/locations/helpers/getAvailabilitySettings.js +12 -0
  852. package/locations/helpers/index.js +1 -0
  853. package/locations/helpers/productInventory.js +7 -0
  854. package/locations/helpers/showInventoryInLists.js +7 -0
  855. package/locations/index.js +9 -0
  856. package/locations/locations.context.js +1 -0
  857. package/locations/locations.hooks.js +4 -0
  858. package/locations/locations.streams.js +1 -0
  859. package/locations/locations.types.js +1 -0
  860. package/locations/providers/FulfillmentProvider.connector.js +10 -0
  861. package/locations/providers/FulfillmentProvider.js +49 -0
  862. package/locations/providers/FulfillmentProvider.types.js +1 -0
  863. package/locations/providers/StoreDetailsContext.js +1 -0
  864. package/locations/providers/StoreDetailsProvider.js +4 -0
  865. package/locations/providers/StoreFinder.connector.js +3 -0
  866. package/locations/providers/StoreFinderProvider.js +7 -0
  867. package/locations/providers/index.js +1 -0
  868. package/locations/reducers/index.js +1 -0
  869. package/locations/reducers/storage.js +24 -0
  870. package/locations/reducers/storeFinderSearch.js +6 -0
  871. package/locations/reducers/user.js +5 -0
  872. package/locations/reducers/userFormInput.js +8 -0
  873. package/locations/reducers/userSearch.js +6 -0
  874. package/locations/selectors/index.js +145 -0
  875. package/locations/subscriptions.js +27 -0
  876. package/login/action-creators/index.js +1 -0
  877. package/login/action-creators/resetPassword.js +14 -0
  878. package/login/actions/index.js +1 -0
  879. package/login/actions/resetPassword.js +5 -0
  880. package/login/components/ForgotPassword/ForgotPassword.connector.js +5 -0
  881. package/login/components/ForgotPassword/ForgotPassword.js +5 -0
  882. package/login/components/ForgotPassword/ForgotPassword.style.js +1 -0
  883. package/login/components/ForgotPassword/index.js +1 -0
  884. package/login/constants/actions.js +1 -0
  885. package/login/constants/index.js +1 -0
  886. package/login/constants/pipelines.js +1 -0
  887. package/login/constants/routes.js +1 -0
  888. package/login/index.js +1 -0
  889. package/orders/action-creators/index.js +1 -0
  890. package/orders/action-creators/orderDetails.js +22 -0
  891. package/orders/action-creators/orders.js +21 -0
  892. package/orders/actions/cancelOrder.js +8 -0
  893. package/orders/actions/fetchOrderDetails.js +10 -0
  894. package/orders/actions/fetchOrderHistory.js +7 -0
  895. package/orders/actions/index.js +1 -0
  896. package/orders/components/OrderDetails/OrderDetails.js +4 -0
  897. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +3 -0
  898. package/orders/components/OrderDetails/OrderDetailsAuthenticate.style.js +1 -0
  899. package/orders/components/OrderDetails/OrderDetailsAuthenticateForm.config.js +8 -0
  900. package/orders/components/OrderDetails/OrderDetailsContent.js +3 -0
  901. package/orders/components/OrderDetails/OrderDetailsContent.style.js +1 -0
  902. package/orders/components/OrderDetails/OrderDetailsOrder.js +4 -0
  903. package/orders/components/OrderDetails/OrderDetailsOrder.style.js +1 -0
  904. package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +4 -0
  905. package/orders/components/OrderDetails/OrderDetailsOrderHeader.style.js +1 -0
  906. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.connector.js +3 -0
  907. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +4 -0
  908. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.style.js +1 -0
  909. package/orders/components/OrderDetails/index.js +1 -0
  910. package/orders/components/OrderHistory/OrderHistory.js +4 -0
  911. package/orders/components/OrderHistory/OrderHistory.style.js +1 -0
  912. package/orders/components/OrderHistory/OrderHistoryList.js +9 -0
  913. package/orders/components/OrderHistory/OrderHistoryList.style.js +1 -0
  914. package/orders/components/OrderHistory/OrderHistoryLoader.js +4 -0
  915. package/orders/components/OrderHistory/OrderHistoryTable.js +9 -0
  916. package/orders/components/OrderHistory/OrderHistoryTable.style.js +1 -0
  917. package/orders/components/OrderHistory/index.js +1 -0
  918. package/orders/components/index.js +1 -0
  919. package/orders/constants/actionTypes.js +1 -0
  920. package/orders/constants/index.js +1 -0
  921. package/orders/constants/pipelines.js +1 -0
  922. package/orders/constants/routes.js +1 -0
  923. package/orders/constants/status.js +12 -0
  924. package/orders/helpers/index.js +1 -0
  925. package/orders/helpers/orderDetails.js +5 -0
  926. package/orders/helpers/orderStatus.js +15 -0
  927. package/orders/hooks/index.js +7 -0
  928. package/orders/index.js +1 -1
  929. package/orders/providers/OrderDetailsPrivateProvider.connector.js +11 -0
  930. package/orders/providers/OrderDetailsPrivateProvider.js +5 -0
  931. package/orders/providers/OrderDetailsProvider.connector.js +11 -0
  932. package/orders/providers/OrderDetailsProvider.constraints.js +1 -0
  933. package/orders/providers/OrderDetailsProvider.context.js +1 -0
  934. package/orders/providers/OrderDetailsProvider.js +11 -0
  935. package/orders/providers/OrderHistoryProvider.connector.js +9 -0
  936. package/orders/providers/OrderHistoryProvider.context.js +1 -0
  937. package/orders/providers/OrderHistoryProvider.js +4 -0
  938. package/orders/reducers/index.js +1 -0
  939. package/orders/reducers/orders.js +7 -0
  940. package/orders/reducers/ordersById.js +7 -0
  941. package/orders/reducers/ordersByNumber.js +7 -0
  942. package/orders/selectors/index.js +27 -0
  943. package/orders/subscriptions/index.js +4 -0
  944. package/package.json +28 -18
  945. package/page/action-creators/index.js +22 -0
  946. package/page/actions/index.js +1 -0
  947. package/page/components/NotFound.js +3 -0
  948. package/page/components/Widgets/Overlay.js +51 -0
  949. package/page/components/Widgets/Tooltip.js +22 -0
  950. package/page/components/Widgets/Widget.js +15 -0
  951. package/page/components/Widgets/WidgetContext.d.ts +42 -0
  952. package/page/components/Widgets/WidgetContext.js +9 -0
  953. package/page/components/Widgets/WidgetProvider.js +8 -0
  954. package/page/components/Widgets/Widgets.js +11 -0
  955. package/page/components/Widgets/WidgetsPreviewContext.js +9 -0
  956. package/page/components/Widgets/WidgetsPreviewProvider.js +8 -0
  957. package/page/components/Widgets/constants.js +4 -0
  958. package/page/components/Widgets/events.js +23 -0
  959. package/page/components/Widgets/helpers.js +23 -0
  960. package/page/components/Widgets/hooks.js +69 -0
  961. package/page/components/Widgets/index.js +1 -0
  962. package/page/components/Widgets/types.d.ts +127 -0
  963. package/page/components/index.js +1 -0
  964. package/page/constants/actionTypes.js +1 -0
  965. package/page/constants/index.js +5 -1
  966. package/page/hooks/index.d.ts +60 -0
  967. package/page/hooks/index.js +25 -0
  968. package/page/index.js +1 -4
  969. package/page/reducers/index.js +6 -0
  970. package/page/selectors/index.js +53 -0
  971. package/page/subscriptions/index.js +4 -0
  972. package/page/widgets/HTML/HTML.js +5 -0
  973. package/page/widgets/HTML/hooks.js +12 -0
  974. package/page/widgets/HTML/index.js +1 -0
  975. package/page/widgets/Placeholder/Placeholder.js +5 -0
  976. package/page/widgets/Placeholder/hooks.js +12 -0
  977. package/page/widgets/Placeholder/index.js +1 -0
  978. package/page/widgets/ProductList/ProductList.js +5 -0
  979. package/page/widgets/ProductList/hooks.js +25 -0
  980. package/page/widgets/ProductList/index.js +1 -0
  981. package/page/widgets/ProductSlider/ProductSlider.js +4 -0
  982. package/page/widgets/ProductSlider/hooks.js +27 -0
  983. package/page/widgets/ProductSlider/index.js +1 -0
  984. package/page/widgets/index.js +1 -0
  985. package/page/widgets/widgets.json +14 -0
  986. package/product/collections/index.js +1 -0
  987. package/product/components/Availability/Availability.connector.js +5 -0
  988. package/product/components/Availability/Availability.js +6 -0
  989. package/product/components/Availability/Availability.style.js +1 -0
  990. package/product/components/Availability/index.js +1 -0
  991. package/product/components/Characteristics/Characteristic/components/Sheet/index.js +16 -4
  992. package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +8 -3
  993. package/product/components/Characteristics/Characteristic/components/SheetItem/style.js +1 -1
  994. package/product/components/Characteristics/Characteristic/index.js +15 -6
  995. package/product/components/Characteristics/Characteristic/style.js +1 -1
  996. package/product/components/Characteristics/Swatch/index.js +8 -6
  997. package/product/components/Characteristics/index.js +10 -3
  998. package/product/components/Characteristics/transition.js +1 -1
  999. package/product/components/Description/index.js +5 -6
  1000. package/product/components/Description/style.js +1 -1
  1001. package/product/components/EffectivityDates/helpers.js +5 -5
  1002. package/product/components/EffectivityDates/index.js +2 -2
  1003. package/product/components/EffectivityDates/style.js +1 -1
  1004. package/product/components/Header/PriceStriked/index.js +2 -5
  1005. package/product/components/Header/PriceStriked/style.js +1 -1
  1006. package/product/components/Header/Shipping/components/Label/index.js +3 -3
  1007. package/product/components/Header/Shipping/components/Label/style.js +1 -1
  1008. package/product/components/Header/Shipping/index.js +1 -1
  1009. package/product/components/Header/Shipping/spec.js +1 -1
  1010. package/product/components/Header/Tiers/components/Tier/index.js +2 -2
  1011. package/product/components/Header/Tiers/components/Tier/spec.js +1 -1
  1012. package/product/components/Header/Tiers/index.js +1 -1
  1013. package/product/components/Header/Tiers/spec.js +1 -1
  1014. package/product/components/Header/index.js +1 -0
  1015. package/product/components/MapPriceHint/index.js +1 -1
  1016. package/product/components/Media/FeaturedMedia.js +2 -2
  1017. package/product/components/Media/MediaImage.js +3 -3
  1018. package/product/components/Media/MediaPlaceholder.js +1 -1
  1019. package/product/components/MediaSlider/components/MediaImage/index.js +1 -1
  1020. package/product/components/MediaSlider/components/MediaVideo/index.js +1 -1
  1021. package/product/components/MediaSlider/index.js +4 -4
  1022. package/product/components/Options/components/Content/index.js +8 -8
  1023. package/product/components/Options/components/Content/spec.js +2 -2
  1024. package/product/components/Options/components/Option/index.js +2 -2
  1025. package/product/components/Options/components/TextOption/components/OptionInfo/index.js +3 -3
  1026. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +1 -1
  1027. package/product/components/Options/components/TextOption/components/OptionInfo/style.js +1 -1
  1028. package/product/components/Options/components/TextOption/index.js +19 -7
  1029. package/product/components/Options/components/TextOption/style.js +1 -1
  1030. package/product/components/Options/index.js +2 -2
  1031. package/product/components/OrderQuantityHint/index.js +3 -2
  1032. package/product/components/OrderQuantityHint/style.js +1 -1
  1033. package/product/components/PriceDifference/index.js +1 -1
  1034. package/product/components/PriceDifference/style.js +1 -1
  1035. package/product/components/PriceInfo/PriceInfo.connector.js +4 -0
  1036. package/product/components/PriceInfo/PriceInfo.js +4 -0
  1037. package/product/components/PriceInfo/index.js +1 -0
  1038. package/product/components/ProductBadges/index.js +2 -2
  1039. package/product/components/ProductCard/index.js +12 -3
  1040. package/product/components/ProductCard/style.js +1 -1
  1041. package/product/components/ProductCharacteristics/context.js +1 -1
  1042. package/product/components/ProductCharacteristics/helpers/index.js +1 -1
  1043. package/product/components/ProductCharacteristics/index.js +30 -16
  1044. package/product/components/ProductDiscountBadge/index.js +2 -2
  1045. package/product/components/ProductDiscountBadge/spec.js +2 -2
  1046. package/product/components/ProductDiscountBadge/style.js +1 -1
  1047. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +8 -0
  1048. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +1 -0
  1049. package/product/components/ProductGrid/components/Item/components/ItemDiscount/index.js +5 -0
  1050. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +5 -0
  1051. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +1 -0
  1052. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +5 -0
  1053. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +1 -0
  1054. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +5 -0
  1055. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +1 -0
  1056. package/product/components/ProductGrid/components/Item/components/ItemPrice/index.js +5 -0
  1057. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +1 -0
  1058. package/product/components/ProductGrid/components/Item/index.js +7 -0
  1059. package/product/components/ProductGrid/components/Iterator/index.js +5 -0
  1060. package/product/components/ProductGrid/components/Layout/index.js +5 -0
  1061. package/product/components/ProductGrid/index.js +22 -0
  1062. package/product/components/ProductGrid/spec.js +1 -0
  1063. package/product/components/ProductGridPrice/index.js +4 -4
  1064. package/product/components/ProductGridPrice/style.js +1 -1
  1065. package/product/components/ProductImage/ProductImagePlaceholder.js +5 -0
  1066. package/product/components/ProductImage/connector.js +5 -0
  1067. package/product/components/ProductImage/index.js +17 -13
  1068. package/product/components/ProductImage/spec.js +1 -1
  1069. package/product/components/ProductList/components/Item/index.js +2 -2
  1070. package/product/components/ProductList/components/Iterator/index.js +1 -1
  1071. package/product/components/ProductList/components/Layout/index.js +1 -1
  1072. package/product/components/ProductList/index.js +2 -2
  1073. package/product/components/ProductName/ProductName.js +4 -0
  1074. package/product/components/ProductName/ProductNameContent.js +4 -0
  1075. package/product/components/ProductName/index.js +1 -0
  1076. package/product/components/ProductProperties/Content.js +4 -4
  1077. package/product/components/ProductProperties/Group.js +1 -1
  1078. package/product/components/ProductProperties/GroupedProperties.js +2 -2
  1079. package/product/components/ProductProperties/Lists.js +1 -1
  1080. package/product/components/ProductProperties/ListsHTML.js +5 -0
  1081. package/product/components/ProductProperties/ProductProperties.js +2 -2
  1082. package/product/components/ProductProperties/Row.js +1 -1
  1083. package/product/components/ProductProperties/RowHTML.js +5 -0
  1084. package/product/components/ProductProperties/Rows.js +2 -2
  1085. package/product/components/ProductProperties/Wrapper.js +1 -1
  1086. package/product/components/ProductProperties/helpers/getGroupsFromProperties.js +7 -2
  1087. package/product/components/ProductProperties/style.js +1 -1
  1088. package/product/components/ProductSlider/index.js +4 -3
  1089. package/product/components/ProductSlider/spec.js +1 -1
  1090. package/product/components/ProductVariants/VariantAvailability.connector.js +5 -0
  1091. package/product/components/ProductVariants/VariantAvailability.js +5 -0
  1092. package/product/components/ProductVariants/index.js +1 -0
  1093. package/product/components/QuantityPicker/hooks.js +5 -0
  1094. package/product/components/QuantityPicker/index.js +4 -3
  1095. package/product/components/Rating/index.js +3 -3
  1096. package/product/components/Rating/spec.js +2 -2
  1097. package/product/components/RelationsSlider/RelationsSheet.js +2 -2
  1098. package/product/components/RelationsSlider/RelationsSlider.js +1 -1
  1099. package/product/components/RelationsSlider/RelationsSliderContent.js +1 -1
  1100. package/product/components/RelationsSlider/style.js +1 -1
  1101. package/product/components/Swatch/Swatch.js +1 -1
  1102. package/product/components/Swatch/SwatchContent.js +1 -1
  1103. package/product/components/Swatch/VariantSwatch.js +1 -1
  1104. package/product/components/Swatch/style.js +1 -1
  1105. package/product/components/Swatches/Swatches.js +1 -1
  1106. package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +4 -0
  1107. package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +3 -6
  1108. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +11 -13
  1109. package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +5 -2
  1110. package/product/components/UnitQuantityPicker/index.js +1 -1
  1111. package/product/components/UnitQuantityPicker/styles.js +1 -0
  1112. package/product/components/context.js +1 -1
  1113. package/product/components/index.js +1 -0
  1114. package/product/constants/index.js +2 -1
  1115. package/product/contexts/index.js +1 -0
  1116. package/product/helpers/index.js +2 -2
  1117. package/product/helpers/redirects.js +2 -2
  1118. package/product/hocs/index.js +1 -0
  1119. package/product/hocs/withMapPricing.js +4 -4
  1120. package/product/hocs/withPriceCalculation.js +2 -2
  1121. package/product/hocs/withProduct.js +6 -0
  1122. package/product/hocs/withProductListEntry.js +1 -1
  1123. package/product/hocs/withProductListEntryProduct.js +12 -0
  1124. package/product/hocs/withProductListType.js +1 -1
  1125. package/product/hooks/index.js +1 -0
  1126. package/product/hooks/useLoadProductImage.js +1 -1
  1127. package/product/index.js +4 -11
  1128. package/product/product.types.js +0 -0
  1129. package/product/{components/ProductProvider → providers/Product}/index.js +1 -1
  1130. package/product/providers/ProductListEntry/context.js +1 -1
  1131. package/product/providers/ProductListEntry/index.js +1 -1
  1132. package/product/providers/ProductListType/context.js +2 -1
  1133. package/product/providers/ProductListType/index.js +2 -1
  1134. package/product/providers/index.js +1 -0
  1135. package/product/selectors/product.js +75 -6
  1136. package/product/selectors/variants.js +4 -1
  1137. package/product/streams/index.js +1 -0
  1138. package/push-opt-in/action-creators/pushOptIn.js +2 -1
  1139. package/push-opt-in/actions/pushOptInModal.js +3 -3
  1140. package/push-opt-in/components/PushOptInModal/index.js +3 -6
  1141. package/push-opt-in/components/PushOptInModal/push-opt-in.svg +58 -58
  1142. package/push-opt-in/reducers/optInModal.js +2 -2
  1143. package/push-opt-in/reducers/optInTrigger.js +2 -2
  1144. package/push-opt-in/selectors/optInModal.js +5 -2
  1145. package/push-opt-in/selectors/optInTrigger.js +4 -2
  1146. package/push-opt-in/subscriptions/index.js +1 -1
  1147. package/push-opt-in/subscriptions/optInTracking.js +4 -0
  1148. package/push-opt-in/subscriptions/optInTrigger.js +6 -6
  1149. package/registration/action-creators/index.js +18 -0
  1150. package/registration/actions/index.js +1 -0
  1151. package/registration/actions/submitRegistration.js +4 -0
  1152. package/registration/components/GuestRegistration/GuestRegistration.js +4 -0
  1153. package/registration/components/GuestRegistration/GuestRegistrationContent.js +4 -0
  1154. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.config.js +8 -0
  1155. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +4 -0
  1156. package/registration/components/Registration/Registration.js +4 -0
  1157. package/registration/components/Registration/RegistrationContent.js +4 -0
  1158. package/registration/components/Registration/RegistrationContent.style.js +2 -0
  1159. package/registration/components/Registration/RegistrationFormActions.js +5 -0
  1160. package/registration/components/Registration/RegistrationFormBase.config.js +4 -0
  1161. package/registration/components/Registration/RegistrationFormBase.js +4 -0
  1162. package/registration/components/Registration/RegistrationFormBilling.config.js +5 -0
  1163. package/registration/components/Registration/RegistrationFormBilling.js +5 -0
  1164. package/registration/components/Registration/RegistrationFormExtra.config.js +5 -0
  1165. package/registration/components/Registration/RegistrationFormExtra.js +5 -0
  1166. package/registration/components/Registration/RegistrationFormShipping.config.js +5 -0
  1167. package/registration/components/Registration/RegistrationFormShipping.js +5 -0
  1168. package/registration/components/Registration/RegistrationFormToggle.js +4 -0
  1169. package/registration/components/index.js +1 -0
  1170. package/registration/constants/actionTypes.js +1 -0
  1171. package/registration/constants/index.js +1 -0
  1172. package/registration/constants/pipelines.js +1 -0
  1173. package/registration/hooks/index.js +5 -0
  1174. package/registration/index.js +2 -0
  1175. package/registration/providers/GuestRegistrationProvider.actions.js +4 -0
  1176. package/registration/providers/GuestRegistrationProvider.connector.js +7 -0
  1177. package/registration/providers/GuestRegistrationProvider.constraints.js +18 -0
  1178. package/registration/providers/GuestRegistrationProvider.context.js +1 -0
  1179. package/registration/providers/GuestRegistrationProvider.js +22 -0
  1180. package/registration/providers/RegistrationProvider.actions.js +8 -0
  1181. package/registration/providers/RegistrationProvider.connector.js +6 -0
  1182. package/registration/providers/RegistrationProvider.constraints.js +27 -0
  1183. package/registration/providers/RegistrationProvider.context.js +1 -0
  1184. package/registration/providers/RegistrationProvider.js +17 -0
  1185. package/registration/streams/index.js +4 -0
  1186. package/registration/subscriptions/index.js +5 -0
  1187. package/reviews/actions/index.js +1 -0
  1188. package/reviews/components/Reviews/components/AllReviewsLink/index.js +1 -1
  1189. package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +8 -6
  1190. package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +3 -3
  1191. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +3 -3
  1192. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/style.js +1 -1
  1193. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +3 -3
  1194. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +2 -2
  1195. package/reviews/components/Reviews/components/Header/index.js +6 -4
  1196. package/reviews/components/Reviews/components/Header/spec.js +2 -2
  1197. package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +1 -1
  1198. package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +1 -1
  1199. package/reviews/components/Reviews/components/List/components/Info/index.js +2 -2
  1200. package/reviews/components/Reviews/components/List/components/Info/style.js +1 -1
  1201. package/reviews/components/Reviews/components/List/components/Rating/index.js +1 -1
  1202. package/reviews/components/Reviews/components/List/components/Review/index.js +1 -1
  1203. package/reviews/components/Reviews/components/List/components/Text/index.js +1 -1
  1204. package/reviews/components/Reviews/components/List/components/Title/index.js +1 -1
  1205. package/reviews/components/Reviews/components/List/index.js +3 -3
  1206. package/reviews/components/Reviews/components/List/spec.js +1 -1
  1207. package/reviews/components/Reviews/components/RatingCount/index.js +1 -1
  1208. package/reviews/components/Reviews/components/RatingCount/spec.js +1 -1
  1209. package/reviews/components/Reviews/components/RatingCount/style.js +1 -1
  1210. package/reviews/components/Reviews/components/ReviewsInfo/index.js +3 -4
  1211. package/reviews/components/Reviews/connector.js +2 -6
  1212. package/reviews/components/Reviews/index.js +1 -1
  1213. package/reviews/components/Reviews/mock.js +2 -6
  1214. package/reviews/components/Reviews/spec.js +4 -3
  1215. package/reviews/components/index.js +1 -0
  1216. package/reviews/constants/index.js +1 -0
  1217. package/reviews/index.js +3 -6
  1218. package/reviews/selectors/index.js +1 -0
  1219. package/reviews/streams/index.js +1 -0
  1220. package/scanner/action-creators/index.js +1 -0
  1221. package/scanner/actions/index.js +1 -0
  1222. package/scanner/classes/index.js +1 -0
  1223. package/scanner/constants/index.js +1 -0
  1224. package/scanner/helpers/index.js +1 -0
  1225. package/scanner/index.js +1 -6
  1226. package/scanner/streams/index.js +1 -0
  1227. package/search/actions/index.js +1 -0
  1228. package/search/constants/index.js +1 -0
  1229. package/search/helpers/index.js +1 -0
  1230. package/search/index.js +1 -6
  1231. package/search/selectors/index.js +1 -0
  1232. package/search/streams/index.js +1 -0
  1233. package/styles/helpers/color.js +23 -0
  1234. package/styles/helpers/cssCustomProperties.js +16 -0
  1235. package/styles/helpers/index.js +1 -0
  1236. package/styles/helpers/initCSSCustomProperties.js +10 -0
  1237. package/styles/helpers/loadCustomStyles.js +6 -0
  1238. package/styles/helpers/setPageBackgroundColor.js +5 -0
  1239. package/styles/helpers/setPageContentWidth.js +5 -0
  1240. package/styles/helpers/setViewportHeight.js +3 -0
  1241. package/styles/helpers/toggleBodyScroll.js +5 -0
  1242. package/styles/helpers/updatePageInsets.js +15 -0
  1243. package/styles/index.d.ts +17 -0
  1244. package/styles/index.js +1 -0
  1245. package/styles/reset/form.js +8 -0
  1246. package/styles/reset/index.js +1 -0
  1247. package/styles/reset/media.js +1 -0
  1248. package/styles/reset/root.js +3 -0
  1249. package/styles/reset/table.js +1 -0
  1250. package/styles/reset/typography.js +1 -0
  1251. package/styles/theme/createTheme/createBreakpoints.d.ts +114 -0
  1252. package/styles/theme/createTheme/createBreakpoints.js +41 -0
  1253. package/styles/theme/createTheme/createSpacing.d.ts +23 -0
  1254. package/styles/theme/createTheme/createSpacing.js +14 -0
  1255. package/styles/theme/createTheme/index.d.ts +19 -0
  1256. package/styles/theme/createTheme/index.js +5 -0
  1257. package/styles/theme/createTheme/transitions.d.ts +100 -0
  1258. package/styles/theme/createTheme/transitions.js +26 -0
  1259. package/styles/theme/createTheme/zIndex.d.ts +12 -0
  1260. package/styles/theme/createTheme/zIndex.js +3 -0
  1261. package/styles/theme/hooks/index.d.ts +4 -0
  1262. package/styles/theme/hooks/index.js +1 -0
  1263. package/styles/theme/hooks/useActiveBreakpoint.d.ts +18 -0
  1264. package/styles/theme/hooks/useActiveBreakpoint.js +4 -0
  1265. package/styles/theme/hooks/useMediaQuery.d.ts +33 -0
  1266. package/styles/theme/hooks/useMediaQuery.js +20 -0
  1267. package/styles/theme/hooks/useResponsiveValue.d.ts +27 -0
  1268. package/styles/theme/hooks/useResponsiveValue.js +4 -0
  1269. package/styles/theme/hooks/useTheme.d.ts +8 -0
  1270. package/styles/theme/hooks/useTheme.js +4 -0
  1271. package/styles/theme/index.d.ts +8 -0
  1272. package/styles/theme/index.js +1 -0
  1273. package/styles/theme/providers/ActiveBreakpointProvider.d.ts +21 -0
  1274. package/styles/theme/providers/ActiveBreakpointProvider.js +13 -0
  1275. package/styles/theme/providers/ThemeProvider.d.ts +18 -0
  1276. package/styles/theme/providers/ThemeProvider.js +7 -0
  1277. package/styles/tss/index.js +3 -0
  1278. package/tracking/action-creators/cookieConsent.js +2 -2
  1279. package/tracking/actions/cookieConsent.js +17 -5
  1280. package/tracking/components/CookieConsentModal/connector.js +3 -5
  1281. package/tracking/components/CookieConsentModal/index.js +3 -6
  1282. package/tracking/components/CookieConsentModal/tracking-opt-in.svg +14 -14
  1283. package/tracking/components/PrivacySettings/connector.js +3 -5
  1284. package/tracking/components/PrivacySettings/index.js +2 -2
  1285. package/tracking/helpers/index.js +1 -0
  1286. package/tracking/selectors/cookieConsent.js +11 -6
  1287. package/tracking/streams/cookieConsent.js +10 -3
  1288. package/tracking/subscriptions/analytics.js +5 -4
  1289. package/tracking/subscriptions/cookieConsent.js +6 -10
  1290. package/types.js +0 -0
  1291. package/user/index.js +2 -2
  1292. package/user/selectors/data.js +10 -0
  1293. package/components/MessageBar/spec.js +0 -1
  1294. package/components/MessageBar/style.js +0 -2
  1295. package/favorites/constants/constants.js +0 -1
  1296. package/product/components/Characteristics/Characteristic/components/VariantAvailability/connector.js +0 -9
  1297. package/product/components/Characteristics/Characteristic/components/VariantAvailability/index.js +0 -5
  1298. package/product/components/QuantityPicker/helpers.js +0 -5
  1299. /package/product/components/{Characteristics/Characteristic/components/VariantAvailability/style.js → ProductVariants/VariantAvailability.style.js} +0 -0
  1300. /package/product/{components/ProductProvider → providers/Product}/connector.js +0 -0
@@ -0,0 +1,5 @@
1
+ import React from'react';import PropTypes from'prop-types';import styles from"./styles";/**
2
+ * Favorite List Accordion Label component
3
+ * @param {string} title The label name
4
+ * @return {JSX.Element}
5
+ */var ListAccordionLabel=function ListAccordionLabel(_ref){var title=_ref.title;return React.createElement("span",{className:styles.title},title);};export default ListAccordionLabel;
@@ -0,0 +1,8 @@
1
+ import React from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{i18n}from'@shopgate/engage/core/helpers';import{ProductListTypeProvider,ProductProvider}from'@shopgate/engage/product/providers';import{RippleButton}from'@shopgate/engage/components';import{getUseGetFavoriteIdsPipeline}from'@shopgate/engage/favorites';import ListItemWrapper from"./ListItemWrapper";import styles from"./styles";/**
2
+ * @param {Object} state State
3
+ * @param {Object} props Props
4
+ * @returns {Object}
5
+ */var mapStateToProps=function mapStateToProps(state,props){return{useGetFavoriteIdsPipeline:getUseGetFavoriteIdsPipeline(state,props)};};/**
6
+ * @param {Object} props The component props
7
+ * @returns {JSX.Element}
8
+ */var ListContent=function ListContent(_ref){var listId=_ref.listId,items=_ref.items,removeItem=_ref.removeItem,addToCart=_ref.addToCart,useGetFavoriteIdsPipeline=_ref.useGetFavoriteIdsPipeline,showLoadMoreButton=_ref.showLoadMoreButton,onLoadMore=_ref.onLoadMore;return React.createElement(React.Fragment,null,React.createElement("div",{className:styles.divider}),items.length===0?React.createElement("span",null,i18n.text('favorites.empty')):null,React.createElement(ProductListTypeProvider,{type:"favoritesList"},useGetFavoriteIdsPipeline?items.map(function(_ref2,index){var productId=_ref2.productId;return React.createElement(ProductProvider,{productId:productId,key:productId},function(_ref3){var product=_ref3.product;return product?React.createElement(ListItemWrapper,{listId:listId,product:product,items:items,addToCart:addToCart,removeItem:removeItem,index:index,key:product.id}):null;});}):null,!useGetFavoriteIdsPipeline&&items.filter(function(_ref4){var product=_ref4.product;return product;}).map(function(_ref5,index){var product=_ref5.product,notes=_ref5.notes,quantity=_ref5.quantity;return React.createElement(ListItemWrapper,{listId:listId,product:product,notes:notes,quantity:quantity,items:items,addToCart:addToCart,removeItem:removeItem,index:index,key:product.id});})),showLoadMoreButton&&React.createElement(RippleButton,{type:"primary",className:styles.loadMoreButton,onClick:onLoadMore},i18n.text('favorites.load_more_button')));};export default connect(mapStateToProps)(ListContent);
@@ -0,0 +1,6 @@
1
+ import React from'react';import PropTypes from'prop-types';import Item from"../Item";import styles from"./styles";/**
2
+ * Wrapper around the Item component to simplify item rendering based on the two different "items"
3
+ * lists within ListItemContent.
4
+ * @param {Object} props The component props
5
+ * @returns {JSX.Element}
6
+ */var ListItemWrapper=function ListItemWrapper(_ref){var listId=_ref.listId,product=_ref.product,notes=_ref.notes,quantity=_ref.quantity,_addToCart=_ref.addToCart,removeItem=_ref.removeItem,items=_ref.items,index=_ref.index;return React.createElement("div",null,React.createElement(Item,{product:product,notes:notes,quantity:quantity,listId:listId,productId:product.id,addToCart:function addToCart(e){e.preventDefault();e.stopPropagation();return _addToCart(product,quantity);},remove:function remove(e){e.preventDefault();e.stopPropagation();removeItem(product.id);}}),index===items.length-1?null:React.createElement("div",{className:styles.divider}));};ListItemWrapper.defaultProps={notes:undefined,quantity:1};export default ListItemWrapper;
@@ -0,0 +1 @@
1
+ import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var colors=themeConfig.colors,variables=themeConfig.variables;var styles={root:css({margin:'8px 8px 10px'}).toString(),rootNoFavoritesLists:css({background:colors.light,flexGrow:1,paddingBottom:variables.gap.small,paddingLeft:'16px',paddingRight:'16px'}),title:css({flex:1}),divider:css({height:1,width:'calc(100% + 32px)',backgroundColor:'rgb(234, 234, 234)',marginLeft:-16,marginRight:-16,marginBottom:16}),loadMoreButton:css({width:'calc(100% - 32px)',margin:'16px 16px 0 16px',borderRadius:5}).toString()};export default styles;
@@ -6,5 +6,5 @@ import React from'react';import PropTypes from'prop-types';import{connect}from'r
6
6
  * @returns {Object}
7
7
  */var mapDispatchToProps=function mapDispatchToProps(dispatch){return{close:function close(){return dispatch(closeFavoritesListChooser());},toggle:function toggle(){return dispatch(toggleFavorite.apply(void 0,arguments));}};};/**
8
8
  * @param {Object} props Props.
9
- * @returns {JSX}
10
- */var ListChooser=function ListChooser(_ref){var settings=_ref.settings,lists=_ref.lists,close=_ref.close,toggle=_ref.toggle;var isVisible=!!settings;var productId=settings===null||settings===void 0?void 0:settings.productId;var withRelatives=settings===null||settings===void 0?void 0:settings.withRelatives;return/*#__PURE__*/React.createElement(SheetDrawer,{isOpen:isVisible,title:i18n.text('favorites.list_chooser.title'),onDidClose:close},/*#__PURE__*/React.createElement(SheetList,null,lists.map(function(list){return/*#__PURE__*/React.createElement(SheetList.Item,{key:list.id,title:list.name,onClick:function onClick(){close();toggle(productId,list.id,withRelatives);},rightComponent:/*#__PURE__*/React.createElement(ListChooserItem,{listId:list.id,productId:productId})});})));};ListChooser.defaultProps={settings:null,lists:[]};export default connect(mapStateToProps,mapDispatchToProps)(ListChooser);
9
+ * @returns {JSX.Element}
10
+ */var ListChooser=function ListChooser(_ref){var settings=_ref.settings,lists=_ref.lists,close=_ref.close,toggle=_ref.toggle;var isVisible=!!settings;var productId=settings===null||settings===void 0?void 0:settings.productId;var withRelatives=settings===null||settings===void 0?void 0:settings.withRelatives;return React.createElement(SheetDrawer,{isOpen:isVisible,title:i18n.text('favorites.list_chooser.title'),onDidClose:close},React.createElement(SheetList,null,lists.map(function(list){return React.createElement(SheetList.Item,{key:list.id,title:list.name,onClick:function onClick(){close();toggle(productId,list.id,withRelatives);},rightComponent:React.createElement(ListChooserItem,{listId:list.id,productId:productId})});})));};ListChooser.defaultProps={settings:null,lists:[]};export default connect(mapStateToProps,mapDispatchToProps)(ListChooser);
@@ -1,7 +1,6 @@
1
- import React from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{css}from'glamor';import{makeIsProductOnSpecificFavoriteList}from'@shopgate/pwa-common-commerce/favorites/selectors';import{i18n}from'@shopgate/engage/core';import{themeConfig}from'@shopgate/pwa-common/helpers/config';/**
2
- * @param {Object} state State.
1
+ import React from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{css}from'glamor';import{makeIsProductOnSpecificFavoriteList}from'@shopgate/pwa-common-commerce/favorites/selectors';import{i18n}from'@shopgate/engage/core';import{getWishlistItemQuantityEnabled}from"../../../core/selectors/shopSettings";/**
3
2
  * @returns {Object}
4
- */var makeMapStateToProps=function makeMapStateToProps(){var getIsOnList=makeIsProductOnSpecificFavoriteList(function(_,props){return props.productId;},function(_,props){return props.listId;});return function(state,props){return{isOnList:getIsOnList(state,props)};};};var styles={remove:css({color:"var(--color-state-alert, ".concat(themeConfig.colors.error,")")}).toString(),add:css({color:'var(--color-state-ok)'}).toString()};/**
3
+ */var makeMapStateToProps=function makeMapStateToProps(){var getIsOnList=makeIsProductOnSpecificFavoriteList(function(_,props){return props.productId;},function(_,props){return props.listId;});return function(state,props){return{isOnList:getIsOnList(state,props),wishlistItemQuantityEnabled:getWishlistItemQuantityEnabled(state)};};};var styles={remove:css({color:'var(--color-state-alert)'}).toString(),add:css({color:'var(--color-state-ok)',whiteSpace:'noWrap'}).toString()};/**
5
4
  * @param {Object} props Props.
6
- * @returns {JSX}
7
- */var ListChooserItem=function ListChooserItem(_ref){var isOnList=_ref.isOnList;return isOnList?/*#__PURE__*/React.createElement("span",{className:styles.remove},i18n.text('favorites.list_chooser.remove')):/*#__PURE__*/React.createElement("span",{className:styles.add},i18n.text('favorites.list_chooser.add'));};export default connect(makeMapStateToProps)(ListChooserItem);
5
+ * @returns {JSX.Element}
6
+ */var ListChooserItem=function ListChooserItem(_ref){var isOnList=_ref.isOnList,wishlistItemQuantityEnabled=_ref.wishlistItemQuantityEnabled;if(wishlistItemQuantityEnabled&&isOnList){return React.createElement("span",{className:styles.add},i18n.text('favorites.list_chooser.add_more'));}if(isOnList){return React.createElement("span",{className:styles.remove},i18n.text('favorites.list_chooser.remove'));}return React.createElement("span",{className:styles.add},i18n.text('favorites.list_chooser.add'));};export default connect(makeMapStateToProps)(ListChooserItem);
@@ -1,21 +1,25 @@
1
- function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState,useCallback,useRef}from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{css}from'glamor';import{RippleButton,SurroundPortals}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import{getFavoritesLists,isInitialLoading,getHasMultipleFavoritesListsSupport,addFavoritesList,updateFavoritesList,removeFavoritesList,removeFavorites}from'@shopgate/engage/favorites';import{addProductsToCart}from'@shopgate/engage/cart';import List from"../List";import ListsModal from"./ListsModal";import{FAVORITES_LIST_ADD_BUTTON,FAVORITES_LIST}from"../../constants/Portals";/**
2
- * TODO
3
- *
4
- * This constant originally comes from PWA 7 shopSettings. If another mode is requested in the
5
- * future, this needs to be set dynamically.
6
- */var WISHLIST_MODE_PERSIST_ON_ADD='persistOnAdd';/**
1
+ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{useState,useCallback,useRef}from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{css}from'glamor';import{RippleButton,SurroundPortals}from'@shopgate/engage/components';import{hasNewServices}from'@shopgate/engage/core/helpers';import{i18n}from'@shopgate/engage/core';import{getFavoritesLists,isInitialLoading,getHasMultipleFavoritesListsSupport}from'@shopgate/pwa-common-commerce/favorites/selectors';import addFavoritesList from'@shopgate/pwa-common-commerce/favorites/actions/addFavoritesList';import updateFavoritesList from'@shopgate/pwa-common-commerce/favorites/actions/updateFavoritesList';import removeFavoritesList from'@shopgate/pwa-common-commerce/favorites/actions/removeFavoritesList';import{removeFavorites}from'@shopgate/pwa-common-commerce/favorites/actions/toggleFavorites';import addProductsToCart from'@shopgate/pwa-common-commerce/cart/actions/addProductsToCart';import{FulfillmentSheet,MULTI_LINE_RESERVE,STAGE_SELECT_STORE}from'@shopgate/engage/locations';import{openSheet}from'@shopgate/engage/locations/providers/FulfillmentProvider';import{getWishlistMode}from'@shopgate/engage/core/selectors/shopSettings';import{WISHLIST_MODE_PERSIST_ON_ADD}from'@shopgate/engage/core/constants/shopSettings';import{getPreferredLocation,getPreferredFulfillmentMethod,getUserSearch}from'@shopgate/engage/locations/selectors';import{responsiveMediaQuery}from'@shopgate/engage/styles';import{makeGetEnabledFulfillmentMethods}from'@shopgate/engage/core/config';import{fetchProductLocations}from'@shopgate/engage/locations/actions';import List from"../List";import ListsModal from"./ListsModal";import CommentDialog from"../CommentDialog";import ItemFulfillmentMethod from"../ItemFulfillmentMethod";import{FAVORITES_LIST_ADD_BUTTON,FAVORITES_LIST}from"../../constants/Portals";/**
7
2
  * @param {Object} state State
8
3
  * @param {Object} props Props
9
4
  * @returns {Object}
10
- */var mapStateToProps=function mapStateToProps(state){return{isInitializing:isInitialLoading(state),lists:getFavoritesLists(state),wishlistMode:WISHLIST_MODE_PERSIST_ON_ADD,hasMultipleFavoritesListsSupport:getHasMultipleFavoritesListsSupport(state)};};/**
5
+ */var makeMapStateToProps=function makeMapStateToProps(){var getFulfillmentMethods=makeGetEnabledFulfillmentMethods();return function(state,props){return{isInitializing:isInitialLoading(state),lists:getFavoritesLists(state),preferredLocation:getPreferredLocation(state,props),preferredFulfillmentMethod:getPreferredFulfillmentMethod(state,props),shopFulfillmentMethods:getFulfillmentMethods(state,props),wishlistMode:getWishlistMode(state),userSearch:getUserSearch(state),hasMultipleFavoritesListsSupport:getHasMultipleFavoritesListsSupport(state)};};};/**
11
6
  * @param {Object} dispatch Dispatch
12
7
  * @returns {Object}
13
- */var mapDispatchToProps=function mapDispatchToProps(dispatch){return{addList:function addList(name){return dispatch(addFavoritesList(name));},updateList:function updateList(id,name){return dispatch(updateFavoritesList(id,name));},removeList:function removeList(id){return dispatch(removeFavoritesList(id));},removeItem:function removeItem(listId,productId){return dispatch(removeFavorites(productId,false,listId));},addToCart:function addToCart(){return dispatch(addProductsToCart.apply(void 0,arguments));}};};var styles={root:css({}),addButton:css({width:'calc(100% - 32px)',margin:16,borderRadius:5}).toString()};/**
8
+ */var mapDispatchToProps=function mapDispatchToProps(dispatch){return{addList:function addList(name){return dispatch(addFavoritesList(name));},updateList:function updateList(id,name){return dispatch(updateFavoritesList(id,name));},removeList:function removeList(id){return dispatch(removeFavoritesList(id));},removeItem:function removeItem(listId,productId){return dispatch(removeFavorites(productId,false,listId));},addToCart:function addToCart(){return dispatch(addProductsToCart.apply(void 0,arguments));},fetchLocations:function fetchLocations(productId,params){return dispatch(fetchProductLocations(productId,params));}};};var styles={root:css(_defineProperty({},responsiveMediaQuery('>=md',{webOnly:true}),{margin:8})),addButton:css(_defineProperty({width:'calc(100% - 32px)',margin:16,backgroundColor:'var(--color-primary)',borderRadius:5},responsiveMediaQuery('>=md',{webOnly:true}),{width:240,"float":'right'})).toString()};/**
14
9
  * @param {Object} props Props
15
10
  * @returns {Object}
16
- */var FavoriteLists=function FavoriteLists(_ref){var addList=_ref.addList,updateList=_ref.updateList,removeList=_ref.removeList,_removeItem=_ref.removeItem,addToCart=_ref.addToCart,wishlistMode=_ref.wishlistMode,lists=_ref.lists,isInitializing=_ref.isInitializing,hasMultipleFavoritesListsSupport=_ref.hasMultipleFavoritesListsSupport;// Add to cart state.
17
- var promiseRef=useRef(null);var handleAddToCart=useCallback(function(listId,product){// Create promise to inform add to cart button when ready.
11
+ */var FavoriteLists=function FavoriteLists(_ref){var addList=_ref.addList,updateList=_ref.updateList,removeList=_ref.removeList,_removeItem=_ref.removeItem,addToCart=_ref.addToCart,preferredFulfillmentMethod=_ref.preferredFulfillmentMethod,preferredLocation=_ref.preferredLocation,wishlistMode=_ref.wishlistMode,lists=_ref.lists,isInitializing=_ref.isInitializing,shopFulfillmentMethods=_ref.shopFulfillmentMethods,userSearch=_ref.userSearch,fetchLocations=_ref.fetchLocations,hasMultipleFavoritesListsSupport=_ref.hasMultipleFavoritesListsSupport;// Add to cart state.
12
+ var promiseRef=useRef(null);var _useState=useState(null),_useState2=_slicedToArray(_useState,2),activeProductId=_useState2[0],setActiveProductId=_useState2[1];var _useState3=useState([]),_useState4=_slicedToArray(_useState3,2),fulfillmentMethods=_useState4[0],setFulfillmentMethods=_useState4[1];var _useState5=useState(null),_useState6=_slicedToArray(_useState5,2),fulfillmentMethod=_useState6[0],setFulfillmentMethod=_useState6[1];var _useState7=useState(false),_useState8=_slicedToArray(_useState7,2),foMethodChooser=_useState8[0],setFOMethodChooser=_useState8[1];var handleAddToCartWithMethod=useCallback(function(method){// Hide modal if visible.
13
+ setFOMethodChooser(false);// Handle cancellation.
14
+ if(!method){return;}setFulfillmentMethod(method);// Direct ship.
15
+ if(method==='directShip'){addToCart([{productId:activeProductId,quantity:1}]);promiseRef.current.resolve();return;}// Open the sheet
16
+ fetchLocations(activeProductId,userSearch);setTimeout(function(){openSheet({callback:function callback(state){var _promiseRef$current2;if(state){var _promiseRef$current;return(_promiseRef$current=promiseRef.current)===null||_promiseRef$current===void 0?void 0:_promiseRef$current.resolve();}return(_promiseRef$current2=promiseRef.current)===null||_promiseRef$current2===void 0?void 0:_promiseRef$current2.reject();},fulfillmentPath:MULTI_LINE_RESERVE,stage:STAGE_SELECT_STORE});},10);},[activeProductId,addToCart,fetchLocations,userSearch]);var handleAddToCart=useCallback(function(listId,product){var quantity=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;// Create promise to inform add to cart button when ready.
18
17
  var promise=new Promise(function(_resolve,reject){promiseRef.current={resolve:function resolve(){// Remove item from wishlist after adding to cart.
19
- if(wishlistMode!==WISHLIST_MODE_PERSIST_ON_ADD){_removeItem(listId,product.id);}_resolve();},reject:reject};});// If all options are already configured immediately add it to the cart.
20
- addToCart([{productId:product.id,quantity:1}]);promiseRef.current.resolve();return promise;},[addToCart,_removeItem,wishlistMode]);// Modal for renaming and adding.
21
- var _useState=useState(false),_useState2=_slicedToArray(_useState,2),modalOpen=_useState2[0],setModalOpen=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),modalType=_useState4[0],setModalType=_useState4[1];var _useState5=useState(null),_useState6=_slicedToArray(_useState5,2),modalTarget=_useState6[0],setModalTarget=_useState6[1];var openAddModal=useCallback(function(){setModalOpen(true);setModalType('add_list');setModalTarget(null);},[]);var openRenameModal=useCallback(function(code){setModalOpen(true);setModalType('rename_list');setModalTarget(code);},[]);var closeModal=useCallback(function(){setModalOpen(false);setModalType(null);setModalTarget(null);},[]);var confirmModal=useCallback(function(name){if(modalType==='add_list'){addList(name);}else if(modalType==='rename_list'){updateList(modalTarget,name);}closeModal();},[addList,closeModal,modalTarget,modalType,updateList]);if(isInitializing){return null;}return/*#__PURE__*/React.createElement("div",{className:styles.root},lists.map(function(list){return/*#__PURE__*/React.createElement(SurroundPortals,{key:list.id,portalName:FAVORITES_LIST,portalProps:list},/*#__PURE__*/React.createElement(List,{id:list.id,name:list.name,rename:openRenameModal,remove:function remove(){return removeList(list.id);},removeItem:function removeItem(productId){return _removeItem(list.id,productId);},addToCart:function addToCart(product){return handleAddToCart(list.id,product);},disableRemoveList:lists.length<2}));}),modalOpen?/*#__PURE__*/React.createElement(ListsModal,{type:modalType,onDismiss:closeModal,onConfirm:confirmModal}):null,/*#__PURE__*/React.createElement(SurroundPortals,{portalName:FAVORITES_LIST_ADD_BUTTON},hasMultipleFavoritesListsSupport?/*#__PURE__*/React.createElement(RippleButton,{type:"primary",className:styles.addButton,onClick:openAddModal,disabled:false},i18n.text('favorites.add_list')):null));};FavoriteLists.defaultProps={lists:[],isInitializing:true,hasMultipleFavoritesListsSupport:false};export default connect(mapStateToProps,mapDispatchToProps)(FavoriteLists);
18
+ if(wishlistMode!==WISHLIST_MODE_PERSIST_ON_ADD){_removeItem(listId,product.id);}_resolve();},reject:reject};});if(!hasNewServices()){addToCart([{productId:product.id,quantity:quantity}]);promiseRef.current.resolve();return promise;}// Get location.
19
+ var activeLocation=null;if(preferredLocation){activeLocation=preferredLocation;}// Get fulfillment method that is both active for location and product.
20
+ var activeFulfillmentMethod=preferredFulfillmentMethod||fulfillmentMethod;var availableFulfillmentMethods=(shopFulfillmentMethods===null||shopFulfillmentMethods===void 0?void 0:shopFulfillmentMethods.filter(function(s){return product.fulfillmentMethods.indexOf(s)!==-1;}))||[];if(activeLocation&&!activeFulfillmentMethod&&availableFulfillmentMethods.length===1){var _availableFulfillment=_slicedToArray(availableFulfillmentMethods,1);activeFulfillmentMethod=_availableFulfillment[0];}// If all options are already configured immediately add it to the cart.
21
+ if(activeFulfillmentMethod&&activeLocation){addToCart([{productId:product.id,quantity:quantity,fulfillment:{method:activeFulfillmentMethod,location:{code:activeLocation.code,name:activeLocation.name||''}}}]);promiseRef.current.resolve();return promise;}// Location not set but FO method is set.
22
+ setActiveProductId(product.id);if(activeFulfillmentMethod&&!activeLocation){handleAddToCartWithMethod(activeFulfillmentMethod);return promise;}if(!activeFulfillmentMethod&&!activeFulfillmentMethod){// Long path is required <- fo method and location unset.
23
+ setFulfillmentMethods(shopFulfillmentMethods);setFOMethodChooser(true);return promise;}// Short path is required <- fo method is unset.
24
+ setFulfillmentMethods(availableFulfillmentMethods);setFOMethodChooser(true);return promise;},[addToCart,fulfillmentMethod,handleAddToCartWithMethod,preferredFulfillmentMethod,preferredLocation,_removeItem,shopFulfillmentMethods,wishlistMode]);var handleMethodClose=useCallback(function(){setFOMethodChooser(false);promiseRef.current.reject();},[]);// Modal for renaming and adding.
25
+ var _useState9=useState(false),_useState10=_slicedToArray(_useState9,2),modalOpen=_useState10[0],setModalOpen=_useState10[1];var _useState11=useState(null),_useState12=_slicedToArray(_useState11,2),modalType=_useState12[0],setModalType=_useState12[1];var _useState13=useState(null),_useState14=_slicedToArray(_useState13,2),modalTarget=_useState14[0],setModalTarget=_useState14[1];var openAddModal=useCallback(function(){setModalOpen(true);setModalType('add_list');setModalTarget(null);},[]);var openRenameModal=useCallback(function(code){setModalOpen(true);setModalType('rename_list');setModalTarget(code);},[]);var closeModal=useCallback(function(){setModalOpen(false);setModalType(null);setModalTarget(null);},[]);var confirmModal=useCallback(function(name){if(modalType==='add_list'){addList(name);}else if(modalType==='rename_list'){updateList(modalTarget,name);}closeModal();},[addList,closeModal,modalTarget,modalType,updateList]);if(isInitializing){return null;}return React.createElement("div",{className:styles.root},lists.map(function(list){return React.createElement(SurroundPortals,{key:list.id,portalName:FAVORITES_LIST,portalProps:list},React.createElement(List,{id:list.id,name:list.name,rename:openRenameModal,remove:function remove(){return removeList(list.id);},removeItem:function removeItem(productId){return _removeItem(list.id,productId);},addToCart:function addToCart(product,quantity){return handleAddToCart(list.id,product,quantity);},hasMultipleFavoritesListsSupport:hasMultipleFavoritesListsSupport}));}),modalOpen?React.createElement(ListsModal,{type:modalType,onDismiss:closeModal,onConfirm:confirmModal}):null,activeProductId?React.createElement(FulfillmentSheet,{productId:activeProductId,fulfillmentMethod:fulfillmentMethod}):null,React.createElement(CommentDialog,null),React.createElement(ItemFulfillmentMethod,{isOpen:foMethodChooser,methods:fulfillmentMethods,onSelect:handleAddToCartWithMethod,onClose:handleMethodClose}),React.createElement(SurroundPortals,{portalName:FAVORITES_LIST_ADD_BUTTON},hasMultipleFavoritesListsSupport?React.createElement(RippleButton,{type:"primary",className:styles.addButton,onClick:openAddModal,disabled:false},i18n.text('favorites.add_list')):null));};FavoriteLists.defaultProps={lists:[],userSearch:{},preferredFulfillmentMethod:null,shopFulfillmentMethods:[],preferredLocation:null,isInitializing:true};export default connect(makeMapStateToProps,mapDispatchToProps)(FavoriteLists);
@@ -1,6 +1,5 @@
1
- function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState,useCallback}from'react';import PropTypes from'prop-types';import{Dialog,TextField}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import{css}from'glamor';var styles={root:css({display:'flex',flexDirection:'column'}),textField:css({textAlign:'left'})};/**
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{useState,useCallback,useMemo}from'react';import PropTypes from'prop-types';import{hasNewServices}from'@shopgate/engage/core/helpers';import{Dialog,TextField}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import{themeName}from'@shopgate/pwa-common/helpers/config';import{css}from'glamor';var isIos=themeName.includes('ios');var styles={root:css({display:'flex',flexDirection:'column'}),input:css({textAlign:'left',fontSize:'1rem'}).toString()};/**
2
2
  * @param {Object} props Props
3
3
  * @returns {Object}
4
- */var ListsModal=function ListsModal(_ref){var type=_ref.type,onConfirm=_ref.onConfirm,onDismiss=_ref.onDismiss;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),input=_useState2[0],setInput=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var onConfirmWrapped=useCallback(function(){if(input.length===0){setError(i18n.text('favorites.errors.invalid_name'));return;}onConfirm(input);},[input,onConfirm]);var onChange=useCallback(function(value){setInput(value);},[]);/**
5
- * Submit handler for the text input
6
- */var handleKeyPress=useCallback(function(e){if(e.key==='Enter'){onConfirmWrapped();}},[onConfirmWrapped]);return/*#__PURE__*/React.createElement(Dialog,{onConfirm:onConfirmWrapped,onDismiss:onDismiss,modal:{title:i18n.text("favorites.".concat(type,"_modal.title")),dismiss:i18n.text("favorites.".concat(type,"_modal.dismiss")),confirm:i18n.text("favorites.".concat(type,"_modal.confirm")),content:/*#__PURE__*/React.createElement("div",{className:styles.root},/*#__PURE__*/React.createElement("span",null,i18n.text("favorites.".concat(type,"_modal.message"))),/*#__PURE__*/React.createElement(TextField,{name:"name",label:i18n.text("favorites.".concat(type,"_modal.label")),onChange:onChange,value:input,errorText:error||undefined,className:styles.textField,maxlength:"25",onKeyPress:handleKeyPress}))}});};export default ListsModal;
4
+ */var ListsModal=function ListsModal(_ref){var type=_ref.type,onConfirm=_ref.onConfirm,onDismiss=_ref.onDismiss;var _useState=useState(''),_useState2=_slicedToArray(_useState,2),input=_useState2[0],setInput=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var onConfirmWrapped=useCallback(function(){if(input.length===0){setError(i18n.text('favorites.errors.invalid_name'));return;}onConfirm(input);},[input,onConfirm]);var onChange=useCallback(function(value){setInput(value);},[]);// Favorites list name was restricted to 25 characters on PWA6 in CCP-2535
5
+ var textFieldMaxLength=useMemo(function(){return!hasNewServices()?'25':undefined;},[]);return React.createElement(Dialog,{onConfirm:onConfirmWrapped,onDismiss:onDismiss,modal:{title:i18n.text("favorites.".concat(type,"_modal.title")),dismiss:i18n.text("favorites.".concat(type,"_modal.dismiss")),confirm:i18n.text("favorites.".concat(type,"_modal.confirm"))}},React.createElement("div",{className:styles.root},React.createElement("span",null,i18n.text("favorites.".concat(type,"_modal.message"))),React.createElement(TextField,_extends({name:"name"},isIos?{placeholder:i18n.text("favorites.".concat(type,"_modal.label"))}:{label:i18n.text("favorites.".concat(type,"_modal.label"))},{maxLength:textFieldMaxLength,onChange:onChange,value:input,errorText:error||undefined,className:styles.input}))));};export default ListsModal;
@@ -1,4 +1,4 @@
1
- import React from'react';import PropTypes from'prop-types';import{css}from'glamor';import{i18n}from'@shopgate/engage/core';import{Ripple}from'@shopgate/engage/components';import CrossIcon from'@shopgate/pwa-ui-shared/icons/CrossIcon';import{themeShadows,themeColors}from'@shopgate/pwa-common/helpers/config';var styles={root:css({display:'flex',position:'relative',background:themeColors.light,borderRadius:'50%',padding:0,fontSize:20,lineHeight:1,color:"var(--color-secondary, ".concat(themeColors.accent,")"),outline:0,boxShadow:themeShadows.buttons.elevated,height:32,width:32,justifyContent:'center',alignItems:'center'}).toString()};/**
1
+ import React from'react';import PropTypes from'prop-types';import{css}from'glamor';import{i18n}from'@shopgate/engage/core';import{Ripple}from'@shopgate/engage/components';import TrashOutlineIcon from'@shopgate/pwa-ui-shared/icons/TrashOutlineIcon';var styles={root:css({display:'flex',borderRadius:'50%',color:'var(--color-text-high-emphasis)',fontSize:'1.5rem',padding:'0 8px 8px 8px',lineHeight:1,outline:0,justifyContent:'center',alignItems:'center',marginRight:-1}).toString(),ripple:css({flexShrink:0}).toString()};/**
2
2
  * The remove favorites button component.
3
3
  * @returns {JSX}
4
- */var RemoveButton=function RemoveButton(_ref){var onClick=_ref.onClick;return/*#__PURE__*/React.createElement("button",{className:styles.root,onClick:onClick,type:"button","aria-label":i18n.text('favorites.remove')},/*#__PURE__*/React.createElement(Ripple,null,/*#__PURE__*/React.createElement(CrossIcon,{className:styles.icon})));};export default RemoveButton;
4
+ */var RemoveButton=function RemoveButton(_ref){var onClick=_ref.onClick;return React.createElement("button",{className:styles.root,onClick:onClick,type:"button","aria-label":i18n.text('favorites.remove')},React.createElement(Ripple,{className:styles.ripple},React.createElement(TrashOutlineIcon,null)));};export default RemoveButton;
@@ -1,2 +1 @@
1
- // @flow
2
- import{FAVORITES}from'@shopgate/pwa-common-commerce/favorites/constants/Portals';export var FAVORITES_LIST="".concat(FAVORITES,".list");export var FAVORITES_LIST_ADD_BUTTON="".concat(FAVORITES,".list-add-button");export var FAVORITES_LIST_CONTEXT_MENU="".concat(FAVORITES,".list-context-menu");export var FAVORITES_LIST_ITEM_ACTIONS="".concat(FAVORITES,".list-item-actions");export var FAVORITES_LIST_ITEM="".concat(FAVORITES,".list-item");export var FAVORITES_AVAILABILITY_TEXT="".concat(FAVORITES,".availability-text");
1
+ import{FAVORITES}from'@shopgate/pwa-common-commerce/favorites/constants/Portals';export var FAVORITES_LIST="".concat(FAVORITES,".list");export var FAVORITES_LIST_ADD_BUTTON="".concat(FAVORITES,".list-add-button");export var FAVORITES_LIST_CONTEXT_MENU="".concat(FAVORITES,".list-context-menu");export var FAVORITES_LIST_ITEM="".concat(FAVORITES,".list-item");export var FAVORITES_NOTES="".concat(FAVORITES,".notes");export var FAVORITES_QUANTITY="".concat(FAVORITES,".quantity");
@@ -0,0 +1 @@
1
+ export*from"./Portals";export var FAVORITES_SHOW_LIMIT=10;
@@ -1,5 +1,5 @@
1
1
  /** @module favorites */ // ACTIONS
2
- export{default as fetchFavorites}from'@shopgate/pwa-common-commerce/favorites/actions/fetchFavorites';export{default as fetchFavoritesLists}from'@shopgate/pwa-common-commerce/favorites/actions/fetchFavoritesLists';export{default as addFavoritesList}from'@shopgate/pwa-common-commerce/favorites/actions/addFavoritesList';export{default as updateFavoritesList}from'@shopgate/pwa-common-commerce/favorites/actions/updateFavoritesList';export{default as removeFavoritesList}from'@shopgate/pwa-common-commerce/favorites/actions/removeFavoritesList';export{addFavorite,removeFavorites,requestSync as toggleFavorites,toggleFavoriteWithListChooser,toggleFavorite}from'@shopgate/pwa-common-commerce/favorites/actions/toggleFavorites';// CONSTANTS
2
+ export{default as fetchFavorites}from'@shopgate/pwa-common-commerce/favorites/actions/fetchFavorites';export{default as fetchFavoritesLists}from'@shopgate/pwa-common-commerce/favorites/actions/fetchFavoritesList';export{default as addFavoritesList}from'@shopgate/pwa-common-commerce/favorites/actions/addFavoritesList';export{addFavorite,removeFavorites,requestSync as toggleFavorites,toggleFavoriteWithListChooser,toggleFavorite}from'@shopgate/pwa-common-commerce/favorites/actions/toggleFavorites';export{default as fetchFavoritesListsWithItems}from'@shopgate/pwa-common-commerce/favorites/actions/fetchFavoritesListsWithItems';// CONSTANTS
3
3
  export*from'@shopgate/pwa-common-commerce/favorites/constants/index';export*from'@shopgate/pwa-common-commerce/favorites/constants/Pipelines';export*from'@shopgate/pwa-common-commerce/favorites/constants/Portals';export*from"./constants/Portals";// SELECTORS
4
4
  export*from'@shopgate/pwa-common-commerce/favorites/selectors';// STREAMS
5
- export*from'@shopgate/pwa-common-commerce/favorites/streams';export{default as FavoriteLists}from"./components/Lists";export{default as FavoritesListChooser}from"./components/ListChooser";
5
+ export*from'@shopgate/pwa-common-commerce/favorites/streams';
@@ -0,0 +1 @@
1
+ export{default as fetchFilters}from'@shopgate/pwa-common-commerce/filter/actions/fetchFilters';
@@ -1,5 +1,5 @@
1
1
  import React from'react';import PropTypes from'prop-types';import styles from"./style";/**
2
- * Wraps a single fiter page item.
2
+ * Wraps a single filter page item.
3
3
  * @param {Object} props The component props.
4
4
  * @returns {JSX}
5
- */var FilterItem=function FilterItem(_ref){var children=_ref.children;return/*#__PURE__*/React.createElement("div",{className:styles},children);};export default FilterItem;
5
+ */var FilterItem=function FilterItem(_ref){var children=_ref.children;return React.createElement("div",{className:styles},children);};export default FilterItem;
@@ -1 +1 @@
1
- import React from'react';import{shallow}from'enzyme';import Item from"./index";describe('Filter: <Item />',function(){it('should render',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(Item,null,/*#__PURE__*/React.createElement("div",null,"Some")));expect(wrapper).toMatchSnapshot();});});
1
+ import React from'react';import{shallow}from'enzyme';import Item from"./index";describe('Filter: <Item />',function(){it('should render',function(){var wrapper=shallow(React.createElement(Item,null,React.createElement("div",null,"Some")));expect(wrapper).toMatchSnapshot();});});
@@ -0,0 +1,7 @@
1
+ import React,{memo}from'react';import PropTypes from'prop-types';import{I18n,Button,SurroundPortals}from'@shopgate/engage/components';import{PORTAL_FILTER_APPLY_BUTTON}from'@shopgate/engage/filter/constants';import{withWidgetSettings}from'@shopgate/engage/core';import styles from"./style";/**
2
+ * The filter apply button component.
3
+ * @param {Object} props The component props
4
+ * @param {boolean} props.disabled Whether the button is disabled
5
+ * @param {Function} props.onClick Click handler for the button
6
+ * @returns {JSX.Element}
7
+ */var FilterApplyButton=function FilterApplyButton(_ref){var disabled=_ref.disabled,onClick=_ref.onClick,widgetSettings=_ref.widgetSettings;var buttonTextColor=widgetSettings.buttonTextColor,buttonTextColorDisabled=widgetSettings.buttonTextColorDisabled;var buttonColor=!disabled?buttonTextColor:buttonTextColorDisabled;return React.createElement(SurroundPortals,{portalName:PORTAL_FILTER_APPLY_BUTTON,portalProps:{disabled:disabled,onClick:onClick,widgetSettings:widgetSettings}},React.createElement("div",{className:styles.wrapper},React.createElement(Button,{className:styles.button,flat:true,type:"primary",onClick:onClick,disabled:disabled,testId:"applyFilterButton"},React.createElement(I18n.Text,{string:"filter.apply",style:{color:buttonColor}}))));};FilterApplyButton.defaultProps={disabled:false};export default withWidgetSettings(memo(FilterApplyButton),'@shopgate/engage/components/AppBar');
@@ -0,0 +1 @@
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{shallow}from'enzyme';import ApplyButton from"./index";var clickMock=jest.fn();jest.mock('@shopgate/engage/components');jest.mock('@shopgate/engage/core',function(){return{withWidgetSettings:function withWidgetSettings(Comp){return function(props){return React.createElement(Comp,_extends({widgetSettings:{}},props));};}};});jest.mock('@shopgate/engage/components',function(){return{SurroundPortals:function SurroundPortals(_ref){var children=_ref.children;return children;},I18n:{Text:function Text(){return'I18n.Text';}},Button:function Button(){return'Button';}};});describe('Filter: <ApplyButton />',function(){it('should render as activated',function(){var wrapper=shallow(React.createElement(ApplyButton,{onClick:function onClick(){}})).dive();expect(wrapper).toMatchSnapshot();});it('should render as deactivated',function(){var wrapper=shallow(React.createElement(ApplyButton,{disabled:true,onClick:function onClick(){}})).dive();expect(wrapper).toMatchSnapshot();});it('should handle clicks',function(){var wrapper=shallow(React.createElement(ApplyButton,{onClick:clickMock})).dive();expect(wrapper).toMatchSnapshot();wrapper.find('Button').simulate('click');expect(clickMock).toHaveBeenCalled();});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';var wrapper=css({display:'flex'});var button=css({padding:'0 !important'}).toString();export default{wrapper:wrapper,button:button};
@@ -0,0 +1,7 @@
1
+ import React,{memo}from'react';import PropTypes from'prop-types';import{I18n,Button,SurroundPortals}from'@shopgate/engage/components';import{PORTAL_FILTER_RESET_BUTTON}from'@shopgate/engage/filter/constants';import styles from"./style";/**
2
+ * The filter reset button component.
3
+ * @param {Object} props The component props.
4
+ * @param {boolean} props.disabled Whether the button is disabled
5
+ * @param {Function} props.onClick Click handler for the button
6
+ * @returns {JSX.Element}
7
+ */var FilterResetButton=function FilterResetButton(_ref){var disabled=_ref.disabled,onClick=_ref.onClick;return React.createElement(SurroundPortals,{portalName:PORTAL_FILTER_RESET_BUTTON,portalProps:{disabled:disabled,onClick:onClick}},React.createElement("div",{className:styles},React.createElement(Button,{flat:true,type:"primary",onClick:onClick,disabled:disabled,testId:"clearAllButton"},React.createElement(I18n.Text,{string:"filter.reset"}))));};FilterResetButton.defaultProps={disabled:false};export default memo(FilterResetButton);
@@ -0,0 +1 @@
1
+ import React from'react';import{shallow}from'enzyme';import ResetButton from"./index";var clickMock=jest.fn();jest.mock('@shopgate/engage/components');describe('Filter: <ResetButton />',function(){it('should render as activated',function(){var wrapper=shallow(React.createElement(ResetButton,{onClick:function onClick(){}}));expect(wrapper).toMatchSnapshot();});it('should render as deactivated',function(){var wrapper=shallow(React.createElement(ResetButton,{disabled:true,onClick:function onClick(){}}));expect(wrapper).toMatchSnapshot();});it('should handle clicks',function(){var wrapper=shallow(React.createElement(ResetButton,{onClick:clickMock}));expect(wrapper).toMatchSnapshot();wrapper.find('Button').simulate('click');expect(clickMock).toHaveBeenCalled();});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';export default css({marginTop:4,marginBottom:40,textAlign:'right'});
@@ -0,0 +1,7 @@
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{Fragment,PureComponent}from'react';import PropTypes from'prop-types';import*as styles from"./style";/**
2
+ * The filter selected component.
3
+ */var Selected=/*#__PURE__*/function(_PureComponent){function Selected(){_classCallCheck(this,Selected);return _callSuper(this,Selected,arguments);}_inherits(Selected,_PureComponent);return _createClass(Selected,[{key:"getItems",value:/**
4
+ * @returns {Array}
5
+ */function getItems(){var _this$props=this.props,selected=_this$props.selected,values=_this$props.values;return values.reduce(function(prevValues,value){if(selected.includes(value.id)){prevValues.push(value.label);}return prevValues;},[]);}/**
6
+ * @returns {JSX}
7
+ */},{key:"render",value:function render(){if(!this.props.selected||this.props.selected.length===0){return null;}var items=this.getItems();return React.createElement(Fragment,null,items.map(function(item,index){return React.createElement(Fragment,{key:item},React.createElement("span",{className:styles.elipsed},item),index<items.length-1?React.createElement("span",{className:styles.comma},", "):'');}));}}]);}(PureComponent);_defineProperty(Selected,"defaultProps",{selected:null});export default Selected;
@@ -0,0 +1 @@
1
+ import React from'react';import{shallow}from'enzyme';import Selected from"./index";var values=[{id:'foo',label:'fooLabel'},{id:'bar',label:'barLabel'}];describe('Filter: <Selected />',function(){it('should not render without selected',function(){var wrapper=shallow(React.createElement(Selected,{values:values}));expect(wrapper).toMatchSnapshot();});it('should render with selected',function(){var wrapper=shallow(React.createElement(Selected,{values:values,selected:['foo']}));expect(wrapper).toMatchSnapshot();});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';export var item=css({whiteSpace:'nowrap',flexShrink:0,flexGrow:0,alignSelf:'flex-end'});export var elipsed=css({maxWidth:'95%',overflow:'hidden',textAlign:'right',textOverflow:'ellipsis',whiteSpace:'nowrap'});export var comma=css({' + span':{marginLeft:'0.65ch'}});
@@ -0,0 +1,7 @@
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import classNames from'classnames';import*as styles from"./style";/**
2
+ * The toggle component.
3
+ */var Toggle=/*#__PURE__*/function(_PureComponent){function Toggle(){_classCallCheck(this,Toggle);return _callSuper(this,Toggle,arguments);}_inherits(Toggle,_PureComponent);return _createClass(Toggle,[{key:"className",get:/**
4
+ * @returns {string}
5
+ */function get(){var open=this.props.open;return classNames(_defineProperty(_defineProperty(_defineProperty({},styles.label,true),styles.open,open),styles.closed,!open));}/**
6
+ * @returns {JSX}
7
+ */},{key:"render",value:function render(){var _this$props=this.props,label=_this$props.label,selected=_this$props.selected;return React.createElement("div",{className:styles.toggle},React.createElement("span",{className:this.className},label),selected&&React.createElement("span",{className:styles.selected},selected));}}]);}(PureComponent);_defineProperty(Toggle,"defaultProps",{open:false,selected:null});export default Toggle;
@@ -0,0 +1 @@
1
+ import React from'react';import{render}from'enzyme';import Toggle from"./index";describe('<Toggle />',function(){it('should render without selected',function(){var wrapper=render(React.createElement(Toggle,{label:"somelabel"}));expect(wrapper).toMatchSnapshot();});it('should render without selected as open',function(){var wrapper=render(React.createElement(Toggle,{label:"somelabel",open:true}));expect(wrapper).toMatchSnapshot();});it('should render with selected',function(){var wrapper=render(React.createElement(Toggle,{label:"somelabel",selected:"Some, Thing, Selected"}));expect(wrapper).toMatchSnapshot();});it('should render with selected as open',function(){var wrapper=render(React.createElement(Toggle,{label:"somelabel",selected:"Some, Thing, Selected",open:true}));expect(wrapper).toMatchSnapshot();});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';export var toggle=css({display:'flex',flexFlow:'row no-wrap',alignContent:'stretch',alignItems:'flex-start'});export var label=css({whiteSpace:'no-wrap',flexShrink:0,flexGrow:1,textAlign:'left',maxWidth:'50%',minWidth:'35%',paddingRight:'16px'});export var selected=css({display:'flex',flexFlow:'row wrap',flexGrow:1,justifyContent:'flex-end',minWidth:'50%',maxWidth:'65%'});export var closed=css({fontWeight:'normal'});export var open=css({fontWeight:'bold'});
@@ -0,0 +1,7 @@
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import classNames from'classnames';import*as styles from"./style";/**
2
+ * The value button component.
3
+ */var ValueButton=/*#__PURE__*/function(_PureComponent){function ValueButton(){_classCallCheck(this,ValueButton);return _callSuper(this,ValueButton,arguments);}_inherits(ValueButton,_PureComponent);return _createClass(ValueButton,[{key:"className",get:/**
4
+ * @returns {string}
5
+ */function get(){var isActive=this.props.isActive;return classNames(_defineProperty(_defineProperty({},styles.inactive,!isActive),styles.active,isActive));}/**
6
+ * @returns {JSX}
7
+ */},{key:"render",value:function render(){var _this$props=this.props,label=_this$props.label,id=_this$props.id,onClick=_this$props.onClick,isActive=_this$props.isActive;return React.createElement("button",{className:this.className,value:id,onClick:onClick,"data-test-id":id,type:"button",role:"checkbox","aria-checked":isActive},label);}}]);}(PureComponent);_defineProperty(ValueButton,"defaultProps",{id:null,label:null,isActive:false,onClick:function onClick(){}});export default ValueButton;
@@ -0,0 +1 @@
1
+ import React from'react';import{shallow}from'enzyme';import ValueButton from"./index";var onClick=jest.fn();describe('<ValueButton />',function(){it('should render as inactive',function(){var wrapper=shallow(React.createElement(ValueButton,{id:"someid",label:"somelabel"}));expect(wrapper).toMatchSnapshot();});it('should render as active',function(){var wrapper=shallow(React.createElement(ValueButton,{id:"someid",label:"somelabel",isActive:true}));expect(wrapper).toMatchSnapshot();});it('should handle click event',function(){var wrapper=shallow(React.createElement(ValueButton,{id:"someid",label:"somelabel",onClick:onClick}));wrapper.simulate('click');expect(wrapper).toMatchSnapshot();expect(onClick).toHaveBeenCalledTimes(1);});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';import{themeColors}from'@shopgate/pwa-common/helpers/config';export var inactive=css({border:"1px solid ".concat(themeColors.darkGray),borderRadius:2,color:'inherit',height:42,marginLeft:8,marginBottom:8,maxWidth:'100%',minWidth:42,outline:0,overflow:'hidden',padding:'0 8px',textOverflow:'ellipsis',whiteSpace:'nowrap',transition:'color 100ms cubic-bezier(0.25, 0.1, 0.25, 1), border-color 100ms cubic-bezier(0.25, 0.1, 0.25, 1)',willChange:'color, border-color'});export var active=css(inactive,{borderColor:"var(--color-secondary, ".concat(themeColors.accent,")"),color:"var(--color-secondary, ".concat(themeColors.accent,")")});
@@ -0,0 +1,19 @@
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import{Accordion,SurroundPortals}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import{FilterItem}from'@shopgate/engage/filter';import{PORTAL_FILTER_SELECTOR}from'@shopgate/engage/filter/constants';import ValueButton from"./components/ValueButton";import Toggle from"./components/Toggle";import Selected from"./components/Selected";import*as styles from"./style";/**
2
+ * The selector component.
3
+ */var Selector=/*#__PURE__*/function(_PureComponent){function Selector(){var _this2;_classCallCheck(this,Selector);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this2=_callSuper(this,Selector,[].concat(args));_defineProperty(_this2,"state",{selected:_this2.props.selected||[]});/**
4
+ * @param {SyntheticEvent} event The button click event.
5
+ */_defineProperty(_this2,"handleClick",function(event){var value=event.target.value;var selected=_this2.state.selected;var _this2$props=_this2.props,id=_this2$props.id,multi=_this2$props.multi,onChange=_this2$props.onChange;var newSelected=[].concat(selected,[value]);// If in single select mode, only allow one selected value.
6
+ if(!multi&&selected.length===1){newSelected=[value];}// If the clicked value was already selected, remove it again.
7
+ if(selected.includes(value)){newSelected=selected.filter(function(item){return item!==value;});}// Set it if it wasn't selected already.
8
+ _this2.setState({selected:newSelected});onChange(id,newSelected);});/**
9
+ * Filter value change handler for the portal props. Invokes handleClick method with a mocked
10
+ * click event
11
+ * @param {string} updatedId Id of the updated filter value
12
+ */_defineProperty(_this2,"handlePortalChange",function(updatedId){_this2.handleClick({target:{value:updatedId}});});/**
13
+ * @param {Object} props The send render props.
14
+ * @return {JSX}
15
+ */_defineProperty(_this2,"renderLabel",function(props){var _this2$props2=_this2.props,label=_this2$props2.label,values=_this2$props2.values;var selected=_this2.state.selected;return React.createElement(Toggle,_extends({},props,{label:label,selected:React.createElement(Selected,{values:values,selected:selected})}));});return _this2;}_inherits(Selector,_PureComponent);return _createClass(Selector,[{key:"UNSAFE_componentWillReceiveProps",value:/**
16
+ * @param {Object} nextProps The new incoming props.
17
+ */function UNSAFE_componentWillReceiveProps(_ref){var selected=_ref.selected;if(selected!==this.state.selected){this.setState({selected:selected});}}},{key:"render",value:/**
18
+ * @returns {JSX}
19
+ */function render(){var _this3=this;var _this$props=this.props,values=_this$props.values,id=_this$props.id,label=_this$props.label,multi=_this$props.multi;var selected=this.state.selected;return React.createElement(SurroundPortals,{portalName:PORTAL_FILTER_SELECTOR,portalProps:{filter:{id:id,label:label,values:values,isMultiSelect:multi},selectedValueIds:selected,onChange:this.handlePortalChange}},React.createElement(FilterItem,null,React.createElement(Accordion,{renderLabel:this.renderLabel,testId:id,handleLabel:i18n.text('filter.filter_by',{label:label}),className:styles.accordion},React.createElement("div",{className:styles.content},values.map(function(value){return React.createElement(ValueButton,{key:value.id,id:value.id,label:value.label,isActive:selected&&selected.includes(value.id),onClick:_this3.handleClick});})))));}}]);}(PureComponent);_defineProperty(Selector,"defaultProps",{multi:false,onChange:function onChange(){},selected:null});export default Selector;
@@ -0,0 +1 @@
1
+ import React from'react';import{shallow}from'enzyme';import Selector from"./index";jest.mock('@shopgate/engage/core',function(){return{hasWebBridge:function hasWebBridge(){return false;},i18n:{text:function text(string){return string;}}};});jest.mock('@shopgate/engage/components',function(){return{Accordion:function Accordion(_ref){var children=_ref.children;return children;}};});jest.mock('@shopgate/engage/filter',function(){return{FilterItem:function FilterItem(_ref2){var children=_ref2.children;return children;}};});var values=[{id:'foo',label:'fooLabel'},{id:'bar',label:'barLabel'}];describe('Filter: <Selector />',function(){it('should render with minimum props',function(){var wrapper=shallow(React.createElement(Selector,{id:"foo",label:"bar",values:values}));expect(wrapper).toMatchSnapshot();});});
@@ -0,0 +1 @@
1
+ import{css}from'glamor';export var accordion=css({overflow:'hidden'}).toString();export var content=css({marginLeft:-8,marginBottom:-8});
@@ -0,0 +1,6 @@
1
+ import React,{Fragment}from'react';import PropTypes from'prop-types';import{SurroundPortals,ResponsiveContainer}from'@shopgate/engage/components';import{useFilterPage}from'@shopgate/engage/filter/hooks';import{PORTAL_FILTER_PRICE_RANGE,PORTAL_FILTER_PAGE_CONTENT,FILTER_TYPE_RANGE,FILTER_TYPE_MULTISELECT,PriceSlider}from'@shopgate/engage/filter';import Selector from"./components/Selector";import ApplyButton from"./components/ApplyButton";import ResetButton from"./components/ResetButton";/**
2
+ * The FilterPageContent component renders all filters for the filter page.
3
+ * @param {Object} props The component props.
4
+ * @param {React.ComponentType} props.AppBarComponent The component to be rendered as the app bar
5
+ * @returns {JSX.Element}
6
+ */var FilterPageContent=function FilterPageContent(_ref){var AppBarComponent=_ref.AppBarComponent;var _useFilterPage=useFilterPage(),apiFilters=_useFilterPage.apiFilters,resetPossible=_useFilterPage.resetPossible,hasChanged=_useFilterPage.hasChanged,applyFilters=_useFilterPage.applyFilters,resetAllFilters=_useFilterPage.resetAllFilters,getSelectedFilterValues=_useFilterPage.getSelectedFilterValues,updateSelectedFilterValues=_useFilterPage.updateSelectedFilterValues;return React.createElement(SurroundPortals,{portalName:PORTAL_FILTER_PAGE_CONTENT},AppBarComponent&&React.createElement(AppBarComponent,{title:"titles.filter",right:React.createElement(ApplyButton,{disabled:!hasChanged,onClick:applyFilters})}),apiFilters.map(function(filter){var portalProps={filter:filter};var value=getSelectedFilterValues(filter.id);if(filter.type===FILTER_TYPE_RANGE){return React.createElement(Fragment,{key:filter.id},React.createElement(SurroundPortals,{portalName:PORTAL_FILTER_PRICE_RANGE,portalProps:portalProps},React.createElement(PriceSlider,{id:filter.id,key:filter.id,min:filter.minimum,max:filter.maximum,onChange:updateSelectedFilterValues,value:value})));}return React.createElement(Selector,{id:filter.id,key:filter.id,label:filter.label,values:filter.values,multi:filter.type===FILTER_TYPE_MULTISELECT,onChange:updateSelectedFilterValues,selected:value});}),React.createElement(ResponsiveContainer,{breakpoint:"<sm",appAlways:true},React.createElement(ResetButton,{disabled:!resetPossible,onClick:resetAllFilters})));};FilterPageContent.defaultProps={AppBarComponent:null};export default FilterPageContent;
@@ -0,0 +1,16 @@
1
+ import React from'react';import PropTypes from'prop-types';import{FilterPageProvider}from"../../providers";// eslint-disable-next-line no-unused-vars, import/named
2
+ import{RouteFilters}from"../../providers/FilterPageProvider.context";import Content from"../FilterPageContent";/**
3
+ * The FilterPageContent component
4
+ * @param {Object} props The component props
5
+ * @param {RouteFilters} [props.activeFilters] Object with the active filters for a filtered product
6
+ * list
7
+ * @param {string} [props.parentRouteId] Id of the route with the product list that's supposed to be
8
+ * filtered
9
+ * @param {string} [props.categoryId] A category to be used for filter selection from Redux
10
+ * @param {string} [props.searchPhrase] A search phrase to be used for filter selection from Redux
11
+ * @param {RouteFilters} [props.filters] Object with filters that are used for requests. Might
12
+ * contain filters that aren't included in "activeFilters", since they are not supposed to be
13
+ * visible to the user, but only used in product requests.
14
+ * @param {React.ComponentType} [props.AppBarComponent] The component to be rendered as the app bar
15
+ * @returns {JSX.Element}
16
+ */var FilterPageContentWithProvider=function FilterPageContentWithProvider(_ref){var categoryId=_ref.categoryId,searchPhrase=_ref.searchPhrase,activeFilters=_ref.activeFilters,filters=_ref.filters,parentRouteId=_ref.parentRouteId,AppBarComponent=_ref.AppBarComponent;return React.createElement(FilterPageProvider,{activeFilters:activeFilters,categoryId:categoryId,searchPhrase:searchPhrase,filters:filters,parentRouteId:parentRouteId},React.createElement(Content,{AppBarComponent:AppBarComponent}));};FilterPageContentWithProvider.defaultProps={activeFilters:null,filters:null,categoryId:null,searchPhrase:null,parentRouteId:null,AppBarComponent:null};export default FilterPageContentWithProvider;
@@ -1,7 +1,7 @@
1
- function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{memo,useState,useEffect,useRef}from'react';import PropTypes from'prop-types';import appConfig from'@shopgate/pwa-common/helpers/config';import{I18n}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import styles from"../../style";var currency=appConfig.currency;/**
1
+ function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import React,{memo,useState,useEffect,useRef}from'react';import PropTypes from'prop-types';import appConfig from'@shopgate/pwa-common/helpers/config';import{I18n}from'@shopgate/engage/components';import{i18n}from'@shopgate/engage/core';import styles from"../../style";var currency=appConfig.currency;/**
2
2
  * The filter price range slider label component.
3
3
  * @param {Object} props The component props.
4
- * @returns {JSX}
4
+ * @returns {JSX.Element}
5
5
  */function Label(props){var priceLength=props.priceLength,priceMax=props.priceMax,priceMin=props.priceMin,onChange=props.onChange;var _useState=useState(priceMin),_useState2=_slicedToArray(_useState,2),minValue=_useState2[0],setMinValue=_useState2[1];var _useState3=useState(priceMax),_useState4=_slicedToArray(_useState3,2),maxValue=_useState4[0],setMaxValue=_useState4[1];var _useState5=useState(0),_useState6=_slicedToArray(_useState5,2),minOffset=_useState6[0],setMinOffset=_useState6[1];var _useState7=useState(0),_useState8=_slicedToArray(_useState7,2),maxOffset=_useState8[0],setMMaxOffset=_useState8[1];var minRef=useRef(null);var maxRef=useRef(null);// Set new values, when prices change from outside.
6
6
  useEffect(function(){setMinValue(priceMin);setMaxValue(priceMax);},[priceMin,priceMax]);// Store the leftOffset when the reference changes.
7
7
  useEffect(function(){setMinOffset(minRef.current.offsetLeft);setMMaxOffset(maxRef.current.offsetLeft);},[minRef,maxRef]);/**
@@ -13,4 +13,4 @@ useEffect(function(){setMinOffset(minRef.current.offsetLeft);setMMaxOffset(maxRe
13
13
  */function handleChangeMin(_ref2){var target=_ref2.target;setMinValue(target.value);if(target.value){onChange([parseInt(target.value,10)*100,parseInt(maxValue,10)*100]);}}/**
14
14
  * Handles the change of the maximum price field.
15
15
  * @param {SyntheticEvent} event The change event object.
16
- */function handleChangeMax(_ref3){var target=_ref3.target;setMaxValue(target.value);if(target.value){onChange([parseInt(minValue,10)*100,parseInt(target.value,10)*100]);}}var currencySymbol=Intl.NumberFormat('en-US',{style:'currency',currency:currency}).format('0').replace('0.00','');return/*#__PURE__*/React.createElement("div",{className:styles.editableContainer},/*#__PURE__*/React.createElement("span",{className:styles.srOnly},i18n.text('price.range',{fromPrice:i18n.price(priceMin,currency,false),toPrice:i18n.price(priceMax,currency,false)})),/*#__PURE__*/React.createElement(I18n.Text,{string:"price.range","aria-hidden":true},/*#__PURE__*/React.createElement(I18n.Placeholder,{forKey:"fromPrice"},/*#__PURE__*/React.createElement("span",{className:styles.price,style:{minWidth:priceLength},ref:minRef},/*#__PURE__*/React.createElement(I18n.Price,{price:priceMin,currency:currency,fractions:false}))),/*#__PURE__*/React.createElement(I18n.Placeholder,{forKey:"toPrice"},/*#__PURE__*/React.createElement("span",{className:styles.price,style:{minWidth:priceLength},ref:maxRef},/*#__PURE__*/React.createElement(I18n.Price,{price:priceMax,currency:currency,fractions:false})))),/*#__PURE__*/React.createElement("span",{"aria-hidden":true,hidden:true,id:"price-slider-currency-label"},currencySymbol),/*#__PURE__*/React.createElement("input",{type:"text",id:"priceMin",name:"priceMin",value:minValue,onChange:handleChangeMin,onClick:handleFieldClick,style:{width:priceLength,left:minOffset},className:styles.editableField,"aria-label":i18n.text('price.range_from'),"aria-describedby":"price-slider-currency-label"}),/*#__PURE__*/React.createElement("input",{type:"text",id:"priceMax",name:"priceMax",value:maxValue,onChange:handleChangeMax,onClick:handleFieldClick,style:{width:priceLength,left:maxOffset},className:styles.editableField,"aria-label":i18n.text('price.range_to'),"aria-describedby":"price-slider-currency-label"}));}export default/*#__PURE__*/memo(Label);
16
+ */function handleChangeMax(_ref3){var target=_ref3.target;setMaxValue(target.value);if(target.value){onChange([parseInt(minValue,10)*100,parseInt(target.value,10)*100]);}}var currencySymbol=Intl.NumberFormat('en-US',{style:'currency',currency:currency}).format('0').replace('0.00','');return React.createElement("div",{className:styles.editableContainer},React.createElement("span",{className:styles.srOnly},i18n.text('price.range',{fromPrice:i18n.price(priceMin,currency,false),toPrice:i18n.price(priceMax,currency,false)})),React.createElement(I18n.Text,{string:"price.range","aria-hidden":true},React.createElement(I18n.Placeholder,{forKey:"fromPrice"},React.createElement("span",{className:styles.price,style:{minWidth:priceLength},ref:minRef},React.createElement(I18n.Price,{price:priceMin,currency:currency,fractions:false}))),React.createElement(I18n.Placeholder,{forKey:"toPrice"},React.createElement("span",{className:styles.price,style:{minWidth:priceLength},ref:maxRef},React.createElement(I18n.Price,{price:priceMax,currency:currency,fractions:false})))),React.createElement("span",{"aria-hidden":true,hidden:true,id:"price-slider-currency-label"},currencySymbol),React.createElement("input",{type:"number",inputMode:"numeric",pattern:"[0-9]*",id:"priceMin",name:"priceMin",value:minValue,onChange:handleChangeMin,onClick:handleFieldClick,style:{width:priceLength,left:minOffset},className:styles.editableField,"aria-label":i18n.text('price.range_from'),"aria-describedby":"price-slider-currency-label"}),React.createElement("input",{type:"number",inputMode:"numeric",pattern:"[0-9]*",id:"priceMax",name:"priceMax",value:maxValue,onChange:handleChangeMax,onClick:handleFieldClick,style:{width:priceLength,left:maxOffset},className:styles.editableField,"aria-label":i18n.text('price.range_to'),"aria-describedby":"price-slider-currency-label"}));}export default memo(Label);
@@ -1 +1 @@
1
- import React from'react';import{shallow}from'enzyme';import Label from"./index";describe('PriceSlider: <Label />',function(){it('should render',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(Label,{priceLength:"5",priceMax:999,priceMin:25,onChange:function onChange(){}}));expect(wrapper).toMatchSnapshot();});});
1
+ import React from'react';import{shallow}from'enzyme';import Label from"./index";jest.mock('@shopgate/engage/components');jest.mock('@shopgate/engage/core');describe('PriceSlider: <Label />',function(){it('should render',function(){var wrapper=shallow(React.createElement(Label,{onChange:function onChange(){},priceLength:"5",priceMax:999,priceMin:25}));expect(wrapper).toMatchSnapshot();});});
@@ -1,15 +1,15 @@
1
- function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import isEqual from'lodash/isEqual';import{RangeSlider}from'@shopgate/engage/components';import{FilterItem}from'@shopgate/engage/filter';import Label from"./components/Label";import styles from"./style";/**
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import React,{PureComponent}from'react';import PropTypes from'prop-types';import isEqual from'lodash/isEqual';import{RangeSlider}from'@shopgate/engage/components';import{FilterItem}from'@shopgate/engage/filter';import Label from"./components/Label";import styles from"./style";/**
2
2
  * The PriceSlider component.
3
- */var PriceSlider=/*#__PURE__*/function(_PureComponent){_inherits(PriceSlider,_PureComponent);var _super=_createSuper(PriceSlider);/**
3
+ */var PriceSlider=/*#__PURE__*/function(_PureComponent){/**
4
4
  * The constructor.
5
5
  * @param {Object} props The component props.
6
- */function PriceSlider(props){var _this;_classCallCheck(this,PriceSlider);_this=_super.call(this,props);_defineProperty(_assertThisInitialized(_this),"onChange",function(value){var roundedValue=[Math.floor(value[0]),Math.ceil(value[1])];_this.setState({value:value});_this.props.onChange(_this.props.id,roundedValue);});var initialValue=props.value||[props.min,props.max];_this.state={value:initialValue};return _this;}/**
7
- * Updates the value state.
8
- * @param {Object} nextProps The next component props.
9
- */_createClass(PriceSlider,[{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(!isEqual(nextProps.value,this.props.value)){this.setState({value:nextProps.value});}}/**
6
+ */function PriceSlider(props){var _this2;_classCallCheck(this,PriceSlider);_this2=_callSuper(this,PriceSlider,[props]);/**
10
7
  * The callback function that is given to the RangeSlider.
11
8
  * @param {Array} value The lower and upper boundary of the set range.
12
- */},{key:"render",value:/**
9
+ */_defineProperty(_this2,"onChange",function(value){var roundedValue=[Math.floor(value[0]),Math.ceil(value[1])];_this2.setState({value:value});_this2.props.onChange(_this2.props.id,roundedValue);});var initialValue=[props.min,props.max];if(Array.isArray(props.value)&&props.value.length>0){initialValue=props.value;}_this2.state={value:initialValue};return _this2;}/**
10
+ * Updates the value state.
11
+ * @param {Object} nextProps The next component props.
12
+ */_inherits(PriceSlider,_PureComponent);return _createClass(PriceSlider,[{key:"UNSAFE_componentWillReceiveProps",value:function UNSAFE_componentWillReceiveProps(nextProps){if(!isEqual(nextProps.value,this.props.value)){this.setState({value:nextProps.value});}}},{key:"render",value:/**
13
13
  * Renders the component (template).
14
14
  * @returns {JSX}
15
15
  */function render(){var _this$props=this.props,min=_this$props.min,max=_this$props.max;/**
@@ -19,4 +19,4 @@ function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeo
19
19
  * Calculate the necessary maximum size for the price value.
20
20
  * The size is 2 characters more than the max possible number length
21
21
  * to reserve space for the currency symbol and a little spacing around.
22
- */var priceLength="".concat((max/100).toString().length+2,"ch");return/*#__PURE__*/React.createElement(FilterItem,null,/*#__PURE__*/React.createElement("div",{className:styles.wrapper,"data-test-id":"priceRangeSlider"},/*#__PURE__*/React.createElement(Label,{priceLength:priceLength,priceMax:priceMax,priceMin:priceMin,onChange:this.onChange}),/*#__PURE__*/React.createElement(RangeSlider,{classNames:styles.rangeSlider,easing:"exponential",factor:3,max:max,min:min,onChange:this.onChange,value:this.state.value})));}}]);return PriceSlider;}(PureComponent);_defineProperty(PriceSlider,"defaultProps",{max:100,min:0,onChange:function onChange(){},value:null});export default PriceSlider;
22
+ */var priceLength="".concat((max/100).toString().length+2,"ch");return React.createElement(FilterItem,null,React.createElement("div",{className:styles.wrapper,"data-test-id":"priceRangeSlider"},React.createElement(Label,{priceLength:priceLength,priceMax:priceMax,priceMin:priceMin,onChange:this.onChange}),React.createElement(RangeSlider,{classNames:styles.rangeSlider,easing:this.props.useLinearEasing?'linear':'exponential',factor:3,max:max,min:min,onChange:this.onChange,value:this.state.value})));}}]);}(PureComponent);_defineProperty(PriceSlider,"defaultProps",{useLinearEasing:false,max:100,min:0,onChange:function onChange(){},value:null});export default PriceSlider;
@@ -1 +1 @@
1
- import React from'react';import{shallow}from'enzyme';import PriceSlider from"./index";describe('Filter: <PriceSlider />',function(){it('should render with default props',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(PriceSlider,{id:"foo"}));expect(wrapper).toMatchSnapshot();});it('should render with custom props',function(){var wrapper=shallow(/*#__PURE__*/React.createElement(PriceSlider,{id:"foo",values:[5,50]}));expect(wrapper).toMatchSnapshot();});});
1
+ import React from'react';import{shallow}from'enzyme';import PriceSlider from"./index";jest.mock('@shopgate/engage/components');jest.mock('@shopgate/engage/filter',function(){return{FilterItem:function FilterItem(_ref){var children=_ref.children;return children;}};});describe('Filter: <PriceSlider />',function(){it('should render with default props',function(){var wrapper=shallow(React.createElement(PriceSlider,{id:"foo"}));expect(wrapper).toMatchSnapshot();});it('should render with custom props',function(){var wrapper=shallow(React.createElement(PriceSlider,{id:"foo",values:[5,50]}));expect(wrapper).toMatchSnapshot();});});
@@ -1 +1 @@
1
- import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';var shadows=themeConfig.shadows,colors=themeConfig.colors,variables=themeConfig.variables;var wrapper=css({padding:"".concat(variables.gap.big*0.75,"px ").concat(variables.gap.big,"px")}).toString();var price=css({color:colors.accent,display:'inline-block',fontWeight:500,textAlign:'center'}).toString();var editableContainer=css({position:'relative'});var editableField=css({position:'absolute',top:0,left:0,textAlign:'center',background:'transparent',zIndex:2,textIndent:-800,outline:'none',padding:0,margin:0,border:'1px solid transparent',borderRadius:3,lineHeight:1,':focus':{background:colors.light,textIndent:0,borderColor:colors.shade5}});var rangeSlider={container:css({paddingTop:variables.gap.big,paddingBottom:variables.gap.big}).toString(),outerRange:css({background:colors.darkGray,height:8,position:'relative'}).toString(),range:css({background:colors.accent,position:'absolute',height:'100%',marginLeft:variables.gap.small,marginRight:variables.gap.small}).toString(),handleInner:css({background:colors.light,boxShadow:shadows.filter.priceSlider,borderRadius:'50%',width:variables.gap.big*1.5,height:variables.gap.big*1.5}).toString(),handleOuter:css({}).toString()};var srOnly=css({position:'absolute',width:1,height:1,padding:0,margin:-1,overflow:'hidden',clip:'rect(0, 0, 0, 0)',whiteSpace:'nowrap',border:0});export default{wrapper:wrapper,price:price,rangeSlider:rangeSlider,editableContainer:editableContainer,editableField:editableField,srOnly:srOnly};
1
+ function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{css}from'glamor';import{themeConfig}from'@shopgate/pwa-common/helpers/config';import{responsiveMediaQuery}from"../../../styles";var shadows=themeConfig.shadows,colors=themeConfig.colors,variables=themeConfig.variables;var wrapper=css({padding:"".concat(variables.gap.big*0.75,"px ").concat(variables.gap.big,"px")}).toString();var price=css({color:"var(--color-secondary, ".concat(colors.accent,")"),display:'inline-block',fontWeight:500,textAlign:'center'}).toString();var editableContainer=css({position:'relative'});var editableField=css(_defineProperty({position:'absolute',top:0,left:0,textAlign:'center',background:'transparent',zIndex:2,textIndent:-800,outline:'none',padding:0,margin:0,border:'1px solid transparent',borderRadius:3,lineHeight:1,':focus':{background:colors.light,textIndent:0,borderColor:colors.shade5}},responsiveMediaQuery('>=xs',{webOnly:true}),{borderColor:'var(--color-primary)',padding:'4px 0',top:-4,':focus':{borderColor:'var(--color-primary)'}}));var rangeSlider={container:css({paddingTop:variables.gap.big,paddingBottom:variables.gap.big}).toString(),outerRange:css({background:colors.darkGray,height:8,position:'relative'}).toString(),range:css({background:"var(--color-secondary, ".concat(colors.accent,")"),position:'absolute',height:'100%',marginLeft:variables.gap.small,marginRight:variables.gap.small}).toString(),handleInner:css({background:colors.light,boxShadow:shadows.filter.priceSlider,borderRadius:'50%',width:variables.gap.big*1.5,height:variables.gap.big*1.5}).toString(),handleOuter:css({}).toString()};var srOnly=css({position:'absolute',width:1,height:1,padding:0,margin:-1,overflow:'hidden',clip:'rect(0, 0, 0, 0)',whiteSpace:'nowrap',border:0});export default{wrapper:wrapper,price:price,rangeSlider:rangeSlider,editableContainer:editableContainer,editableField:editableField,srOnly:srOnly};
@@ -0,0 +1 @@
1
+ export{default as FilterItem}from"./FilterItem";export{default as PriceSlider}from"./PriceSlider";
@@ -0,0 +1 @@
1
+ export*from'@shopgate/pwa-common-commerce/filter/constants/index';export*from'@shopgate/pwa-common-commerce/filter/constants/Pipelines';export*from'@shopgate/pwa-common-commerce/filter/constants/Portals';export{SORT_ORDER_RELEVANCE,SORT_ORDER_PRICE_ASC,SORT_ORDER_PRICE_DESC,SORT_ORDER_NAME_ASC,SORT_ORDER_NAME_DESC,SORT_ORDER_RANK_ASC,SORT_ORDER_RANK_DESC,SORT_SCOPE_CATEGORY,SORT_SCOPE_SEARCH}from"./sort";
@@ -0,0 +1,11 @@
1
+ import{SORT_RELEVANCE}from'@shopgate/pwa-common/constants/DisplayOptions';// Scopes for the sort order
2
+ export var SORT_SCOPE_CATEGORY='sortScopeCategory';export var SORT_SCOPE_SEARCH='sortScopeSearch';// Sort order parameters which are supported by the pipelines
3
+ export var SORT_ORDER_RELEVANCE=SORT_RELEVANCE;export var SORT_ORDER_PRICE_ASC='priceAsc';export var SORT_ORDER_PRICE_DESC='priceDesc';export var SORT_ORDER_NAME_ASC='nameAsc';export var SORT_ORDER_NAME_DESC='nameDesc';export var SORT_ORDER_RANK_ASC='rankAsc';export var SORT_ORDER_RANK_DESC='rankDesc';/**
4
+ * Checks if a sort order is supported
5
+ * @param {string} sortOrder The sort order to check
6
+ * @returns {boolean}
7
+ */export var isSortOrderSupported=function isSortOrderSupported(sortOrder){return[SORT_ORDER_PRICE_ASC,SORT_ORDER_PRICE_DESC,SORT_ORDER_NAME_ASC,SORT_ORDER_NAME_DESC,SORT_ORDER_RANK_ASC,SORT_ORDER_RANK_DESC].includes(sortOrder);};var shopSettingsOrderMapping={'name:asc':SORT_ORDER_NAME_ASC,'name:desc':SORT_ORDER_NAME_DESC,'rank:asc':SORT_ORDER_RANK_ASC,'rank:desc':SORT_ORDER_RANK_DESC,'price:asc':SORT_ORDER_PRICE_ASC,'price:desc':SORT_ORDER_PRICE_DESC};/**
8
+ * Maps the sort order from the shop settings to one of the regular ones
9
+ * @param {string} sortOrder The sort order
10
+ * @returns {string}
11
+ */export var mapSortOrderFromShopSettings=function mapSortOrderFromShopSettings(sortOrder){return shopSettingsOrderMapping[sortOrder];};
@@ -2,8 +2,8 @@ var _excluded=["useForFetchFilters"],_excluded2=["useForFetchFilters"];function
2
2
  * Creates the filter params to be used with a fetchFilters request.
3
3
  * @param {Object} filters All configured filters
4
4
  * @return {Object}
5
- */var buildFilterParamsForFetchFiltersRequest=function buildFilterParamsForFetchFiltersRequest(){var filters=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!isPlainObject(filters)){return null;}var sanitizedFilters=Object.keys(filters).reduce(function(acc,filterId){var filter=filters[filterId];if(filter!==null&&filter!==void 0&&filter.useForFetchFilters){// flag is set on filter level - remove flag and add to the result object
5
+ */var buildFilterParamsForFetchFiltersRequest=function buildFilterParamsForFetchFiltersRequest(){var filters=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!isPlainObject(filters)){return null;}var sanitizedFilters=Object.keys(filters).reduce(function(acc,filterId){var filter=filters[filterId];if(filter===null||filter===void 0?void 0:filter.useForFetchFilters){// flag is set on filter level - remove flag and add to the result object
6
6
  var useForFetchFilters=filter.useForFetchFilters,sanitizedFilter=_objectWithoutProperties(filter,_excluded);acc[filterId]=sanitizedFilter;}else if(Array.isArray(filter.value)){// check for flags on value level
7
- var _sanitizedFilter=_extends({},filter,{value:filter.value.reduce(function(valueAcc,currentValue){var useForFetchFilters=currentValue.useForFetchFilters,sanitizedValue=_objectWithoutProperties(currentValue,_excluded2);if(currentValue!==null&&currentValue!==void 0&&currentValue.useForFetchFilters){// flag is set on value level - consider value for the results object
7
+ var _sanitizedFilter=_extends({},filter,{value:filter.value.reduce(function(valueAcc,currentValue){var useForFetchFilters=currentValue.useForFetchFilters,sanitizedValue=_objectWithoutProperties(currentValue,_excluded2);if(currentValue===null||currentValue===void 0?void 0:currentValue.useForFetchFilters){// flag is set on value level - consider value for the results object
8
8
  valueAcc.push(sanitizedValue);}return valueAcc;},[])});if(_sanitizedFilter.value.length){// only add the filter when it has values that are supposed to be used for a filter request
9
9
  acc[filterId]=_sanitizedFilter;}}return acc;},{});return Object.keys(sanitizedFilters).length?sanitizedFilters:null;};export default buildFilterParamsForFetchFiltersRequest;