@jetshop/template-trend 6.1.3 → 6.1.5

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 (411) hide show
  1. package/dist/src/client.js +6 -0
  2. package/dist/src/client.js.map +1 -0
  3. package/dist/src/components/Auth/ForgotPassword.js +30 -0
  4. package/dist/src/components/Auth/ForgotPassword.js.map +1 -0
  5. package/dist/src/components/Auth/ForgotPassword.loadable.js +7 -0
  6. package/dist/src/components/Auth/ForgotPassword.loadable.js.map +1 -0
  7. package/dist/src/components/Auth/LogInPage.js +69 -0
  8. package/dist/src/components/Auth/LogInPage.js.map +1 -0
  9. package/dist/src/components/Auth/LogInPage.loadable.js +7 -0
  10. package/dist/src/components/Auth/LogInPage.loadable.js.map +1 -0
  11. package/dist/src/components/Auth/ResetPassword.js +30 -0
  12. package/dist/src/components/Auth/ResetPassword.js.map +1 -0
  13. package/dist/src/components/Auth/ResetPassword.loadable.js +7 -0
  14. package/dist/src/components/Auth/ResetPassword.loadable.js.map +1 -0
  15. package/dist/src/components/Auth/Signup/Address.js +34 -0
  16. package/dist/src/components/Auth/Signup/Address.js.map +1 -0
  17. package/dist/src/components/Auth/Signup/CustomerType.js +30 -0
  18. package/dist/src/components/Auth/Signup/CustomerType.js.map +1 -0
  19. package/dist/src/components/Auth/Signup/LoginFields.js +31 -0
  20. package/dist/src/components/Auth/Signup/LoginFields.js.map +1 -0
  21. package/dist/src/components/Auth/Signup/PID.js +11 -0
  22. package/dist/src/components/Auth/Signup/PID.js.map +1 -0
  23. package/dist/src/components/Auth/Signup/SSN.js +29 -0
  24. package/dist/src/components/Auth/Signup/SSN.js.map +1 -0
  25. package/dist/src/components/Auth/Signup/SignUpPage.js +78 -0
  26. package/dist/src/components/Auth/Signup/SignUpPage.js.map +1 -0
  27. package/dist/src/components/Auth/Signup/SignUpPage.loadable.js +7 -0
  28. package/dist/src/components/Auth/Signup/SignUpPage.loadable.js.map +1 -0
  29. package/dist/src/components/Auth/Signup/useSignupValidation.js +29 -0
  30. package/dist/src/components/Auth/Signup/useSignupValidation.js.map +1 -0
  31. package/dist/src/components/Auth/UI/Form.js +33 -0
  32. package/dist/src/components/Auth/UI/Form.js.map +1 -0
  33. package/dist/src/components/Cart/CartButton.js +46 -0
  34. package/dist/src/components/Cart/CartButton.js.map +1 -0
  35. package/dist/src/components/Cart/CartFlyout.js +190 -0
  36. package/dist/src/components/Cart/CartFlyout.js.map +1 -0
  37. package/dist/src/components/Cart/CartItem.js +155 -0
  38. package/dist/src/components/Cart/CartItem.js.map +1 -0
  39. package/dist/src/components/Cart/FreeShipping.js +51 -0
  40. package/dist/src/components/Cart/FreeShipping.js.map +1 -0
  41. package/dist/src/components/CategoryPage/CategoryHeader.js +104 -0
  42. package/dist/src/components/CategoryPage/CategoryHeader.js.map +1 -0
  43. package/dist/src/components/CategoryPage/CategoryHeaderLoadingState.js +13 -0
  44. package/dist/src/components/CategoryPage/CategoryHeaderLoadingState.js.map +1 -0
  45. package/dist/src/components/CategoryPage/CategoryPage.js +26 -0
  46. package/dist/src/components/CategoryPage/CategoryPage.js.map +1 -0
  47. package/dist/src/components/CategoryPage/CategoryPage.loadable.js +7 -0
  48. package/dist/src/components/CategoryPage/CategoryPage.loadable.js.map +1 -0
  49. package/dist/src/components/CategoryPage/Filters/ActiveFilters.js +79 -0
  50. package/dist/src/components/CategoryPage/Filters/ActiveFilters.js.map +1 -0
  51. package/dist/src/components/CategoryPage/Filters/BooleanFilters.js +18 -0
  52. package/dist/src/components/CategoryPage/Filters/BooleanFilters.js.map +1 -0
  53. package/dist/src/components/CategoryPage/Filters/Filter.js +97 -0
  54. package/dist/src/components/CategoryPage/Filters/Filter.js.map +1 -0
  55. package/dist/src/components/CategoryPage/Filters/FilterDrawer.js +91 -0
  56. package/dist/src/components/CategoryPage/Filters/FilterDrawer.js.map +1 -0
  57. package/dist/src/components/CategoryPage/Filters/FilterDropdownMenu.js +77 -0
  58. package/dist/src/components/CategoryPage/Filters/FilterDropdownMenu.js.map +1 -0
  59. package/dist/src/components/CategoryPage/Filters/ListFilters.js +38 -0
  60. package/dist/src/components/CategoryPage/Filters/ListFilters.js.map +1 -0
  61. package/dist/src/components/CategoryPage/Filters/Mobile/ActiveCarot.js +15 -0
  62. package/dist/src/components/CategoryPage/Filters/Mobile/ActiveCarot.js.map +1 -0
  63. package/dist/src/components/CategoryPage/Filters/Mobile/FilterButton.js +107 -0
  64. package/dist/src/components/CategoryPage/Filters/Mobile/FilterButton.js.map +1 -0
  65. package/dist/src/components/CategoryPage/Filters/Mobile/ListAccordion.js +44 -0
  66. package/dist/src/components/CategoryPage/Filters/Mobile/ListAccordion.js.map +1 -0
  67. package/dist/src/components/CategoryPage/Filters/Mobile/RangeAccordion.js +21 -0
  68. package/dist/src/components/CategoryPage/Filters/Mobile/RangeAccordion.js.map +1 -0
  69. package/dist/src/components/CategoryPage/Filters/Mobile/SortOrderAccordion.js +30 -0
  70. package/dist/src/components/CategoryPage/Filters/Mobile/SortOrderAccordion.js.map +1 -0
  71. package/dist/src/components/CategoryPage/Filters/Mobile/shared/styles.js +12 -0
  72. package/dist/src/components/CategoryPage/Filters/Mobile/shared/styles.js.map +1 -0
  73. package/dist/src/components/CategoryPage/Filters/MultiListFilters.js +37 -0
  74. package/dist/src/components/CategoryPage/Filters/MultiListFilters.js.map +1 -0
  75. package/dist/src/components/CategoryPage/Filters/RangeFilters.js +122 -0
  76. package/dist/src/components/CategoryPage/Filters/RangeFilters.js.map +1 -0
  77. package/dist/src/components/CategoryPage/Filters/SortOrders.js +29 -0
  78. package/dist/src/components/CategoryPage/Filters/SortOrders.js.map +1 -0
  79. package/dist/src/components/CategoryPage/Filters/index.js +2 -0
  80. package/dist/src/components/CategoryPage/Filters/index.js.map +1 -0
  81. package/dist/src/components/CategoryPage/ProductCard.js +98 -0
  82. package/dist/src/components/CategoryPage/ProductCard.js.map +1 -0
  83. package/dist/src/components/CategoryPage/ProductGrid.js +89 -0
  84. package/dist/src/components/CategoryPage/ProductGrid.js.map +1 -0
  85. package/dist/src/components/CategoryPage/ProductGridWindow.js +48 -0
  86. package/dist/src/components/CategoryPage/ProductGridWindow.js.map +1 -0
  87. package/dist/src/components/CategoryPage/StandardCategoryPage.js +51 -0
  88. package/dist/src/components/CategoryPage/StandardCategoryPage.js.map +1 -0
  89. package/dist/src/components/CategoryPage/WindowedCategoryPage.js +87 -0
  90. package/dist/src/components/CategoryPage/WindowedCategoryPage.js.map +1 -0
  91. package/dist/src/components/CategoryPage/index.js +2 -0
  92. package/dist/src/components/CategoryPage/index.js.map +1 -0
  93. package/dist/src/components/ContentPage/ContentPage.js +64 -0
  94. package/dist/src/components/ContentPage/ContentPage.js.map +1 -0
  95. package/dist/src/components/ContentPage/ContentPage.loadable.js +7 -0
  96. package/dist/src/components/ContentPage/ContentPage.loadable.js.map +1 -0
  97. package/dist/src/components/ContentPage/SubPageNavigation.js +164 -0
  98. package/dist/src/components/ContentPage/SubPageNavigation.js.map +1 -0
  99. package/dist/src/components/ContentPage/index.js +2 -0
  100. package/dist/src/components/ContentPage/index.js.map +1 -0
  101. package/dist/src/components/CookieConsent.js +84 -0
  102. package/dist/src/components/CookieConsent.js.map +1 -0
  103. package/dist/src/components/Forms/GlobalError.js +28 -0
  104. package/dist/src/components/Forms/GlobalError.js.map +1 -0
  105. package/dist/src/components/Forms/Input.js +79 -0
  106. package/dist/src/components/Forms/Input.js.map +1 -0
  107. package/dist/src/components/Forms/InputStatus.js +42 -0
  108. package/dist/src/components/Forms/InputStatus.js.map +1 -0
  109. package/dist/src/components/Forms/Success.js +25 -0
  110. package/dist/src/components/Forms/Success.js.map +1 -0
  111. package/dist/src/components/Layout/Container.js +19 -0
  112. package/dist/src/components/Layout/Container.js.map +1 -0
  113. package/dist/src/components/Layout/Content/index.js +7 -0
  114. package/dist/src/components/Layout/Content/index.js.map +1 -0
  115. package/dist/src/components/Layout/Footer/Footer.js +106 -0
  116. package/dist/src/components/Layout/Footer/Footer.js.map +1 -0
  117. package/dist/src/components/Layout/Footer/FooterLinks.js +24 -0
  118. package/dist/src/components/Layout/Footer/FooterLinks.js.map +1 -0
  119. package/dist/src/components/Layout/Footer/SocialLinks.js +62 -0
  120. package/dist/src/components/Layout/Footer/SocialLinks.js.map +1 -0
  121. package/dist/src/components/Layout/Header/Categories/Categories.js +10 -0
  122. package/dist/src/components/Layout/Header/Categories/Categories.js.map +1 -0
  123. package/dist/src/components/Layout/Header/Categories/MobileCategories.js +128 -0
  124. package/dist/src/components/Layout/Header/Categories/MobileCategories.js.map +1 -0
  125. package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesByLevel.js +4 -0
  126. package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesByLevel.js.map +1 -0
  127. package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesUnderParent.js +4 -0
  128. package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesUnderParent.js.map +1 -0
  129. package/dist/src/components/Layout/Header/Categories/__util__/hasChildCategories.js +4 -0
  130. package/dist/src/components/Layout/Header/Categories/__util__/hasChildCategories.js.map +1 -0
  131. package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenu.js +21 -0
  132. package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenu.js.map +1 -0
  133. package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenuContainer.js +55 -0
  134. package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenuContainer.js.map +1 -0
  135. package/dist/src/components/Layout/Header/CategoryMenu/SubMenuSection.js +60 -0
  136. package/dist/src/components/Layout/Header/CategoryMenu/SubMenuSection.js.map +1 -0
  137. package/dist/src/components/Layout/Header/CategoryMenu/SubMenuWrapper.js +78 -0
  138. package/dist/src/components/Layout/Header/CategoryMenu/SubMenuWrapper.js.map +1 -0
  139. package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelector.js +26 -0
  140. package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelector.js.map +1 -0
  141. package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelectorModal.js +36 -0
  142. package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelectorModal.js.map +1 -0
  143. package/dist/src/components/Layout/Header/ChannelSelector/LanguageSelector.js +12 -0
  144. package/dist/src/components/Layout/Header/ChannelSelector/LanguageSelector.js.map +1 -0
  145. package/dist/src/components/Layout/Header/ChannelSelector/Selector.js +120 -0
  146. package/dist/src/components/Layout/Header/ChannelSelector/Selector.js.map +1 -0
  147. package/dist/src/components/Layout/Header/ChannelSelector/flattenCountries.js +15 -0
  148. package/dist/src/components/Layout/Header/ChannelSelector/flattenCountries.js.map +1 -0
  149. package/dist/src/components/Layout/Header/Header.js +189 -0
  150. package/dist/src/components/Layout/Header/Header.js.map +1 -0
  151. package/dist/src/components/Layout/Header/Logo.js +40 -0
  152. package/dist/src/components/Layout/Header/Logo.js.map +1 -0
  153. package/dist/src/components/Layout/Header/LogoSearchBar.js +15 -0
  154. package/dist/src/components/Layout/Header/LogoSearchBar.js.map +1 -0
  155. package/dist/src/components/Layout/Header/MobileMenu.js +76 -0
  156. package/dist/src/components/Layout/Header/MobileMenu.js.map +1 -0
  157. package/dist/src/components/Layout/Header/RecommendedChannel/ChannelBanner.js +218 -0
  158. package/dist/src/components/Layout/Header/RecommendedChannel/ChannelBanner.js.map +1 -0
  159. package/dist/src/components/Layout/Header/RecommendedChannel/RecommendedChannelSelector.js +123 -0
  160. package/dist/src/components/Layout/Header/RecommendedChannel/RecommendedChannelSelector.js.map +1 -0
  161. package/dist/src/components/Layout/Header/SearchBar.js +79 -0
  162. package/dist/src/components/Layout/Header/SearchBar.js.map +1 -0
  163. package/dist/src/components/Layout/Header/SearchButton.js +50 -0
  164. package/dist/src/components/Layout/Header/SearchButton.js.map +1 -0
  165. package/dist/src/components/Layout/Header/SubCategoryNav.js +71 -0
  166. package/dist/src/components/Layout/Header/SubCategoryNav.js.map +1 -0
  167. package/dist/src/components/Layout/Header/TopNav.js +63 -0
  168. package/dist/src/components/Layout/Header/TopNav.js.map +1 -0
  169. package/dist/src/components/Layout/MaxWidth.js +19 -0
  170. package/dist/src/components/Layout/MaxWidth.js.map +1 -0
  171. package/dist/src/components/Layout/Notifications.js +70 -0
  172. package/dist/src/components/Layout/Notifications.js.map +1 -0
  173. package/dist/src/components/LoadingPage.js +19 -0
  174. package/dist/src/components/LoadingPage.js.map +1 -0
  175. package/dist/src/components/LogOut.loadable.js +7 -0
  176. package/dist/src/components/LogOut.loadable.js.map +1 -0
  177. package/dist/src/components/MyPages/ChangePasswordPage.js +26 -0
  178. package/dist/src/components/MyPages/ChangePasswordPage.js.map +1 -0
  179. package/dist/src/components/MyPages/CustomerNameHeader.js +28 -0
  180. package/dist/src/components/MyPages/CustomerNameHeader.js.map +1 -0
  181. package/dist/src/components/MyPages/DeleteAccount.js +47 -0
  182. package/dist/src/components/MyPages/DeleteAccount.js.map +1 -0
  183. package/dist/src/components/MyPages/MyPages.js +152 -0
  184. package/dist/src/components/MyPages/MyPages.js.map +1 -0
  185. package/dist/src/components/MyPages/MyPages.loadable.js +7 -0
  186. package/dist/src/components/MyPages/MyPages.loadable.js.map +1 -0
  187. package/dist/src/components/MyPages/MyPagesBreadcrumbs.js +18 -0
  188. package/dist/src/components/MyPages/MyPagesBreadcrumbs.js.map +1 -0
  189. package/dist/src/components/MyPages/MyPagesSidebar.js +81 -0
  190. package/dist/src/components/MyPages/MyPagesSidebar.js.map +1 -0
  191. package/dist/src/components/MyPages/MyPagesStartPage.js +99 -0
  192. package/dist/src/components/MyPages/MyPagesStartPage.js.map +1 -0
  193. package/dist/src/components/MyPages/Newsletter.js +33 -0
  194. package/dist/src/components/MyPages/Newsletter.js.map +1 -0
  195. package/dist/src/components/MyPages/Orders/ListOrder.js +159 -0
  196. package/dist/src/components/MyPages/Orders/ListOrder.js.map +1 -0
  197. package/dist/src/components/MyPages/Orders/OrderDetail/Contact.js +38 -0
  198. package/dist/src/components/MyPages/Orders/OrderDetail/Contact.js.map +1 -0
  199. package/dist/src/components/MyPages/Orders/OrderDetail/ListDetail.js +196 -0
  200. package/dist/src/components/MyPages/Orders/OrderDetail/ListDetail.js.map +1 -0
  201. package/dist/src/components/MyPages/Orders/OrderDetail/OrderTotals.js +81 -0
  202. package/dist/src/components/MyPages/Orders/OrderDetail/OrderTotals.js.map +1 -0
  203. package/dist/src/components/MyPages/Orders/OrderDetail/ShippingPayment.js +37 -0
  204. package/dist/src/components/MyPages/Orders/OrderDetail/ShippingPayment.js.map +1 -0
  205. package/dist/src/components/MyPages/Orders/OrderListPage.js +56 -0
  206. package/dist/src/components/MyPages/Orders/OrderListPage.js.map +1 -0
  207. package/dist/src/components/MyPages/ProfileDeliveryAddresses.js +93 -0
  208. package/dist/src/components/MyPages/ProfileDeliveryAddresses.js.map +1 -0
  209. package/dist/src/components/MyPages/ProfilePage.js +109 -0
  210. package/dist/src/components/MyPages/ProfilePage.js.map +1 -0
  211. package/dist/src/components/MyPages/ProfileView.js +42 -0
  212. package/dist/src/components/MyPages/ProfileView.js.map +1 -0
  213. package/dist/src/components/NavigationTree/NavTree.js +53 -0
  214. package/dist/src/components/NavigationTree/NavTree.js.map +1 -0
  215. package/dist/src/components/NavigationTree/NavTreePage.js +7 -0
  216. package/dist/src/components/NavigationTree/NavTreePage.js.map +1 -0
  217. package/dist/src/components/NavigationTree/NavTreePage.loadable.js +7 -0
  218. package/dist/src/components/NavigationTree/NavTreePage.loadable.js.map +1 -0
  219. package/dist/src/components/Newsletter/NewsletterField.js +93 -0
  220. package/dist/src/components/Newsletter/NewsletterField.js.map +1 -0
  221. package/dist/src/components/NotFoundPage.js +59 -0
  222. package/dist/src/components/NotFoundPage.js.map +1 -0
  223. package/dist/src/components/NotFoundPage.loadable.js +7 -0
  224. package/dist/src/components/NotFoundPage.loadable.js.map +1 -0
  225. package/dist/src/components/Pages/About.js +7 -0
  226. package/dist/src/components/Pages/About.js.map +1 -0
  227. package/dist/src/components/Pagination/Pagination.js +29 -0
  228. package/dist/src/components/Pagination/Pagination.js.map +1 -0
  229. package/dist/src/components/Pagination/PaginationWrapper.js +16 -0
  230. package/dist/src/components/Pagination/PaginationWrapper.js.map +1 -0
  231. package/dist/src/components/PreviewRoute.loadable.js +7 -0
  232. package/dist/src/components/PreviewRoute.loadable.js.map +1 -0
  233. package/dist/src/components/ProductList/AddToCart.js +46 -0
  234. package/dist/src/components/ProductList/AddToCart.js.map +1 -0
  235. package/dist/src/components/ProductList/Favourite.js +46 -0
  236. package/dist/src/components/ProductList/Favourite.js.map +1 -0
  237. package/dist/src/components/ProductList/FavouriteCount.js +15 -0
  238. package/dist/src/components/ProductList/FavouriteCount.js.map +1 -0
  239. package/dist/src/components/ProductList/Favourites.js +187 -0
  240. package/dist/src/components/ProductList/Favourites.js.map +1 -0
  241. package/dist/src/components/ProductList/Lister.js +22 -0
  242. package/dist/src/components/ProductList/Lister.js.map +1 -0
  243. package/dist/src/components/ProductList/Product.js +62 -0
  244. package/dist/src/components/ProductList/Product.js.map +1 -0
  245. package/dist/src/components/ProductList/SelectVariant.js +47 -0
  246. package/dist/src/components/ProductList/SelectVariant.js.map +1 -0
  247. package/dist/src/components/ProductList/productListQueries.js +15 -0
  248. package/dist/src/components/ProductList/productListQueries.js.map +1 -0
  249. package/dist/src/components/ProductPage/AddToCart/AddToCartForm.js +110 -0
  250. package/dist/src/components/ProductPage/AddToCart/AddToCartForm.js.map +1 -0
  251. package/dist/src/components/ProductPage/AddToCart/ProductToast.js +118 -0
  252. package/dist/src/components/ProductPage/AddToCart/ProductToast.js.map +1 -0
  253. package/dist/src/components/ProductPage/AddToCart/useProductToast.js +21 -0
  254. package/dist/src/components/ProductPage/AddToCart/useProductToast.js.map +1 -0
  255. package/dist/src/components/ProductPage/Campaigns.js +43 -0
  256. package/dist/src/components/ProductPage/Campaigns.js.map +1 -0
  257. package/dist/src/components/ProductPage/ConfigurationSelector.js +62 -0
  258. package/dist/src/components/ProductPage/ConfigurationSelector.js.map +1 -0
  259. package/dist/src/components/ProductPage/Images/ImageContainer.js +45 -0
  260. package/dist/src/components/ProductPage/Images/ImageContainer.js.map +1 -0
  261. package/dist/src/components/ProductPage/Images/Thumbnails.js +32 -0
  262. package/dist/src/components/ProductPage/Images/Thumbnails.js.map +1 -0
  263. package/dist/src/components/ProductPage/PackageProduct/IncludedInPackages.js +32 -0
  264. package/dist/src/components/ProductPage/PackageProduct/IncludedInPackages.js.map +1 -0
  265. package/dist/src/components/ProductPage/PackageProduct/PackageProduct.js +170 -0
  266. package/dist/src/components/ProductPage/PackageProduct/PackageProduct.js.map +1 -0
  267. package/dist/src/components/ProductPage/PackageProduct/PackageProductItem.js +92 -0
  268. package/dist/src/components/ProductPage/PackageProduct/PackageProductItem.js.map +1 -0
  269. package/dist/src/components/ProductPage/PriceHistory.js +99 -0
  270. package/dist/src/components/ProductPage/PriceHistory.js.map +1 -0
  271. package/dist/src/components/ProductPage/ProductInfo.js +55 -0
  272. package/dist/src/components/ProductPage/ProductInfo.js.map +1 -0
  273. package/dist/src/components/ProductPage/ProductInfoAccordion.js +46 -0
  274. package/dist/src/components/ProductPage/ProductInfoAccordion.js.map +1 -0
  275. package/dist/src/components/ProductPage/ProductPage.js +174 -0
  276. package/dist/src/components/ProductPage/ProductPage.js.map +1 -0
  277. package/dist/src/components/ProductPage/ProductPage.loadable.js +7 -0
  278. package/dist/src/components/ProductPage/ProductPage.loadable.js.map +1 -0
  279. package/dist/src/components/ProductPage/ProductPageLoadingState.js +55 -0
  280. package/dist/src/components/ProductPage/ProductPageLoadingState.js.map +1 -0
  281. package/dist/src/components/ProductPage/QuantityContainer.js +21 -0
  282. package/dist/src/components/ProductPage/QuantityContainer.js.map +1 -0
  283. package/dist/src/components/ProductPage/RelatedProducts.js +45 -0
  284. package/dist/src/components/ProductPage/RelatedProducts.js.map +1 -0
  285. package/dist/src/components/ProductPage/SizePicker.js +37 -0
  286. package/dist/src/components/ProductPage/SizePicker.js.map +1 -0
  287. package/dist/src/components/ProductPage/StockStatus/NotifyWhenBack.js +93 -0
  288. package/dist/src/components/ProductPage/StockStatus/NotifyWhenBack.js.map +1 -0
  289. package/dist/src/components/ProductPage/StockStatus/StockOrb.js +31 -0
  290. package/dist/src/components/ProductPage/StockStatus/StockOrb.js.map +1 -0
  291. package/dist/src/components/ProductPage/StockStatus/StockStatusIndicator.js +33 -0
  292. package/dist/src/components/ProductPage/StockStatus/StockStatusIndicator.js.map +1 -0
  293. package/dist/src/components/ProductPage/StockStatus/WarehouseStock.js +255 -0
  294. package/dist/src/components/ProductPage/StockStatus/WarehouseStock.js.map +1 -0
  295. package/dist/src/components/ProductPage/VariantSelector.js +138 -0
  296. package/dist/src/components/ProductPage/VariantSelector.js.map +1 -0
  297. package/dist/src/components/ProductPage/styledComponents.js +11 -0
  298. package/dist/src/components/ProductPage/styledComponents.js.map +1 -0
  299. package/dist/src/components/ProductPage/useProductValidationMessage.js +24 -0
  300. package/dist/src/components/ProductPage/useProductValidationMessage.js.map +1 -0
  301. package/dist/src/components/SearchPage/CategoryList.js +129 -0
  302. package/dist/src/components/SearchPage/CategoryList.js.map +1 -0
  303. package/dist/src/components/SearchPage/EmptySearchResults.js +23 -0
  304. package/dist/src/components/SearchPage/EmptySearchResults.js.map +1 -0
  305. package/dist/src/components/SearchPage/SearchMeta.js +27 -0
  306. package/dist/src/components/SearchPage/SearchMeta.js.map +1 -0
  307. package/dist/src/components/SearchPage/SearchPage.js +52 -0
  308. package/dist/src/components/SearchPage/SearchPage.js.map +1 -0
  309. package/dist/src/components/SearchPage/SearchPage.loadable.js +7 -0
  310. package/dist/src/components/SearchPage/SearchPage.loadable.js.map +1 -0
  311. package/dist/src/components/SearchPage/SearchResults.js +60 -0
  312. package/dist/src/components/SearchPage/SearchResults.js.map +1 -0
  313. package/dist/src/components/SearchPage/SearchTerm.js +11 -0
  314. package/dist/src/components/SearchPage/SearchTerm.js.map +1 -0
  315. package/dist/src/components/SearchPage/WindowedSearchResults.js +80 -0
  316. package/dist/src/components/SearchPage/WindowedSearchResults.js.map +1 -0
  317. package/dist/src/components/SearchPage/index.js +3 -0
  318. package/dist/src/components/SearchPage/index.js.map +1 -0
  319. package/dist/src/components/Shop.js +82 -0
  320. package/dist/src/components/Shop.js.map +1 -0
  321. package/dist/src/components/StartPage/Content/Row.js +40 -0
  322. package/dist/src/components/StartPage/Content/Row.js.map +1 -0
  323. package/dist/src/components/StartPage/Content/StartPageCampaign.js +112 -0
  324. package/dist/src/components/StartPage/Content/StartPageCampaign.js.map +1 -0
  325. package/dist/src/components/StartPage/Content/StartPageCategories.js +80 -0
  326. package/dist/src/components/StartPage/Content/StartPageCategories.js.map +1 -0
  327. package/dist/src/components/StartPage/Content/StartPageHTMLContent.js +74 -0
  328. package/dist/src/components/StartPage/Content/StartPageHTMLContent.js.map +1 -0
  329. package/dist/src/components/StartPage/Content/StartPageHero.js +73 -0
  330. package/dist/src/components/StartPage/Content/StartPageHero.js.map +1 -0
  331. package/dist/src/components/StartPage/Content/StartPageProductGrid.js +69 -0
  332. package/dist/src/components/StartPage/Content/StartPageProductGrid.js.map +1 -0
  333. package/dist/src/components/StartPage/StartPage.js +37 -0
  334. package/dist/src/components/StartPage/StartPage.js.map +1 -0
  335. package/dist/src/components/StartPage/StartPage.loadable.js +7 -0
  336. package/dist/src/components/StartPage/StartPage.loadable.js.map +1 -0
  337. package/dist/src/components/StartPage/index.js +3 -0
  338. package/dist/src/components/StartPage/index.js.map +1 -0
  339. package/dist/src/components/Store/Store.js +26 -0
  340. package/dist/src/components/Store/Store.js.map +1 -0
  341. package/dist/src/components/Store/Store.loadable.js +7 -0
  342. package/dist/src/components/Store/Store.loadable.js.map +1 -0
  343. package/dist/src/components/Store/StoreDetail.js +13 -0
  344. package/dist/src/components/Store/StoreDetail.js.map +1 -0
  345. package/dist/src/components/StoreLocator/StoreList.js +160 -0
  346. package/dist/src/components/StoreLocator/StoreList.js.map +1 -0
  347. package/dist/src/components/StoreLocator/StoreLocator.js +133 -0
  348. package/dist/src/components/StoreLocator/StoreLocator.js.map +1 -0
  349. package/dist/src/components/StoreLocator/StoreLocator.loadable.js +7 -0
  350. package/dist/src/components/StoreLocator/StoreLocator.loadable.js.map +1 -0
  351. package/dist/src/components/StoreLocator/StoreMap.js +116 -0
  352. package/dist/src/components/StoreLocator/StoreMap.js.map +1 -0
  353. package/dist/src/components/StoreLocator/StoreMarker.js +63 -0
  354. package/dist/src/components/StoreLocator/StoreMarker.js.map +1 -0
  355. package/dist/src/components/StoreLocator/StoreSearch.js +47 -0
  356. package/dist/src/components/StoreLocator/StoreSearch.js.map +1 -0
  357. package/dist/src/components/StoreLocator/UserLocation.js +76 -0
  358. package/dist/src/components/StoreLocator/UserLocation.js.map +1 -0
  359. package/dist/src/components/StoreLocator/useLocationState.js +14 -0
  360. package/dist/src/components/StoreLocator/useLocationState.js.map +1 -0
  361. package/dist/src/components/StoreLocator/useMapState.js +16 -0
  362. package/dist/src/components/StoreLocator/useMapState.js.map +1 -0
  363. package/dist/src/components/Theme.js +6 -0
  364. package/dist/src/components/Theme.js.map +1 -0
  365. package/dist/src/components/ui/Badge.js +33 -0
  366. package/dist/src/components/ui/Badge.js.map +1 -0
  367. package/dist/src/components/ui/Button.js +93 -0
  368. package/dist/src/components/ui/Button.js.map +1 -0
  369. package/dist/src/components/ui/CloseButton.js +18 -0
  370. package/dist/src/components/ui/CloseButton.js.map +1 -0
  371. package/dist/src/components/ui/Divider.js +11 -0
  372. package/dist/src/components/ui/Divider.js.map +1 -0
  373. package/dist/src/components/ui/Headings.js +19 -0
  374. package/dist/src/components/ui/Headings.js.map +1 -0
  375. package/dist/src/components/ui/RadioGroupWithLabels.js +16 -0
  376. package/dist/src/components/ui/RadioGroupWithLabels.js.map +1 -0
  377. package/dist/src/components/ui/Spinner.js +39 -0
  378. package/dist/src/components/ui/Spinner.js.map +1 -0
  379. package/dist/src/fonts/loadFontCss.js +51 -0
  380. package/dist/src/fonts/loadFontCss.js.map +1 -0
  381. package/dist/src/globalStyles.js +83 -0
  382. package/dist/src/globalStyles.js.map +1 -0
  383. package/dist/src/server.js +12 -0
  384. package/dist/src/server.js.map +1 -0
  385. package/dist/src/shop.config.js +68 -0
  386. package/dist/src/shop.config.js.map +1 -0
  387. package/dist/src/theme-variables.js +65 -0
  388. package/dist/src/theme-variables.js.map +1 -0
  389. package/dist/translations/cs.json +788 -0
  390. package/dist/translations/da.json +791 -0
  391. package/dist/translations/de.json +788 -0
  392. package/dist/translations/en.json +794 -0
  393. package/dist/translations/es.json +788 -0
  394. package/dist/translations/et.json +788 -0
  395. package/dist/translations/fi.json +794 -0
  396. package/dist/translations/fr.json +788 -0
  397. package/dist/translations/index.js +18 -0
  398. package/dist/translations/index.js.map +1 -0
  399. package/dist/translations/it.json +788 -0
  400. package/dist/translations/lv.json +788 -0
  401. package/dist/translations/nb.json +791 -0
  402. package/dist/translations/nl.json +788 -0
  403. package/dist/translations/pl.json +788 -0
  404. package/dist/translations/ru.json +788 -0
  405. package/dist/translations/sk.json +788 -0
  406. package/dist/translations/sr.json +464 -0
  407. package/dist/translations/sv.json +794 -0
  408. package/jsconfig.json +1 -0
  409. package/package.json +5 -5
  410. package/schema.graphql +1 -1
  411. package/src/shop.config.js +2 -1
