@shopgate/engage 7.32.0-beta.1 → 7.32.0-beta.10

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 (529) hide show
  1. package/README.md +0 -1
  2. package/account/components/Profile/Profile.provider.d.ts +1 -1
  3. package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
  4. package/account/components/Profile/ProfileAddressBook.js +13 -22
  5. package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
  6. package/account/components/Profile/ProfileAddressCard.js +9 -18
  7. package/account/components/Profile/ProfileForm.d.ts.map +1 -1
  8. package/account/components/Profile/ProfileForm.js +15 -42
  9. package/account/components/ProfileContact/ProfileContact.js +13 -21
  10. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +2 -1
  11. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
  12. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +61 -5
  13. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +7 -1
  14. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -1
  15. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +14 -2
  16. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +15 -2
  17. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
  18. package/admin-preview/constants/index.d.ts +0 -12
  19. package/admin-preview/constants/index.d.ts.map +1 -1
  20. package/admin-preview/constants/index.js +0 -16
  21. package/admin-preview/helpers/_internal/detection.d.ts +53 -0
  22. package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
  23. package/admin-preview/helpers/_internal/detection.js +93 -0
  24. package/admin-preview/helpers/index.d.ts +7 -0
  25. package/admin-preview/helpers/index.d.ts.map +1 -1
  26. package/admin-preview/helpers/index.js +12 -4
  27. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
  28. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
  29. package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
  30. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +22 -0
  31. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
  32. package/admin-preview/initialization/awaitInitialFrontendSettings.js +84 -0
  33. package/back-in-stock/components/BackInStockButton/index.js +5 -5
  34. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -5
  35. package/cart/components/CartItem/CartItemProductLayout.js +2 -1
  36. package/cart/components/CartItem/CartItemProductLayoutWide.js +2 -2
  37. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
  38. package/cart/components/CartItem/CartItemProductProvider.connector.js +0 -2
  39. package/cart/components/CartItem/CartItemProductProvider.js +3 -30
  40. package/cart/components/CartItem/CartItemProductProvider.types.js +0 -1
  41. package/cart/components/CartItem/CartItemQuantityPicker.js +1 -0
  42. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
  43. package/cart/components/CartItems/CartItems.js +8 -10
  44. package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
  45. package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
  46. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
  47. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
  48. package/cart/components/PaymentBar/PaymentBarContent.js +1 -1
  49. package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
  50. package/category/components/CategoryImage/index.js +24 -17
  51. package/checkout/components/AddressBook/AddressList.js +14 -23
  52. package/checkout/components/Checkout/CheckoutActions.js +4 -3
  53. package/checkout/components/Checkout/CheckoutAddress.js +8 -0
  54. package/checkout/components/Checkout/CheckoutSection.js +6 -2
  55. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
  56. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
  57. package/components/Badge/Badge.d.ts +30 -0
  58. package/components/Badge/Badge.d.ts.map +1 -0
  59. package/components/Badge/Badge.js +48 -0
  60. package/components/Badge/index.d.ts +3 -0
  61. package/components/Badge/index.d.ts.map +1 -0
  62. package/components/Badge/index.js +1 -0
  63. package/components/Card/Card.d.ts +27 -0
  64. package/components/Card/Card.d.ts.map +1 -0
  65. package/components/Card/Card.js +57 -0
  66. package/components/Card/index.d.ts +4 -0
  67. package/components/Card/index.d.ts.map +1 -0
  68. package/components/Card/index.js +2 -0
  69. package/components/Card/useCardAppearance.d.ts +11 -0
  70. package/components/Card/useCardAppearance.d.ts.map +1 -0
  71. package/components/Card/useCardAppearance.js +22 -0
  72. package/components/ChipLayout/index.js +2 -4
  73. package/components/Logo/index.d.ts.map +1 -1
  74. package/components/Logo/index.js +3 -6
  75. package/components/NavigationHandler/connector.js +1 -1
  76. package/components/NavigationHandler/index.d.ts +2 -2
  77. package/components/Paper/Paper.d.ts +48 -0
  78. package/components/Paper/Paper.d.ts.map +1 -0
  79. package/components/Paper/Paper.js +64 -0
  80. package/components/Paper/index.d.ts +3 -0
  81. package/components/Paper/index.d.ts.map +1 -0
  82. package/components/Paper/index.js +1 -0
  83. package/components/PickerUtilize/index.d.ts +2 -1
  84. package/components/PickerUtilize/index.d.ts.map +1 -1
  85. package/components/RadioCard/RadioCard.d.ts.map +1 -1
  86. package/components/RadioCard/RadioCard.js +2 -1
  87. package/components/SheetList/components/Item/index.js +8 -8
  88. package/components/Tabs/components/Tab.d.ts.map +1 -1
  89. package/components/Tabs/components/Tab.js +14 -16
  90. package/components/Typography/Typography.d.ts +1 -1
  91. package/components/View/components/Above/index.d.ts.map +1 -1
  92. package/components/View/components/Above/index.js +3 -1
  93. package/components/View/components/Below/index.d.ts.map +1 -1
  94. package/components/View/components/Below/index.js +3 -1
  95. package/components/View/components/Content/index.d.ts +2 -1
  96. package/components/View/components/Content/index.d.ts.map +1 -1
  97. package/components/View/components/Content/index.js +4 -1
  98. package/components/constants.d.ts +6 -0
  99. package/components/constants.d.ts.map +1 -0
  100. package/components/index.d.ts +5 -1
  101. package/components/index.d.ts.map +1 -1
  102. package/components/index.js +4 -2
  103. package/components/v2/Button/Button.d.ts +24 -13
  104. package/components/v2/Button/Button.d.ts.map +1 -1
  105. package/components/v2/Button/Button.js +139 -41
  106. package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
  107. package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
  108. package/components/v2/ButtonBase/ButtonBase.js +192 -17
  109. package/components/v2/ButtonBase/Ripple.d.ts +2 -1
  110. package/components/v2/ButtonBase/Ripple.d.ts.map +1 -1
  111. package/components/v2/ButtonBase/hooks.d.ts +0 -1
  112. package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
  113. package/components/v2/ButtonBase/hooks.js +36 -12
  114. package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
  115. package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  116. package/components/v2/ButtonGroup/ButtonGroup.js +49 -26
  117. package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
  118. package/components/v2/CircularProgress/CircularProgress.js +10 -5
  119. package/core/helpers/getFullImageSource.d.ts +5 -1
  120. package/core/helpers/getFullImageSource.d.ts.map +1 -1
  121. package/core/helpers/getFullImageSource.js +30 -14
  122. package/core/helpers/i18n.d.ts +4 -0
  123. package/core/helpers/i18n.d.ts.map +1 -1
  124. package/core/helpers/i18n.js +3 -0
  125. package/core/hooks/html/useLoadImage.d.ts +3 -3
  126. package/core/hooks/html/useLoadImage.d.ts.map +1 -1
  127. package/core/hooks/html/useLoadImage.js +2 -2
  128. package/core/hooks/useLocalStorage.d.ts +8 -0
  129. package/core/hooks/useLocalStorage.d.ts.map +1 -1
  130. package/core/hooks/useLocalStorage.js +22 -15
  131. package/core/hooks/useNavigation.d.ts +10 -2
  132. package/core/hooks/useNavigation.d.ts.map +1 -1
  133. package/core/hooks/useNavigation.js +1 -2
  134. package/core/initialization/fetchSettings.d.ts +12 -0
  135. package/core/initialization/fetchSettings.d.ts.map +1 -0
  136. package/core/initialization/fetchSettings.js +134 -0
  137. package/core/initialization/index.d.ts +33 -2
  138. package/core/initialization/index.d.ts.map +1 -1
  139. package/core/initialization/index.js +44 -103
  140. package/core/router/conductor.d.ts +9 -0
  141. package/core/router/helpers.d.ts +28 -15
  142. package/core/router/helpers.d.ts.map +1 -1
  143. package/core/router/helpers.js +8 -8
  144. package/development/components/DevelopmentSettings/DevelopmentSettings.js +3 -3
  145. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +3 -3
  146. package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -2
  147. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
  148. package/favorites/components/Item/Item.d.ts +1 -1
  149. package/favorites/components/Item/Item.d.ts.map +1 -1
  150. package/favorites/components/Item/Item.js +7 -7
  151. package/favorites/components/List/List.d.ts +1 -1
  152. package/favorites/components/List/List.d.ts.map +1 -1
  153. package/favorites/components/List/List.js +0 -1
  154. package/favorites/components/List/ListContent.js +4 -5
  155. package/favorites/components/Lists/Lists.js +17 -6
  156. package/filter/components/FilterPageContent/components/ApplyButton/index.js +8 -10
  157. package/filter/components/FilterPageContent/components/ResetButton/index.js +8 -6
  158. package/filter/components/PriceSlider/index.js +6 -1
  159. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
  160. package/locations/components/FulfillmentSheet/FulfillmentSheetContent.js +4 -8
  161. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
  162. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
  163. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +9 -18
  164. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
  165. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +9 -19
  166. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
  167. package/locations/components/ReserveForm/ReserveForm.js +6 -7
  168. package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
  169. package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
  170. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
  171. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
  172. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
  173. package/locations/components/StoreList/StoreListProduct.js +2 -3
  174. package/locations/components/StoreList/StoreListSearch.js +1 -0
  175. package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
  176. package/login/components/ForgotPassword/ForgotPassword.js +11 -23
  177. package/mocks/date.js +31 -0
  178. package/mocks/index.js +3 -0
  179. package/mocks/pipelineRequest.js +1 -0
  180. package/mocks/subscriptions.js +1 -0
  181. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
  182. package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
  183. package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
  184. package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
  185. package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
  186. package/package.json +12 -12
  187. package/page/components/NotFound.d.ts +7 -0
  188. package/page/components/NotFound.d.ts.map +1 -0
  189. package/page/components/NotFound.js +8 -8
  190. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +52 -0
  191. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts.map +1 -0
  192. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +4 -4
  193. package/page/components/ResponsiveWidgetImage/index.d.ts +2 -0
  194. package/page/components/ResponsiveWidgetImage/index.d.ts.map +1 -0
  195. package/page/components/WidgetRichText/WidgetRichText.d.ts +25 -0
  196. package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
  197. package/page/components/WidgetRichText/index.d.ts +2 -0
  198. package/page/components/WidgetRichText/index.d.ts.map +1 -0
  199. package/page/components/WidgetVideo/WidgetVideo.d.ts +43 -0
  200. package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -0
  201. package/page/components/WidgetVideo/WidgetVideo.js +33 -39
  202. package/page/components/WidgetVideo/index.d.ts +2 -0
  203. package/page/components/WidgetVideo/index.d.ts.map +1 -0
  204. package/page/components/Widgets/Overlay.d.ts +17 -0
  205. package/page/components/Widgets/Overlay.d.ts.map +1 -0
  206. package/page/components/Widgets/Overlay.js +24 -38
  207. package/page/components/Widgets/Tooltip.d.ts +20 -0
  208. package/page/components/Widgets/Tooltip.d.ts.map +1 -0
  209. package/page/components/Widgets/Tooltip.js +6 -10
  210. package/page/components/Widgets/Widget.d.ts +32 -0
  211. package/page/components/Widgets/Widget.d.ts.map +1 -0
  212. package/page/components/Widgets/Widget.js +7 -18
  213. package/page/components/Widgets/WidgetContext.d.ts +32 -38
  214. package/page/components/Widgets/WidgetContext.d.ts.map +1 -0
  215. package/page/components/Widgets/WidgetContext.js +2 -8
  216. package/page/components/Widgets/WidgetProvider.d.ts +25 -0
  217. package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
  218. package/page/components/Widgets/WidgetProvider.js +5 -12
  219. package/page/components/Widgets/Widgets.d.ts +16 -0
  220. package/page/components/Widgets/Widgets.d.ts.map +1 -0
  221. package/page/components/Widgets/Widgets.js +5 -12
  222. package/page/components/Widgets/WidgetsPreviewContext.d.ts +21 -0
  223. package/page/components/Widgets/WidgetsPreviewContext.d.ts.map +1 -0
  224. package/page/components/Widgets/WidgetsPreviewContext.js +5 -7
  225. package/page/components/Widgets/WidgetsPreviewProvider.d.ts +18 -0
  226. package/page/components/Widgets/WidgetsPreviewProvider.d.ts.map +1 -0
  227. package/page/components/Widgets/WidgetsPreviewProvider.js +5 -6
  228. package/page/components/Widgets/constants.d.ts +5 -0
  229. package/page/components/Widgets/constants.d.ts.map +1 -0
  230. package/page/components/Widgets/constants.js +3 -1
  231. package/page/components/Widgets/events.d.ts +38 -0
  232. package/page/components/Widgets/events.d.ts.map +1 -0
  233. package/page/components/Widgets/events.js +8 -12
  234. package/page/components/Widgets/helpers.d.ts +50 -0
  235. package/page/components/Widgets/helpers.d.ts.map +1 -0
  236. package/page/components/Widgets/helpers.js +8 -13
  237. package/page/components/Widgets/hooks.d.ts +13 -0
  238. package/page/components/Widgets/hooks.d.ts.map +1 -0
  239. package/page/components/Widgets/hooks.js +13 -11
  240. package/page/components/Widgets/index.d.ts +3 -0
  241. package/page/components/Widgets/index.d.ts.map +1 -0
  242. package/page/components/Widgets/types.d.ts +111 -113
  243. package/page/components/Widgets/types.d.ts.map +1 -0
  244. package/page/components/Widgets/types.js +1 -0
  245. package/page/components/index.d.ts +5 -0
  246. package/page/components/index.d.ts.map +1 -0
  247. package/page/constants/actionTypes.d.ts +4 -0
  248. package/page/constants/actionTypes.d.ts.map +1 -0
  249. package/page/constants/index.d.ts +25 -0
  250. package/page/constants/index.d.ts.map +1 -0
  251. package/page/constants/index.js +5 -3
  252. package/page/helpers/index.d.ts +70 -62
  253. package/page/helpers/index.d.ts.map +1 -0
  254. package/page/helpers/index.js +31 -29
  255. package/page/hooks/index.d.ts +54 -53
  256. package/page/hooks/index.d.ts.map +1 -0
  257. package/page/hooks/index.js +20 -15
  258. package/page/selectors/index.d.ts +32 -0
  259. package/page/selectors/index.d.ts.map +1 -0
  260. package/page/widgets/Button/Button.js +2 -3
  261. package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
  262. package/page/widgets/ProductList/ProductList.js +18 -14
  263. package/page/widgets/ProductSlider/ProductSlider.js +1 -15
  264. package/page/widgets/Video/Video.d.ts +6 -0
  265. package/page/widgets/Video/Video.d.ts.map +1 -0
  266. package/page/widgets/Video/Video.js +0 -2
  267. package/page/widgets/Video/hooks.d.ts +53 -0
  268. package/page/widgets/Video/hooks.d.ts.map +1 -0
  269. package/page/widgets/Video/hooks.js +4 -12
  270. package/page/widgets/Video/index.d.ts +2 -0
  271. package/page/widgets/Video/index.d.ts.map +1 -0
  272. package/product/components/Description/index.js +0 -2
  273. package/product/components/FilterBar/components/Content/components/FilterButton/index.js +2 -6
  274. package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -5
  275. package/product/components/Media/FeaturedMedia.js +7 -1
  276. package/product/components/Media/MediaImage.js +24 -23
  277. package/product/components/Media/MediaPlaceholder.js +4 -7
  278. package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
  279. package/product/components/MediaSlider/constants.js +1 -12
  280. package/product/components/OrderQuantityHint/index.js +16 -1
  281. package/product/components/ProductCard/index.js +36 -23
  282. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
  283. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
  284. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +6 -1
  285. package/product/components/ProductGrid/components/Item/index.js +10 -2
  286. package/product/components/ProductGrid/components/Layout/index.js +19 -4
  287. package/product/components/ProductGrid/constants.d.ts +2 -0
  288. package/product/components/ProductGrid/constants.d.ts.map +1 -0
  289. package/product/components/ProductGrid/constants.js +1 -0
  290. package/product/components/ProductGrid/hooks.d.ts +11 -0
  291. package/product/components/ProductGrid/hooks.d.ts.map +1 -0
  292. package/product/components/ProductGrid/hooks.js +48 -0
  293. package/product/components/ProductGrid/index.js +3 -6
  294. package/product/components/ProductGridPrice/index.js +0 -1
  295. package/product/components/ProductImage/ProductImage.d.ts +42 -0
  296. package/product/components/ProductImage/ProductImage.d.ts.map +1 -0
  297. package/product/components/ProductImage/ProductImage.js +158 -0
  298. package/product/components/ProductImage/ProductImagePlaceholder.d.ts +23 -0
  299. package/product/components/ProductImage/ProductImagePlaceholder.d.ts.map +1 -0
  300. package/product/components/ProductImage/ProductImagePlaceholder.js +12 -17
  301. package/product/components/ProductImage/constants.d.ts +7 -0
  302. package/product/components/ProductImage/constants.d.ts.map +1 -0
  303. package/product/components/ProductImage/constants.js +6 -0
  304. package/product/components/ProductImage/hooks.d.ts +8 -0
  305. package/product/components/ProductImage/hooks.d.ts.map +1 -0
  306. package/product/components/ProductImage/hooks.js +32 -0
  307. package/product/components/ProductImage/index.d.ts +3 -0
  308. package/product/components/ProductImage/index.d.ts.map +1 -0
  309. package/product/components/ProductImage/index.js +1 -201
  310. package/product/components/ProductList/components/Item/index.js +5 -3
  311. package/product/components/ProductList/components/Layout/index.js +8 -20
  312. package/product/components/ProductName/ProductName.d.ts +1 -1
  313. package/product/components/ProductName/ProductName.d.ts.map +1 -1
  314. package/product/components/ProductName/ProductNameContent.d.ts +2 -1
  315. package/product/components/ProductName/ProductNameContent.d.ts.map +1 -1
  316. package/product/components/ProductRatingStars/ProductRatingStars.d.ts +1 -1
  317. package/product/components/ProductRatingStars/ProductRatingStars.js +2 -4
  318. package/product/components/ProductSlider/constants.d.ts +3 -0
  319. package/product/components/ProductSlider/constants.d.ts.map +1 -0
  320. package/product/components/ProductSlider/constants.js +2 -0
  321. package/product/components/ProductSlider/hooks.d.ts +7 -0
  322. package/product/components/ProductSlider/hooks.d.ts.map +1 -0
  323. package/product/components/ProductSlider/hooks.js +40 -0
  324. package/product/components/ProductSlider/index.js +8 -8
  325. package/product/components/Rating/index.js +2 -4
  326. package/product/components/RelationsSlider/RelationsSheet.js +1 -5
  327. package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
  328. package/product/components/RelationsSlider/constants.d.ts +3 -0
  329. package/product/components/RelationsSlider/constants.d.ts.map +1 -0
  330. package/product/components/RelationsSlider/constants.js +2 -1
  331. package/product/components/RelationsSlider/hooks.d.ts +6 -0
  332. package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
  333. package/product/components/RelationsSlider/hooks.js +34 -0
  334. package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
  335. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +16 -34
  336. package/product/helpers/index.js +29 -11
  337. package/product/hooks/index.js +3 -1
  338. package/product/hooks/useLoadProductImage.js +4 -2
  339. package/product/hooks/useShowEmptyRatingStars.d.ts +7 -0
  340. package/product/hooks/useShowEmptyRatingStars.d.ts.map +1 -0
  341. package/product/hooks/useShowEmptyRatingStars.js +21 -0
  342. package/product/index.js +0 -1
  343. package/product/selectors/mocks/productProperties.mock.js +49 -0
  344. package/push-opt-in/components/PushOptInModal/index.js +4 -4
  345. package/registration/components/Registration/RegistrationFormActions.js +4 -4
  346. package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
  347. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
  348. package/settings/action-creators/appSettings.d.ts +3 -3
  349. package/settings/action-creators/appSettings.d.ts.map +1 -1
  350. package/settings/constants/appSettings.d.ts +3 -0
  351. package/settings/constants/appSettings.d.ts.map +1 -1
  352. package/settings/constants/appSettings.js +6 -1
  353. package/settings/constants/imageSettings.d.ts +52 -0
  354. package/settings/constants/imageSettings.d.ts.map +1 -0
  355. package/settings/constants/imageSettings.js +69 -0
  356. package/settings/helpers/index.d.ts +3 -0
  357. package/settings/helpers/index.d.ts.map +1 -0
  358. package/settings/helpers/index.js +1 -0
  359. package/settings/helpers/resolveImageSettings.d.ts +70 -0
  360. package/settings/helpers/resolveImageSettings.d.ts.map +1 -0
  361. package/settings/helpers/resolveImageSettings.js +171 -0
  362. package/settings/helpers/toImageQuality.d.ts +7 -0
  363. package/settings/helpers/toImageQuality.d.ts.map +1 -0
  364. package/settings/helpers/toImageQuality.js +44 -0
  365. package/settings/helpers/toThumborColor.d.ts +15 -0
  366. package/settings/helpers/toThumborColor.d.ts.map +1 -0
  367. package/settings/helpers/toThumborColor.js +51 -0
  368. package/settings/hooks/index.d.ts +2 -0
  369. package/settings/hooks/index.d.ts.map +1 -0
  370. package/settings/hooks/index.js +1 -0
  371. package/settings/hooks/useImageSettings.d.ts +28 -0
  372. package/settings/hooks/useImageSettings.d.ts.map +1 -0
  373. package/settings/hooks/useImageSettings.js +39 -0
  374. package/settings/reducers/appSettings.d.ts.map +1 -1
  375. package/settings/reducers/appSettings.js +100 -8
  376. package/settings/reducers/index.d.ts +3 -3
  377. package/settings/selectors/appSettings.d.ts +114 -1
  378. package/settings/selectors/appSettings.d.ts.map +1 -1
  379. package/settings/selectors/appSettings.js +75 -1
  380. package/settings/types/appSettings.d.ts +244 -0
  381. package/settings/types/appSettings.d.ts.map +1 -1
  382. package/settings/types/appSettings.js +124 -1
  383. package/styles/helpers/index.d.ts +2 -0
  384. package/styles/helpers/index.js +2 -0
  385. package/styles/helpers/loadFontCss.d.ts +22 -0
  386. package/styles/helpers/loadFontCss.d.ts.map +1 -0
  387. package/styles/helpers/loadFontCss.js +138 -0
  388. package/styles/helpers/loadThemeCss.d.ts +14 -0
  389. package/styles/helpers/loadThemeCss.d.ts.map +1 -0
  390. package/styles/helpers/loadThemeCss.js +123 -0
  391. package/styles/index.d.ts +1 -1
  392. package/styles/index.d.ts.map +1 -1
  393. package/styles/index.js +1 -1
  394. package/styles/reset/root.js +23 -4
  395. package/styles/reset/typographyCustomProps.d.ts +12 -0
  396. package/styles/reset/typographyCustomProps.d.ts.map +1 -0
  397. package/styles/reset/typographyCustomProps.js +11 -0
  398. package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
  399. package/styles/theme/createDefaultThemeOptions/index.js +107 -4
  400. package/styles/theme/createTheme/createComponents.d.ts +2 -2
  401. package/styles/theme/createTheme/createComponents.d.ts.map +1 -1
  402. package/styles/theme/createTheme/createComponents.js +0 -1
  403. package/styles/theme/createTheme/createComponents.types.d.ts +117 -0
  404. package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
  405. package/styles/theme/createTheme/createComponents.types.js +119 -2
  406. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
  407. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +13 -3
  408. package/styles/theme/createTheme/createPalette.types.d.ts +5 -0
  409. package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
  410. package/styles/theme/createTheme/createPalette.types.js +7 -2
  411. package/styles/theme/createTheme/createShape.d.ts +3 -0
  412. package/styles/theme/createTheme/createShape.d.ts.map +1 -1
  413. package/styles/theme/createTheme/createSpacing.js +4 -1
  414. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +4 -2
  415. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
  416. package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
  417. package/styles/theme/createTheme/createTypography.d.ts +2 -1
  418. package/styles/theme/createTheme/createTypography.js +59 -18
  419. package/styles/theme/createTheme/helpers/cssVarsParser.d.ts.map +1 -1
  420. package/styles/theme/createTheme/helpers/cssVarsParser.js +10 -3
  421. package/styles/theme/createTheme/index.d.ts +2 -1
  422. package/styles/theme/createTheme/index.d.ts.map +1 -1
  423. package/styles/theme/createTheme/index.js +5 -2
  424. package/styles/theme/createTheme/layout.d.ts +23 -0
  425. package/styles/theme/createTheme/layout.d.ts.map +1 -0
  426. package/styles/theme/createTheme/layout.js +20 -0
  427. package/styles/theme/createTheme/shadows.d.ts +11 -1
  428. package/styles/theme/createTheme/shadows.d.ts.map +1 -1
  429. package/styles/theme/createTheme/shadows.js +41 -7
  430. package/styles/theme/createTheme/transitions.d.ts +4 -0
  431. package/styles/theme/createTheme/transitions.js +3 -1
  432. package/styles/theme/createTheme/types.d.ts +41 -9
  433. package/styles/theme/createTheme/types.d.ts.map +1 -1
  434. package/styles/theme/createTheme/types.js +16 -4
  435. package/styles/theme/hocs/index.d.ts +2 -0
  436. package/styles/theme/hocs/index.d.ts.map +1 -0
  437. package/styles/theme/hocs/index.js +1 -0
  438. package/styles/theme/hocs/withTheme.d.ts +21 -0
  439. package/styles/theme/hocs/withTheme.d.ts.map +1 -0
  440. package/styles/theme/hocs/withTheme.js +33 -0
  441. package/styles/theme/hooks/useColorScheme.d.ts +4 -3
  442. package/styles/theme/hooks/useColorScheme.d.ts.map +1 -1
  443. package/styles/theme/hooks/useColorScheme.js +4 -3
  444. package/styles/theme/hooks/useMediaQuery.d.ts +7 -0
  445. package/styles/theme/hooks/useMediaQuery.d.ts.map +1 -1
  446. package/styles/theme/hooks/useMediaQuery.js +5 -5
  447. package/styles/theme/hooks/useTheme.js +1 -1
  448. package/styles/theme/index.d.ts +5 -1
  449. package/styles/theme/index.d.ts.map +1 -1
  450. package/styles/theme/index.js +2 -1
  451. package/styles/theme/providers/ActiveBreakpointProvider.d.ts +1 -1
  452. package/styles/theme/providers/ColorSchemeContext.d.ts +40 -0
  453. package/styles/theme/providers/ColorSchemeContext.d.ts.map +1 -0
  454. package/styles/theme/providers/ColorSchemeContext.js +14 -0
  455. package/styles/theme/providers/ThemeContext.d.ts +3 -0
  456. package/styles/theme/providers/ThemeContext.d.ts.map +1 -0
  457. package/styles/theme/providers/ThemeContext.js +2 -0
  458. package/styles/theme/providers/ThemeProvider.d.ts +4 -14
  459. package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
  460. package/styles/theme/providers/ThemeProvider.js +88 -26
  461. package/styles/theme/utils/color.d.ts +12 -12
  462. package/styles/theme/utils/color.d.ts.map +1 -1
  463. package/tracking/components/CookieConsentModal/index.js +3 -4
  464. package/tracking/components/PrivacySettings/index.js +3 -3
  465. package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
  466. package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
  467. package/components/ChipLayout/spec.js +0 -41
  468. package/components/Logo/spec.js +0 -12
  469. package/components/NavigationHandler/spec.js +0 -84
  470. package/components/Picker/spec.js +0 -94
  471. package/components/PickerUtilize/spec.js +0 -35
  472. package/components/RangeSlider/spec.js +0 -190
  473. package/components/SheetList/components/Item/spec.js +0 -101
  474. package/components/SheetList/spec.js +0 -43
  475. package/components/TimeBoundary/spec.js +0 -83
  476. package/filter/components/FilterItem/spec.js +0 -14
  477. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -46
  478. package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -29
  479. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -26
  480. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -34
  481. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -32
  482. package/filter/components/FilterPageContent/components/Selector/spec.js +0 -33
  483. package/filter/components/PriceSlider/components/Label/spec.js +0 -26
  484. package/filter/components/PriceSlider/spec.js +0 -30
  485. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
  486. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
  487. package/product/collections/index.js +0 -1
  488. package/product/components/EffectivityDates/constants.d.ts +0 -3
  489. package/product/components/EffectivityDates/constants.d.ts.map +0 -1
  490. package/product/components/EffectivityDates/helpers.d.ts +0 -6
  491. package/product/components/EffectivityDates/helpers.d.ts.map +0 -1
  492. package/product/components/FilterBar/components/Content/spec.js +0 -136
  493. package/product/components/Header/Shipping/spec.js +0 -36
  494. package/product/components/Header/Tiers/components/Tier/spec.js +0 -48
  495. package/product/components/Header/Tiers/spec.js +0 -64
  496. package/product/components/Media/helpers.d.ts +0 -2
  497. package/product/components/Media/helpers.d.ts.map +0 -1
  498. package/product/components/Options/components/Content/spec.js +0 -73
  499. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +0 -72
  500. package/product/components/ProductDiscountBadge/spec.js +0 -58
  501. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +0 -73
  502. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +0 -33
  503. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +0 -16
  504. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +0 -21
  505. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +0 -37
  506. package/product/components/ProductGrid/spec.js +0 -52
  507. package/product/components/ProductImage/connector.js +0 -12
  508. package/product/components/ProductImage/spec.js +0 -87
  509. package/product/components/ProductSlider/spec.js +0 -37
  510. package/product/components/Rating/spec.js +0 -58
  511. package/product/helpers/index.d.ts +0 -13
  512. package/product/helpers/index.d.ts.map +0 -1
  513. package/product/helpers/redirects.d.ts +0 -2
  514. package/product/helpers/redirects.d.ts.map +0 -1
  515. package/product/selectors/helpers/filterProperties.d.ts +0 -8
  516. package/product/selectors/helpers/filterProperties.d.ts.map +0 -1
  517. package/product/selectors/helpers/index.d.ts +0 -3
  518. package/product/selectors/helpers/index.d.ts.map +0 -1
  519. package/product/selectors/helpers/wrapMemoizedSelector.d.ts +0 -2
  520. package/product/selectors/helpers/wrapMemoizedSelector.d.ts.map +0 -1
  521. package/product/selectors/product.d.ts +0 -112
  522. package/product/selectors/product.d.ts.map +0 -1
  523. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +0 -52
  524. package/reviews/components/Reviews/components/Header/spec.js +0 -78
  525. package/reviews/components/Reviews/components/List/spec.js +0 -108
  526. package/reviews/components/Reviews/components/RatingCount/spec.js +0 -38
  527. package/reviews/components/Reviews/spec.js +0 -101
  528. package/tsconfig.build.json +0 -26
  529. package/tsconfig.json +0 -19
