@shopgate/engage 7.30.0-alpha.8 → 7.30.0-beta.1

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 (561) hide show
  1. package/a11y/components/FocusTrap/index.js +1 -1
  2. package/a11y/components/LiveMessage/index.js +8 -6
  3. package/a11y/components/LiveMessenger/index.js +12 -9
  4. package/a11y/components/Navigation/index.js +18 -14
  5. package/a11y/components/Section/index.js +19 -12
  6. package/account/components/Account/Account.js +49 -38
  7. package/account/components/Profile/Profile.js +10 -7
  8. package/account/components/Profile/Profile.provider.js +5 -3
  9. package/account/components/Profile/ProfileAddressBook.js +25 -19
  10. package/account/components/Profile/ProfileAddressCard.js +70 -50
  11. package/account/components/Profile/ProfileForm.js +27 -22
  12. package/account/components/Profile/ProfileHeader.js +10 -7
  13. package/account/components/ProfileContact/ProfileContact.js +21 -17
  14. package/account/helper/form.js +9 -9
  15. package/back-in-stock/components/BackInStockButton/index.js +28 -21
  16. package/back-in-stock/components/CharacteristicsButton/index.js +2 -1
  17. package/back-in-stock/components/ProductInfoBackInStockButton/index.js +11 -9
  18. package/back-in-stock/components/Subscriptions/components/List/index.js +30 -24
  19. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +75 -64
  20. package/back-in-stock/components/Subscriptions/index.js +4 -1
  21. package/back-in-stock/providers/BackInStockSubscriptionsProvider.js +5 -3
  22. package/cart/cart.helpers.js +3 -3
  23. package/cart/components/CartHeaderWide/CartHeaderWide.js +5 -3
  24. package/cart/components/CartItem/CartItem.js +24 -20
  25. package/cart/components/CartItem/CartItemCoupon.js +59 -45
  26. package/cart/components/CartItem/CartItemCouponCode.js +5 -3
  27. package/cart/components/CartItem/CartItemCouponDelete.js +5 -3
  28. package/cart/components/CartItem/CartItemCouponFreeShipping.js +4 -1
  29. package/cart/components/CartItem/CartItemCouponIcon.js +7 -6
  30. package/cart/components/CartItem/CartItemCouponLayout.js +44 -35
  31. package/cart/components/CartItem/CartItemCouponPrice.js +6 -4
  32. package/cart/components/CartItem/CartItemCouponTitle.js +5 -3
  33. package/cart/components/CartItem/CartItemProduct.js +24 -18
  34. package/cart/components/CartItem/CartItemProductLayout.js +105 -85
  35. package/cart/components/CartItem/CartItemProductLayoutWide.js +100 -88
  36. package/cart/components/CartItem/CartItemProductLayoutWide.style.js +2 -2
  37. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.js +6 -5
  38. package/cart/components/CartItem/CartItemProductLayoutWideFulfillmentLabel.style.js +1 -1
  39. package/cart/components/CartItem/CartItemProductLayoutWideOrderDetails.js +19 -13
  40. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +8 -7
  41. package/cart/components/CartItem/CartItemProductOrderDetails.js +54 -40
  42. package/cart/components/CartItem/CartItemProductPriceCaption.js +8 -6
  43. package/cart/components/CartItem/CartItemProductPriceList.js +34 -28
  44. package/cart/components/CartItem/CartItemProductPriceListPromotion.js +40 -33
  45. package/cart/components/CartItem/CartItemProductProvider.js +7 -3
  46. package/cart/components/CartItem/CartItemProductProviderLegacy.js +22 -14
  47. package/cart/components/CartItem/CartItemProductTitle.js +57 -45
  48. package/cart/components/CartItem/CartItemProvider.js +6 -4
  49. package/cart/components/CartItem/CartItemQuantityPicker.js +49 -55
  50. package/cart/components/CartItem/CartItemSubstitution.js +14 -9
  51. package/cart/components/CartItems/CartItemCard.js +10 -6
  52. package/cart/components/CartItems/CartItemCardReservation.js +28 -22
  53. package/cart/components/CartItems/CartItemCardReservationAccordion.js +20 -15
  54. package/cart/components/CartItems/CartItemCardReservationLabel.js +28 -20
  55. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +7 -5
  56. package/cart/components/CartItems/CartItemGroup.js +7 -4
  57. package/cart/components/CartItems/CartItemGroupReservation.js +25 -19
  58. package/cart/components/CartItems/CartItemGroupReservationLabel.js +13 -7
  59. package/cart/components/CartItems/CartItemGroupShipping.js +15 -7
  60. package/cart/components/CartItems/CartItems.js +56 -45
  61. package/cart/components/CartItems/CartItemsHeaderWide.js +48 -37
  62. package/cart/components/CartItems/CartItemsSubstitution.js +18 -12
  63. package/cart/components/CartSummaryWide/CartSummaryWide.js +34 -30
  64. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +22 -17
  65. package/cart/components/CartSummaryWide/CartSummaryWideFooter.js +2 -1
  66. package/cart/components/PaymentBar/PaymentBar.js +2 -1
  67. package/cart/components/PaymentBar/PaymentBarAppliedPromotions.js +18 -17
  68. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +19 -15
  69. package/cart/components/PaymentBar/PaymentBarContent.js +34 -27
  70. package/cart/components/PaymentBar/PaymentBarDiscounts.js +24 -22
  71. package/cart/components/PaymentBar/PaymentBarGrandTotal.js +18 -15
  72. package/cart/components/PaymentBar/PaymentBarPromotionCouponMessages.js +15 -11
  73. package/cart/components/PaymentBar/PaymentBarPromotionCoupons.js +40 -36
  74. package/cart/components/PaymentBar/PaymentBarPromotionalText.js +22 -17
  75. package/cart/components/PaymentBar/PaymentBarReserveButton.js +15 -12
  76. package/cart/components/PaymentBar/PaymentBarShippingCost.js +20 -17
  77. package/cart/components/PaymentBar/PaymentBarSubTotal.js +18 -15
  78. package/cart/components/PaymentBar/PaymentBarTax.js +20 -17
  79. package/cart/components/Substitution/index.js +21 -16
  80. package/cart/components/SupplementalContent/SupplementalContent.js +2 -1
  81. package/category/components/CategoryImage/index.js +4 -4
  82. package/category/components/CategoryList/index.js +60 -57
  83. package/checkout/components/AddressBook/AddressBook.js +6 -1
  84. package/checkout/components/AddressBook/AddressList.js +31 -24
  85. package/checkout/components/AddressBookContact/AddressBookContact.js +13 -6
  86. package/checkout/components/Checkout/Checkout.js +29 -21
  87. package/checkout/components/Checkout/CheckoutActions.js +17 -12
  88. package/checkout/components/Checkout/CheckoutAddress.js +40 -16
  89. package/checkout/components/Checkout/CheckoutHeader.js +17 -12
  90. package/checkout/components/Checkout/CheckoutPickupContactForm.js +19 -15
  91. package/checkout/components/Checkout/CheckoutSection.js +73 -52
  92. package/checkout/components/Checkout/CheckoutSectionInfo.js +6 -4
  93. package/checkout/components/Checkout/CheckoutSectionMessages.js +16 -14
  94. package/checkout/components/Checkout/CheckoutSummary.js +18 -13
  95. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +95 -79
  96. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationBilledTo.js +6 -5
  97. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderContact.js +2 -1
  98. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationOrderSummary.js +13 -9
  99. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickUpContact.js +2 -1
  100. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationPickupNotes.js +2 -1
  101. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationSection.js +59 -44
  102. package/checkout/components/CheckoutConfirmation/CheckoutConfirmationShippedTo.js +4 -3
  103. package/checkout/components/GuestCheckout/GuestCheckout.js +29 -22
  104. package/checkout/components/GuestCheckout/GuestCheckoutOptIn.js +17 -13
  105. package/checkout/components/GuestCheckout/GuestCheckoutPickup.js +16 -7
  106. package/checkout/components/GuestCheckout/GuestCheckoutPickupNotes.js +16 -13
  107. package/checkout/components/PaymentMethodButton/PaymentMethodButton.js +5 -3
  108. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +15 -12
  109. package/checkout/components/ShippingMethods/ShippingMethod.js +22 -15
  110. package/checkout/components/ShippingMethods/ShippingMethods.js +49 -41
  111. package/checkout/components/SupplementalContent/SupplementalContent.js +2 -1
  112. package/checkout/helpers/index.js +2 -2
  113. package/checkout/paymentMethods/index.js +33 -28
  114. package/checkout/paymentMethods/paypal/PaypalButton.js +7 -2
  115. package/checkout/paymentMethods/paypal/PaypalButtonApp.js +9 -5
  116. package/checkout/paymentMethods/paypal/PaypalButtonWeb.js +14 -11
  117. package/checkout/paymentMethods/paypal/PaypalPayButton.js +9 -5
  118. package/checkout/paymentMethods/stripe/StripeButton.js +33 -25
  119. package/checkout/paymentMethods/stripe/StripeCreditCard.js +70 -60
  120. package/checkout/paymentMethods/stripe/StripePayButton.js +5 -3
  121. package/checkout/paymentMethods/stripe/StripeProvider.js +11 -10
  122. package/checkout/providers/AddressBookProvider.js +5 -3
  123. package/checkout/providers/CheckoutProvider.js +24 -19
  124. package/checkout/selectors/guestCheckout.js +1 -1
  125. package/components/BrandingColorBanner/BrandingColorBanner.js +7 -5
  126. package/components/ChipLayout/index.js +64 -49
  127. package/components/ChipLayout/spec.js +16 -8
  128. package/components/ConnectedReactPortal/index.js +19 -21
  129. package/components/Footer/Footer.js +9 -6
  130. package/components/Form/Builder/Builder.js +85 -74
  131. package/components/Form/Builder/ElementCheckbox.js +19 -17
  132. package/components/Form/Builder/ElementMultiSelect.js +42 -38
  133. package/components/Form/Builder/ElementPhoneNumber.js +39 -36
  134. package/components/Form/Builder/ElementRadio.js +25 -23
  135. package/components/Form/Builder/ElementSelect.js +25 -23
  136. package/components/Form/Builder/ElementText.js +22 -20
  137. package/components/Form/Builder/FormHelper.js +18 -15
  138. package/components/Form/Builder/classes/ActionListener.js +400 -401
  139. package/components/Form/Form.js +23 -15
  140. package/components/IntersectionVisibility/index.js +23 -17
  141. package/components/Logo/index.js +9 -7
  142. package/components/Logo/spec.js +2 -1
  143. package/components/Menu/components/Item/index.js +12 -8
  144. package/components/Menu/components/Position/index.js +20 -12
  145. package/components/Menu/index.js +60 -60
  146. package/components/MessageBar/MessageBar.js +35 -31
  147. package/components/NavigationHandler/index.js +14 -8
  148. package/components/NavigationHandler/spec.js +9 -3
  149. package/components/Picker/components/Button/index.js +11 -7
  150. package/components/Picker/components/List/index.js +19 -16
  151. package/components/Picker/components/Modal/index.js +34 -25
  152. package/components/Picker/index.js +44 -33
  153. package/components/Picker/spec.js +4 -1
  154. package/components/PickerUtilize/components/Button/index.js +11 -7
  155. package/components/PickerUtilize/index.js +56 -43
  156. package/components/PickerUtilize/spec.js +2 -1
  157. package/components/QuantityInput/QuantityInput.js +5 -5
  158. package/components/QuantityLabel/QuantityLabel.js +5 -3
  159. package/components/Radio/Radio.js +28 -24
  160. package/components/RadioCard/RadioCard.js +26 -22
  161. package/components/RadioGroup/RadioGroup.js +16 -12
  162. package/components/RangeSlider/components/Handle/index.js +8 -6
  163. package/components/RangeSlider/index.js +108 -114
  164. package/components/RangeSlider/spec.js +9 -6
  165. package/components/ScrollHeader/index.js +5 -3
  166. package/components/SheetDrawer/index.js +4 -3
  167. package/components/SheetList/components/Item/index.js +67 -47
  168. package/components/SheetList/components/Item/spec.js +18 -13
  169. package/components/SheetList/index.js +40 -30
  170. package/components/SheetList/spec.js +20 -14
  171. package/components/SheetList/style.js +1 -1
  172. package/components/SideNavigation/SideNavigation.js +7 -5
  173. package/components/SideNavigation/SideNavigationCategories.js +14 -11
  174. package/components/SideNavigation/SideNavigationCategoriesItem.js +17 -13
  175. package/components/SideNavigation/SideNavigationCategoriesItemChildren.js +7 -5
  176. package/components/SideNavigation/SideNavigationContent.js +13 -8
  177. package/components/SideNavigation/SideNavigationItem.js +24 -19
  178. package/components/SideNavigation/SideNavigationLinks.js +36 -30
  179. package/components/SideNavigation/SideNavigationLinksLegal.js +4 -5
  180. package/components/SideNavigation/SideNavigationLinksQuicklinks.js +3 -3
  181. package/components/SideNavigation/SideNavigationNestedItem.js +19 -9
  182. package/components/SideNavigation/SideNavigationProvider.js +5 -3
  183. package/components/SnackBarContainer/index.js +9 -2
  184. package/components/Switch/index.js +20 -14
  185. package/components/Tabs/TabContext.js +5 -3
  186. package/components/Tabs/components/Tab.js +8 -5
  187. package/components/Tabs/components/TabIndicator.js +5 -4
  188. package/components/Tabs/components/TabPanel.js +5 -3
  189. package/components/Tabs/components/Tabs.js +15 -11
  190. package/components/Tabs/useEventCallback.js +1 -1
  191. package/components/TextLink/TextLink.js +4 -3
  192. package/components/TimeBoundary/index.js +31 -22
  193. package/components/TimeBoundary/spec.js +13 -9
  194. package/components/Toggle/index.js +21 -18
  195. package/components/Typography/Typography.js +5 -5
  196. package/components/VideoPlayer/index.js +45 -35
  197. package/components/View/components/Above/index.js +17 -14
  198. package/components/View/components/Below/index.js +17 -14
  199. package/components/View/components/Content/components/ParallaxProvider/index.js +8 -5
  200. package/components/View/components/Content/index.js +102 -83
  201. package/components/View/index.js +28 -19
  202. package/components/View/provider.js +61 -50
  203. package/core/classes/GeolocationRequest.js +9 -7
  204. package/core/classes/GeolocationRequestApp.js +7 -5
  205. package/core/classes/GeolocationRequestBrowser.js +7 -4
  206. package/core/collections/AppInitialization.js +11 -10
  207. package/core/config/ThemeConfigResolver.js +21 -19
  208. package/core/helpers/errorBehavior.js +4 -4
  209. package/core/hocs/withApp.js +7 -4
  210. package/core/hocs/withCurrentProduct.js +5 -2
  211. package/core/hocs/withForwardedRef.js +5 -2
  212. package/core/hocs/withNavigation.js +5 -2
  213. package/core/hocs/withRoute.js +7 -2
  214. package/core/hocs/withTheme.js +13 -8
  215. package/core/hocs/withThemeResources.js +10 -7
  216. package/core/hocs/withWidgetSettings.js +5 -4
  217. package/core/hocs/withWidgetStyles.js +5 -4
  218. package/core/hooks/events/appEvents.d.ts +83 -0
  219. package/core/hooks/events/appEvents.js +125 -0
  220. package/core/hooks/events/index.js +1 -0
  221. package/core/hooks/index.js +1 -0
  222. package/core/hooks/useLocalStorage.d.ts +8 -0
  223. package/core/hooks/useLocalStorage.js +38 -0
  224. package/core/providers/AppProvider.js +38 -27
  225. package/core/providers/ThemeResourcesProvider.js +8 -5
  226. package/development/components/ClientInformation/ClientInformation.js +18 -13
  227. package/development/components/DevelopmentSettings/DevelopmentSettings.js +18 -14
  228. package/development/components/DevelopmentTools/DevelopmentTools.js +6 -1
  229. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +9 -8
  230. package/development/components/SimulatedInsets/SimulatedInsetTop.js +15 -12
  231. package/development/components/SimulatedInsets/SimulatedInsets.js +12 -8
  232. package/favorites/components/CommentDialog/CommentDialog.js +29 -27
  233. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +5 -3
  234. package/favorites/components/Item/Item.js +120 -100
  235. package/favorites/components/Item/ItemCharacteristics.js +10 -7
  236. package/favorites/components/Item/ItemNotes.js +33 -22
  237. package/favorites/components/Item/ItemQuantity.js +14 -12
  238. package/favorites/components/ItemFulfillmentMethod/ItemFulfillmentMethod.js +16 -12
  239. package/favorites/components/List/List.js +32 -27
  240. package/favorites/components/List/ListAccordionHeader.js +14 -8
  241. package/favorites/components/List/ListAccordionLabel.js +5 -3
  242. package/favorites/components/List/ListContent.js +45 -40
  243. package/favorites/components/List/ListItemWrapper.js +22 -19
  244. package/favorites/components/ListChooser/ListChooser.js +17 -14
  245. package/favorites/components/ListChooser/ListChooserItem.js +13 -9
  246. package/favorites/components/Lists/Lists.js +39 -35
  247. package/favorites/components/Lists/ListsModal.js +29 -19
  248. package/favorites/components/RemoveButton/RemoveButton.js +8 -5
  249. package/filter/components/FilterItem/index.js +5 -3
  250. package/filter/components/FilterItem/spec.js +6 -1
  251. package/filter/components/FilterPageContent/components/ApplyButton/index.js +21 -17
  252. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +8 -7
  253. package/filter/components/FilterPageContent/components/ResetButton/index.js +17 -13
  254. package/filter/components/FilterPageContent/components/ResetButton/spec.js +4 -3
  255. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +25 -13
  256. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +3 -2
  257. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +38 -24
  258. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +5 -4
  259. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +31 -19
  260. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +4 -3
  261. package/filter/components/FilterPageContent/components/Selector/index.js +58 -43
  262. package/filter/components/FilterPageContent/components/Selector/spec.js +3 -6
  263. package/filter/components/FilterPageContent/index.js +44 -42
  264. package/filter/components/FilterPageContentWithProvider/index.js +7 -5
  265. package/filter/components/PriceSlider/components/Label/index.js +80 -71
  266. package/filter/components/PriceSlider/components/Label/spec.js +2 -1
  267. package/filter/components/PriceSlider/index.js +39 -29
  268. package/filter/components/PriceSlider/spec.js +3 -2
  269. package/filter/hocs/withSort.js +7 -2
  270. package/filter/providers/FilterPageProvider.js +6 -4
  271. package/filter/providers/SortProvider.js +5 -3
  272. package/locations/components/Cart/CartChangeFulfillmentMethod.js +5 -4
  273. package/locations/components/Cart/CartContextMenuChangeFulfillment.js +5 -1
  274. package/locations/components/Cart/CartContextMenuChangeFulfillmentContent.js +10 -8
  275. package/locations/components/Cart/CartContextMenuItemChangeFulfillment.js +7 -5
  276. package/locations/components/Cart/CartContextMenuItemChangeLocation.js +7 -5
  277. package/locations/components/Cart/CartItemProductChangeLocation.js +2 -1
  278. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +15 -12
  279. package/locations/components/FulfillmentPath/FulfillmentPath.js +38 -34
  280. package/locations/components/FulfillmentPath/FulfillmentPathItem.js +10 -6
  281. package/locations/components/FulfillmentPathSelector/FulfillmentPathSelector.js +13 -9
  282. package/locations/components/FulfillmentSelector/FulfillmentSelector.js +33 -26
  283. package/locations/components/FulfillmentSelector/FulfillmentSelectorAlternativeLocation.js +44 -34
  284. package/locations/components/FulfillmentSelector/FulfillmentSelectorBOPIS.js +5 -3
  285. package/locations/components/FulfillmentSelector/FulfillmentSelectorDirectShip.js +25 -17
  286. package/locations/components/FulfillmentSelector/FulfillmentSelectorHeader.js +8 -3
  287. package/locations/components/FulfillmentSelector/FulfillmentSelectorImpossibleError.js +2 -1
  288. package/locations/components/FulfillmentSelector/FulfillmentSelectorItem.js +29 -20
  289. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocation.js +75 -57
  290. package/locations/components/FulfillmentSelector/FulfillmentSelectorLocationMethodNotAvailable.js +2 -1
  291. package/locations/components/FulfillmentSelector/FulfillmentSelectorROPIS.js +5 -3
  292. package/locations/components/FulfillmentSheet/FulfillmentSheet.js +7 -3
  293. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +8 -5
  294. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +53 -42
  295. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotProvider.js +2 -2
  296. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +12 -10
  297. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +23 -17
  298. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +22 -15
  299. package/locations/components/GlobalLocationSelector/GlobalLocationSelector.js +2 -1
  300. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcher.js +23 -20
  301. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +27 -20
  302. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +22 -15
  303. package/locations/components/ReservationResponses/ReservationError.js +11 -7
  304. package/locations/components/ReservationResponses/ReservationSuccess.js +17 -11
  305. package/locations/components/ReserveForm/ReserveForm.js +99 -89
  306. package/locations/components/ReserveForm/ReserveFormPhone.js +21 -19
  307. package/locations/components/StockInfo/StockInfo.js +15 -12
  308. package/locations/components/StockInfo/StockInfoInventory.js +2 -1
  309. package/locations/components/StockInfoLists/index.js +24 -19
  310. package/locations/components/StoreDetails/components/FindMoreStores.js +37 -29
  311. package/locations/components/StoreDetails/components/GetDirectionsButton.js +13 -9
  312. package/locations/components/StoreDetails/components/StoreDetails.js +106 -67
  313. package/locations/components/StoreDetails/components/StoreFinderMap.js +23 -21
  314. package/locations/components/StoreDetails/components/StoreLocationMap.js +11 -7
  315. package/locations/components/StoreDetails/components/StoresNearby.js +16 -8
  316. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +63 -47
  317. package/locations/components/StoreDetails/index.js +7 -3
  318. package/locations/components/StoreFinder/StoreFinder.js +16 -11
  319. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +9 -6
  320. package/locations/components/StoreFinder/StoreFinderLocation.js +5 -3
  321. package/locations/components/StoreFinder/StoreFinderLocationDetails.js +11 -8
  322. package/locations/components/StoreFinder/StoreFinderLocationHeader.js +45 -32
  323. package/locations/components/StoreFinder/StoreFinderLocationHeaderPhoneNumber.js +12 -8
  324. package/locations/components/StoreFinder/StoreFinderLocations.js +14 -10
  325. package/locations/components/StoreFinder/StoreFinderSearch.js +7 -5
  326. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +10 -7
  327. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +10 -7
  328. package/locations/components/StoreList/StoreAddress.js +33 -21
  329. package/locations/components/StoreList/StoreAddressShort.js +31 -21
  330. package/locations/components/StoreList/StoreCard.js +4 -1
  331. package/locations/components/StoreList/StoreDetails.js +13 -11
  332. package/locations/components/StoreList/StoreDetailsLine.js +17 -13
  333. package/locations/components/StoreList/StoreDistance.js +5 -3
  334. package/locations/components/StoreList/StoreHeader.js +46 -33
  335. package/locations/components/StoreList/StoreHoursToday.js +7 -5
  336. package/locations/components/StoreList/StoreList.js +4 -1
  337. package/locations/components/StoreList/StoreListLocations.js +18 -13
  338. package/locations/components/StoreList/StoreListProduct.js +20 -14
  339. package/locations/components/StoreList/StoreListProductInfo.js +17 -13
  340. package/locations/components/StoreList/StoreListProductName.js +11 -7
  341. package/locations/components/StoreList/StoreListSearch.js +66 -55
  342. package/locations/components/StoreList/StoreListSearchRadius.js +19 -16
  343. package/locations/components/StoreList/StoreOpeningHours.js +19 -13
  344. package/locations/components/StoreList/StoreOpeningHoursLine.js +12 -8
  345. package/locations/components/StoreList/StorePhoneNumber.js +17 -13
  346. package/locations/components/StoreList/StoreSelectLocationButton.js +10 -7
  347. package/locations/providers/FulfillmentProvider.connector.js +6 -6
  348. package/locations/providers/FulfillmentProvider.js +24 -23
  349. package/locations/providers/StoreDetailsProvider.js +5 -3
  350. package/locations/providers/StoreFinderProvider.js +5 -3
  351. package/login/components/ForgotPassword/ForgotPassword.js +64 -50
  352. package/orders/components/OrderDetails/OrderDetails.js +9 -6
  353. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +63 -47
  354. package/orders/components/OrderDetails/OrderDetailsContent.js +9 -5
  355. package/orders/components/OrderDetails/OrderDetailsOrder.js +44 -39
  356. package/orders/components/OrderDetails/OrderDetailsOrderHeader.js +39 -31
  357. package/orders/components/OrderDetails/OrderDetailsOrderPickupLocation.js +2 -1
  358. package/orders/components/OrderHistory/OrderHistory.js +27 -22
  359. package/orders/components/OrderHistory/OrderHistoryList.js +47 -35
  360. package/orders/components/OrderHistory/OrderHistoryLoader.js +19 -16
  361. package/orders/components/OrderHistory/OrderHistoryTable.js +57 -34
  362. package/orders/providers/OrderDetailsPrivateProvider.js +5 -3
  363. package/orders/providers/OrderDetailsProvider.js +6 -4
  364. package/orders/providers/OrderHistoryProvider.js +5 -3
  365. package/orders/reducers/orders.js +1 -1
  366. package/package.json +12 -14
  367. package/page/components/NotFound.js +28 -23
  368. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +48 -27
  369. package/page/components/WidgetHeadline/WidgetHeadline.js +6 -4
  370. package/page/components/WidgetRichText/WidgetRichText.js +5 -3
  371. package/page/components/WidgetVideo/WidgetVideo.js +159 -0
  372. package/page/components/WidgetVideo/index.js +1 -0
  373. package/page/components/Widgets/Overlay.js +12 -12
  374. package/page/components/Widgets/Tooltip.js +13 -11
  375. package/page/components/Widgets/Widget.js +34 -25
  376. package/page/components/Widgets/WidgetProvider.js +5 -3
  377. package/page/components/Widgets/Widgets.js +22 -19
  378. package/page/components/Widgets/WidgetsPreviewProvider.js +5 -3
  379. package/page/hooks/index.js +7 -14
  380. package/page/selectors/index.js +7 -24
  381. package/page/widgets/Button/Button.js +19 -12
  382. package/page/widgets/CategoryList/CategoryList.js +11 -8
  383. package/page/widgets/CategoryList/hooks.js +1 -1
  384. package/page/widgets/HTML/HTML.js +5 -3
  385. package/page/widgets/Headline/Headline.js +2 -1
  386. package/page/widgets/HeroBanner/HeroBanner.js +51 -23
  387. package/page/widgets/HeroBanner/hooks.js +19 -4
  388. package/page/widgets/Image/Image.js +14 -11
  389. package/page/widgets/ImageRow/ImageRow.js +53 -28
  390. package/page/widgets/ImageRow/hooks.js +14 -2
  391. package/page/widgets/ImageSlider/ImageSlider.js +27 -22
  392. package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +164 -0
  393. package/page/widgets/NestedCategoryFilter/components/Picker/components/Sheet/index.js +59 -0
  394. package/page/widgets/NestedCategoryFilter/components/Picker/components/SheetItem/index.js +60 -0
  395. package/page/widgets/NestedCategoryFilter/components/Picker/index.js +124 -0
  396. package/page/widgets/NestedCategoryFilter/hooks.js +35 -0
  397. package/page/widgets/NestedCategoryFilter/index.js +1 -0
  398. package/page/widgets/Placeholder/Placeholder.js +16 -12
  399. package/page/widgets/ProductList/ProductList.js +34 -18
  400. package/page/widgets/ProductList/hooks.js +4 -2
  401. package/page/widgets/ProductSlider/ProductSlider.js +27 -23
  402. package/page/widgets/RichText/RichText.js +2 -1
  403. package/page/widgets/Video/Video.js +14 -55
  404. package/page/widgets/Video/hooks.js +6 -2
  405. package/page/widgets/index.js +2 -1
  406. package/page/widgets/widgets.json +3 -0
  407. package/product/components/Availability/Availability.js +14 -11
  408. package/product/components/Characteristics/Characteristic/components/Sheet/index.js +104 -84
  409. package/product/components/Characteristics/Characteristic/components/SheetItem/index.js +41 -27
  410. package/product/components/Characteristics/Characteristic/index.js +83 -64
  411. package/product/components/Characteristics/Swatch/index.js +54 -38
  412. package/product/components/Characteristics/index.js +36 -20
  413. package/product/components/Description/index.js +27 -20
  414. package/product/components/EffectivityDates/index.js +42 -37
  415. package/product/components/FilterBar/FilterBarProvider.js +5 -3
  416. package/product/components/FilterBar/components/Content/components/FilterButton/index.js +24 -17
  417. package/product/components/FilterBar/components/Content/components/FilterChips/index.js +24 -19
  418. package/product/components/FilterBar/components/Content/components/Sort/components/Item/index.js +5 -3
  419. package/product/components/FilterBar/components/Content/components/Sort/index.js +14 -12
  420. package/product/components/FilterBar/components/Content/index.js +15 -11
  421. package/product/components/FilterBar/components/Content/spec.js +7 -6
  422. package/product/components/FilterBar/components/FilterModal/FilterModal.js +21 -16
  423. package/product/components/FilterBar/components/FilterModal/FilterModalContent.js +12 -9
  424. package/product/components/FilterBar/components/FilterModal/FilterModalTitle.js +22 -16
  425. package/product/components/FilterBar/index.js +16 -10
  426. package/product/components/Header/PriceStriked/index.js +32 -23
  427. package/product/components/Header/Shipping/components/Label/index.js +14 -11
  428. package/product/components/Header/Shipping/index.js +19 -14
  429. package/product/components/Header/Shipping/spec.js +7 -5
  430. package/product/components/Header/Tiers/components/Tier/index.js +10 -9
  431. package/product/components/Header/Tiers/components/Tier/spec.js +3 -2
  432. package/product/components/Header/Tiers/index.js +17 -13
  433. package/product/components/Header/Tiers/spec.js +6 -5
  434. package/product/components/MapPriceHint/index.js +14 -11
  435. package/product/components/Media/FeaturedMedia.js +8 -6
  436. package/product/components/Media/MediaImage.js +19 -16
  437. package/product/components/Media/MediaPlaceholder.js +11 -8
  438. package/product/components/MediaSlider/components/MediaImage/index.js +9 -7
  439. package/product/components/MediaSlider/components/MediaVideo/index.js +24 -19
  440. package/product/components/MediaSlider/index.js +29 -23
  441. package/product/components/Options/components/Content/index.js +52 -44
  442. package/product/components/Options/components/Content/spec.js +13 -10
  443. package/product/components/Options/components/Option/index.js +23 -20
  444. package/product/components/Options/components/TextOption/components/OptionInfo/index.js +31 -24
  445. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +4 -3
  446. package/product/components/Options/components/TextOption/index.js +84 -69
  447. package/product/components/Options/index.js +17 -13
  448. package/product/components/OrderQuantityHint/index.js +29 -24
  449. package/product/components/PriceDifference/index.js +2 -1
  450. package/product/components/PriceInfo/PriceInfo.js +13 -11
  451. package/product/components/ProductBadges/index.js +9 -6
  452. package/product/components/ProductCard/index.js +54 -47
  453. package/product/components/ProductCharacteristics/index.js +65 -57
  454. package/product/components/ProductDiscountBadge/index.js +18 -14
  455. package/product/components/ProductDiscountBadge/spec.js +7 -5
  456. package/product/components/ProductFilters/index.js +25 -21
  457. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +29 -25
  458. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +10 -5
  459. package/product/components/ProductGrid/components/Item/components/ItemDiscount/index.js +11 -8
  460. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +14 -11
  461. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +14 -11
  462. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +10 -8
  463. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +4 -4
  464. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +11 -8
  465. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +5 -1
  466. package/product/components/ProductGrid/components/Item/components/ItemPrice/index.js +7 -5
  467. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +8 -9
  468. package/product/components/ProductGrid/components/Item/index.js +36 -31
  469. package/product/components/ProductGrid/components/Iterator/index.js +15 -12
  470. package/product/components/ProductGrid/components/Layout/index.js +5 -3
  471. package/product/components/ProductGrid/index.js +34 -30
  472. package/product/components/ProductGrid/spec.js +3 -2
  473. package/product/components/ProductGridPrice/index.js +37 -24
  474. package/product/components/ProductImage/ProductImagePlaceholder.js +7 -5
  475. package/product/components/ProductImage/index.js +57 -45
  476. package/product/components/ProductImage/spec.js +9 -8
  477. package/product/components/ProductList/components/Item/index.js +172 -152
  478. package/product/components/ProductList/components/Iterator/index.js +27 -24
  479. package/product/components/ProductList/components/Layout/index.js +5 -3
  480. package/product/components/ProductList/index.js +33 -27
  481. package/product/components/ProductName/ProductName.js +19 -15
  482. package/product/components/ProductName/ProductNameContent.js +14 -9
  483. package/product/components/ProductProperties/Content.js +12 -8
  484. package/product/components/ProductProperties/Group.js +12 -8
  485. package/product/components/ProductProperties/GroupedProperties.js +18 -15
  486. package/product/components/ProductProperties/Lists.js +12 -9
  487. package/product/components/ProductProperties/ListsHTML.js +11 -9
  488. package/product/components/ProductProperties/ProductProperties.js +7 -5
  489. package/product/components/ProductProperties/Row.js +22 -18
  490. package/product/components/ProductProperties/RowHTML.js +14 -10
  491. package/product/components/ProductProperties/Rows.js +5 -6
  492. package/product/components/ProductProperties/Wrapper.js +9 -3
  493. package/product/components/ProductSlider/index.js +28 -23
  494. package/product/components/ProductSlider/spec.js +5 -2
  495. package/product/components/ProductVariants/VariantAvailability.js +9 -7
  496. package/product/components/QuantityPicker/index.js +11 -8
  497. package/product/components/Rating/index.js +16 -13
  498. package/product/components/Rating/spec.js +7 -5
  499. package/product/components/RelationsSlider/RelationsSheet.js +22 -16
  500. package/product/components/RelationsSlider/RelationsSlider.js +2 -1
  501. package/product/components/RelationsSlider/RelationsSliderContent.js +30 -25
  502. package/product/components/Swatch/Swatch.js +2 -1
  503. package/product/components/Swatch/SwatchContent.js +25 -23
  504. package/product/components/Swatch/VariantSwatch.js +2 -1
  505. package/product/components/Swatches/Swatches.js +10 -8
  506. package/product/components/UnitQuantityPicker/CartUnitQuantityPicker.js +2 -1
  507. package/product/components/UnitQuantityPicker/ProductUnitQuantityPicker.js +32 -24
  508. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +70 -62
  509. package/product/components/UnitQuantityPicker/UnitQuantityPickerWithSection.js +17 -14
  510. package/product/hocs/withMapPricing.js +30 -18
  511. package/product/hocs/withPriceCalculation.js +7 -2
  512. package/product/hocs/withProductListEntry.js +7 -4
  513. package/product/hocs/withProductListEntryProduct.js +4 -1
  514. package/product/hocs/withProductListType.js +7 -4
  515. package/product/providers/ProductListEntry/index.js +5 -3
  516. package/product/providers/ProductListType/index.js +5 -3
  517. package/product/selectors/helpers/wrapMemoizedSelector.js +2 -2
  518. package/push-opt-in/components/PushOptInModal/index.js +52 -42
  519. package/registration/components/GuestRegistration/GuestRegistration.js +8 -5
  520. package/registration/components/GuestRegistration/GuestRegistrationContent.js +21 -17
  521. package/registration/components/GuestRegistration/GuestRegistrationFormPickup.js +17 -14
  522. package/registration/components/Registration/Registration.js +7 -5
  523. package/registration/components/Registration/RegistrationContent.js +14 -8
  524. package/registration/components/Registration/RegistrationFormActions.js +11 -8
  525. package/registration/components/Registration/RegistrationFormBase.js +12 -10
  526. package/registration/components/Registration/RegistrationFormBilling.js +12 -10
  527. package/registration/components/Registration/RegistrationFormExtra.js +12 -10
  528. package/registration/components/Registration/RegistrationFormShipping.js +12 -10
  529. package/registration/components/Registration/RegistrationFormToggle.js +15 -12
  530. package/registration/providers/GuestRegistrationProvider.actions.js +3 -3
  531. package/registration/providers/GuestRegistrationProvider.js +5 -3
  532. package/registration/providers/RegistrationProvider.actions.js +2 -2
  533. package/registration/providers/RegistrationProvider.js +7 -5
  534. package/reviews/components/Reviews/components/AllReviewsLink/index.js +11 -8
  535. package/reviews/components/Reviews/components/Header/components/AverageRating/index.js +10 -8
  536. package/reviews/components/Reviews/components/Header/components/NoReviews/index.js +16 -11
  537. package/reviews/components/Reviews/components/Header/components/ReviewsExcerpt/index.js +21 -17
  538. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +12 -9
  539. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +7 -5
  540. package/reviews/components/Reviews/components/Header/index.js +3 -2
  541. package/reviews/components/Reviews/components/Header/spec.js +7 -3
  542. package/reviews/components/Reviews/components/List/components/Info/components/Author/index.js +2 -1
  543. package/reviews/components/Reviews/components/List/components/Info/components/ReviewDate/index.js +2 -1
  544. package/reviews/components/Reviews/components/List/components/Info/index.js +9 -7
  545. package/reviews/components/Reviews/components/List/components/Rating/index.js +8 -6
  546. package/reviews/components/Reviews/components/List/components/Review/index.js +13 -11
  547. package/reviews/components/Reviews/components/List/components/Text/index.js +5 -3
  548. package/reviews/components/Reviews/components/List/components/Title/index.js +5 -3
  549. package/reviews/components/Reviews/components/List/index.js +34 -24
  550. package/reviews/components/Reviews/components/List/spec.js +2 -1
  551. package/reviews/components/Reviews/components/RatingCount/index.js +2 -1
  552. package/reviews/components/Reviews/components/RatingCount/spec.js +3 -2
  553. package/reviews/components/Reviews/components/ReviewsInfo/index.js +11 -6
  554. package/reviews/components/Reviews/index.js +16 -13
  555. package/reviews/components/Reviews/spec.js +8 -6
  556. package/styles/theme/createTheme/createBreakpoints.js +1 -1
  557. package/styles/theme/hooks/useResponsiveValue.js +1 -1
  558. package/styles/theme/providers/ActiveBreakpointProvider.js +6 -4
  559. package/styles/theme/providers/ThemeProvider.js +7 -3
  560. package/tracking/components/CookieConsentModal/index.js +83 -66
  561. package/tracking/components/PrivacySettings/index.js +104 -78
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import ResponsiveContainer from '@shopgate/engage/components/ResponsiveContainer';
3
3
  import { css } from 'glamor';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
