@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.
- 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
- package/schema.graphql +1 -1
- 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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"}
|