@@ -1,118 +1,41 @@
1
- import { withScope, captureMessage, Severity as SentrySeverity } from '@sentry/browser';
2
1
  import moment from 'moment';
3
2
  import { configureStore } from '@shopgate/pwa-common/store';
4
3
  import { appWillInit, appWillStart } from '@shopgate/pwa-common/action-creators/app';
5
4
  import { i18n, getAppBaseUrl, isDev, hasSGJavaScriptBridge, hasWebBridge } from '@shopgate/engage/core/helpers';
6
5
  import fetchClientInformation from '@shopgate/pwa-common/actions/client/fetchClientInformation';
7
- import appConfig from '@shopgate/pwa-common/helpers/config';
6
+ import { appConfig } from '@shopgate/engage';
8
7
  import { appInitialization, configuration } from '@shopgate/engage/core/collections';
9
8
  import { CONFIGURATION_COLLECTION_KEY_BASE_URL } from '@shopgate/engage/core/constants';
10
- import { loadCustomStyles } from '@shopgate/engage/styles';
11
- import { receiveShopSettings, errorShopSettings } from '@shopgate/engage/settings/action-creators/shopSettings';
12
- import { receiveMerchantSettings } from '@shopgate/engage/settings/action-creators/merchantSettings';
13
- const {
14
- locales: {
15
- currency: currencyLocale = null
16
- } = {},
17
- settingsUrl,
18
- merchantSettingsUrl
19
- } = appConfig;
20
- const REQUEST_TIMEOUT = 3000;
21
- /**
22
- * Injects a script tag to fetch the shop settings JSONP.
23
- * @param {string} id The script id
24
- * @param {string} src The script url
25
- * @param {Function} onError Callback for error situations.
26
- */
27
- const injectScript = (id, src, onError) => {
28
- let scriptTag = document.querySelector(`#${id}`);
29
- if (scriptTag) {
30
- scriptTag.remove();
31
- }
32
- scriptTag = document.createElement('script');
33
- scriptTag.setAttribute('src', src);
34
- scriptTag.setAttribute('id', id);
35
- scriptTag.onerror = onError;
36
- document.querySelector('head').appendChild(scriptTag);
37
- };
9
+ import { loadCustomStyles, loadThemeCss, loadFontCss } from '@shopgate/engage/styles';
10
+ import { getTypographyFontCssUrls } from '@shopgate/engage/settings/selectors/appSettings';
11
+ // Imported via its module path rather than the admin-preview helpers barrel, which ThemeProvider
12
+ // and loadThemeCss already import - this module reaches into the settings action creators.
13
+ import { awaitInitialFrontendSettings } from '@shopgate/engage/admin-preview/initialization/awaitInitialFrontendSettings';
14
+ import { fetchSettings } from "./fetchSettings";
38
15
 
