@jetshop/template-trend 6.1.4 → 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.
- package/dist/src/client.js +6 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/components/Auth/ForgotPassword.js +30 -0
- package/dist/src/components/Auth/ForgotPassword.js.map +1 -0
- package/dist/src/components/Auth/ForgotPassword.loadable.js +7 -0
- package/dist/src/components/Auth/ForgotPassword.loadable.js.map +1 -0
- package/dist/src/components/Auth/LogInPage.js +69 -0
- package/dist/src/components/Auth/LogInPage.js.map +1 -0
- package/dist/src/components/Auth/LogInPage.loadable.js +7 -0
- package/dist/src/components/Auth/LogInPage.loadable.js.map +1 -0
- package/dist/src/components/Auth/ResetPassword.js +30 -0
- package/dist/src/components/Auth/ResetPassword.js.map +1 -0
- package/dist/src/components/Auth/ResetPassword.loadable.js +7 -0
- package/dist/src/components/Auth/ResetPassword.loadable.js.map +1 -0
- package/dist/src/components/Auth/Signup/Address.js +34 -0
- package/dist/src/components/Auth/Signup/Address.js.map +1 -0
- package/dist/src/components/Auth/Signup/CustomerType.js +30 -0
- package/dist/src/components/Auth/Signup/CustomerType.js.map +1 -0
- package/dist/src/components/Auth/Signup/LoginFields.js +31 -0
- package/dist/src/components/Auth/Signup/LoginFields.js.map +1 -0
- package/dist/src/components/Auth/Signup/PID.js +11 -0
- package/dist/src/components/Auth/Signup/PID.js.map +1 -0
- package/dist/src/components/Auth/Signup/SSN.js +29 -0
- package/dist/src/components/Auth/Signup/SSN.js.map +1 -0
- package/dist/src/components/Auth/Signup/SignUpPage.js +78 -0
- package/dist/src/components/Auth/Signup/SignUpPage.js.map +1 -0
- package/dist/src/components/Auth/Signup/SignUpPage.loadable.js +7 -0
- package/dist/src/components/Auth/Signup/SignUpPage.loadable.js.map +1 -0
- package/dist/src/components/Auth/Signup/useSignupValidation.js +29 -0
- package/dist/src/components/Auth/Signup/useSignupValidation.js.map +1 -0
- package/dist/src/components/Auth/UI/Form.js +33 -0
- package/dist/src/components/Auth/UI/Form.js.map +1 -0
- package/dist/src/components/Cart/CartButton.js +46 -0
- package/dist/src/components/Cart/CartButton.js.map +1 -0
- package/dist/src/components/Cart/CartFlyout.js +190 -0
- package/dist/src/components/Cart/CartFlyout.js.map +1 -0
- package/dist/src/components/Cart/CartItem.js +155 -0
- package/dist/src/components/Cart/CartItem.js.map +1 -0
- package/dist/src/components/Cart/FreeShipping.js +51 -0
- package/dist/src/components/Cart/FreeShipping.js.map +1 -0
- package/dist/src/components/CategoryPage/CategoryHeader.js +104 -0
- package/dist/src/components/CategoryPage/CategoryHeader.js.map +1 -0
- package/dist/src/components/CategoryPage/CategoryHeaderLoadingState.js +13 -0
- package/dist/src/components/CategoryPage/CategoryHeaderLoadingState.js.map +1 -0
- package/dist/src/components/CategoryPage/CategoryPage.js +26 -0
- package/dist/src/components/CategoryPage/CategoryPage.js.map +1 -0
- package/dist/src/components/CategoryPage/CategoryPage.loadable.js +7 -0
- package/dist/src/components/CategoryPage/CategoryPage.loadable.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/ActiveFilters.js +79 -0
- package/dist/src/components/CategoryPage/Filters/ActiveFilters.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/BooleanFilters.js +18 -0
- package/dist/src/components/CategoryPage/Filters/BooleanFilters.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Filter.js +97 -0
- package/dist/src/components/CategoryPage/Filters/Filter.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/FilterDrawer.js +91 -0
- package/dist/src/components/CategoryPage/Filters/FilterDrawer.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/FilterDropdownMenu.js +77 -0
- package/dist/src/components/CategoryPage/Filters/FilterDropdownMenu.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/ListFilters.js +38 -0
- package/dist/src/components/CategoryPage/Filters/ListFilters.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/ActiveCarot.js +15 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/ActiveCarot.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/FilterButton.js +107 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/FilterButton.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/ListAccordion.js +44 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/ListAccordion.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/RangeAccordion.js +21 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/RangeAccordion.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/SortOrderAccordion.js +30 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/SortOrderAccordion.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/shared/styles.js +12 -0
- package/dist/src/components/CategoryPage/Filters/Mobile/shared/styles.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/MultiListFilters.js +37 -0
- package/dist/src/components/CategoryPage/Filters/MultiListFilters.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/RangeFilters.js +122 -0
- package/dist/src/components/CategoryPage/Filters/RangeFilters.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/SortOrders.js +29 -0
- package/dist/src/components/CategoryPage/Filters/SortOrders.js.map +1 -0
- package/dist/src/components/CategoryPage/Filters/index.js +2 -0
- package/dist/src/components/CategoryPage/Filters/index.js.map +1 -0
- package/dist/src/components/CategoryPage/ProductCard.js +98 -0
- package/dist/src/components/CategoryPage/ProductCard.js.map +1 -0
- package/dist/src/components/CategoryPage/ProductGrid.js +89 -0
- package/dist/src/components/CategoryPage/ProductGrid.js.map +1 -0
- package/dist/src/components/CategoryPage/ProductGridWindow.js +48 -0
- package/dist/src/components/CategoryPage/ProductGridWindow.js.map +1 -0
- package/dist/src/components/CategoryPage/StandardCategoryPage.js +51 -0
- package/dist/src/components/CategoryPage/StandardCategoryPage.js.map +1 -0
- package/dist/src/components/CategoryPage/WindowedCategoryPage.js +87 -0
- package/dist/src/components/CategoryPage/WindowedCategoryPage.js.map +1 -0
- package/dist/src/components/CategoryPage/index.js +2 -0
- package/dist/src/components/CategoryPage/index.js.map +1 -0
- package/dist/src/components/ContentPage/ContentPage.js +64 -0
- package/dist/src/components/ContentPage/ContentPage.js.map +1 -0
- package/dist/src/components/ContentPage/ContentPage.loadable.js +7 -0
- package/dist/src/components/ContentPage/ContentPage.loadable.js.map +1 -0
- package/dist/src/components/ContentPage/SubPageNavigation.js +164 -0
- package/dist/src/components/ContentPage/SubPageNavigation.js.map +1 -0
- package/dist/src/components/ContentPage/index.js +2 -0
- package/dist/src/components/ContentPage/index.js.map +1 -0
- package/dist/src/components/CookieConsent.js +84 -0
- package/dist/src/components/CookieConsent.js.map +1 -0
- package/dist/src/components/Forms/GlobalError.js +28 -0
- package/dist/src/components/Forms/GlobalError.js.map +1 -0
- package/dist/src/components/Forms/Input.js +79 -0
- package/dist/src/components/Forms/Input.js.map +1 -0
- package/dist/src/components/Forms/InputStatus.js +42 -0
- package/dist/src/components/Forms/InputStatus.js.map +1 -0
- package/dist/src/components/Forms/Success.js +25 -0
- package/dist/src/components/Forms/Success.js.map +1 -0
- package/dist/src/components/Layout/Container.js +19 -0
- package/dist/src/components/Layout/Container.js.map +1 -0
- package/dist/src/components/Layout/Content/index.js +7 -0
- package/dist/src/components/Layout/Content/index.js.map +1 -0
- package/dist/src/components/Layout/Footer/Footer.js +106 -0
- package/dist/src/components/Layout/Footer/Footer.js.map +1 -0
- package/dist/src/components/Layout/Footer/FooterLinks.js +24 -0
- package/dist/src/components/Layout/Footer/FooterLinks.js.map +1 -0
- package/dist/src/components/Layout/Footer/SocialLinks.js +62 -0
- package/dist/src/components/Layout/Footer/SocialLinks.js.map +1 -0
- package/dist/src/components/Layout/Header/Categories/Categories.js +10 -0
- package/dist/src/components/Layout/Header/Categories/Categories.js.map +1 -0
- package/dist/src/components/Layout/Header/Categories/MobileCategories.js +128 -0
- package/dist/src/components/Layout/Header/Categories/MobileCategories.js.map +1 -0
- package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesByLevel.js +4 -0
- package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesByLevel.js.map +1 -0
- package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesUnderParent.js +4 -0
- package/dist/src/components/Layout/Header/Categories/__util__/getCategoriesUnderParent.js.map +1 -0
- package/dist/src/components/Layout/Header/Categories/__util__/hasChildCategories.js +4 -0
- package/dist/src/components/Layout/Header/Categories/__util__/hasChildCategories.js.map +1 -0
- package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenu.js +21 -0
- package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenu.js.map +1 -0
- package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenuContainer.js +55 -0
- package/dist/src/components/Layout/Header/CategoryMenu/CategoryMenuContainer.js.map +1 -0
- package/dist/src/components/Layout/Header/CategoryMenu/SubMenuSection.js +60 -0
- package/dist/src/components/Layout/Header/CategoryMenu/SubMenuSection.js.map +1 -0
- package/dist/src/components/Layout/Header/CategoryMenu/SubMenuWrapper.js +78 -0
- package/dist/src/components/Layout/Header/CategoryMenu/SubMenuWrapper.js.map +1 -0
- package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelector.js +26 -0
- package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelector.js.map +1 -0
- package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelectorModal.js +36 -0
- package/dist/src/components/Layout/Header/ChannelSelector/ChannelSelectorModal.js.map +1 -0
- package/dist/src/components/Layout/Header/ChannelSelector/LanguageSelector.js +12 -0
- package/dist/src/components/Layout/Header/ChannelSelector/LanguageSelector.js.map +1 -0
- package/dist/src/components/Layout/Header/ChannelSelector/Selector.js +120 -0
- package/dist/src/components/Layout/Header/ChannelSelector/Selector.js.map +1 -0
- package/dist/src/components/Layout/Header/ChannelSelector/flattenCountries.js +15 -0
- package/dist/src/components/Layout/Header/ChannelSelector/flattenCountries.js.map +1 -0
- package/dist/src/components/Layout/Header/Header.js +189 -0
- package/dist/src/components/Layout/Header/Header.js.map +1 -0
- package/dist/src/components/Layout/Header/Logo.js +40 -0
- package/dist/src/components/Layout/Header/Logo.js.map +1 -0
- package/dist/src/components/Layout/Header/LogoSearchBar.js +15 -0
- package/dist/src/components/Layout/Header/LogoSearchBar.js.map +1 -0
- package/dist/src/components/Layout/Header/MobileMenu.js +76 -0
- package/dist/src/components/Layout/Header/MobileMenu.js.map +1 -0
- package/dist/src/components/Layout/Header/RecommendedChannel/ChannelBanner.js +218 -0
- package/dist/src/components/Layout/Header/RecommendedChannel/ChannelBanner.js.map +1 -0
- package/dist/src/components/Layout/Header/RecommendedChannel/RecommendedChannelSelector.js +123 -0
- package/dist/src/components/Layout/Header/RecommendedChannel/RecommendedChannelSelector.js.map +1 -0
- package/dist/src/components/Layout/Header/SearchBar.js +79 -0
- package/dist/src/components/Layout/Header/SearchBar.js.map +1 -0
- package/dist/src/components/Layout/Header/SearchButton.js +50 -0
- package/dist/src/components/Layout/Header/SearchButton.js.map +1 -0
- package/dist/src/components/Layout/Header/SubCategoryNav.js +71 -0
- package/dist/src/components/Layout/Header/SubCategoryNav.js.map +1 -0
- package/dist/src/components/Layout/Header/TopNav.js +63 -0
- package/dist/src/components/Layout/Header/TopNav.js.map +1 -0
- package/dist/src/components/Layout/MaxWidth.js +19 -0
- package/dist/src/components/Layout/MaxWidth.js.map +1 -0
- package/dist/src/components/Layout/Notifications.js +70 -0
- package/dist/src/components/Layout/Notifications.js.map +1 -0
- package/dist/src/components/LoadingPage.js +19 -0
- package/dist/src/components/LoadingPage.js.map +1 -0
- package/dist/src/components/LogOut.loadable.js +7 -0
- package/dist/src/components/LogOut.loadable.js.map +1 -0
- package/dist/src/components/MyPages/ChangePasswordPage.js +26 -0
- package/dist/src/components/MyPages/ChangePasswordPage.js.map +1 -0
- package/dist/src/components/MyPages/CustomerNameHeader.js +28 -0
- package/dist/src/components/MyPages/CustomerNameHeader.js.map +1 -0
- package/dist/src/components/MyPages/DeleteAccount.js +47 -0
- package/dist/src/components/MyPages/DeleteAccount.js.map +1 -0
- package/dist/src/components/MyPages/MyPages.js +152 -0
- package/dist/src/components/MyPages/MyPages.js.map +1 -0
- package/dist/src/components/MyPages/MyPages.loadable.js +7 -0
- package/dist/src/components/MyPages/MyPages.loadable.js.map +1 -0
- package/dist/src/components/MyPages/MyPagesBreadcrumbs.js +18 -0
- package/dist/src/components/MyPages/MyPagesBreadcrumbs.js.map +1 -0
- package/dist/src/components/MyPages/MyPagesSidebar.js +81 -0
- package/dist/src/components/MyPages/MyPagesSidebar.js.map +1 -0
- package/dist/src/components/MyPages/MyPagesStartPage.js +99 -0
- package/dist/src/components/MyPages/MyPagesStartPage.js.map +1 -0
- package/dist/src/components/MyPages/Newsletter.js +33 -0
- package/dist/src/components/MyPages/Newsletter.js.map +1 -0
- package/dist/src/components/MyPages/Orders/ListOrder.js +159 -0
- package/dist/src/components/MyPages/Orders/ListOrder.js.map +1 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/Contact.js +38 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/Contact.js.map +1 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/ListDetail.js +196 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/ListDetail.js.map +1 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/OrderTotals.js +81 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/OrderTotals.js.map +1 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/ShippingPayment.js +37 -0
- package/dist/src/components/MyPages/Orders/OrderDetail/ShippingPayment.js.map +1 -0
- package/dist/src/components/MyPages/Orders/OrderListPage.js +56 -0
- package/dist/src/components/MyPages/Orders/OrderListPage.js.map +1 -0
- package/dist/src/components/MyPages/ProfileDeliveryAddresses.js +93 -0
- package/dist/src/components/MyPages/ProfileDeliveryAddresses.js.map +1 -0
- package/dist/src/components/MyPages/ProfilePage.js +109 -0
- package/dist/src/components/MyPages/ProfilePage.js.map +1 -0
- package/dist/src/components/MyPages/ProfileView.js +42 -0
- package/dist/src/components/MyPages/ProfileView.js.map +1 -0
- package/dist/src/components/NavigationTree/NavTree.js +53 -0
- package/dist/src/components/NavigationTree/NavTree.js.map +1 -0
- package/dist/src/components/NavigationTree/NavTreePage.js +7 -0
- package/dist/src/components/NavigationTree/NavTreePage.js.map +1 -0
- package/dist/src/components/NavigationTree/NavTreePage.loadable.js +7 -0
- package/dist/src/components/NavigationTree/NavTreePage.loadable.js.map +1 -0
- package/dist/src/components/Newsletter/NewsletterField.js +93 -0
- package/dist/src/components/Newsletter/NewsletterField.js.map +1 -0
- package/dist/src/components/NotFoundPage.js +59 -0
- package/dist/src/components/NotFoundPage.js.map +1 -0
- package/dist/src/components/NotFoundPage.loadable.js +7 -0
- package/dist/src/components/NotFoundPage.loadable.js.map +1 -0
- package/dist/src/components/Pages/About.js +7 -0
- package/dist/src/components/Pages/About.js.map +1 -0
- package/dist/src/components/Pagination/Pagination.js +29 -0
- package/dist/src/components/Pagination/Pagination.js.map +1 -0
- package/dist/src/components/Pagination/PaginationWrapper.js +16 -0
- package/dist/src/components/Pagination/PaginationWrapper.js.map +1 -0
- package/dist/src/components/PreviewRoute.loadable.js +7 -0
- package/dist/src/components/PreviewRoute.loadable.js.map +1 -0
- package/dist/src/components/ProductList/AddToCart.js +46 -0
- package/dist/src/components/ProductList/AddToCart.js.map +1 -0
- package/dist/src/components/ProductList/Favourite.js +46 -0
- package/dist/src/components/ProductList/Favourite.js.map +1 -0
- package/dist/src/components/ProductList/FavouriteCount.js +15 -0
- package/dist/src/components/ProductList/FavouriteCount.js.map +1 -0
- package/dist/src/components/ProductList/Favourites.js +187 -0
- package/dist/src/components/ProductList/Favourites.js.map +1 -0
- package/dist/src/components/ProductList/Lister.js +22 -0
- package/dist/src/components/ProductList/Lister.js.map +1 -0
- package/dist/src/components/ProductList/Product.js +62 -0
- package/dist/src/components/ProductList/Product.js.map +1 -0
- package/dist/src/components/ProductList/SelectVariant.js +47 -0
- package/dist/src/components/ProductList/SelectVariant.js.map +1 -0
- package/dist/src/components/ProductList/productListQueries.js +15 -0
- package/dist/src/components/ProductList/productListQueries.js.map +1 -0
- package/dist/src/components/ProductPage/AddToCart/AddToCartForm.js +110 -0
- package/dist/src/components/ProductPage/AddToCart/AddToCartForm.js.map +1 -0
- package/dist/src/components/ProductPage/AddToCart/ProductToast.js +118 -0
- package/dist/src/components/ProductPage/AddToCart/ProductToast.js.map +1 -0
- package/dist/src/components/ProductPage/AddToCart/useProductToast.js +21 -0
- package/dist/src/components/ProductPage/AddToCart/useProductToast.js.map +1 -0
- package/dist/src/components/ProductPage/Campaigns.js +43 -0
- package/dist/src/components/ProductPage/Campaigns.js.map +1 -0
- package/dist/src/components/ProductPage/ConfigurationSelector.js +62 -0
- package/dist/src/components/ProductPage/ConfigurationSelector.js.map +1 -0
- package/dist/src/components/ProductPage/Images/ImageContainer.js +45 -0
- package/dist/src/components/ProductPage/Images/ImageContainer.js.map +1 -0
- package/dist/src/components/ProductPage/Images/Thumbnails.js +32 -0
- package/dist/src/components/ProductPage/Images/Thumbnails.js.map +1 -0
- package/dist/src/components/ProductPage/PackageProduct/IncludedInPackages.js +32 -0
- package/dist/src/components/ProductPage/PackageProduct/IncludedInPackages.js.map +1 -0
- package/dist/src/components/ProductPage/PackageProduct/PackageProduct.js +170 -0
- package/dist/src/components/ProductPage/PackageProduct/PackageProduct.js.map +1 -0
- package/dist/src/components/ProductPage/PackageProduct/PackageProductItem.js +92 -0
- package/dist/src/components/ProductPage/PackageProduct/PackageProductItem.js.map +1 -0
- package/dist/src/components/ProductPage/PriceHistory.js +99 -0
- package/dist/src/components/ProductPage/PriceHistory.js.map +1 -0
- package/dist/src/components/ProductPage/ProductInfo.js +55 -0
- package/dist/src/components/ProductPage/ProductInfo.js.map +1 -0
- package/dist/src/components/ProductPage/ProductInfoAccordion.js +46 -0
- package/dist/src/components/ProductPage/ProductInfoAccordion.js.map +1 -0
- package/dist/src/components/ProductPage/ProductPage.js +174 -0
- package/dist/src/components/ProductPage/ProductPage.js.map +1 -0
- package/dist/src/components/ProductPage/ProductPage.loadable.js +7 -0
- package/dist/src/components/ProductPage/ProductPage.loadable.js.map +1 -0
- package/dist/src/components/ProductPage/ProductPageLoadingState.js +55 -0
- package/dist/src/components/ProductPage/ProductPageLoadingState.js.map +1 -0
- package/dist/src/components/ProductPage/QuantityContainer.js +21 -0
- package/dist/src/components/ProductPage/QuantityContainer.js.map +1 -0
- package/dist/src/components/ProductPage/RelatedProducts.js +45 -0
- package/dist/src/components/ProductPage/RelatedProducts.js.map +1 -0
- package/dist/src/components/ProductPage/SizePicker.js +37 -0
- package/dist/src/components/ProductPage/SizePicker.js.map +1 -0
- package/dist/src/components/ProductPage/StockStatus/NotifyWhenBack.js +93 -0
- package/dist/src/components/ProductPage/StockStatus/NotifyWhenBack.js.map +1 -0
- package/dist/src/components/ProductPage/StockStatus/StockOrb.js +31 -0
- package/dist/src/components/ProductPage/StockStatus/StockOrb.js.map +1 -0
- package/dist/src/components/ProductPage/StockStatus/StockStatusIndicator.js +33 -0
- package/dist/src/components/ProductPage/StockStatus/StockStatusIndicator.js.map +1 -0
- package/dist/src/components/ProductPage/StockStatus/WarehouseStock.js +255 -0
- package/dist/src/components/ProductPage/StockStatus/WarehouseStock.js.map +1 -0
- package/dist/src/components/ProductPage/VariantSelector.js +138 -0
- package/dist/src/components/ProductPage/VariantSelector.js.map +1 -0
- package/dist/src/components/ProductPage/styledComponents.js +11 -0
- package/dist/src/components/ProductPage/styledComponents.js.map +1 -0
- package/dist/src/components/ProductPage/useProductValidationMessage.js +24 -0
- package/dist/src/components/ProductPage/useProductValidationMessage.js.map +1 -0
- package/dist/src/components/SearchPage/CategoryList.js +129 -0
- package/dist/src/components/SearchPage/CategoryList.js.map +1 -0
- package/dist/src/components/SearchPage/EmptySearchResults.js +23 -0
- package/dist/src/components/SearchPage/EmptySearchResults.js.map +1 -0
- package/dist/src/components/SearchPage/SearchMeta.js +27 -0
- package/dist/src/components/SearchPage/SearchMeta.js.map +1 -0
- package/dist/src/components/SearchPage/SearchPage.js +52 -0
- package/dist/src/components/SearchPage/SearchPage.js.map +1 -0
- package/dist/src/components/SearchPage/SearchPage.loadable.js +7 -0
- package/dist/src/components/SearchPage/SearchPage.loadable.js.map +1 -0
- package/dist/src/components/SearchPage/SearchResults.js +60 -0
- package/dist/src/components/SearchPage/SearchResults.js.map +1 -0
- package/dist/src/components/SearchPage/SearchTerm.js +11 -0
- package/dist/src/components/SearchPage/SearchTerm.js.map +1 -0
- package/dist/src/components/SearchPage/WindowedSearchResults.js +80 -0
- package/dist/src/components/SearchPage/WindowedSearchResults.js.map +1 -0
- package/dist/src/components/SearchPage/index.js +3 -0
- package/dist/src/components/SearchPage/index.js.map +1 -0
- package/dist/src/components/Shop.js +82 -0
- package/dist/src/components/Shop.js.map +1 -0
- package/dist/src/components/StartPage/Content/Row.js +40 -0
- package/dist/src/components/StartPage/Content/Row.js.map +1 -0
- package/dist/src/components/StartPage/Content/StartPageCampaign.js +112 -0
- package/dist/src/components/StartPage/Content/StartPageCampaign.js.map +1 -0
- package/dist/src/components/StartPage/Content/StartPageCategories.js +80 -0
- package/dist/src/components/StartPage/Content/StartPageCategories.js.map +1 -0
- package/dist/src/components/StartPage/Content/StartPageHTMLContent.js +74 -0
- package/dist/src/components/StartPage/Content/StartPageHTMLContent.js.map +1 -0
- package/dist/src/components/StartPage/Content/StartPageHero.js +73 -0
- package/dist/src/components/StartPage/Content/StartPageHero.js.map +1 -0
- package/dist/src/components/StartPage/Content/StartPageProductGrid.js +69 -0
- package/dist/src/components/StartPage/Content/StartPageProductGrid.js.map +1 -0
- package/dist/src/components/StartPage/StartPage.js +37 -0
- package/dist/src/components/StartPage/StartPage.js.map +1 -0
- package/dist/src/components/StartPage/StartPage.loadable.js +7 -0
- package/dist/src/components/StartPage/StartPage.loadable.js.map +1 -0
- package/dist/src/components/StartPage/index.js +3 -0
- package/dist/src/components/StartPage/index.js.map +1 -0
- package/dist/src/components/Store/Store.js +26 -0
- package/dist/src/components/Store/Store.js.map +1 -0
- package/dist/src/components/Store/Store.loadable.js +7 -0
- package/dist/src/components/Store/Store.loadable.js.map +1 -0
- package/dist/src/components/Store/StoreDetail.js +13 -0
- package/dist/src/components/Store/StoreDetail.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreList.js +160 -0
- package/dist/src/components/StoreLocator/StoreList.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreLocator.js +133 -0
- package/dist/src/components/StoreLocator/StoreLocator.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreLocator.loadable.js +7 -0
- package/dist/src/components/StoreLocator/StoreLocator.loadable.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreMap.js +116 -0
- package/dist/src/components/StoreLocator/StoreMap.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreMarker.js +63 -0
- package/dist/src/components/StoreLocator/StoreMarker.js.map +1 -0
- package/dist/src/components/StoreLocator/StoreSearch.js +47 -0
- package/dist/src/components/StoreLocator/StoreSearch.js.map +1 -0
- package/dist/src/components/StoreLocator/UserLocation.js +76 -0
- package/dist/src/components/StoreLocator/UserLocation.js.map +1 -0
- package/dist/src/components/StoreLocator/useLocationState.js +14 -0
- package/dist/src/components/StoreLocator/useLocationState.js.map +1 -0
- package/dist/src/components/StoreLocator/useMapState.js +16 -0
- package/dist/src/components/StoreLocator/useMapState.js.map +1 -0
- package/dist/src/components/Theme.js +6 -0
- package/dist/src/components/Theme.js.map +1 -0
- package/dist/src/components/ui/Badge.js +33 -0
- package/dist/src/components/ui/Badge.js.map +1 -0
- package/dist/src/components/ui/Button.js +93 -0
- package/dist/src/components/ui/Button.js.map +1 -0
- package/dist/src/components/ui/CloseButton.js +18 -0
- package/dist/src/components/ui/CloseButton.js.map +1 -0
- package/dist/src/components/ui/Divider.js +11 -0
- package/dist/src/components/ui/Divider.js.map +1 -0
- package/dist/src/components/ui/Headings.js +19 -0
- package/dist/src/components/ui/Headings.js.map +1 -0
- package/dist/src/components/ui/RadioGroupWithLabels.js +16 -0
- package/dist/src/components/ui/RadioGroupWithLabels.js.map +1 -0
- package/dist/src/components/ui/Spinner.js +39 -0
- package/dist/src/components/ui/Spinner.js.map +1 -0
- package/dist/src/fonts/loadFontCss.js +51 -0
- package/dist/src/fonts/loadFontCss.js.map +1 -0
- package/dist/src/globalStyles.js +83 -0
- package/dist/src/globalStyles.js.map +1 -0
- package/dist/src/server.js +12 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/shop.config.js +68 -0
- package/dist/src/shop.config.js.map +1 -0
- package/dist/src/theme-variables.js +65 -0
- package/dist/src/theme-variables.js.map +1 -0
- package/dist/translations/cs.json +788 -0
- package/dist/translations/da.json +791 -0
- package/dist/translations/de.json +788 -0
- package/dist/translations/en.json +794 -0
- package/dist/translations/es.json +788 -0
- package/dist/translations/et.json +788 -0
- package/dist/translations/fi.json +794 -0
- package/dist/translations/fr.json +788 -0
- package/dist/translations/index.js +18 -0
- package/dist/translations/index.js.map +1 -0
- package/dist/translations/it.json +788 -0
- package/dist/translations/lv.json +788 -0
- package/dist/translations/nb.json +791 -0
- package/dist/translations/nl.json +788 -0
- package/dist/translations/pl.json +788 -0
- package/dist/translations/ru.json +788 -0
- package/dist/translations/sk.json +788 -0
- package/dist/translations/sr.json +464 -0
- package/dist/translations/sv.json +794 -0
- package/jsconfig.json +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { usePackageProductItem } from '@jetshop/core/hooks/PackageProducts';
|
|
2
|
+
import Image from '@jetshop/ui/Image';
|
|
3
|
+
import { Price } from '@jetshop/ui/Price';
|
|
4
|
+
import ProductLink from '@jetshop/ui/ProductLink';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { styled } from 'linaria/react';
|
|
7
|
+
import StockStatusIndicator from '../StockStatus/StockStatusIndicator';
|
|
8
|
+
import { VariantSelector } from '../VariantSelector';
|
|
9
|
+
const PackageProductItemWrapper = styled('div') `
|
|
10
|
+
border-bottom: 1px solid #f0f0f0;
|
|
11
|
+
margin-bottom: 12px;
|
|
12
|
+
padding-bottom: 12px;
|
|
13
|
+
color: black;
|
|
14
|
+
display: flex;
|
|
15
|
+
align-items: flex-start;
|
|
16
|
+
|
|
17
|
+
.product-link {
|
|
18
|
+
width: 72px;
|
|
19
|
+
margin-right: 12px;
|
|
20
|
+
img {
|
|
21
|
+
:hover {
|
|
22
|
+
opacity: 0.8 !important;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.product-name {
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
font-size: 18px;
|
|
30
|
+
text-decoration: none;
|
|
31
|
+
color: black;
|
|
32
|
+
:hover {
|
|
33
|
+
text-decoration: underline;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.product-detail {
|
|
38
|
+
width: 100%;
|
|
39
|
+
> * + * {
|
|
40
|
+
margin-top: 0.5em;
|
|
41
|
+
margin-bottom: 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.flex {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
.price-quantity-wrapper {
|
|
50
|
+
margin-left: auto;
|
|
51
|
+
font-size: 18px;
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
.package-product-price {
|
|
55
|
+
.price,
|
|
56
|
+
.new-price,
|
|
57
|
+
.old-price {
|
|
58
|
+
display: inline-block;
|
|
59
|
+
margin-right: 0px;
|
|
60
|
+
margin-left: 8px;
|
|
61
|
+
}
|
|
62
|
+
.price,
|
|
63
|
+
.new-price {
|
|
64
|
+
color: #ca0c0c;
|
|
65
|
+
font-size: 18px;
|
|
66
|
+
}
|
|
67
|
+
.old-price {
|
|
68
|
+
color: black;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
export function PackageProductItem({ item, updatePackageItem, validationEnabled, price, fetchingPrice }) {
|
|
74
|
+
const { stockStatus, variantHandler } = usePackageProductItem(item, updatePackageItem, { preselectCheapest: true });
|
|
75
|
+
const product = item.product;
|
|
76
|
+
return (React.createElement(PackageProductItemWrapper, null,
|
|
77
|
+
React.createElement(ProductLink, { product: product, className: "product-link" },
|
|
78
|
+
React.createElement(Image, { sizes: [1 / 10], aspect: '1:1', alt: product.images[0].alt, src: product.images[0].url })),
|
|
79
|
+
React.createElement("div", { className: "product-detail" },
|
|
80
|
+
React.createElement("header", null,
|
|
81
|
+
React.createElement(ProductLink, { product: product, className: "product-name" }, product.name),
|
|
82
|
+
React.createElement("p", null, product.subName)),
|
|
83
|
+
product.hasVariants && (React.createElement(VariantSelector, { product: product, variantHandler: variantHandler, showValidation: validationEnabled, disableOutOfStock: true })),
|
|
84
|
+
React.createElement("div", { className: "flex" },
|
|
85
|
+
React.createElement(StockStatusIndicator, { status: stockStatus.status, text: stockStatus.text, style: { marginTop: 0 } }),
|
|
86
|
+
React.createElement("div", { className: "price-quantity-wrapper", style: {
|
|
87
|
+
opacity: fetchingPrice ? 0.3 : 1
|
|
88
|
+
} },
|
|
89
|
+
item.minQuantity > 1 && `${item.minQuantity} x`,
|
|
90
|
+
React.createElement(Price, Object.assign({}, price, { className: "package-product-price" })))))));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=PackageProductItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageProductItem.js","sourceRoot":"","sources":["../../../../../src/components/ProductPage/PackageProduct/PackageProductItem.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,oBAAoB,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,yBAAyB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D9C,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,aAAa,EACd;IACC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,qBAAqB,CAC3D,IAAI,EACJ,iBAAiB,EACjB,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE7B,OAAO,CACL,oBAAC,yBAAyB;QACxB,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,cAAc;YACrD,oBAAC,KAAK,IACJ,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EACf,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAC1B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GACnB,CACG;QACd,6BAAK,SAAS,EAAC,gBAAgB;YAC7B;gBACE,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,cAAc,IACpD,OAAO,CAAC,IAAI,CACD;gBACd,+BAAI,OAAO,CAAC,OAAO,CAAK,CACjB;YACR,OAAO,CAAC,WAAW,IAAI,CACtB,oBAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,iBAAiB,EACjC,iBAAiB,SACjB,CACH;YACD,6BAAK,SAAS,EAAC,MAAM;gBACnB,oBAAC,oBAAoB,IACnB,MAAM,EAAE,WAAW,CAAC,MAAM,EAC1B,IAAI,EAAE,WAAW,CAAC,IAAI,EACtB,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GACvB;gBACF,6BACE,SAAS,EAAC,wBAAwB,EAClC,KAAK,EAAE;wBACL,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACjC;oBAEA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI;oBAChD,oBAAC,KAAK,oBAAK,KAAK,IAAE,SAAS,EAAC,uBAAuB,IAAG,CAClD,CACF,CACF,CACoB,CAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { useQuery } from '@apollo/client';
|
|
2
|
+
import t from '@jetshop/intl';
|
|
3
|
+
import React, { useContext } from 'react';
|
|
4
|
+
import PriceHistoryQuery from './PriceHistoryQuery.gql';
|
|
5
|
+
import { styled } from 'linaria/react';
|
|
6
|
+
import { Price } from '@jetshop/ui/Price';
|
|
7
|
+
import { FlyoutTrigger } from '@jetshop/ui/Modal/Flyout';
|
|
8
|
+
import { FlyoutTarget } from '@jetshop/ui/Modal/Flyout';
|
|
9
|
+
import ChannelContext from '@jetshop/core/components/ChannelContext/ChannelContext';
|
|
10
|
+
const Wrapper = styled.div `
|
|
11
|
+
--innerFontSize: 0.85rem;
|
|
12
|
+
position: relative;
|
|
13
|
+
|
|
14
|
+
.label {
|
|
15
|
+
font-size: 0.75rem;
|
|
16
|
+
cursor: pointer;
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.price-table {
|
|
21
|
+
position: absolute;
|
|
22
|
+
padding: 0.35rem 0.9rem;
|
|
23
|
+
background: white;
|
|
24
|
+
border: 1px solid #e5e5e5;
|
|
25
|
+
max-height: 30rem;
|
|
26
|
+
overflow: scroll;
|
|
27
|
+
z-index: 2;
|
|
28
|
+
min-width: 14rem;
|
|
29
|
+
max-width: 18rem;
|
|
30
|
+
|
|
31
|
+
.label {
|
|
32
|
+
font-size: var(--innerFontSize);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
li {
|
|
36
|
+
display: flex;
|
|
37
|
+
justify-content: space-between;
|
|
38
|
+
|
|
39
|
+
.timestamp {
|
|
40
|
+
font-size: var(--innerFontSize);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[data-flight-price=''] {
|
|
44
|
+
> .price {
|
|
45
|
+
font-size: var(--innerFontSize);
|
|
46
|
+
font-weight: normal;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
`;
|
|
52
|
+
export function PriceHistoryWrapper(props) {
|
|
53
|
+
return (React.createElement(Wrapper, null,
|
|
54
|
+
React.createElement(FlyoutTrigger, { id: "price-history-flyout", coverStyles: { zIndex: 0, background: 'transparent' } }, ({ isOpen, hideTarget, showTarget }) => (React.createElement("button", { onClick: () => {
|
|
55
|
+
if (isOpen) {
|
|
56
|
+
hideTarget();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
showTarget();
|
|
60
|
+
}
|
|
61
|
+
}, className: "label" }, t('View price history')))),
|
|
62
|
+
React.createElement(FlyoutTarget, { id: "price-history-flyout" }, () => React.createElement(PriceHistory, Object.assign({}, props)))));
|
|
63
|
+
}
|
|
64
|
+
const days = 30;
|
|
65
|
+
function PriceHistory({ articleNumber, variant }) {
|
|
66
|
+
const { error, loading, data } = useQuery(PriceHistoryQuery, {
|
|
67
|
+
variables: { articleNumber, days },
|
|
68
|
+
errorPolicy: 'all',
|
|
69
|
+
skip: !articleNumber
|
|
70
|
+
});
|
|
71
|
+
if (loading || error) {
|
|
72
|
+
return (React.createElement("div", { className: "price-table" },
|
|
73
|
+
loading && (React.createElement("span", { className: "label" }, t('Getting the last { days } days price changes...', {
|
|
74
|
+
days
|
|
75
|
+
}))),
|
|
76
|
+
error && React.createElement("span", { className: "label" }, t('Something went wrong'))));
|
|
77
|
+
}
|
|
78
|
+
const { product } = data;
|
|
79
|
+
if (!variant) {
|
|
80
|
+
return React.createElement(Table, { history: product.history, days: days });
|
|
81
|
+
}
|
|
82
|
+
const selectedVariant = product.variants.values.find(value => value.articleNumber === variant.articleNumber);
|
|
83
|
+
return React.createElement(Table, { history: selectedVariant.history, days: days });
|
|
84
|
+
}
|
|
85
|
+
const Table = ({ history, days }) => {
|
|
86
|
+
var _a;
|
|
87
|
+
const { selectedChannel } = useContext(ChannelContext);
|
|
88
|
+
if (((_a = history === null || history === void 0 ? void 0 : history.previousPrice) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
89
|
+
return (React.createElement("div", { className: "price-table" },
|
|
90
|
+
React.createElement("span", { className: "label" }, t('The price has not changed in the last { days } days', { days }))));
|
|
91
|
+
}
|
|
92
|
+
return (React.createElement("div", { className: "price-table" },
|
|
93
|
+
React.createElement("ul", null, history.previousPrice.map(({ timestamp, price }) => (React.createElement("li", { key: timestamp },
|
|
94
|
+
React.createElement("span", { className: "timestamp" }, new Date(timestamp).toLocaleDateString([
|
|
95
|
+
selectedChannel.language.culture
|
|
96
|
+
])),
|
|
97
|
+
React.createElement(Price, { price: price, as: "span" })))))));
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=PriceHistory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriceHistory.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/PriceHistory.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import ProductSpecifications from '@jetshop/ui/ProductSpecifications/ProductSpecifications';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { styled } from 'linaria/react';
|
|
4
|
+
import t from '@jetshop/intl';
|
|
5
|
+
import { theme } from '../Theme';
|
|
6
|
+
const Description = styled('article') `
|
|
7
|
+
margin-bottom: 42px;
|
|
8
|
+
color: #707070;
|
|
9
|
+
`;
|
|
10
|
+
export const SectionHeading = styled('h2') `
|
|
11
|
+
font-weight: 600;
|
|
12
|
+
font-size: 16px;
|
|
13
|
+
margin-bottom: 0.25em;
|
|
14
|
+
`;
|
|
15
|
+
export const ProductSection = styled('section') `
|
|
16
|
+
line-height: 1.5;
|
|
17
|
+
|
|
18
|
+
width: 100%;
|
|
19
|
+
padding-bottom: 3rem;
|
|
20
|
+
|
|
21
|
+
${theme.below.md} {
|
|
22
|
+
margin: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
${theme.above.md} {
|
|
26
|
+
width: calc(50% - 16px);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
${theme.above.lg} {
|
|
30
|
+
:nth-of-type(odd) {
|
|
31
|
+
width: calc(60% - 24px);
|
|
32
|
+
}
|
|
33
|
+
:nth-of-type(even) {
|
|
34
|
+
width: calc(40% - 24px);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
ul.payment-options-list {
|
|
38
|
+
font-size: 16px;
|
|
39
|
+
font-weight: 600;
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
const ProductInfo = ({ product }) => {
|
|
43
|
+
var _a;
|
|
44
|
+
return (React.createElement(React.Fragment, null,
|
|
45
|
+
product.description && (React.createElement(ProductSection, null,
|
|
46
|
+
React.createElement(SectionHeading, null, t('Product description')),
|
|
47
|
+
React.createElement(Description, { dangerouslySetInnerHTML: {
|
|
48
|
+
__html: product.description
|
|
49
|
+
} }))),
|
|
50
|
+
((_a = product.customFields) === null || _a === void 0 ? void 0 : _a.length) > 0 && (React.createElement(ProductSection, null,
|
|
51
|
+
React.createElement(SectionHeading, null, t('Specifications')),
|
|
52
|
+
React.createElement(ProductSpecifications, { fields: product.customFields })))));
|
|
53
|
+
};
|
|
54
|
+
export default ProductInfo;
|
|
55
|
+
//# sourceMappingURL=ProductInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductInfo.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ProductInfo.js"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,yDAAyD,CAAC;AAC5F,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;;;CAGpC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;;;;;;IAM3C,KAAK,CAAC,KAAK,CAAC,EAAE;;;;IAId,KAAK,CAAC,KAAK,CAAC,EAAE;;;;IAId,KAAK,CAAC,KAAK,CAAC,EAAE;;;;;;;;;;;;CAYjB,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;;IAClC,OAAO,CACL;QACG,OAAO,CAAC,WAAW,IAAI,CACtB,oBAAC,cAAc;YACb,oBAAC,cAAc,QAAE,CAAC,CAAC,qBAAqB,CAAC,CAAkB;YAC3D,oBAAC,WAAW,IACV,uBAAuB,EAAE;oBACvB,MAAM,EAAE,OAAO,CAAC,WAAW;iBAC5B,GACD,CACa,CAClB;QACA,CAAA,MAAA,OAAO,CAAC,YAAY,0CAAE,MAAM,IAAG,CAAC,IAAI,CACnC,oBAAC,cAAc;YACb,oBAAC,cAAc,QAAE,CAAC,CAAC,gBAAgB,CAAC,CAAkB;YACtD,oBAAC,qBAAqB,IAAC,MAAM,EAAE,OAAO,CAAC,YAAY,GAAI,CACxC,CAClB,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import t from '@jetshop/intl';
|
|
2
|
+
import Accordion from '@jetshop/ui/Accordion/Accordion';
|
|
3
|
+
import ProductSpecifications from '@jetshop/ui/ProductSpecifications/ProductSpecifications';
|
|
4
|
+
import React, { Fragment } from 'react';
|
|
5
|
+
import { styled } from 'linaria/react';
|
|
6
|
+
import { ProductSection as UIProductSection, SectionHeading } from './ProductInfo';
|
|
7
|
+
const Description = styled('article') `
|
|
8
|
+
line-height: 25px;
|
|
9
|
+
`;
|
|
10
|
+
const ProductSection = styled(UIProductSection) `
|
|
11
|
+
border-bottom: 1px solid #e8e8e8;
|
|
12
|
+
padding: 1rem 0;
|
|
13
|
+
margin: 1rem 0;
|
|
14
|
+
font-size: 0.875rem;
|
|
15
|
+
${SectionHeading} {
|
|
16
|
+
display: flex;
|
|
17
|
+
justify-items: space-between;
|
|
18
|
+
align-items: center;
|
|
19
|
+
margin-bottom: 0;
|
|
20
|
+
+ * > :first-child {
|
|
21
|
+
margin-top: 1rem;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
const IndicatorIcon = styled('span') `
|
|
26
|
+
margin-left: auto;
|
|
27
|
+
font-size: 1.25rem;
|
|
28
|
+
`;
|
|
29
|
+
const AccordionIndicator = ({ isOpen }) => (React.createElement(IndicatorIcon, null, isOpen ? '-' : '+'));
|
|
30
|
+
const ProductInfoAccordion = ({ product }) => (React.createElement(Accordion, { single: true }, ({ openIndexes, handleClick, AccordionContent }) => (React.createElement(Fragment, null,
|
|
31
|
+
React.createElement(ProductSection, null,
|
|
32
|
+
React.createElement(SectionHeading, { onClick: () => handleClick(0) },
|
|
33
|
+
React.createElement("span", null, t('Product description')),
|
|
34
|
+
React.createElement(AccordionIndicator, { isOpen: openIndexes.includes(0) })),
|
|
35
|
+
React.createElement(AccordionContent, { isOpen: openIndexes.includes(0) },
|
|
36
|
+
React.createElement(Description, { dangerouslySetInnerHTML: {
|
|
37
|
+
__html: product.description
|
|
38
|
+
} }))),
|
|
39
|
+
React.createElement(ProductSection, null,
|
|
40
|
+
React.createElement(SectionHeading, { onClick: () => handleClick(1) },
|
|
41
|
+
React.createElement("span", null, t('Specifications')),
|
|
42
|
+
React.createElement(AccordionIndicator, { isOpen: openIndexes.includes(1) })),
|
|
43
|
+
React.createElement(AccordionContent, { isOpen: openIndexes.includes(1) },
|
|
44
|
+
React.createElement(ProductSpecifications, { fields: product.customFields })))))));
|
|
45
|
+
export default ProductInfoAccordion;
|
|
46
|
+
//# sourceMappingURL=ProductInfoAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductInfoAccordion.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ProductInfoAccordion.js"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,SAAS,MAAM,iCAAiC,CAAC;AACxD,OAAO,qBAAqB,MAAM,yDAAyD,CAAC;AAC5F,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EACL,cAAc,IAAI,gBAAgB,EAClC,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;;CAEpC,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;;;;;IAK3C,cAAc;;;;;;;;;CASjB,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;;;CAGnC,CAAC;AACF,MAAM,kBAAkB,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CACzC,oBAAC,aAAa,QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAiB,CACpD,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC5C,oBAAC,SAAS,IAAC,MAAM,UACd,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,CACnD,oBAAC,QAAQ;IACP,oBAAC,cAAc;QACb,oBAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3C,kCAAO,CAAC,CAAC,qBAAqB,CAAC,CAAQ;YACvC,oBAAC,kBAAkB,IAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAI,CACxC;QACjB,oBAAC,gBAAgB,IAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,oBAAC,WAAW,IACV,uBAAuB,EAAE;oBACvB,MAAM,EAAE,OAAO,CAAC,WAAW;iBAC5B,GACD,CACe,CACJ;IACjB,oBAAC,cAAc;QACb,oBAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3C,kCAAO,CAAC,CAAC,gBAAgB,CAAC,CAAQ;YAClC,oBAAC,kBAAkB,IAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAI,CACxC;QACjB,oBAAC,gBAAgB,IAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/C,oBAAC,qBAAqB,IAAC,MAAM,EAAE,OAAO,CAAC,YAAY,GAAI,CACtC,CACJ,CACR,CACZ,CACS,CACb,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { useProductVariants } from '@jetshop/core/hooks/useProductVariants';
|
|
2
|
+
import { useVariantFromUrl } from '@jetshop/core/hooks/useProductVariants/useVariantFromUrl';
|
|
3
|
+
import { useIntl } from '@jetshop/intl';
|
|
4
|
+
import { default as Breadcrumbs } from '@jetshop/ui/Breadcrumbs';
|
|
5
|
+
import getParentOrCanonicalRoute from '@jetshop/ui/Breadcrumbs/getParentsOrCanonicalRoute';
|
|
6
|
+
import { Above } from '@jetshop/ui/Breakpoints';
|
|
7
|
+
import loadable from '@loadable/component';
|
|
8
|
+
import { styled } from 'linaria/react';
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { ReactComponent as DeliveryCheck } from '../../svg/DeliveryCheck.svg';
|
|
11
|
+
import MaxWidth from '../Layout/MaxWidth';
|
|
12
|
+
import { Favourite } from '../ProductList/Favourite';
|
|
13
|
+
import Spinner from '../ui/Spinner';
|
|
14
|
+
import AddToCartForm from './AddToCart/AddToCartForm';
|
|
15
|
+
import ImageContainer from './Images/ImageContainer';
|
|
16
|
+
import ProductInfo, { ProductSection } from './ProductInfo';
|
|
17
|
+
import ProductInfoAccordion from './ProductInfoAccordion';
|
|
18
|
+
import ProductPageLoadingState from './ProductPageLoadingState';
|
|
19
|
+
import { RelatedProducts } from './RelatedProducts';
|
|
20
|
+
import { Container } from './styledComponents';
|
|
21
|
+
import { theme } from '../Theme';
|
|
22
|
+
const LoadablePackageProduct = loadable(() => import('./PackageProduct/PackageProduct'), {
|
|
23
|
+
fallback: React.createElement(Spinner, null)
|
|
24
|
+
});
|
|
25
|
+
const ProductContainer = styled('div') `
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
padding-top: 1rem;
|
|
30
|
+
header {
|
|
31
|
+
h1 {
|
|
32
|
+
font-size: 28px;
|
|
33
|
+
line-height: 1.25;
|
|
34
|
+
+ h2 {
|
|
35
|
+
font-size: 16px;
|
|
36
|
+
font-weight: 600;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
margin-bottom: 24px;
|
|
40
|
+
}
|
|
41
|
+
.customer-comment-input-wrapper {
|
|
42
|
+
width: 100%;
|
|
43
|
+
.customer-comment-input {
|
|
44
|
+
height: 44px;
|
|
45
|
+
}
|
|
46
|
+
.status-wrapper {
|
|
47
|
+
top: -39px;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
.quantity-input-wrapper {
|
|
51
|
+
margin-bottom: 0rem;
|
|
52
|
+
margin-right: 10px;
|
|
53
|
+
width: 54px;
|
|
54
|
+
input::-webkit-outer-spin-button,
|
|
55
|
+
input::-webkit-inner-spin-button {
|
|
56
|
+
-webkit-appearance: none;
|
|
57
|
+
margin: 0;
|
|
58
|
+
}
|
|
59
|
+
input[type='number'] {
|
|
60
|
+
border-radius: 4px;
|
|
61
|
+
-moz-appearance: textfield; /* Firefox */
|
|
62
|
+
}
|
|
63
|
+
input {
|
|
64
|
+
width: 54px;
|
|
65
|
+
height: 54px;
|
|
66
|
+
text-align: center;
|
|
67
|
+
padding: 0px;
|
|
68
|
+
margin-bottom: 0px;
|
|
69
|
+
}
|
|
70
|
+
label {
|
|
71
|
+
text-align: center;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
.short-description {
|
|
75
|
+
line-height: 1.5;
|
|
76
|
+
font-size: 16px;
|
|
77
|
+
margin-bottom: 24px;
|
|
78
|
+
color: #707070;
|
|
79
|
+
p {
|
|
80
|
+
margin-bottom: 1rem;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
.delivery-list {
|
|
84
|
+
li {
|
|
85
|
+
display: flex;
|
|
86
|
+
align-items: center;
|
|
87
|
+
svg {
|
|
88
|
+
margin-right: 16px;
|
|
89
|
+
}
|
|
90
|
+
margin-bottom: 16px;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
.product-details {
|
|
94
|
+
${theme.above.md} {
|
|
95
|
+
align-items: flex-start;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.price,
|
|
99
|
+
.new-price,
|
|
100
|
+
.old-price {
|
|
101
|
+
font-weight: 600;
|
|
102
|
+
display: inline-block;
|
|
103
|
+
}
|
|
104
|
+
.price,
|
|
105
|
+
.new-price {
|
|
106
|
+
font-size: 1.5rem;
|
|
107
|
+
}
|
|
108
|
+
.new-price {
|
|
109
|
+
margin-right: 8px;
|
|
110
|
+
color: ${theme.colors.red};
|
|
111
|
+
}
|
|
112
|
+
.old-price {
|
|
113
|
+
color: #707070;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
`;
|
|
117
|
+
const Product = ({ result: { data, loading }, product, partialProduct }) => {
|
|
118
|
+
var _a, _b, _c;
|
|
119
|
+
const initialVariant = useVariantFromUrl();
|
|
120
|
+
const t = useIntl();
|
|
121
|
+
const variantHandler = useProductVariants(product, {
|
|
122
|
+
initialVariant,
|
|
123
|
+
preselectCheapest: true
|
|
124
|
+
});
|
|
125
|
+
const { selectedVariant: selectedVariation, getMissingOptions } = variantHandler;
|
|
126
|
+
if (!product) {
|
|
127
|
+
product = partialProduct;
|
|
128
|
+
}
|
|
129
|
+
// Return early if there is no product
|
|
130
|
+
if (!product) {
|
|
131
|
+
return (React.createElement(ProductContainer, null,
|
|
132
|
+
React.createElement(ProductPageLoadingState, null)));
|
|
133
|
+
}
|
|
134
|
+
const images = (_a = product.images) !== null && _a !== void 0 ? _a : [];
|
|
135
|
+
const parents = getParentOrCanonicalRoute((_b = data === null || data === void 0 ? void 0 : data.route) === null || _b === void 0 ? void 0 : _b.parents, product);
|
|
136
|
+
const relatedProducts = product.relatedProducts;
|
|
137
|
+
return (React.createElement(ProductContainer, null,
|
|
138
|
+
React.createElement(MaxWidth, null,
|
|
139
|
+
React.createElement(Breadcrumbs, { breadcrumbs: ((_c = data === null || data === void 0 ? void 0 : data.route) === null || _c === void 0 ? void 0 : _c.breadcrumbs) || [], parents: parents })),
|
|
140
|
+
React.createElement(Container, null,
|
|
141
|
+
React.createElement(ProductSection, null, images && (React.createElement(ImageContainer, { images: images, variant: selectedVariation, badges: product.badges }))),
|
|
142
|
+
React.createElement(ProductSection, null,
|
|
143
|
+
React.createElement("div", { className: "product-details" },
|
|
144
|
+
React.createElement("header", null,
|
|
145
|
+
React.createElement(Favourite, { product: product, variant: selectedVariation, style: {
|
|
146
|
+
float: 'right',
|
|
147
|
+
marginLeft: 'auto',
|
|
148
|
+
fontSize: '1.5em'
|
|
149
|
+
} }),
|
|
150
|
+
React.createElement("h1", { "data-testid": "product-title" }, product.name || 'Loading...'),
|
|
151
|
+
React.createElement("h2", null, product.subName),
|
|
152
|
+
product.articleNumber),
|
|
153
|
+
React.createElement("div", { className: "short-description", dangerouslySetInnerHTML: {
|
|
154
|
+
__html: product.shortDescription
|
|
155
|
+
} }),
|
|
156
|
+
(product === null || product === void 0 ? void 0 : product.isPackage) ? (React.createElement(LoadablePackageProduct, { product: product })) : (React.createElement(AddToCartForm, { product: product, variant: selectedVariation, getMissingOptions: getMissingOptions, variantHandler: variantHandler })),
|
|
157
|
+
React.createElement("ul", { className: "delivery-list", css: { marginTop: '36px' } },
|
|
158
|
+
React.createElement("li", null,
|
|
159
|
+
React.createElement(DeliveryCheck, null),
|
|
160
|
+
" ",
|
|
161
|
+
t('Express 1–2 working days')),
|
|
162
|
+
React.createElement("li", null,
|
|
163
|
+
React.createElement(DeliveryCheck, null),
|
|
164
|
+
" ",
|
|
165
|
+
t('Standard 2–5 working days')),
|
|
166
|
+
React.createElement("li", null,
|
|
167
|
+
React.createElement(DeliveryCheck, null),
|
|
168
|
+
" ",
|
|
169
|
+
t('Free shipping and return'))))),
|
|
170
|
+
React.createElement(Above, { breakpoint: "md" }, matches => matches ? (React.createElement(ProductInfo, { product: product })) : (React.createElement(ProductInfoAccordion, { product: product })))),
|
|
171
|
+
relatedProducts && React.createElement(RelatedProducts, Object.assign({}, { relatedProducts, loading }))));
|
|
172
|
+
};
|
|
173
|
+
export default Product;
|
|
174
|
+
//# sourceMappingURL=ProductPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductPage.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ProductPage.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import loadable from '@loadable/component';
|
|
3
|
+
import LoadingPage from '../LoadingPage';
|
|
4
|
+
export default loadable(() => import('./ProductPage'), {
|
|
5
|
+
fallback: React.createElement(LoadingPage, null)
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=ProductPage.loadable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductPage.loadable.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ProductPage.loadable.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,eAAe,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;IACrD,QAAQ,EAAE,oBAAC,WAAW,OAAG;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Container } from './styledComponents';
|
|
3
|
+
import { ProductSection } from './ProductInfo';
|
|
4
|
+
import { LoadingLine } from '@jetshop/ui/Loading/LoadingLine';
|
|
5
|
+
import { styled } from 'linaria/react';
|
|
6
|
+
const MockImage = styled('div') `
|
|
7
|
+
padding-top: 100%;
|
|
8
|
+
background: #f6f6f6;
|
|
9
|
+
`;
|
|
10
|
+
const MockThumbnails = styled('div') `
|
|
11
|
+
margin-top: 1rem;
|
|
12
|
+
display: flex;
|
|
13
|
+
justify-content: space-between;
|
|
14
|
+
`;
|
|
15
|
+
const MockThumbnail = styled('div') `
|
|
16
|
+
width: 22%;
|
|
17
|
+
`;
|
|
18
|
+
export default function ProductPageLoadingState() {
|
|
19
|
+
return (React.createElement(Container, { style: {
|
|
20
|
+
marginTop: '2'
|
|
21
|
+
} },
|
|
22
|
+
React.createElement(ProductSection, null,
|
|
23
|
+
React.createElement(MockImage, null),
|
|
24
|
+
React.createElement(MockThumbnails, null,
|
|
25
|
+
React.createElement(MockThumbnail, null,
|
|
26
|
+
React.createElement(MockImage, null)),
|
|
27
|
+
React.createElement(MockThumbnail, null,
|
|
28
|
+
React.createElement(MockImage, null)),
|
|
29
|
+
React.createElement(MockThumbnail, null,
|
|
30
|
+
React.createElement(MockImage, null)),
|
|
31
|
+
React.createElement(MockThumbnail, null,
|
|
32
|
+
React.createElement(MockImage, null)))),
|
|
33
|
+
React.createElement(ProductSection, null,
|
|
34
|
+
React.createElement(LoadingLine, { heightPx: 24, widthRem: 15, style: {
|
|
35
|
+
marginBottom: '12px'
|
|
36
|
+
} }),
|
|
37
|
+
React.createElement(LoadingLine, { heightPx: 16, style: {
|
|
38
|
+
marginBottom: '14px'
|
|
39
|
+
} }),
|
|
40
|
+
React.createElement(LoadingLine, { heightPx: 12, widthRem: 10, style: {
|
|
41
|
+
marginBottom: '31px'
|
|
42
|
+
} }),
|
|
43
|
+
React.createElement(LoadingLine, { heightPx: 12, widthRem: 14, count: 2, style: {
|
|
44
|
+
marginBottom: '8px'
|
|
45
|
+
} }),
|
|
46
|
+
React.createElement(LoadingLine, { heightPx: 24, style: {
|
|
47
|
+
marginTop: '16px',
|
|
48
|
+
marginBottom: '14px'
|
|
49
|
+
} }),
|
|
50
|
+
React.createElement(LoadingLine, { heightPx: 54, widthRem: 50, style: {
|
|
51
|
+
marginTop: '16px',
|
|
52
|
+
marginBottom: '14px'
|
|
53
|
+
} }))));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=ProductPageLoadingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProductPageLoadingState.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/ProductPageLoadingState.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;CAG9B,CAAC;AACF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;CAInC,CAAC;AACF,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;CAElC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,OAAO,CACL,oBAAC,SAAS,IACR,KAAK,EAAE;YACL,SAAS,EAAE,GAAG;SACf;QAED,oBAAC,cAAc;YACb,oBAAC,SAAS,OAAG;YACb,oBAAC,cAAc;gBACb,oBAAC,aAAa;oBACZ,oBAAC,SAAS,OAAG,CACC;gBAChB,oBAAC,aAAa;oBACZ,oBAAC,SAAS,OAAG,CACC;gBAChB,oBAAC,aAAa;oBACZ,oBAAC,SAAS,OAAG,CACC;gBAChB,oBAAC,aAAa;oBACZ,oBAAC,SAAS,OAAG,CACC,CACD,CACF;QACjB,oBAAC,cAAc;YACb,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE;oBACL,YAAY,EAAE,MAAM;iBACrB,GACD;YACF,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE;oBACL,YAAY,EAAE,MAAM;iBACrB,GACD;YACF,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE;oBACL,YAAY,EAAE,MAAM;iBACrB,GACD;YACF,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE,CAAC,EACR,KAAK,EAAE;oBACL,YAAY,EAAE,KAAK;iBACpB,GACD;YACF,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM;oBACjB,YAAY,EAAE,MAAM;iBACrB,GACD;YAEF,oBAAC,WAAW,IACV,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,EACZ,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM;oBACjB,YAAY,EAAE,MAAM;iBACrB,GACD,CACa,CACP,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
export default class QuantityContainer extends Component {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.state = {
|
|
6
|
+
qty: 1
|
|
7
|
+
};
|
|
8
|
+
this.setQuantity = qty => {
|
|
9
|
+
// Ensure negative numbers can't be added
|
|
10
|
+
const limitedQty = qty < 1 ? 1 : qty;
|
|
11
|
+
this.setState({ qty: limitedQty });
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
render() {
|
|
15
|
+
return this.props.children({
|
|
16
|
+
quantity: this.state.qty,
|
|
17
|
+
setQuantity: this.setQuantity
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=QuantityContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuantityContainer.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/QuantityContainer.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,SAAS;IAAxD;;QACE,UAAK,GAAG;YACN,GAAG,EAAE,CAAC;SACP,CAAC;QAEF,gBAAW,GAAG,GAAG,CAAC,EAAE;YAClB,yCAAyC;YACzC,MAAM,UAAU,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;IAQJ,CAAC;IANC,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACzB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import t from '@jetshop/intl';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { styled } from 'linaria/react';
|
|
4
|
+
import { Container as BaseContainer } from './styledComponents';
|
|
5
|
+
import { ProductGrid } from '../CategoryPage/ProductGrid';
|
|
6
|
+
import { theme } from '../Theme';
|
|
7
|
+
const Container = styled(BaseContainer) `
|
|
8
|
+
background: transparent;
|
|
9
|
+
/* padding: 0; */
|
|
10
|
+
|
|
11
|
+
h2 {
|
|
12
|
+
font-size: 18px;
|
|
13
|
+
font-weight: bold;
|
|
14
|
+
margin-bottom: 0.75em;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.product-grid {
|
|
18
|
+
width: 100%;
|
|
19
|
+
.product-card {
|
|
20
|
+
width: 16.667%;
|
|
21
|
+
}
|
|
22
|
+
/* Let products overflow on smaller devices */
|
|
23
|
+
${theme.below.md} {
|
|
24
|
+
overflow-x: auto;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-wrap: nowrap;
|
|
27
|
+
.product-card {
|
|
28
|
+
min-width: 34%;
|
|
29
|
+
margin: 0 0.5em;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
.product-card {
|
|
34
|
+
font-size: 0.875em;
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
const RelatedProducts = React.memo(({ relatedProducts, loading }) => {
|
|
38
|
+
if (!relatedProducts || relatedProducts.length === 0)
|
|
39
|
+
return null;
|
|
40
|
+
return (React.createElement(Container, null,
|
|
41
|
+
React.createElement("h2", null, t('Related products')),
|
|
42
|
+
React.createElement(ProductGrid, { listName: "related-products", products: relatedProducts, loading: loading, imageSizes: [1 / 3, 1 / 3, 1 / 6] })));
|
|
43
|
+
});
|
|
44
|
+
export { RelatedProducts };
|
|
45
|
+
//# sourceMappingURL=RelatedProducts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelatedProducts.js","sourceRoot":"","sources":["../../../../src/components/ProductPage/RelatedProducts.js"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;;;;;;;;;;;;;;;;MAgBjC,KAAK,CAAC,KAAK,CAAC,EAAE;;;;;;;;;;;;;CAanB,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;IAClE,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElE,OAAO,CACL,oBAAC,SAAS;QACR,gCAAK,CAAC,CAAC,kBAAkB,CAAC,CAAM;QAChC,oBAAC,WAAW,IACV,QAAQ,EAAC,kBAAkB,EAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GACjC,CACQ,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
|