4
5
  const brandingColorBanner = css({
5
6
  position: 'fixed',
6
7
  backgroundColor: 'var(--color-background-gutter-header, var(--color-primary))',
@@ -14,10 +15,11 @@ const brandingColorBanner = css({
14
15
  * @param {Object} props The component props.
15
16
  * @returns {JSX}
16
17
  */
17
- const BrandingColorBanner = () => /*#__PURE__*/React.createElement(ResponsiveContainer, {
18
+ const BrandingColorBanner = () => /*#__PURE__*/_jsx(ResponsiveContainer, {
18
19
  breakpoint: ">xs",
19
- webOnly: true
20
- }, /*#__PURE__*/React.createElement("div", {
21
- className: brandingColorBanner
22
- }));
20
+ webOnly: true,
21
+ children: /*#__PURE__*/_jsx("div", {
22
+ className: brandingColorBanner
23
+ })
24
+ });
23
25
  export default BrandingColorBanner;
@@ -1,3 +1,5 @@
1
+ import _createClass from "@babel/runtime/helpers/createClass";
2
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
1
3
  import React, { Component } from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import debounce from 'lodash/debounce';
@@ -5,6 +7,7 @@ import I18n from '@shopgate/pwa-common/components/I18n';
5
7
  import RippleButton from '@shopgate/pwa-ui-shared/RippleButton';
6
8
  import { themeConfig } from '@shopgate/pwa-common/helpers/config';
7
9
  import styles from "./style";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
11
  const {
9
12
  variables
10
13
  } = themeConfig;
@@ -24,18 +27,22 @@ export const CHIP_MINIMUM_WIDTH = 60;
24
27
  /**
25
28
  * The ChipLayout component.
26
29
  */
27
- class ChipLayout extends Component {
28
- constructor(...args) {
29
- super(...args);
30
+ let ChipLayout = /*#__PURE__*/function (_Component) {
31
+ function ChipLayout(...args) {
32
+ var _this;
33
+ _this = _Component.call.apply(_Component, [this].concat(args)) || this;
30
34
  /**
31
35
  * Debounced, eg. layout effect
32
36
  */
33
- this.processHiddenElementsDebounced = debounce(this.processHiddenElements, 50);
37
+ _this.processHiddenElementsDebounced = debounce(_this.processHiddenElements, 50);
38
+ return _this;
34
39
  }
40
+ _inheritsLoose(ChipLayout, _Component);
41
+ var _proto = ChipLayout.prototype;
35
42
  /**
36
43
  * When the component mounts we need to initially process all children.
37
44
  */
38
- componentDidMount() {
45
+ _proto.componentDidMount = function componentDidMount() {
39
46
  this.processHiddenElementsDebounced();
40
47
  }
41
48
 
@@ -47,35 +54,19 @@ class ChipLayout extends Component {
47
54
  * It must be done on every prop change, including the pathname.
48
55
  * Sometimes this component is rendered invisible, then since `.processHiddenElements` uses
49
56
  * refs.clientHeight it would always be zero.
50
- */
51
- componentDidUpdate() {
57
+ */;
58
+ _proto.componentDidUpdate = function componentDidUpdate() {
52
59
  this.processHiddenElementsDebounced();
53
60
  }
54
61
 
55
62
  /**
56
63
  * Returns the maximum height the container should have.
57
64
  * @returns {number}
58
- */
59
- get maxContentHeight() {
60
- // 8 -> container padding.
61
- return CHIP_ROW_HEIGHT * this.props.maxRows + 8;
62
- }
63
-
64
- /**
65
- * Returns the more button styles.
66
- * @return {string} The store button class name.
67
- */
68
- get moreButtonStyles() {
69
- if (this.props.invertMoreButton) {
70
- return styles.moreButtonInverted;
71
- }
72
- return styles.moreButton;
73
- }
74
-
65
+ */;
75
66
  /**
76
67
  * Loops through all children to make sure the more button appears if there is too much content.
77
68
  */
78
- processHiddenElements() {
69
+ _proto.processHiddenElements = function processHiddenElements() {
79
70
  if (!this.containerRef) {
80
71
  return;
81
72
  }
@@ -128,37 +119,61 @@ class ChipLayout extends Component {
128
119
  element.setAttribute('style', 'display: none');
129
120
  return true;
130
121
  });
131
- }
122
+ };
132
123
  /**
133
124
  * Renders the component.
134
125
  * @returns {JSX}
135
126
  */
136
- render() {
137
- return /*#__PURE__*/React.createElement("div", {
127
+ _proto.render = function render() {
128
+ return /*#__PURE__*/_jsxs("div", {
138
129
  ref: element => {
139
130
  this.containerRef = element;
140
131
  },
141
- className: `${styles.container(this.maxContentHeight)} engage__chip-layout`
142
- }, /*#__PURE__*/React.createElement("div", {
143
- ref: element => {
144
- this.layoutRef = element;
145
- },
146
- className: styles.layout
147
- }, this.props.children), /*#__PURE__*/React.createElement("div", {
148
- ref: element => {
149
- this.moreButtonRef = element;
150
- },
151
- className: styles.moreButtonWrapper
152
- }, /*#__PURE__*/React.createElement(RippleButton, {
153
- fill: true,
154
- type: "plain",
155
- className: this.moreButtonStyles,
156
- onClick: this.props.handleMoreButton
157
- }, /*#__PURE__*/React.createElement(I18n.Text, {
158
- string: this.props.moreLabel
159
- }))));
160
- }
161
- }
132
+ className: `${styles.container(this.maxContentHeight)} engage__chip-layout`,
133
+ children: [/*#__PURE__*/_jsx("div", {
134
+ ref: element => {
135
+ this.layoutRef = element;
136
+ },
137
+ className: styles.layout,
138
+ children: this.props.children
139
+ }), /*#__PURE__*/_jsx("div", {
140
+ ref: element => {
141
+ this.moreButtonRef = element;
142
+ },
143
+ className: styles.moreButtonWrapper,
144
+ children: /*#__PURE__*/_jsx(RippleButton, {
145
+ fill: true,
146
+ type: "plain",
147
+ className: this.moreButtonStyles,
148
+ onClick: this.props.handleMoreButton,
149
+ children: /*#__PURE__*/_jsx(I18n.Text, {
150
+ string: this.props.moreLabel
151
+ })
152
+ })
153
+ })]
154
+ });
155
+ };
156
+ return _createClass(ChipLayout, [{
157
+ key: "maxContentHeight",
158
+ get: function () {
159
+ // 8 -> container padding.
160
+ return CHIP_ROW_HEIGHT * this.props.maxRows + 8;
161
+ }
162
+
163
+ /**
164
+ * Returns the more button styles.
165
+ * @return {string} The store button class name.
166
+ */
167
+ }, {
168
+ key: "moreButtonStyles",
169
+ get: function () {
170
+ if (this.props.invertMoreButton) {
171
+ return styles.moreButtonInverted;
172
+ }
173
+ return styles.moreButton;
174
+ }
175
+ }]);
176
+ }(Component);
162
177
  ChipLayout.defaultProps = {
163
178
  children: null,
164
179
  handleMoreButton: () => {},
@@ -8,22 +8,30 @@ import ChipsLayout from "./index";
8
8
  * browser to be tested as it needs a full browser that supports styling and
9
9
  * width/height calculation.
10
10
  */
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
12
  describe('<ChipsLayout />', () => {
12
13
  it('should render with one chip', () => {
13
- const Component = /*#__PURE__*/React.createElement(ChipsLayout, null, /*#__PURE__*/React.createElement(Chip, {
14
- id: "some-id"
15
- }, "foo"));
14
+ const Component = /*#__PURE__*/_jsx(ChipsLayout, {
15
+ children: /*#__PURE__*/_jsx(Chip, {
16
+ id: "some-id",
17
+ children: "foo"
18
+ })
19
+ });
16
20
  const wrapper = mount(Component);
17
21
  expect(wrapper).toMatchSnapshot();
18
22
  expect(wrapper.find(Chip).length).toEqual(1);
19
23
  expect(wrapper.find(Chip).at(0).find('button').at(1).text()).toEqual('foo');
20
24
  });
21
25
  it('should render with two chips', () => {
22
- const Component = /*#__PURE__*/React.createElement(ChipsLayout, null, /*#__PURE__*/React.createElement(Chip, {
23
- id: "some-id"
24
- }, "foo"), /*#__PURE__*/React.createElement(Chip, {
25
- id: "some-other-id"
26
- }, "bar"));
26
+ const Component = /*#__PURE__*/_jsxs(ChipsLayout, {
27
+ children: [/*#__PURE__*/_jsx(Chip, {
28
+ id: "some-id",
29
+ children: "foo"
30
+ }), /*#__PURE__*/_jsx(Chip, {
31
+ id: "some-other-id",
32
+ children: "bar"
33
+ })]
34
+ });
27
35
  const wrapper = mount(Component);
28
36
  expect(wrapper).toMatchSnapshot();
29
37
  expect(wrapper.find(Chip).length).toEqual(2);
@@ -1,30 +1,28 @@
1
- import React from 'react';
2
1
  import PropTypes from 'prop-types';
3
- import { Provider, ReactReduxContext } from 'react-redux';
4
- import Portal from 'react-portal';
2
+ import { createPortal } from 'react-dom';
3
+ const node = document.getElementById('portals');
5
4
 
6
5
  /**
7
- * @typedef {import('@types/react-portal')} ReactPortal
8
- */
9
-
10
- // eslint-disable-next-line valid-jsdoc
11
- /**
12
- * ConnectedReactPortal is a wrapper around "react-portal" v3 that ensures
13
- * children rendered in the portal have access to the Redux store.
14
- *
15
- * This addresses the limitation introduced by the switch to the new Context API in react-redux v6,
16
- * where the Redux store is only accessible to components within the StoreProvider. Since the Portal
17
- * component renders its children outside the React component tree, this wrapper bridges the gap.
18
- *
19
- * @type {ReactPortal}
6
+ * The connected react portal component rendering its children into a react portal node.
7
+ * @param {Object} props The component props
8
+ * @param {boolean} props.isOpened Whether the portal is open
9
+ * @param {React.ReactNode} props.children The children to render inside the portal
10
+ * @private
11
+ * @returns {React.ReactPortal|null}
20
12
  */
21
13
  const ConnectedReactPortal = ({
22
14
  children,
23
- ...props
24
- }) => /*#__PURE__*/React.createElement(ReactReduxContext.Consumer, null, ctx => /*#__PURE__*/React.createElement(Portal, props, /*#__PURE__*/React.createElement(Provider, {
25
- store: ctx.store
26
- }, children)));
15
+ isOpened
16
+ }) => {
17
+ if (!isOpened) return null;
18
+ return /*#__PURE__*/createPortal(children, node);
19
+ };
20
+ ConnectedReactPortal.propTypes = {
21
+ children: PropTypes.node,
22
+ isOpened: PropTypes.bool
23
+ };
27
24
  ConnectedReactPortal.defaultProps = {
28
- children: null
25
+ children: null,
26
+ isOpened: false
29
27
  };
30
28
  export default ConnectedReactPortal;
@@ -13,6 +13,7 @@ import { APP_FOOTER_ID, DATA_IGNORED } from "./constants";
13
13
  * @param {Object} props The component props.
14
14
  * @returns {JSX.Element}
15
15
  */
16
+ import { jsx as _jsx } from "react/jsx-runtime";
16
17
  const Footer = ({
17
18
  children
18
19
  }) => {
@@ -53,12 +54,14 @@ const Footer = ({
53
54
  observer.disconnect();
54
55
  };
55
56
  }, [performFooterUpdate]);
56
- return /*#__PURE__*/React.createElement("div", {
57
- className: classNames(classes.footer, 'engage__footer')
58
- }, /*#__PURE__*/React.createElement("div", {
59
- id: APP_FOOTER_ID,
60
- ref: footerRef
61
- }, children));
57
+ return /*#__PURE__*/_jsx("div", {
58
+ className: classNames(classes.footer, 'engage__footer'),
59
+ children: /*#__PURE__*/_jsx("div", {
60
+ id: APP_FOOTER_ID,
61
+ ref: footerRef,
62
+ children: children
63
+ })
64
+ });
62
65
  };
63
66
  Footer.defaultProps = {
64
67
  children: null
@@ -1,3 +1,4 @@
1
+ import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
1
2
  import _camelCase from "lodash/camelCase";
2
3
  var _Builder;
3
4
  import React, { Component, Fragment } from 'react';
@@ -26,6 +27,7 @@ import { sanitizePortalName } from "./helpers/common";
26
27
  * Optional select element
27
28
  * @type {Object}
28
29
  */
30
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
31
  const emptySelectOption = {
30
32
  '': ''
31
33
  };
@@ -34,13 +36,14 @@ const emptySelectOption = {
34
36
  * Takes a form configuration and handles rendering and updates of the form fields.
35
37
  * Note: Only one country and one province element is supported per FormBuilder instance.
36
38
  */
37
- class Builder extends Component {
39
+ let Builder = /*#__PURE__*/function (_Component) {
38
40
  /**
39
41
  * Initializes the component.
40
42
  * @param {Object} props The components props.
41
43
  */
42
- constructor(props) {
43
- super(props);
44
+ function Builder(props) {
45
+ var _this;
46
+ _this = _Component.call(this, props) || this;
44
47
 
45
48
  // Prepare internal state
46
49
  /**
@@ -48,7 +51,7 @@ class Builder extends Component {
48
51
  * @param {string} type The type value of the element to return.
49
52
  * @returns {*|ElementText|ElementSelect|ElementCheckbox|ElementRadio|null}
50
53
  */
51
- this.getFormElementComponent = type => this.props.elements[type] || Builder.defaultElements[type] || null;
54
+ _this.getFormElementComponent = type => _this.props.elements[type] || Builder.defaultElements[type] || null;
52
55
  /**
53
56
  * Sorts the elements by "sortOrder" property
54
57
  *
@@ -59,7 +62,7 @@ class Builder extends Component {
59
62
  * @param {FormElement} element2 Second element
60
63
  * @returns {number}
61
64
  */
62
- this.elementSortFunc = (element1, element2) => {
65
+ _this.elementSortFunc = (element1, element2) => {
63
66
  // Keep current sort order when no specific sort order was set for both
64
67
  if (element1.sortOrder === undefined || element2.sortOrder === undefined) {
65
68
  return 0;
@@ -74,18 +77,18 @@ class Builder extends Component {
74
77
  * @param {string} elementId Element to create the handler for
75
78
  * @param {string} value Element value
76
79
  */
77
- this.elementChangeHandler = (elementId, value) => {
80
+ _this.elementChangeHandler = (elementId, value) => {
78
81
  // "newState" is the state changes before any form actions have been applied
79
82
  const newState = {
80
- ...this.state,
83
+ ..._this.state,
81
84
  formData: {
82
- ...this.state.formData,
85
+ ..._this.state.formData,
83
86
  [elementId]: value
84
87
  }
85
88
  };
86
89
 
87
90
  // Handle context sensitive functionality by via "action" listener and use the "new" state
88
- const updatedNewState = this.actionListener.notify(elementId, this.state, newState);
91
+ const updatedNewState = _this.actionListener.notify(elementId, _this.state, newState);
89
92
 
90
93
  // Form actions can append validation errors by adding that field to the new state
91
94
  // Split out validation errors from final state and
@@ -98,7 +101,7 @@ class Builder extends Component {
98
101
  let hasErrors = Object.keys(validationErrors).length > 0;
99
102
 
100
103
  // Check "required" fields for all visible elements and enable rendering on changes
101
- this.formElements.forEach(formElement => {
104
+ _this.formElements.forEach(formElement => {
102
105
  if (!finalState.elementVisibility[formElement.id] || !formElement.required) {
103
106
  return;
104
107
  }
@@ -108,11 +111,11 @@ class Builder extends Component {
108
111
  });
109
112
 
110
113
  // Handle state internally and send an "onChange" event to parent if this finished
111
- this.setState(finalState);
114
+ _this.setState(finalState);
112
115
 
113
116
  // Transform to external structure (unavailable ones will be set undefined)
114
117
  const updateData = {};
115
- this.formElements.forEach(el => {
118
+ _this.formElements.forEach(el => {
116
119
  if (el.custom) {
117
120
  if (updateData.customAttributes === undefined) {
118
121
  updateData.customAttributes = {};
@@ -124,7 +127,7 @@ class Builder extends Component {
124
127
  });
125
128
 
126
129
  // Trigger the given update action of the parent and provide all new validation errors to it
127
- this.props.handleUpdate(updateData, hasErrors,
130
+ _this.props.handleUpdate(updateData, hasErrors,
128
131
  // Output validation errors in the same structure (array) as the component takes them
129
132
  hasErrors ? Object.keys(validationErrors).map(k => ({
130
133
  path: k,
@@ -139,16 +142,16 @@ class Builder extends Component {
139
142
  * @param {string} elementErrorText The error text to be shown for this specific element
140
143
  * @returns {JSX.Element}
141
144
  */
142
- this.renderElement = (formName, element, elementErrorText) => {
145
+ _this.renderElement = (formName, element, elementErrorText) => {
143
146
  const {
144
147
  formData
145
- } = this.state;
146
- const elementName = `${this.props.name}_${element.id}`;
148
+ } = _this.state;
149
+ const elementName = `${_this.props.name}_${element.id}`;
147
150
  const elementValue = formData[element.id];
148
- const elementVisible = this.state.elementVisibility[element.id] || false;
151
+ const elementVisible = _this.state.elementVisibility[element.id] || false;
149
152
 
150
153
  // Take a dynamic REACT element based on its type
151
- const Element = this.getFormElementComponent(element.type);
154
+ const Element = _this.getFormElementComponent(element.type);
152
155
  if (!Element) {
153
156
  logger.error(`Unknown form element type: ${element.type}`);
154
157
  return null;
@@ -159,13 +162,13 @@ class Builder extends Component {
159
162
  switch (element.type) {
160
163
  case ELEMENT_TYPE_COUNTRY:
161
164
  {
162
- elementData.options = element.options || this.countryList;
165
+ elementData.options = element.options || _this.countryList;
163
166
  break;
164
167
  }
165
168
  case ELEMENT_TYPE_PROVINCE:
166
169
  {
167
170
  // Province selection only makes sense with a country being selected, or from custom options
168
- const countryElement = this.formElements.find(el => el.type === ELEMENT_TYPE_COUNTRY);
171
+ const countryElement = _this.formElements.find(el => el.type === ELEMENT_TYPE_COUNTRY);
169
172
  elementData.options = countryElement && formData[countryElement.id] ? buildProvinceList(formData[countryElement.id],
170
173
  // Auto-select with "empty" when not required
171
174
  element.required ? null : emptySelectOption) : {};
@@ -174,7 +177,7 @@ class Builder extends Component {
174
177
  default:
175
178
  break;
176
179
  }
177
- return /*#__PURE__*/React.createElement(Element, {
180
+ return /*#__PURE__*/_jsx(Element, {
178
181
  name: elementName,
179
182
  element: elementData,
180
183
  errorText: elementErrorText,
@@ -183,55 +186,58 @@ class Builder extends Component {
183
186
  formName: formName
184
187
  });
185
188
  };
186
- this.state = {
189
+ _this.state = {
187
190
  elementVisibility: {},
188
191
  formData: {}
189
192
  };
190
193
 
191
194
  // Reorganize form elements into a structure that can be easily rendered
192
- const formElements = buildFormElements(props.config, this.elementChangeHandler);
195
+ const formElements = buildFormElements(props.config, _this.elementChangeHandler);
193
196
  // Compute defaults
194
197
  const formDefaults = buildFormDefaults(formElements, props.defaults);
195
198
  // Assign defaults to state
196
- this.state.formData = formDefaults;
199
+ _this.state.formData = formDefaults;
197
200
 
198
201
  // Handle fixed visibilities
199
202
  formElements.forEach(element => {
200
203
  // Assume as visible except it's explicitly set to "false"
201
- this.state.elementVisibility[element.id] = element.visible !== false;
204
+ _this.state.elementVisibility[element.id] = element.visible !== false;
202
205
  });
203
- this.actionListener = new ActionListener(buildProvinceList, formDefaults);
204
- this.actionListener.attachAll(formElements);
206
+ _this.actionListener = new ActionListener(buildProvinceList, formDefaults);
207
+ _this.actionListener.attachAll(formElements);
205
208
 
206
209
  // Sort the elements after attaching action listeners to keep action hierarchy same as creation
207
- this.formElements = formElements.sort(this.elementSortFunc);
210
+ _this.formElements = formElements.sort(_this.elementSortFunc);
208
211
 
209
212
  // Assemble combined country/province list based on the config element
210
- const _countryElement = this.formElements.find(el => el.type === ELEMENT_TYPE_COUNTRY);
213
+ const _countryElement = _this.formElements.find(el => el.type === ELEMENT_TYPE_COUNTRY);
211
214
  if (_countryElement) {
212
- this.countryList = buildCountryList(_countryElement, emptySelectOption);
213
- const provinceElement = this.formElements.find(el => el.type === ELEMENT_TYPE_PROVINCE);
215
+ _this.countryList = buildCountryList(_countryElement, emptySelectOption);
216
+ const provinceElement = _this.formElements.find(el => el.type === ELEMENT_TYPE_PROVINCE);
214
217
  if (provinceElement && provinceElement.required && !!formDefaults[_countryElement.id] && !formDefaults[provinceElement.id]) {
215
218
  // Set default for province field for given country
216
219
  const [first] = Object.keys(buildProvinceList(formDefaults[_countryElement.id]));
217
220
  if (first) {
218
- this.state.formData[provinceElement.id] = first;
221
+ _this.state.formData[provinceElement.id] = first;
219
222
  }
220
223
  }
221
224
  }
222
225
 
223
226
  // Final form initialization, by triggering actionListeners and enable rendering for elements
224
- let _newState = this.state;
225
- this.formElements.forEach(element => {
226
- _newState = this.actionListener.notify(element.id, this.state, _newState);
227
+ let _newState = _this.state;
228
+ _this.formElements.forEach(element => {
229
+ _newState = _this.actionListener.notify(element.id, _this.state, _newState);
227
230
  });
228
- this.state = _newState;
231
+ _this.state = _newState;
232
+ return _this;
229
233
  }
234
+ _inheritsLoose(Builder, _Component);
235
+ var _proto = Builder.prototype;
230
236
  /**
231
237
  * Renders the component based on the given config
232
238
  * @return {JSX.Element}
233
239
  */
234
- render() {
240
+ _proto.render = function render() {
235
241
  const {
236
242
  name,
237
243
  className,
@@ -240,44 +246,49 @@ class Builder extends Component {
240
246
  // Convert validation errors for easier handling
241
247
  const validationErrors = buildValidationErrorList(this.props.validationErrors);
242
248
  const validationErrorsAmount = Object.entries(validationErrors).length;
243
- return /*#__PURE__*/React.createElement(Form, {
249
+ return /*#__PURE__*/_jsxs(Form, {
244
250
  className: _camelCase(name),
245
- onSubmit: onSubmit
246
- }, validationErrorsAmount > 0 && /*#__PURE__*/React.createElement("div", {
247
- className: "sr-only"
248
- }, /*#__PURE__*/React.createElement(I18n.Text, {
249
- string: "login.errorAmount",
250
- params: {
251
- amount: validationErrorsAmount
252
- }
253
- })), /*#__PURE__*/React.createElement("div", {
254
- className: className
255
- }, this.formElements.map(element => /*#__PURE__*/React.createElement(Fragment, {
256
- key: `${name}_${element.id}`
257
- }, /*#__PURE__*/React.createElement(Portal, {
258
- name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}.${BEFORE}`,
259
- props: {
260
- formName: name,
261
- errorText: validationErrors[element.id] || '',
262
- element
263
- }
264
- }), /*#__PURE__*/React.createElement(Portal, {
265
- name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}`,
266
- props: {
267
- formName: name,
268
- errorText: validationErrors[element.id] || '',
269
- element
270
- }
271
- }, this.renderElement(name, element, validationErrors[element.id] || '')), /*#__PURE__*/React.createElement(Portal, {
272
- name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}.${AFTER}`,
273
- props: {
274
- formName: name,
275
- errorText: validationErrors[element.id] || '',
276
- element
277
- }
278
- })))));
279
- }
280
- }
251
+ onSubmit: onSubmit,
252
+ children: [validationErrorsAmount > 0 && /*#__PURE__*/_jsx("div", {
253
+ className: "sr-only",
254
+ children: /*#__PURE__*/_jsx(I18n.Text, {
255
+ string: "login.errorAmount",
256
+ params: {
257
+ amount: validationErrorsAmount
258
+ }
259
+ })
260
+ }), /*#__PURE__*/_jsx("div", {
261
+ className: className,
262
+ children: this.formElements.map(element => /*#__PURE__*/_jsxs(Fragment, {
263
+ children: [/*#__PURE__*/_jsx(Portal, {
264
+ name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}.${BEFORE}`,
265
+ props: {
266
+ formName: name,
267
+ errorText: validationErrors[element.id] || '',
268
+ element
269
+ }
270
+ }), /*#__PURE__*/_jsx(Portal, {
271
+ name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}`,
272
+ props: {
273
+ formName: name,
274
+ errorText: validationErrors[element.id] || '',
275
+ element
276
+ },
277
+ children: this.renderElement(name, element, validationErrors[element.id] || '')
278
+ }), /*#__PURE__*/_jsx(Portal, {
279
+ name: `${sanitizePortalName(name)}.${sanitizePortalName(element.id)}.${AFTER}`,
280
+ props: {
281
+ formName: name,
282
+ errorText: validationErrors[element.id] || '',
283
+ element
284
+ }
285
+ })]
286
+ }, `${name}_${element.id}`))
287
+ })]
288
+ });
289
+ };
290
+ return Builder;
291
+ }(Component);
281
292
  _Builder = Builder;
282
293
  Builder.defaultElements = {
283
294
  [ELEMENT_TYPE_EMAIL]: ElementText,