@@ -0,0 +1,118 @@
1
+ import React from 'react';
2
+ import { styled } from 'linaria/react';
3
+ import { useTracker } from '@jetshop/core/analytics/Analytics';
4
+ import { trackCartCheckoutEvent } from '@jetshop/core/analytics/tracking';
5
+ import ChannelContext from '@jetshop/core/components/ChannelContext';
6
+ import CartProvider from '@jetshop/core/components/Query/CartProvider';
7
+ import t from '@jetshop/intl';
8
+ import Image from '@jetshop/ui/Image/Image';
9
+ import { Price } from '@jetshop/ui/Price';
10
+ import useProductToast from './useProductToast';
11
+ import { baseStyles } from '../../ui/Button';
12
+ import { theme } from '../../Theme';
13
+ import cartQuery from '../../Cart/queries/cartQuery.gql';
14
+ const Container = styled('aside') `
15
+ ${theme.above.sm} {
16
+ width: 320px;
17
+ }
18
+ ${theme.below.sm} {
19
+ width: 100%;
20
+ }
21
+ background-color: ${theme.colors.white};
22
+ `;
23
+ const CheckoutButton = styled.a `
24
+ ${baseStyles}
25
+ padding: ${theme.space[2]};
26
+ margin: ${theme.space[1]};
27
+ text-align: center;
28
+ background: ${theme.colors.blue};
29
+ color: white;
30
+ `;
31
+ const ProductImageWrapper = styled('div') `
32
+ width: 5rem;
33
+ margin-right: 1rem;
34
+ `;
35
+ const ProductCheckoutContainer = styled('div') `
36
+ display: flex;
37
+ flex-direction: column;
38
+ height: 100%;
39
+ width: 100%;
40
+
41
+ a {
42
+ text-decoration: none;
43
+ :hover {
44
+ opacity: 0.8;
45
+ text-decoration: none;
46
+ color: white;
47
+ }
48
+ }
49
+ `;
50
+ const Product = styled('div') `
51
+ display: flex;
52
+ flex-direction: row;
53
+ align-items: flex-start;
54
+ margin: ${theme.space[2]};
55
+ `;
56
+ const ProductDetails = styled('div') `
57
+ display: flex;
58
+ flex-direction: column;
59
+ flex-grow: 1;
60
+ color: black;
61
+
62
+ .price,
63
+ .new-price {
64
+ margin-top: 0.75rem;
65
+ }
66
+
67
+ .old-price {
68
+ margin-top: 0.25rem;
69
+ }
70
+
71
+ .new-price {
72
+ color: ${theme.colors.red};
73
+ }
74
+ `;
75
+ const Header = styled('h3') `
76
+ font-size: ${theme.fontSizes[2]};
77
+ margin-bottom: ${theme.space[1]};
78
+ `;
79
+ const ProductName = styled('p') `
80
+ font-size: ${theme.fontSizes[0]};
81
+ `;
82
+ const Error = styled('p') `
83
+ color: red;
84
+ margin-top: ${theme.space[1]};
85
+ font-size: ${theme.fontSizes[0]};
86
+ `;
87
+ const ProductToast = ({ product, cart, selectedVariation, quantity, error }) => {
88
+ const { price, previousPrice, image } = useProductToast({
89
+ product,
90
+ selectedVariation,
91
+ quantity
92
+ });
93
+ const track = useTracker();
94
+ return (React.createElement(Container, { "data-testid": "product-toast" },
95
+ React.createElement(ProductCheckoutContainer, null,
96
+ React.createElement(Product, null,
97
+ product.images.length > 0 && (React.createElement(ProductImageWrapper, null,
98
+ React.createElement(Image, { src: image.url, sizes: 80, aspect: '1:1', alt: image.alt, quality: 80 }))),
99
+ React.createElement(ProductDetails, null,
100
+ error ? (React.createElement(Header, null, t('Failed adding to bag'))) : quantity === 1 ? (React.createElement(Header, null, t('Added to bag'))) : (React.createElement(Header, null, t.rich('Added {quantity} items to bag', { quantity }))),
101
+ React.createElement(ProductName, null, product.name),
102
+ !error && React.createElement(Price, { price: price, previousPrice: previousPrice }),
103
+ error && (React.createElement(Error, null,
104
+ t('An error occurred. Details:'),
105
+ React.createElement("ul", null, error.graphQLErrors && error.graphQLErrors.length > 0 ? (error.graphQLErrors.map(({ message, locations, path }) => (React.createElement("li", { key: message }, t(message))))) : (React.createElement("li", null, t(error.message)))))))),
106
+ cart && cart.externalCheckoutUrl && (React.createElement(ChannelContext.Consumer, null, ({ selectedChannel }) => (React.createElement(CheckoutButton, { href: cart.externalCheckoutUrl, onClick: event => {
107
+ event.preventDefault();
108
+ track(trackCartCheckoutEvent({
109
+ cart: cart,
110
+ callback: () => {
111
+ window.location = cart.externalCheckoutUrl;
112
+ }
113
+ }));
114
+ } }, t('To checkout'))))))));
115
+ };
116
+ const ProductToastWrapper = props => (React.createElement(CartProvider, { query: cartQuery }, ({ data }) => React.createElement(ProductToast, Object.assign({}, props, { cart: data && data.cart }))));
117
+ export default ProductToastWrapper;
118
+ //# sourceMappingURL=ProductToast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductToast.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/AddToCart/ProductToast.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ function useProductToast({ product, selectedVariation, quantity }) {
2
+ let image, price, previousPrice;
3
+ const toastProduct = selectedVariation || product;
4
+ // Calculating the price by mutliplying with quantity
5
+ price = calculatePrice(toastProduct.price, quantity);
6
+ previousPrice = calculatePrice(toastProduct.previousPrice, quantity);
7
+ image = (selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.images[0]) || product.images[0];
8
+ return {
9
+ price,
10
+ previousPrice,
11
+ image
12
+ };
13
+ }
14
+ function calculatePrice(price, quantity) {
15
+ const incVat = price.incVat * quantity;
16
+ const exVat = price.exVat * quantity;
17
+ const vat = price.vat * quantity;
18
+ return { incVat, exVat, vat };
19
+ }
20
+ export default useProductToast;
21
+ //# sourceMappingURL=useProductToast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProductToast.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/AddToCart/useProductToast.js"],"names":[],"mappings":"AAAA,SAAS,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE;IAC/D,IAAI,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC;IAEhC,MAAM,YAAY,GAAG,iBAAiB,IAAI,OAAO,CAAC;IAElD,qDAAqD;IACrD,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrD,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAErE,KAAK,GAAG,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,CAAC,CAAC,CAAC,KAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE1D,OAAO;QACL,KAAK;QACL,aAAa;QACb,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAK,EAAE,QAAQ;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAChC,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,43 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import CategoryLink from '@jetshop/ui/CategoryLink';
14
+ import { css, cx } from 'linaria';
15
+ import { styled } from 'linaria/react';
16
+ import { useIntl } from '@jetshop/intl';
17
+ import { theme } from '../Theme';
18
+ const campaignList = css `
19
+ font-size: 0.875rem;
20
+ margin: 0;
21
+ padding: 0;
22
+ span {
23
+ font-weight: 600;
24
+ }
25
+ `;
26
+ const CampaignLink = styled(CategoryLink) `
27
+ text-decoration: none;
28
+ color: ${theme.colors.blue};
29
+ `;
30
+ export function Campaigns(_a) {
31
+ var { campaigns, className } = _a, rest = __rest(_a, ["campaigns", "className"]);
32
+ const t = useIntl();
33
+ if (!campaigns || campaigns.length === 0) {
34
+ return null;
35
+ }
36
+ return (React.createElement("div", Object.assign({ className: cx(campaignList, className) }, rest),
37
+ React.createElement("span", null, t('Included in campaign:')),
38
+ React.createElement("ul", null, campaigns.map(campaign => {
39
+ return (React.createElement("li", { key: campaign.id },
40
+ React.createElement(CampaignLink, { category: campaign }, campaign.name)));
41
+ }))));
42
+ }
43
+ //# sourceMappingURL=Campaigns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Campaigns.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/Campaigns.js"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;CAOvB,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;;WAE9B,KAAK,CAAC,MAAM,CAAC,IAAI;CAC3B,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,EAAiC;QAAjC,EAAE,SAAS,EAAE,SAAS,OAAW,EAAN,IAAI,cAA/B,0BAAiC,CAAF;IACvD,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,2CAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,IAAM,IAAI;QACnD,kCAAO,CAAC,CAAC,uBAAuB,CAAC,CAAQ;QACzC,gCACG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,CACL,4BAAI,GAAG,EAAE,QAAQ,CAAC,EAAE;gBAClB,oBAAC,YAAY,IAAC,QAAQ,EAAE,QAAQ,IAAG,QAAQ,CAAC,IAAI,CAAgB,CAC7D,CACN,CAAC;QACJ,CAAC,CAAC,CACC,CACD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ import React, { useContext } from 'react';
2
+ import ProductConfigurationContext from '@jetshop/core/components/ProductConfigurationProvider/ProductConfigurationContext';
3
+ import { DropdownMenu, DropdownMenuButton, DropdownMenuItem, DropdownMenuItems } from '@jetshop/ui/DropdownMenu';
4
+ import { ReactComponent as Check } from '../../svg/Check.svg';
5
+ import { css } from 'linaria';
6
+ export function ConfigurationSelector({ product }) {
7
+ const context = useContext(ProductConfigurationContext);
8
+ if (!context)
9
+ return null;
10
+ const { configurations, selectOption, getSelectedValue } = context;
11
+ return (React.createElement(React.Fragment, null, configurations.map(config => {
12
+ const selectedValue = getSelectedValue(config);
13
+ return (React.createElement("div", { key: config.name, className: dropdownStyles },
14
+ React.createElement("label", { htmlFor: `option-${config.name}` }, config.name),
15
+ React.createElement(DropdownMenu, null,
16
+ React.createElement(DropdownMenuButton, { id: `option-${config.name}` }, selectedValue),
17
+ React.createElement(DropdownMenuItems, null, config.options.map(option => {
18
+ return (React.createElement(DropdownMenuItem, { closeOnSelect: true, key: option.id, onSelect: () => {
19
+ selectOption(option, config);
20
+ } },
21
+ option.name,
22
+ selectedValue === option.name && React.createElement(Check, null)));
23
+ })))));
24
+ })));
25
+ }
26
+ const dropdownStyles = css `
27
+ margin: 1em 0;
28
+ [data-flight-dropdown] {
29
+ background: white;
30
+ }
31
+ [data-flight-dropdown-button] {
32
+ background: white;
33
+ width: 100%;
34
+ display: flex;
35
+ align-items: center;
36
+ border: 1px solid #dedede;
37
+ }
38
+ [data-flight-dropdown-open='true'] {
39
+ [data-flight-dropdown-button] {
40
+ border-bottom-color: transparent;
41
+ border-radius: 3px 3px 0 0;
42
+ }
43
+ }
44
+ [data-flight-dropdown-items] {
45
+ width: 100%;
46
+ border: 1px solid #dedede;
47
+ margin-top: -1px;
48
+ border-radius: 0 0 3px 3px;
49
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
50
+ }
51
+ [data-flight-dropdown-item] {
52
+ display: flex;
53
+ align-items: center;
54
+ :last-child {
55
+ border-radius: 0 0 3px 3px;
56
+ }
57
+ }
58
+ svg {
59
+ margin-left: auto;
60
+ }
61
+ `;
62
+ //# sourceMappingURL=ConfigurationSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurationSelector.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ConfigurationSelector.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,2BAA2B,MAAM,mFAAmF,CAAC;AAC5H,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,qBAAqB,CAAC,EAAE,OAAO,EAAE;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IAEnE,OAAO,CACL,0CACG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC3B,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE/C,OAAO,CACL,6BAAK,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc;YAC9C,+BAAO,OAAO,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE,IAAG,MAAM,CAAC,IAAI,CAAS;YAC9D,oBAAC,YAAY;gBACX,oBAAC,kBAAkB,IAAC,EAAE,EAAE,UAAU,MAAM,CAAC,IAAI,EAAE,IAC5C,aAAa,CACK;gBAErB,oBAAC,iBAAiB,QACf,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;oBAC3B,OAAO,CACL,oBAAC,gBAAgB,IACf,aAAa,QACb,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,QAAQ,EAAE,GAAG,EAAE;4BACb,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;wBAC/B,CAAC;wBAEA,MAAM,CAAC,IAAI;wBACX,aAAa,KAAK,MAAM,CAAC,IAAI,IAAI,oBAAC,KAAK,OAAG,CAC1B,CACpB,CAAC;gBACJ,CAAC,CAAC,CACgB,CACP,CACX,CACP,CAAC;IACJ,CAAC,CAAC,CACD,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCzB,CAAC"}
@@ -0,0 +1,45 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import Gallery from '@jetshop/ui/Gallery/Gallery';
13
+ import Badges from '@jetshop/ui/ProductList/Badges';
14
+ import React from 'react';
15
+ import { css, cx } from 'linaria';
16
+ import { useSwitchToVariantImage } from '@jetshop/core/hooks/Product';
17
+ const wrapper = css `
18
+ display: flex;
19
+ flex-direction: column;
20
+ .image-gallery-thumbnails-container {
21
+ display: flex;
22
+ }
23
+ .image-gallery-thumbnail {
24
+ &.active {
25
+ border: 1px solid black;
26
+ }
27
+ }
28
+ `;
29
+ export default function ImageContainer(_a) {
30
+ var { images, badges, variant } = _a, rest = __rest(_a, ["images", "badges", "variant"]);
31
+ const galleryRef = React.createRef();
32
+ // Enable switching gallery to image of selected variant
33
+ useSwitchToVariantImage({
34
+ galleryImages: images,
35
+ galleryRef,
36
+ variant
37
+ });
38
+ const selectedVariantImageIndex = variant
39
+ ? images.findIndex(image => { var _a, _b; return image.url === ((_b = (_a = variant.images) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.url); })
40
+ : null;
41
+ return (React.createElement("div", Object.assign({}, rest, { className: cx(rest.className, wrapper) }),
42
+ React.createElement(Gallery, { aspect: '1:1', images: images, galleryRef: galleryRef, eagerlyLoad: selectedVariantImageIndex ? [0, selectedVariantImageIndex] : [0] },
43
+ React.createElement(Badges, { badges: badges }))));
44
+ }
45
+ //# sourceMappingURL=ImageContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageContainer.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/Images/ImageContainer.js"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,MAAM,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,OAAO,GAAG,GAAG,CAAA;;;;;;;;;;;CAWlB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAoC;QAApC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,OAAW,EAAN,IAAI,cAAlC,+BAAoC,CAAF;IACvE,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACrC,wDAAwD;IACxD,uBAAuB,CAAC;QACtB,aAAa,EAAE,MAAM;QACrB,UAAU;QACV,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,OAAO;QACvC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,eAAC,OAAA,KAAK,CAAC,GAAG,MAAK,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAG,CAAC,CAAC,0CAAE,GAAG,CAAA,CAAA,EAAA,CAAC;QACnE,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CACL,6CAAS,IAAI,IAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;QACnD,oBAAC,OAAO,IACN,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,WAAW,EACT,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAGlE,oBAAC,MAAM,IAAC,MAAM,EAAE,MAAM,GAAI,CAClB,CACN,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { styled } from 'linaria/react';
3
+ const Wrapper = styled('div') `
4
+ ul {
5
+ list-style: none;
6
+ display: flex;
7
+ justify-content: center;
8
+ li {
9
+ margin: 0.5rem;
10
+ height: 6rem;
11
+ width: 5rem;
12
+ background-size: cover;
13
+ cursor: pointer;
14
+ :hover {
15
+ opacity: 0.9;
16
+ }
17
+ }
18
+ }
19
+ `;
20
+ /**
21
+ * @param {array} {images} Array of prod images
22
+ */
23
+ const Thumbnails = ({ images, selectImage }) => {
24
+ // sizes[]: height, url, width
25
+ const prodImages = images || [];
26
+ return prodImages.length > 0 ? (React.createElement(Wrapper, null,
27
+ React.createElement("ul", null, prodImages.map((img, i) => (React.createElement("li", { key: img.sizes && img.sizes[0] && img.sizes[0].url, onClick: () => selectImage(i), style: {
28
+ background: `url(${img.sizes && img.sizes[1] ? img.sizes[1].url : null}) center center no-repeat`
29
+ } })))))) : null;
30
+ };
31
+ export default Thumbnails;
32
+ //# sourceMappingURL=Thumbnails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thumbnails.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/Images/Thumbnails.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;;;;;;CAgB5B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;IAC7C,+BAA+B;IAE/B,MAAM,UAAU,GAAG,MAAM,IAAI,EAAE,CAAC;IAEhC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,oBAAC,OAAO;QACN,gCACG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,4BACE,GAAG,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAClD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAC7B,KAAK,EAAE;gBACL,UAAU,EAAE,OACV,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IACjD,2BAA2B;aAC5B,GACD,CACH,CAAC,CACC,CACG,CACX,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { css } from 'linaria';
3
+ import { useIntl } from '@jetshop/intl';
4
+ import ProductLink from '@jetshop/ui/ProductLink';
5
+ import { theme } from '../../Theme';
6
+ const packageList = css `
7
+ font-size: 0.875rem;
8
+ margin: 0;
9
+ padding: 0;
10
+ span {
11
+ font-weight: 600;
12
+ }
13
+ a {
14
+ text-decoration: none;
15
+ color: ${theme.colors.blue};
16
+ }
17
+ `;
18
+ export function IncludedInPackages({ packages }) {
19
+ const t = useIntl();
20
+ if ((packages === null || packages === void 0 ? void 0 : packages.length) === 0)
21
+ return null;
22
+ return (React.createElement("div", { className: packageList },
23
+ React.createElement("span", null, t('Included in package:')),
24
+ React.createElement("ul", null, packages.map(pkg => {
25
+ return (React.createElement("li", { key: pkg.id },
26
+ React.createElement(PackageLink, { pkg: pkg })));
27
+ }))));
28
+ }
29
+ function PackageLink({ pkg }) {
30
+ return React.createElement(ProductLink, { product: pkg }, pkg.name);
31
+ }
32
+ //# sourceMappingURL=IncludedInPackages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncludedInPackages.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/PackageProduct/IncludedInPackages.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,GAAG,GAAG,CAAA;;;;;;;;;aASV,KAAK,CAAC,MAAM,CAAC,IAAI;;CAE7B,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,EAAE,QAAQ,EAAE;IAC7C,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,MAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,OAAO,CACL,6BAAK,SAAS,EAAE,WAAW;QACzB,kCAAO,CAAC,CAAC,sBAAsB,CAAC,CAAQ;QACxC,gCACG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAClB,OAAO,CACL,4BAAI,GAAG,EAAE,GAAG,CAAC,EAAE;gBACb,oBAAC,WAAW,IAAC,GAAG,EAAE,GAAG,GAAI,CACtB,CACN,CAAC;QACJ,CAAC,CAAC,CACC,CACD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,GAAG,EAAE;IAC1B,OAAO,oBAAC,WAAW,IAAC,OAAO,EAAE,GAAG,IAAG,GAAG,CAAC,IAAI,CAAe,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,170 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { styled } from 'linaria/react';
3
+ import { css } from 'linaria';
4
+ import { usePackageProduct } from '@jetshop/core/hooks/PackageProducts';
5
+ import { useIntl } from '@jetshop/intl';
6
+ import { Price } from '@jetshop/ui/Price';
7
+ import { useNotification } from '@jetshop/core/components/Notifications';
8
+ import { ReactComponent as Cart } from '../../../svg/Cart.svg';
9
+ import { default as Button, default as ButtonWithLoading } from '../../ui/Button';
10
+ import { PackageProductItem } from './PackageProductItem';
11
+ import packageProductQuery from './PackageProductQuery.gql';
12
+ import { theme } from '../../Theme';
13
+ import addMultipleToCartMutation from '../../Cart/queries/addMultipleToCart.gql';
14
+ import cartQuery from '../../Cart/queries/cartQuery.gql';
15
+ const PackageProductWrapper = styled('div') `
16
+ padding: 12px;
17
+ background-color: white;
18
+ display: flex;
19
+ flex-direction: column;
20
+ border: 1px solid #f0f0f0;
21
+ border-radius: 4px;
22
+ margin-bottom: 24px;
23
+ width: 100%;
24
+
25
+ .error {
26
+ margin-top: 1em;
27
+ background: #faf3f3;
28
+ padding: 1em;
29
+ label {
30
+ color: #ca0c0c;
31
+ }
32
+ }
33
+ .error button {
34
+ margin-top: 1em;
35
+ }
36
+ .package-product-items-wrapper {
37
+ display: flex;
38
+ flex-direction: column;
39
+ }
40
+ .package-product-price-wrapper {
41
+ font-size: 1.1rem;
42
+ margin-bottom: 0.75em;
43
+
44
+ .discount,
45
+ .total {
46
+ display: flex;
47
+ flex-direction: row;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ }
51
+
52
+ .discount {
53
+ color: #5f5f5f;
54
+ align-items: center;
55
+
56
+ .price {
57
+ font-size: 1.25em;
58
+ }
59
+ }
60
+ .total {
61
+ font-weight: 600;
62
+ .package-price {
63
+ font-size: 1.5em;
64
+ }
65
+ }
66
+ }
67
+ `;
68
+ const toastStyles = css `
69
+ background: white;
70
+ color: ${theme.colors.black};
71
+ padding: 1em;
72
+ line-height: 1.5;
73
+ display: flex;
74
+ align-items: center;
75
+ white-space: normal;
76
+
77
+ svg {
78
+ width: 1.5em;
79
+ height: 1.5em;
80
+ margin-right: 0.5em;
81
+ }
82
+ `;
83
+ function Notification({ productName }) {
84
+ const t = useIntl();
85
+ return (React.createElement("div", { className: toastStyles },
86
+ React.createElement(Cart, null),
87
+ React.createElement("span", null, t('{productName} has been added to the cart', {
88
+ productName
89
+ }))));
90
+ }
91
+ export function PackageProduct({ product }) {
92
+ const ref = useRef(null);
93
+ const { addPackageToCart, status, price, error, retry, updatePackageItem, packageProduct } = usePackageProduct({
94
+ product,
95
+ packageProductQuery
96
+ });
97
+ // validation is not enabled until the 'add to cart' button is pressed once
98
+ const [validationEnabled, enableValidation] = React.useReducer(() => true, false);
99
+ const t = useIntl();
100
+ const buyable = status === 'buyable';
101
+ function add() {
102
+ addPackageToCart({
103
+ addMultipleToCartMutation,
104
+ cartQuery
105
+ });
106
+ }
107
+ function scrollToProducts() {
108
+ window.scrollTo({ top: ref.current.offsetTop, behavior: 'smooth' });
109
+ }
110
+ const [notify] = useNotification();
111
+ useEffect(() => {
112
+ if (status === 'added') {
113
+ notify(React.createElement(Notification, { productName: product.name }));
114
+ }
115
+ }, [notify, product.name, status]);
116
+ if (status === 'loading') {
117
+ return React.createElement(LoadingState, null);
118
+ }
119
+ return (React.createElement(PackageProductWrapper, { ref: ref },
120
+ React.createElement("div", { className: "package-product-items-wrapper" }, packageProduct.package.items.map((item, idx) => {
121
+ return (React.createElement(PackageProductItem, { item: item, key: item.product.id, updatePackageItem: updatePackageItem, validationEnabled: validationEnabled, price: price.items[idx], fetchingPrice: status === 'fetching_price' }));
122
+ })),
123
+ React.createElement(PackagePrice, { data: price, fetching: status === 'fetching_price' }),
124
+ React.createElement(Button, { "data-testid": "package-product-add-to-cart", disabled: validationEnabled && !buyable, loading: status === 'fetching_price', loadingText: t('Updating price... '), onClick: buyable
125
+ ? add
126
+ : () => {
127
+ enableValidation();
128
+ scrollToProducts();
129
+ } }, status === 'added'
130
+ ? t('Successfully added!')
131
+ : status === 'invalid' && validationEnabled
132
+ ? t('Select the variants')
133
+ : t('Add to cart')),
134
+ status === 'error' && React.createElement(Error, { error: error, retry: retry })));
135
+ }
136
+ function LoadingState() {
137
+ const t = useIntl();
138
+ return (React.createElement(PackageProductWrapper, null, t('Loading package details...')));
139
+ }
140
+ function PackagePrice({ data, fetching }) {
141
+ const t = useIntl();
142
+ return (React.createElement("div", { className: "package-product-price-wrapper", style: {
143
+ opacity: fetching ? 0.3 : 1
144
+ } },
145
+ React.createElement("div", { className: "discount" },
146
+ React.createElement("p", { className: "package-price-label" }, t('Package Discount')),
147
+ React.createElement(Price, { negative: true, price: data.discountValue, className: "package-price" })),
148
+ React.createElement("div", { className: "total" },
149
+ React.createElement("p", { className: "package-price-label" }, t('Total')),
150
+ React.createElement(Price, { "data-testid": "package-price-total", price: data.price, className: "package-price" }))));
151
+ }
152
+ function Error({ error, retry }) {
153
+ const t = useIntl();
154
+ // TODO: API will be changed to allow a `abortOnError` or similar variable
155
+ // for addMultipleToCart. Currently it's possible to end up in a state where
156
+ // some items in the package failed and some succeeded. After the change,
157
+ // complete failure will be the only case we need to handle.
158
+ return (React.createElement("div", { className: "error" },
159
+ React.createElement("label", null,
160
+ t('Something went wrong when { placeholder }', {
161
+ placeholder: error.fromState === 'fetchingPrice'
162
+ ? ' fetching price. This item cannot be added to the cart at this time'
163
+ : ' adding to cart'
164
+ }),
165
+ "."),
166
+ error.messages.map(err => (React.createElement("div", null, err))),
167
+ React.createElement(ButtonWithLoading, { onClick: retry }, t('Retry'))));
168
+ }
169
+ export default PackageProduct;
170
+ //# sourceMappingURL=PackageProduct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageProduct.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/PackageProduct/PackageProduct.js"],"names":[],"mappings":"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"}