39
16
  /**
40
- * Fetches settings
41
- * @param {Object} store Reference to the store
42
- * @returns {Promise}
17
+ * The app's redux store. Assembled here because configureStore is untyped JS whose JSDoc widens
18
+ * the return value to `Object`.
19
+ *
20
+ * dispatch stays permissive rather than using redux-thunk's ThunkDispatch: the action creators
21
+ * this module dispatches are untyped JS annotated `@returns {Object}` / `{Function}`, which match
22
+ * neither UnknownAction nor ThunkAction. Tightening it here would only force casts at every call
23
+ * site - it needs the JSDoc on those action creators to be fixed first.
43
24
  */
44
- const fetchSettings = store => new Promise((resolve, reject) => {
45
- if (!settingsUrl) {
46
- reject();
47
- return;
48
- }
49
- let timeout;
50
- let merchantReceived = null;
51
- let shopReceived = null;
52
25
 
53
- /**
54
- * Evaluates if completed.
55
- */
56
- const evaluateEnd = () => {
57
- if (!merchantReceived && merchantSettingsUrl || !shopReceived) {
58
- return;
59
- }
60
- clearTimeout(timeout);
61
- timeout = null;
62
- resolve();
63
- };
64
-
65
- // Add the callbacks for the JSONP
66
- window.setShopSettings = settings => {
67
- store.dispatch(receiveShopSettings(settings));
68
- shopReceived = true;
69
- evaluateEnd();
70
- };
71
- window.setMerchantSettings = settings => {
72
- store.dispatch(receiveMerchantSettings(settings));
73
- merchantReceived = true;
74
- evaluateEnd();
75
- };
76
-
77
- // Error handling
78
- injectScript('shop-settings-jsonp', settingsUrl, error => {
79
- withScope(scope => {
80
- scope.setLevel(SentrySeverity.Error);
81
- scope.setExtra('settingsUrl', settingsUrl);
82
- captureMessage('Fetching shop settings failed');
83
- });
84
- clearTimeout(timeout);
85
- timeout = null;
86
- store.dispatch(errorShopSettings(error));
87
- reject();
88
- });
89
- if (merchantSettingsUrl) {
90
- injectScript('merchant-settings-jsonp', merchantSettingsUrl, () => {
91
- withScope(scope => {
92
- scope.setLevel(SentrySeverity.Error);
93
- scope.setExtra('settingsUrl', merchantSettingsUrl);
94
- captureMessage('Fetching merchant settings failed');
95
- });
96
- clearTimeout(timeout);
97
- timeout = null;
98
- reject();
99
- });
100
- }
101
- timeout = setTimeout(() => {
102
- withScope(scope => {
103
- scope.setLevel(SentrySeverity.Warning);
104
- scope.setExtra('settingsUrl', settingsUrl);
105
- scope.setExtra('timeout', REQUEST_TIMEOUT);
106
- captureMessage('Fetching shop settings took too long');
107
- });
108
- }, REQUEST_TIMEOUT);
109
- });
26
+ const {
27
+ locales: {
28
+ currency: currencyLocale = null
29
+ } = {}
30
+ } = appConfig;
110
31
 
111
32
  /**
112
- *
113
- * @param {Object} locales An object with locales.
114
- * @param {Function} reducers The reducers from the theme.
115
- * @param {Array} subscribers The subscribers to the streams middleware.
33
+ * Initializes the app: sets up i18n, creates the store, fetches the client information and the
34
+ * dynamic settings, and runs all registered app initialization handlers.
35
+ * @param locales An object with locales.
36
+ * @param reducers The reducers from the theme.
37
+ * @param subscribers The subscribers to the streams middleware.
38
+ * @returns The initialized store.
116
39
  */
117
40
  export const initialize = async (locales, reducers, subscribers) => {
118
41
  moment.locale(process.env.LOCALE);
@@ -142,12 +65,30 @@ export const initialize = async (locales, reducers, subscribers) => {
142
65
  configuration.set(CONFIGURATION_COLLECTION_KEY_BASE_URL, getAppBaseUrl());
143
66
  store.dispatch(appWillInit(`${window.location.pathname}${window.location.search}`));
144
67
  try {
145
- const promises = [fetchSettings(store), loadCustomStyles()];
68
+ // The order of the style loaders does not affect the cascade: loadThemeCss and loadFontCss pin
69
+ // their links to their insertion points in the html template, while loadCustomStyles appends
70
+ // its link to the end of the head.
71
+ //
72
+ // The font css urls come from the app settings, so that loader is chained onto fetchSettings
73
+ // rather than started alongside it. Chaining keeps the other two running in parallel with the
74
+ // settings request instead of serializing everything behind it.
75
+ const promises = [fetchSettings(store).then(() => loadFontCss(getTypographyFontCssUrls(store.getState()))), loadCustomStyles(), loadThemeCss()];
146
76
  await Promise.all(promises);
147
77
  } catch (e) {
148
78
  // Nothing to see here.
149
79
  }
150
80
 
81
+ // Resolves at once outside the admin preview. Inside it, this holds app start until the admin
82
+ // sent its first settings payload, so the preview renders styled instead of painting the theme
83
+ // defaults first. Runs after fetchSettings, since the reducer merges and the preview has to be
84
+ // the later write.
85
+ await awaitInitialFrontendSettings(store);
86
+
87
+ // That payload can replace the configured font files, which were loaded above from whatever the
88
+ // jsonp settings carried, so they are synced again before anything renders. Outside the preview
89
+ // the urls are unchanged, and loadFontCss leaves the existing tags alone and resolves at once.
90
+ await loadFontCss(getTypographyFontCssUrls(store.getState()));
91
+
151
92
  // Execute all registered handlers from the AppInitialization collection
152
93
  await appInitialization.initialize({
153
94
  dispatch: store.dispatch,
@@ -0,0 +1,9 @@
1
+ import { Router } from '@virtuous/conductor';
2
+
3
+ /**
4
+ * `@virtuous/conductor` ships types for the `Router` class but not for the singleton instance it
5
+ * exports at runtime. Declared here so that TypeScript consumers can use it.
6
+ */
7
+ declare module '@virtuous/conductor' {
8
+ export const router: Router;
9
+ }
@@ -1,30 +1,43 @@
1
+ export interface NavigationState {
2
+ target?: string;
3
+ [key: string]: unknown;
4
+ }
5
+ export interface NavigationParams {
6
+ pathname: string;
7
+ state?: NavigationState;
8
+ silent?: boolean;
9
+ }
10
+ export interface PopParams {
11
+ steps?: number;
12
+ state?: NavigationState;
13
+ }
14
+ export declare const NAVIGATION_PUSH = "navigation.push";
15
+ export declare const NAVIGATION_POP = "navigation.pop";
16
+ export declare const NAVIGATION_REPLACE = "navigation.replace";
17
+ export declare const NAVIGATION_RESET = "navigation.reset";
1
18
  /**
2
19
  * Performs the PUSH navigation action.
3
- * @param {Object} params The history params.
20
+ * @param params The history params.
4
21
  */
5
- export function push(params: Object): void;
22
+ export declare function push(params: NavigationParams): void;
6
23
  /**
7
24
  * Performs the POP navigation action.
25
+ * @param params The history params. Pass `steps` to pop more than one route.
8
26
  */
9
- export function pop(): void;
27
+ export declare function pop(params?: PopParams): void;
10
28
  /**
11
29
  * Performs the REPLACE navigation action.
12
- * @param {Object} params The history params.
30
+ * @param params The history params.
13
31
  */
14
- export function replace(params: Object): void;
32
+ export declare function replace(params: NavigationParams): void;
15
33
  /**
16
34
  * Performs the RESET navigation action.
17
- * @param {Object} params The history params.
18
35
  */
19
- export function reset(): void;
36
+ export declare function reset(): void;
20
37
  /**
21
- * Performs the UPDATE navigation action.
22
- * @param {Object} state The meta state to add to a existing route.
23
- * @param {string} [routeId] The ID of the route to update.
38
+ * Adds meta state to an existing route.
39
+ * @param state The meta state to merge into the route.
40
+ * @param routeId The ID of the route to update. Defaults to the current route.
24
41
  */
25
- export function update(state: Object, routeId?: string): void;
26
- export const NAVIGATION_PUSH: "navigation.push";
27
- export const NAVIGATION_POP: "navigation.pop";
28
- export const NAVIGATION_REPLACE: "navigation.replace";
29
- export const NAVIGATION_RESET: "navigation.reset";
42
+ export declare function update(state: NavigationState, routeId?: string): void;
30
43
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../core/router/helpers.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH,6BAFW,MAAM,QAIhB;AAED;;GAEG;AACH,4BAEC;AAED;;;GAGG;AACH,gCAFW,MAAM,QAIhB;AAED;;;GAGG;AACH,8BAEC;AAED;;;;GAIG;AACH,8BAHW,MAAM,YACN,MAAM,QAIhB;AA3CD,8BAA+B,iBAAiB,CAAC;AACjD,6BAA8B,gBAAgB,CAAC;AAC/C,iCAAkC,oBAAoB,CAAC;AACvD,+BAAgC,kBAAkB,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../core/router/helpers.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAC/C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAE5B;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,MAAoC,GAC5C,IAAI,CAEN"}
@@ -7,7 +7,7 @@ export const NAVIGATION_RESET = 'navigation.reset';
7
7
 
8
8
  /**
9
9
  * Performs the PUSH navigation action.
10
- * @param {Object} params The history params.
10
+ * @param params The history params.
11
11
  */
12
12
  export function push(params) {
13
13
  UIEvents.emit(NAVIGATION_PUSH, params);
@@ -15,14 +15,15 @@ export function push(params) {
15
15
 
16
16
  /**
17
17
  * Performs the POP navigation action.
18
+ * @param params The history params. Pass `steps` to pop more than one route.
18
19
  */
19
- export function pop() {
20
- UIEvents.emit(NAVIGATION_POP);
20
+ export function pop(params) {
21
+ UIEvents.emit(NAVIGATION_POP, params);
21
22
  }
22
23
 
23
24
  /**
24
25
  * Performs the REPLACE navigation action.
25
- * @param {Object} params The history params.
26
+ * @param params The history params.
26
27
  */
27
28
  export function replace(params) {
28
29
  UIEvents.emit(NAVIGATION_REPLACE, params);
@@ -30,16 +31,15 @@ export function replace(params) {
30
31
 
31
32
  /**
32
33
  * Performs the RESET navigation action.
33
- * @param {Object} params The history params.
34
34
  */
35
35
  export function reset() {
36
36
  UIEvents.emit(NAVIGATION_RESET);
37
37
  }
38
38
 
39
39
  /**
40
- * Performs the UPDATE navigation action.
41
- * @param {Object} state The meta state to add to a existing route.
42
- * @param {string} [routeId] The ID of the route to update.
40
+ * Adds meta state to an existing route.
41
+ * @param state The meta state to merge into the route.
42
+ * @param routeId The ID of the route to update. Defaults to the current route.
43
43
  */
44
44
  export function update(state, routeId = router.getCurrentRoute().id) {
45
45
  router.update(routeId, state);
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { useSelector, useDispatch } from 'react-redux';
4
- import { SheetDrawer, RippleButton } from '@shopgate/engage/components';
4
+ import { SheetDrawer } from '@shopgate/engage/components';
5
+ import { Button } from '@shopgate/engage/components/v2';
5
6
  import { makeStyles } from '@shopgate/engage/styles';
6
7
  import { getEnabledCMSVersion } from '@shopgate/engage/settings/selectors/merchantSettings';
7
8
  import { getEnableCms2ForAllShoppers } from '@shopgate/engage/settings/selectors/shopSettings';
@@ -49,9 +50,8 @@ const DevelopmentSettings = ({
49
50
  onClose: onClose,
50
51
  children: /*#__PURE__*/_jsx("div", {
51
52
  className: classes.container,
52
- children: /*#__PURE__*/_jsx(RippleButton, {
53
+ children: /*#__PURE__*/_jsx(Button, {
53
54
  className: classes.button,
54
- type: "simple",
55
55
  onClick: () => {
56
56
  onClose();
57
57
  setTimeout(() => {
@@ -2,14 +2,14 @@ import React, { useMemo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { makeStyles } from '@shopgate/engage/styles';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- const useStyles = makeStyles()({
5
+ const useStyles = makeStyles()(theme => ({
6
6
  container: {
7
7
  position: 'fixed',
8
8
  bottom: 0,
9
9
  display: 'flex',
10
10
  justifyContent: 'center',
11
11
  alignItems: 'center',
12
- height: 'var(--safe-area-inset-bottom)',
12
+ height: theme.layout.safeArea.bottom,
13
13
  width: '100%',
14
14
  zIndex: 10000000,
15
15
  pointerEvents: 'auto',
@@ -26,7 +26,7 @@ const useStyles = makeStyles()({
26
26
  border: '1px solid rgba(255, 255, 255, 0.5)',
27
27
  boxSizing: 'content-box'
28
28
  }
29
- });
29
+ }));
30
30
 
31
31
  /**
32
32
  * Renders a simulated iOS bottom inset in development.
@@ -11,7 +11,7 @@ const useStyles = makeStyles()(theme => ({
11
11
  display: 'flex',
12
12
  justifyContent: 'space-between',
13
13
  alignItems: 'center',
14
- height: 'var(--safe-area-inset-top)',
14
+ height: theme.layout.safeArea.top,
15
15
  width: '100%',
16
16
  zIndex: 10000000,
17
17
  pointerEvents: 'auto',
@@ -38,7 +38,7 @@ const useStyles = makeStyles()(theme => ({
38
38
  notch: {
39
39
  flex: 1,
40
40
  background: 'black',
41
- height: 'calc(var(--safe-area-inset-top) - 16px)',
41
+ height: `calc(${theme.layout.safeArea.top} - 16px)`,
42
42
  maxWidth: 150,
43
43
  borderRadius: 16,
44
44
  border: '1px solid rgba(255, 255, 255, 0.5)'
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { connect } from 'react-redux';
4
- import { RippleButton } from '@shopgate/engage/components';
4
+ import { Button } from '@shopgate/engage/components/v2';
5
5
  import { makeStyles } from '@shopgate/engage/styles';
6
6
  import { i18n } from '@shopgate/engage/core/helpers';
7
7
  import { toggleFavoriteWithListChooser } from '@shopgate/pwa-common-commerce/favorites/actions/toggleFavorites';
@@ -29,20 +29,10 @@ const makeMapStateToProps = () => {
29
29
  const mapDispatchToProps = dispatch => ({
30
30
  toggle: productId => dispatch(toggleFavoriteWithListChooser(productId))
31
31
  });
32
- const useStyles = makeStyles()(theme => ({
32
+ const useStyles = makeStyles()(() => ({
33
33
  root: {
34
- '&&': {
35
- margin: '0 0px 16px 16px',
36
- backgroundColor: theme.palette.background.surface,
37
- border: `1px solid ${theme.palette.primary.main}`,
38
- borderRadius: 5,
39
- fontSize: theme.typography.body2.fontSize,
40
- textTransform: 'none',
41
- padding: 0
42
- }
43
- },
44
- ripple: {
45
- padding: '8px 16px'
34
+ margin: '0 0 16px 16px',
35
+ textTransform: 'none'
46
36
  }
47
37
  }));
48
38
 
@@ -70,10 +60,10 @@ const FavoriteButtonWide = ({
70
60
  if (!appConfig.hasFavorites) {
71
61
  return null;
72
62
  }
73
- return /*#__PURE__*/_jsx(RippleButton, {
63
+ return /*#__PURE__*/_jsx(Button, {
64
+ variant: "outlined",
65
+ color: "primary",
74
66
  className: classes.root,
75
- rippleClassName: classes.ripple,
76
- type: "primary",
77
67
  onClick: () => toggle(productId),
78
68
  children: i18n.text(label)
79
69
  });
@@ -40,11 +40,11 @@ declare const _default: import("react-redux").ConnectedComponent<{
40
40
  quantity: number;
41
41
  };
42
42
  }, {
43
+ product: NonNullable<PropTypes.InferProps<PropTypes.ValidationMap<any>>>;
43
44
  historyPush: (...args: any[]) => any;
44
45
  quantity?: number | null | undefined;
45
46
  notes?: string | null | undefined;
46
47
  listId: string;
47
- product: NonNullable<PropTypes.InferProps<PropTypes.ValidationMap<any>>>;
48
48
  remove: (...args: any[]) => any;
49
49
  addToCart: (...args: any[]) => any;
50
50
  isBaseProduct?: boolean | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../favorites/components/Item/Item.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;QA2KY,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAnKD,YAAY"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../favorites/components/Item/Item.jsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;QA0KY,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAlKD,YAAY"}
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { connect } from 'react-redux';
4
4
  import { MODAL_VARIANT_SELECT } from '@shopgate/pwa-ui-shared/Dialog/constants';
5
5
  import { ProductImage, ITEM_PATH, PriceInfo, isBaseProduct as isBaseProductSelector, isProductOrderable, hasProductVariants, ProductListEntryProvider } from '@shopgate/engage/product';
6
- import { bin2hex, showModal as showModalAction, historyPush as historyPushAction, getThemeSettings, i18n } from '@shopgate/engage/core';
6
+ import { bin2hex, showModal as showModalAction, historyPush as historyPushAction, i18n } from '@shopgate/engage/core';
7
7
  import { hasNewServices } from '@shopgate/engage/core/helpers';
8
8
  import { Link, TextLink, SurroundPortals, Typography } from '@shopgate/engage/components';
9
9
  import { makeIsRopeProductOrderable, getPreferredLocation, StockInfoLists } from '@shopgate/engage/locations';
@@ -153,9 +153,6 @@ const FavoriteItem = ({
153
153
  classes,
154
154
  cx
155
155
  } = useStyles();
156
- const {
157
- ListImage: gridResolutions
158
- } = getThemeSettings('AppImages') || {};
159
156
  const [isDisabled, setIsDisabled] = useState(!isOrderable && !hasVariants);
160
157
  const currency = product.price?.currency || 'EUR';
161
158
  const defaultPrice = product.price?.unitPrice || 0;
@@ -193,8 +190,11 @@ const FavoriteItem = ({
193
190
  });
194
191
  return false;
195
192
  }
196
- if (hasNewServices() && !isRopeProductOrderable) {
197
- // Product is not orderable for ROPE. So users need to do some corrections. Just redirect.
193
+ if (hasNewServices() && isRopeProductOrderable === false) {
194
+ // Product is explicitly not orderable for ROPE (a fulfillment method other than direct ship
195
+ // that isn't available for the current product/location). Users need to correct the
196
+ // selection on the PDP, so redirect. `null` means ROPE doesn't apply (direct ship) and must
197
+ // fall through to the regular add-to-cart below.
198
198
  historyPush({
199
199
  pathname: productLink
200
200
  });
@@ -264,7 +264,7 @@ const FavoriteItem = ({
264
264
  children: /*#__PURE__*/_jsx(ProductImage, {
265
265
  className: cx('engage__favorites__item__image'),
266
266
  src: product.featuredImageBaseUrl,
267
- resolutions: gridResolutions
267
+ context: "list"
268
268
  })
269
269
  }), /*#__PURE__*/_jsxs("div", {
270
270
  className: cx(classes.infoContainer, 'engage__favorites__item__info-container'),
@@ -26,8 +26,8 @@ declare const _default: import("react-redux").ConnectedComponent<{
26
26
  useGetFavoriteIdsPipeline: boolean;
27
27
  };
28
28
  }, {
29
- id: string;
30
29
  name: string;
30
+ id: string;
31
31
  remove: (...args: any[]) => any;
32
32
  addToCart: (...args: any[]) => any;
33
33
  removeItem: (...args: any[]) => any;
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../favorites/components/List/List.jsx"],"names":[],"mappings":";;;;;;;;;;;QAwEY,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBArED,YAAY"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../favorites/components/List/List.jsx"],"names":[],"mappings":";;;;;;;;;;;QAuEY,GAAG,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBApED,YAAY"}
@@ -15,7 +15,6 @@ const useStyles = makeStyles()(theme => ({
15
15
  margin: '8px 8px 10px'
16
16
  },
17
17
  rootNoFavoritesLists: {
18
- background: theme.palette.background.surface,
19
18
  flexGrow: 1,
20
19
  paddingBottom: theme.spacing(1),
21
20
  paddingLeft: '16px',
@@ -4,7 +4,7 @@ import { connect } from 'react-redux';
4
4
  import { makeStyles } from '@shopgate/engage/styles';
5
5
  import { i18n } from '@shopgate/engage/core/helpers';
6
6
  import { ProductListTypeProvider, ProductProvider } from '@shopgate/engage/product/providers';
7
- import { RippleButton } from '@shopgate/engage/components';
7
+ import { Button } from '@shopgate/engage/components/v2';
8
8
  import { getUseGetFavoriteIdsPipeline } from '@shopgate/engage/favorites';
9
9
  import ListItemWrapper from "./ListItemWrapper";
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
@@ -19,8 +19,7 @@ const useStyles = makeStyles()({
19
19
  },
20
20
  loadMoreButton: {
21
21
  width: 'calc(100% - 32px)',
22
- margin: '16px 16px 0 16px',
23
- borderRadius: 5
22
+ margin: '16px 16px 0 16px'
24
23
  }
25
24
  });
26
25
 
@@ -86,8 +85,8 @@ const ListContent = ({
86
85
  removeItem: removeItem,
87
86
  index: index
88
87
  }, product.id))]
89
- }), showLoadMoreButton && /*#__PURE__*/_jsx(RippleButton, {
90
- type: "primary",
88
+ }), showLoadMoreButton && /*#__PURE__*/_jsx(Button, {
89
+ color: "secondary",
91
90
  className: classes.loadMoreButton,
92
91
  onClick: onLoadMore,
93
92
  children: i18n.text('favorites.load_more_button')
@@ -1,7 +1,8 @@
1
1
  import React, { useState, useCallback, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { connect } from 'react-redux';
4
- import { RippleButton, SurroundPortals } from '@shopgate/engage/components';
4
+ import { SurroundPortals } from '@shopgate/engage/components';
5
+ import { Button } from '@shopgate/engage/components/v2';
5
6
  import { hasNewServices, i18n } from '@shopgate/engage/core/helpers';
6
7
  import { getFavoritesLists, isInitialLoading, getHasMultipleFavoritesListsSupport } from '@shopgate/pwa-common-commerce/favorites/selectors';
7
8
  import addFavoritesList from '@shopgate/pwa-common-commerce/favorites/actions/addFavoritesList';
@@ -9,7 +10,7 @@ import updateFavoritesList from '@shopgate/pwa-common-commerce/favorites/actions
9
10
  import removeFavoritesList from '@shopgate/pwa-common-commerce/favorites/actions/removeFavoritesList';
10
11
  import { removeFavorites } from '@shopgate/pwa-common-commerce/favorites/actions/toggleFavorites';
11
12
  import addProductsToCart from '@shopgate/pwa-common-commerce/cart/actions/addProductsToCart';
12
- import { FulfillmentSheet, MULTI_LINE_RESERVE, STAGE_SELECT_STORE } from '@shopgate/engage/locations';
13
+ import { FulfillmentSheet, MULTI_LINE_RESERVE, STAGE_SELECT_STORE, DIRECT_SHIP } from '@shopgate/engage/locations';
13
14
  import { openSheet } from '@shopgate/engage/locations/providers/FulfillmentProvider';
14
15
  import { getWishlistMode } from '@shopgate/engage/settings/selectors/shopSettings';
15
16
  import { WISHLIST_MODE_PERSIST_ON_ADD } from '@shopgate/engage/settings/constants/shopSettings';
@@ -64,7 +65,6 @@ const useStyles = makeStyles()({
64
65
  addButton: {
65
66
  width: 'calc(100% - 32px)',
66
67
  margin: 16,
67
- borderRadius: 5,
68
68
  [responsiveMediaQuery('>=md', {
69
69
  webOnly: true
70
70
  })]: {
@@ -174,6 +174,18 @@ const FavoriteLists = ({
174
174
  [activeFulfillmentMethod] = availableFulfillmentMethods;
175
175
  }
176
176
 
177
+ // Direct ship needs neither a location nor an explicit method selection. When it's the only
178
+ // available fulfillment method for the product, add straight to the cart without prompting
179
+ // the user with the fulfillment method chooser.
180
+ if (!activeFulfillmentMethod && availableFulfillmentMethods.length === 1 && availableFulfillmentMethods[0] === DIRECT_SHIP) {
181
+ addToCart([{
182
+ productId: product.id,
183
+ quantity
184
+ }]);
185
+ promiseRef.current.resolve();
186
+ return promise;
187
+ }
188
+
177
189
  // If all options are already configured immediately add it to the cart.
178
190
  if (activeFulfillmentMethod && activeLocation) {
179
191
  addToCart([{
@@ -271,11 +283,10 @@ const FavoriteLists = ({
271
283
  onClose: handleMethodClose
272
284
  }), /*#__PURE__*/_jsx(SurroundPortals, {
273
285
  portalName: FAVORITES_LIST_ADD_BUTTON,
274
- children: hasMultipleFavoritesListsSupport ? /*#__PURE__*/_jsx(RippleButton, {
275
- type: "primary",
286
+ children: hasMultipleFavoritesListsSupport ? /*#__PURE__*/_jsx(Button, {
287
+ color: "secondary",
276
288
  className: classes.addButton,
277
289
  onClick: openAddModal,
278
- disabled: false,
279
290
  children: i18n.text('favorites.add_list')
280
291
  }) : null
281
292
  })]
@@ -1,18 +1,17 @@
1
1
  import React, { memo } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { I18n, Button, SurroundPortals } from '@shopgate/engage/components';
3
+ import { I18n, SurroundPortals } from '@shopgate/engage/components';
4
+ import { Button } from '@shopgate/engage/components/v2';
4
5
  import { makeStyles } from '@shopgate/engage/styles';
5
6
  import { PORTAL_FILTER_APPLY_BUTTON } from '@shopgate/engage/filter/constants';
6
7
  import { withWidgetSettings } from '@shopgate/engage/core';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
- const useStyles = makeStyles()({
9
+ const useStyles = makeStyles()(theme => ({
9
10
  wrapper: {
10
- display: 'flex'
11
- },
12
- button: {
13
- padding: '0 !important'
11
+ display: 'flex',
12
+ marginRight: theme.spacing(2)
14
13
  }
15
- });
14
+ }));
16
15
 
17
16
  /**
18
17
  * The filter apply button component.
@@ -44,9 +43,8 @@ const FilterApplyButton = ({
44
43
  children: /*#__PURE__*/_jsx("div", {
45
44
  className: classes.wrapper,
46
45
  children: /*#__PURE__*/_jsx(Button, {
47
- className: classes.button,
48
- flat: true,
49
- type: "primary",
46
+ variant: "link",
47
+ color: "secondary",
50
48
  onClick: onClick,
51
49
  disabled: disabled,
52
50
  testId: "applyFilterButton",