@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,160 @@
|
|
|
1
|
+
import t from '@jetshop/intl';
|
|
2
|
+
import React, { useContext } from 'react';
|
|
3
|
+
import { styled } from 'linaria/react';
|
|
4
|
+
import { cx, css } from 'linaria';
|
|
5
|
+
import { StoreMarker } from './StoreMarker';
|
|
6
|
+
import { ReactComponent as CarrotSvg } from '@jetshop/ui/svg/Carrot.svg';
|
|
7
|
+
import { ReactComponent as DirectionsSvg } from '../../svg/Directions.svg';
|
|
8
|
+
import { LocationStateContext } from './StoreLocator';
|
|
9
|
+
import UserLocation from './UserLocation';
|
|
10
|
+
import { theme } from '../Theme';
|
|
11
|
+
const StoreListContainer = styled('ul') `
|
|
12
|
+
height: calc(100% - 94px);
|
|
13
|
+
overflow-y: auto;
|
|
14
|
+
|
|
15
|
+
.highlight {
|
|
16
|
+
background: yellow;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
img {
|
|
20
|
+
max-width: 100%;
|
|
21
|
+
height: auto;
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
const StoreContainer = styled('li') `
|
|
25
|
+
width: 100%;
|
|
26
|
+
background: ${theme.colors.white};
|
|
27
|
+
padding: 24px;
|
|
28
|
+
margin: 8px 0;
|
|
29
|
+
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
line-height: 1.4;
|
|
32
|
+
|
|
33
|
+
cursor: pointer;
|
|
34
|
+
|
|
35
|
+
&:first-child {
|
|
36
|
+
margin-top: 0;
|
|
37
|
+
}
|
|
38
|
+
&:last-child {
|
|
39
|
+
margin-bottom: 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
> div {
|
|
43
|
+
display: flex;
|
|
44
|
+
|
|
45
|
+
&.expanded-content {
|
|
46
|
+
padding: 24px 24px 0 36px;
|
|
47
|
+
max-height: 0;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
transition-property: max-height;
|
|
50
|
+
transition-duration: 0.2s;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&.expanded {
|
|
55
|
+
> div.expanded-content {
|
|
56
|
+
max-height: 600px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
svg.carrot {
|
|
60
|
+
transform: rotate(0deg);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:focus {
|
|
65
|
+
outline: 1px solid ${theme.colors.blue};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
svg.carrot {
|
|
69
|
+
transition-property: transform;
|
|
70
|
+
transition-duration: 0.2s;
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
const StoreColumn = styled('div') `
|
|
74
|
+
flex: 1;
|
|
75
|
+
margin-top: -4px;
|
|
76
|
+
position: relative;
|
|
77
|
+
|
|
78
|
+
padding: 0 16px 0 0;
|
|
79
|
+
|
|
80
|
+
.contact-icon {
|
|
81
|
+
position: absolute;
|
|
82
|
+
left: -6px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
a {
|
|
86
|
+
color: #000;
|
|
87
|
+
padding: 4px 0 8px;
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
const secondStoreColumn = css `
|
|
91
|
+
padding: 0 8px 0 16px;
|
|
92
|
+
`;
|
|
93
|
+
const CarrotContainer = styled('div') `
|
|
94
|
+
flex: 0 0 24px;
|
|
95
|
+
background: ${theme.colors.background};
|
|
96
|
+
width: 24px;
|
|
97
|
+
height: 24px;
|
|
98
|
+
border-radius: 50%;
|
|
99
|
+
align-self: center;
|
|
100
|
+
|
|
101
|
+
svg {
|
|
102
|
+
width: 12px;
|
|
103
|
+
height: 12px;
|
|
104
|
+
margin: 6px;
|
|
105
|
+
|
|
106
|
+
transform: rotate(-90deg);
|
|
107
|
+
}
|
|
108
|
+
`;
|
|
109
|
+
const humanDistance = distance => distance > 10
|
|
110
|
+
? t('{km} km', { km: Math.round(distance) })
|
|
111
|
+
: distance > 1
|
|
112
|
+
? t('{km} km', { km: distance.toFixed(1) })
|
|
113
|
+
: t('{m} m', { m: Math.round(distance * 1000) });
|
|
114
|
+
const contactParser = html => {
|
|
115
|
+
var _a;
|
|
116
|
+
return (_a = html === null || html === void 0 ? void 0 : html.replace('Tel: ', '<span class="contact-icon">📞</span>')) === null || _a === void 0 ? void 0 : _a.replace('Email: ', '<span class="contact-icon">🖂</span>');
|
|
117
|
+
};
|
|
118
|
+
const Carrot = () => (React.createElement(CarrotContainer, null,
|
|
119
|
+
React.createElement(CarrotSvg, { className: "carrot" })));
|
|
120
|
+
const Store = ({ storeNr, distances, store: { id, name, address1, openHours, description, coordinates, contact } }) => {
|
|
121
|
+
const locationState = useContext(LocationStateContext);
|
|
122
|
+
const active = id === locationState.activeLocation;
|
|
123
|
+
const expanded = id === locationState.expandedLocation;
|
|
124
|
+
return (React.createElement(StoreContainer, { onMouseEnter: () => locationState.setHighlightedLocation(id), onMouseLeave: () => locationState.setHighlightedLocation(null), onClick: () => locationState.toggleExpandedLocation(id), onKeyPress: e => {
|
|
125
|
+
if ((e.keyCode || e.which) === 13)
|
|
126
|
+
locationState.toggleExpandedLocation(id);
|
|
127
|
+
}, tabIndex: 0, className: cx(expanded ? 'expanded' : null) },
|
|
128
|
+
React.createElement("div", null,
|
|
129
|
+
React.createElement(StoreMarker, { nr: storeNr, active: active }),
|
|
130
|
+
React.createElement(StoreColumn, null,
|
|
131
|
+
React.createElement("p", null,
|
|
132
|
+
React.createElement("strong", { dangerouslySetInnerHTML: { __html: name } })),
|
|
133
|
+
React.createElement("div", { dangerouslySetInnerHTML: { __html: address1 } })),
|
|
134
|
+
React.createElement(StoreColumn, { className: secondStoreColumn },
|
|
135
|
+
React.createElement("p", null,
|
|
136
|
+
React.createElement("strong", null, t('Opening hours'))),
|
|
137
|
+
React.createElement("div", { dangerouslySetInnerHTML: { __html: openHours } }),
|
|
138
|
+
!expanded && distances[id] && (React.createElement("p", { style: { color: '#8a8a8a' } },
|
|
139
|
+
t('Distance'),
|
|
140
|
+
": ",
|
|
141
|
+
humanDistance(distances[id])))),
|
|
142
|
+
React.createElement(Carrot, null)),
|
|
143
|
+
React.createElement("div", { className: "expanded-content" },
|
|
144
|
+
React.createElement(StoreColumn, { dangerouslySetInnerHTML: { __html: description } }),
|
|
145
|
+
React.createElement(StoreColumn, { className: secondStoreColumn },
|
|
146
|
+
React.createElement("p", null,
|
|
147
|
+
React.createElement("strong", null, t('Contact'))),
|
|
148
|
+
React.createElement("div", { dangerouslySetInnerHTML: { __html: contactParser(contact) }, style: { marginBottom: '24px' } }),
|
|
149
|
+
coordinates && (React.createElement(React.Fragment, null,
|
|
150
|
+
React.createElement("p", null,
|
|
151
|
+
React.createElement(DirectionsSvg, { className: "contact-icon" }),
|
|
152
|
+
React.createElement("a", { target: "_blank", rel: "noopener noreferrer", href: `https://www.google.com/maps/dir/${coordinates.latitude},${coordinates.longitude}` }, t('Directions'))),
|
|
153
|
+
distances[id] && React.createElement("p", null, humanDistance(distances[id]))))))));
|
|
154
|
+
};
|
|
155
|
+
const StoreList = ({ stores, userLocation, setUserLocation, distances }) => (React.createElement(StoreListContainer, null,
|
|
156
|
+
React.createElement(UserLocation, { setUserLocation: setUserLocation }),
|
|
157
|
+
stores &&
|
|
158
|
+
stores.map((store, index) => (React.createElement(Store, { key: index, storeNr: index + 1, store: store, distances: distances })))));
|
|
159
|
+
export default StoreList;
|
|
160
|
+
//# sourceMappingURL=StoreList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreList.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreList.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Query } from '@apollo/client/react/components';
|
|
2
|
+
import t from '@jetshop/intl';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { styled } from 'linaria/react';
|
|
5
|
+
import { fuzzySearch } from '@jetshop/ui/fuzzySearch';
|
|
6
|
+
import { Above } from '@jetshop/ui/Breakpoints';
|
|
7
|
+
import { distance } from '@jetshop/core/helpers/distance';
|
|
8
|
+
import MaxWidth from '../Layout/MaxWidth';
|
|
9
|
+
import LoadingPage from '../LoadingPage';
|
|
10
|
+
import storeLocatorQuery from './StoreLocator.gql';
|
|
11
|
+
import StoreSearch from './StoreSearch';
|
|
12
|
+
import StoreList from './StoreList';
|
|
13
|
+
import StoreMap from './StoreMap';
|
|
14
|
+
import { useLocationState } from './useLocationState';
|
|
15
|
+
import Head from '@jetshop/core/components/Head';
|
|
16
|
+
import { Intl } from '@jetshop/intl';
|
|
17
|
+
import { theme } from '../Theme';
|
|
18
|
+
const Flex = styled('div') `
|
|
19
|
+
display: flex;
|
|
20
|
+
|
|
21
|
+
h1 {
|
|
22
|
+
margin-bottom: 0.5em;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> div {
|
|
26
|
+
flex: 1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
${theme.below.lg} {
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
const Header = styled(Flex) `
|
|
34
|
+
padding: 3rem 0;
|
|
35
|
+
background: #fff;
|
|
36
|
+
`;
|
|
37
|
+
const StoreLocatorWrapper = styled(MaxWidth) `
|
|
38
|
+
${theme.below.lg} {
|
|
39
|
+
padding: 0;
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
const StoreLocatorContent = styled(Flex) `
|
|
43
|
+
height: 60vh;
|
|
44
|
+
|
|
45
|
+
${theme.below.lg} {
|
|
46
|
+
height: unset;
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
const SearchAndListContainer = styled('div') `
|
|
50
|
+
flex: 0 0 40% !important;
|
|
51
|
+
height: 100%;
|
|
52
|
+
`;
|
|
53
|
+
export const LocationStateContext = React.createContext(null);
|
|
54
|
+
const StoreLocator = () => {
|
|
55
|
+
const locationState = useLocationState();
|
|
56
|
+
const [search, setSearch] = useState('');
|
|
57
|
+
const [userLocation, setUserLocation] = useState({
|
|
58
|
+
latitude: null,
|
|
59
|
+
longitude: null
|
|
60
|
+
});
|
|
61
|
+
const [closestStore, setClosestStore] = useState(null);
|
|
62
|
+
const [distances, setDistances] = useState({});
|
|
63
|
+
const genDistances = stores => {
|
|
64
|
+
if (userLocation.latitude == null)
|
|
65
|
+
return;
|
|
66
|
+
let distances = {};
|
|
67
|
+
let closestStore = {};
|
|
68
|
+
stores
|
|
69
|
+
.filter(store => store.coordinates)
|
|
70
|
+
.forEach(store => {
|
|
71
|
+
const thisDistance = distance(userLocation, store.coordinates);
|
|
72
|
+
distances[store.id] = thisDistance;
|
|
73
|
+
// If we haven't got a store in the closestStore obj yet, set it to this one
|
|
74
|
+
if (!closestStore.distance) {
|
|
75
|
+
closestStore = Object.assign(Object.assign({}, store), { distance: thisDistance });
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// If this store is closer than the one currently stored in closestStore,
|
|
79
|
+
// override it
|
|
80
|
+
if (thisDistance < closestStore.distance) {
|
|
81
|
+
closestStore = Object.assign(Object.assign({}, store), { distance: thisDistance });
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
setDistances(distances);
|
|
85
|
+
setClosestStore(closestStore);
|
|
86
|
+
};
|
|
87
|
+
return (React.createElement(React.Fragment, null,
|
|
88
|
+
React.createElement(Intl, null, t => React.createElement(Head, { data: { title: t('Find store') } })),
|
|
89
|
+
React.createElement(Header, null,
|
|
90
|
+
React.createElement(MaxWidth, null,
|
|
91
|
+
React.createElement("div", null,
|
|
92
|
+
React.createElement("h1", null, t('Find store')),
|
|
93
|
+
React.createElement("p", null, t('This is where you find our stores. Get informed about the stock status in your local store here. Find and select the store that is closest to you.'))))),
|
|
94
|
+
React.createElement(StoreLocatorWrapper, null,
|
|
95
|
+
React.createElement(StoreLocatorContent, null,
|
|
96
|
+
React.createElement(Query, { query: storeLocatorQuery }, ({ data, loading }) => {
|
|
97
|
+
if (loading)
|
|
98
|
+
return React.createElement(LoadingPage, null);
|
|
99
|
+
if (userLocation.latitude && !closestStore)
|
|
100
|
+
genDistances(data.stores);
|
|
101
|
+
const stores = search.length === 0
|
|
102
|
+
? data.stores
|
|
103
|
+
: fuzzySearch({
|
|
104
|
+
data: data.stores,
|
|
105
|
+
keys: ['name', 'address1'],
|
|
106
|
+
searchTerm: search
|
|
107
|
+
});
|
|
108
|
+
const storeSearchProps = { search, setSearch };
|
|
109
|
+
const storeListProps = {
|
|
110
|
+
stores,
|
|
111
|
+
userLocation,
|
|
112
|
+
setUserLocation,
|
|
113
|
+
distances
|
|
114
|
+
};
|
|
115
|
+
const storeMapProps = {
|
|
116
|
+
stores,
|
|
117
|
+
userLocation,
|
|
118
|
+
closestStore,
|
|
119
|
+
distances
|
|
120
|
+
};
|
|
121
|
+
return (React.createElement(LocationStateContext.Provider, { value: locationState },
|
|
122
|
+
React.createElement(Above, { breakpoint: "lg" }, matches => matches ? (React.createElement(React.Fragment, null,
|
|
123
|
+
React.createElement(SearchAndListContainer, null,
|
|
124
|
+
React.createElement(StoreSearch, Object.assign({}, storeSearchProps)),
|
|
125
|
+
React.createElement(StoreList, Object.assign({}, storeListProps))),
|
|
126
|
+
React.createElement(StoreMap, Object.assign({}, storeMapProps)))) : (React.createElement(React.Fragment, null,
|
|
127
|
+
React.createElement(StoreSearch, Object.assign({}, storeSearchProps)),
|
|
128
|
+
React.createElement(StoreMap, Object.assign({}, storeMapProps)),
|
|
129
|
+
React.createElement(StoreList, Object.assign({}, storeListProps)))))));
|
|
130
|
+
})))));
|
|
131
|
+
};
|
|
132
|
+
export default StoreLocator;
|
|
133
|
+
//# sourceMappingURL=StoreLocator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreLocator.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreLocator.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('./StoreLocator'), {
|
|
5
|
+
fallback: React.createElement(LoadingPage, null)
|
|
6
|
+
});
|
|
7
|
+
//# sourceMappingURL=StoreLocator.loadable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreLocator.loadable.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreLocator.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,gBAAgB,CAAC,EAAE;IACtD,QAAQ,EAAE,oBAAC,WAAW,OAAG;CAC1B,CAAC,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { GoogleMap, InfoWindow, LoadScript, Marker } from '@react-google-maps/api';
|
|
2
|
+
import React, { useContext, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { styled } from 'linaria/react';
|
|
4
|
+
import { LocationStateContext } from './StoreLocator';
|
|
5
|
+
import { useMapState } from './useMapState';
|
|
6
|
+
import { useShopConfig } from '@jetshop/core/hooks/useShopConfig';
|
|
7
|
+
import throwErrorInDev from '@jetshop/core/helpers/throwErrorInDev';
|
|
8
|
+
import { theme } from '../Theme';
|
|
9
|
+
const Wrapper = styled('div') `
|
|
10
|
+
flex: 0 0 60%;
|
|
11
|
+
|
|
12
|
+
.map-container {
|
|
13
|
+
min-height: 100%;
|
|
14
|
+
|
|
15
|
+
${theme.below.lg} {
|
|
16
|
+
height: 50vh;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
const LoadingElement = () => React.createElement("div", { style: { height: '100%' } });
|
|
21
|
+
const StoreMap = ({ stores, userLocation, closestStore }) => {
|
|
22
|
+
const ref = useRef();
|
|
23
|
+
const locationState = useContext(LocationStateContext);
|
|
24
|
+
const { isOpen, infoId, showInfo } = useMapState();
|
|
25
|
+
const [mapsLoaded, setMapsLoaded] = useState(false);
|
|
26
|
+
const { googleMapsApiKey } = useShopConfig();
|
|
27
|
+
throwErrorInDev(typeof googleMapsApiKey === 'undefined', 'Make sure googleMapsApiKey is defined in your shop.config.js. See https://developers.google.com/maps/documentation/javascript/get-api-key');
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (stores && mapsLoaded) {
|
|
30
|
+
// Stores are loaded, fit bounds
|
|
31
|
+
const bounds = new window.google.maps.LatLngBounds();
|
|
32
|
+
stores
|
|
33
|
+
.filter(store => store.coordinates)
|
|
34
|
+
.map(store => {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
return bounds.extend(new window.google.maps.LatLng((_a = store === null || store === void 0 ? void 0 : store.coordinates) === null || _a === void 0 ? void 0 : _a.latitude, (_b = store === null || store === void 0 ? void 0 : store.coordinates) === null || _b === void 0 ? void 0 : _b.longitude));
|
|
37
|
+
});
|
|
38
|
+
// Don't zoom in too far on only one marker
|
|
39
|
+
if (bounds.getNorthEast().equals(bounds.getSouthWest())) {
|
|
40
|
+
const extendPoint1 = new window.google.maps.LatLng(bounds.getNorthEast().lat() + 0.01, bounds.getNorthEast().lng() + 0.01);
|
|
41
|
+
const extendPoint2 = new window.google.maps.LatLng(bounds.getNorthEast().lat() - 0.01, bounds.getNorthEast().lng() - 0.01);
|
|
42
|
+
bounds.extend(extendPoint1);
|
|
43
|
+
bounds.extend(extendPoint2);
|
|
44
|
+
}
|
|
45
|
+
ref.current.fitBounds(bounds);
|
|
46
|
+
}
|
|
47
|
+
}, [mapsLoaded, stores]);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
if (closestStore && mapsLoaded) {
|
|
51
|
+
// User has shared its location and the closest store has been calculated
|
|
52
|
+
const bounds = new window.google.maps.LatLngBounds();
|
|
53
|
+
bounds.extend(new window.google.maps.LatLng(userLocation.latitude, userLocation.longitude));
|
|
54
|
+
bounds.extend(new window.google.maps.LatLng((_a = closestStore === null || closestStore === void 0 ? void 0 : closestStore.coordinates) === null || _a === void 0 ? void 0 : _a.latitude, (_b = closestStore === null || closestStore === void 0 ? void 0 : closestStore.coordinates) === null || _b === void 0 ? void 0 : _b.longitude));
|
|
55
|
+
ref.current.fitBounds(bounds);
|
|
56
|
+
}
|
|
57
|
+
}, [userLocation, closestStore, mapsLoaded]);
|
|
58
|
+
return (React.createElement(Wrapper, null,
|
|
59
|
+
React.createElement(React.Fragment, null,
|
|
60
|
+
React.createElement(LoadScript, { loadingElement: React.createElement(LoadingElement, null), preventGoogleFontsLoading: true, googleMapsApiKey: googleMapsApiKey },
|
|
61
|
+
React.createElement(GoogleMap, { defaultZoom: 6, mapContainerClassName: "map-container", defaultCenter: { lat: 59.247948, lng: 14.755806 }, onLoad: map => {
|
|
62
|
+
ref.current = map;
|
|
63
|
+
setMapsLoaded(true);
|
|
64
|
+
} },
|
|
65
|
+
React.createElement(React.Fragment, null,
|
|
66
|
+
userLocation.latitude && userLocation.longitude && (React.createElement(Marker, { position: {
|
|
67
|
+
lat: userLocation.latitude,
|
|
68
|
+
lng: userLocation.longitude
|
|
69
|
+
} })),
|
|
70
|
+
mapsLoaded &&
|
|
71
|
+
stores
|
|
72
|
+
.filter(store => store.coordinates)
|
|
73
|
+
.map((store, index) => {
|
|
74
|
+
var _a, _b, _c, _d;
|
|
75
|
+
const isActive = store.id === locationState.activeLocation;
|
|
76
|
+
return (React.createElement(React.Fragment, { key: store.id },
|
|
77
|
+
React.createElement(Marker, { icon: {
|
|
78
|
+
path: 'M23.011 12.068C23.011 20.7463 11.8531 28.1849 11.8531 28.1849C11.8531 28.1849 0.695312 20.7463 0.695312 12.068C0.695313 9.10875 1.87087 6.27071 3.96337 4.17821C6.05587 2.08571 8.89391 0.910156 11.8531 0.910156C14.8124 0.910156 17.6504 2.08571 19.7429 4.17821C21.8354 6.27071 23.011 9.10875 23.011 12.068Z',
|
|
79
|
+
fillColor: isActive ? theme.colors.blue : 'white',
|
|
80
|
+
fillOpacity: 1,
|
|
81
|
+
strokeColor: theme.colors.blue,
|
|
82
|
+
anchor: new window.google.maps.Point(12, 32),
|
|
83
|
+
scale: isActive ? 1.25 : 1.2,
|
|
84
|
+
labelOrigin: new window.google.maps.Point(12, 14)
|
|
85
|
+
}, zIndex: index, position: {
|
|
86
|
+
lat: (_a = store === null || store === void 0 ? void 0 : store.coordinates) === null || _a === void 0 ? void 0 : _a.latitude,
|
|
87
|
+
lng: (_b = store === null || store === void 0 ? void 0 : store.coordinates) === null || _b === void 0 ? void 0 : _b.longitude
|
|
88
|
+
}, label: {
|
|
89
|
+
text: `${index + 1}`,
|
|
90
|
+
color: isActive ? 'white' : theme.colors.blue,
|
|
91
|
+
fontSize: '16px'
|
|
92
|
+
}, onMouseOver: () => {
|
|
93
|
+
locationState.setHighlightedLocation(store.id);
|
|
94
|
+
}, onMouseOut: () => locationState.setHighlightedLocation(null), onClick: () => showInfo(store.id) }),
|
|
95
|
+
isOpen && infoId === store.id && (React.createElement(InfoWindow, { key: `infowindow-${store.id}`, onCloseClick: showInfo, position: {
|
|
96
|
+
lat: (_c = store === null || store === void 0 ? void 0 : store.coordinates) === null || _c === void 0 ? void 0 : _c.latitude,
|
|
97
|
+
lng: (_d = store === null || store === void 0 ? void 0 : store.coordinates) === null || _d === void 0 ? void 0 : _d.longitude
|
|
98
|
+
}, options: {
|
|
99
|
+
pixelOffset: new window.google.maps.Size(50, 0)
|
|
100
|
+
} },
|
|
101
|
+
React.createElement("div", { style: {
|
|
102
|
+
background: 'white',
|
|
103
|
+
padding: '1em',
|
|
104
|
+
minWidth: '200px',
|
|
105
|
+
fontSize: '14px',
|
|
106
|
+
lineHeight: 1.5
|
|
107
|
+
} },
|
|
108
|
+
React.createElement("p", null,
|
|
109
|
+
React.createElement("strong", null, store.name)),
|
|
110
|
+
React.createElement("div", { dangerouslySetInnerHTML: {
|
|
111
|
+
__html: store.address1
|
|
112
|
+
} }))))));
|
|
113
|
+
})))))));
|
|
114
|
+
};
|
|
115
|
+
export default StoreMap;
|
|
116
|
+
//# sourceMappingURL=StoreMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreMap.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreMap.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 { styled } from 'linaria/react';
|
|
14
|
+
import { cx } from 'linaria';
|
|
15
|
+
import { ReactComponent as MapPinSvg } from '../../svg/MapPin.svg';
|
|
16
|
+
import { theme } from '../Theme';
|
|
17
|
+
const MarkerContainer = styled('div') `
|
|
18
|
+
position: relative;
|
|
19
|
+
width: 24px;
|
|
20
|
+
height: 29px;
|
|
21
|
+
margin-right: 12px;
|
|
22
|
+
|
|
23
|
+
svg {
|
|
24
|
+
fill: ${theme.colors.white};
|
|
25
|
+
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
}
|
|
29
|
+
&.active {
|
|
30
|
+
svg {
|
|
31
|
+
fill: ${theme.colors.blue};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
span {
|
|
35
|
+
color: ${theme.colors.white};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
span {
|
|
40
|
+
position: absolute;
|
|
41
|
+
top: 0;
|
|
42
|
+
left: 0;
|
|
43
|
+
bottom: 3px;
|
|
44
|
+
right: 0;
|
|
45
|
+
|
|
46
|
+
display: flex;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
align-items: center;
|
|
49
|
+
|
|
50
|
+
font-family: 'Source Sans Pro', sans-serif;
|
|
51
|
+
font-size: 16px;
|
|
52
|
+
line-height: 1;
|
|
53
|
+
|
|
54
|
+
color: ${theme.colors.blue};
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
export const StoreMarker = (_a) => {
|
|
58
|
+
var { nr, active, large } = _a, rest = __rest(_a, ["nr", "active", "large"]);
|
|
59
|
+
return (React.createElement(MarkerContainer, Object.assign({ className: cx(active ? 'active' : null) }, rest),
|
|
60
|
+
React.createElement(MapPinSvg, null),
|
|
61
|
+
React.createElement("span", null, nr)));
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=StoreMarker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreMarker.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreMarker.js"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;YAOzB,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;cAOhB,KAAK,CAAC,MAAM,CAAC,IAAI;;;;eAIhB,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;aAmBpB,KAAK,CAAC,MAAM,CAAC,IAAI;;CAE7B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAA8B,EAAE,EAAE;QAAlC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,OAAW,EAAN,IAAI,cAA5B,yBAA8B,CAAF;IAAO,OAAA,CAC7D,oBAAC,eAAe,kBAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAM,IAAI;QAChE,oBAAC,SAAS,OAAG;QACb,kCAAO,EAAE,CAAQ,CACD,CACnB,CAAA;CAAA,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { styled } from 'linaria/react';
|
|
3
|
+
import { Intl } from '@jetshop/intl';
|
|
4
|
+
import { ReactComponent as SearchSvg } from '../../svg/Search.svg';
|
|
5
|
+
const SearchContainer = styled('div') `
|
|
6
|
+
position: relative;
|
|
7
|
+
width: 100%;
|
|
8
|
+
padding: 24px;
|
|
9
|
+
|
|
10
|
+
label {
|
|
11
|
+
padding-left: 25px;
|
|
12
|
+
margin-bottom: 0.25rem;
|
|
13
|
+
display: block;
|
|
14
|
+
font-size: 0.875rem;
|
|
15
|
+
color: #707070;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
input {
|
|
19
|
+
width: 100%;
|
|
20
|
+
height: 46px;
|
|
21
|
+
padding: 0 48px 0 24px;
|
|
22
|
+
|
|
23
|
+
font-size: 16px;
|
|
24
|
+
border-radius: 27px;
|
|
25
|
+
border: 1px solid #e0e0e0;
|
|
26
|
+
outline: none;
|
|
27
|
+
|
|
28
|
+
font-family: 'Source Sans Pro', sans-serif;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
svg {
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 56px;
|
|
34
|
+
right: 48px;
|
|
35
|
+
width: 1em;
|
|
36
|
+
height: 1.2em;
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
const StoreSearch = ({ search, setSearch }) => (React.createElement(SearchContainer, null,
|
|
40
|
+
React.createElement(Intl, null, t => (React.createElement(React.Fragment, null,
|
|
41
|
+
React.createElement("label", { htmlFor: "search-field" }, t('Search')),
|
|
42
|
+
React.createElement("input", { id: "search-field", value: search, onChange: e => {
|
|
43
|
+
setSearch(e.target.value);
|
|
44
|
+
}, placeholder: t('Type your search here') })))),
|
|
45
|
+
React.createElement(SearchSvg, null)));
|
|
46
|
+
export default StoreSearch;
|
|
47
|
+
//# sourceMappingURL=StoreSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreSearch.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/StoreSearch.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCpC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC7C,oBAAC,eAAe;IACd,oBAAC,IAAI,QACF,CAAC,CAAC,EAAE,CAAC,CACJ;QACE,+BAAO,OAAO,EAAC,cAAc,IAAE,CAAC,CAAC,QAAQ,CAAC,CAAS;QACnD,+BACE,EAAE,EAAC,cAAc,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE;gBACZ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC,EACD,WAAW,EAAE,CAAC,CAAC,uBAAuB,CAAC,GACvC,CACD,CACJ,CACI;IACP,oBAAC,SAAS,OAAG,CACG,CACnB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import t from '@jetshop/intl';
|
|
2
|
+
import React, { useState } from 'react';
|
|
3
|
+
import { styled } from 'linaria/react';
|
|
4
|
+
import useGeolocation from '@jetshop/core/hooks/useGeolocation';
|
|
5
|
+
import TrendButton from '../ui/Button';
|
|
6
|
+
import { ReactComponent as LocationSvg } from '../../svg/Location.svg';
|
|
7
|
+
import { ReactComponent as CrossSvg } from '../../svg/Cross.svg';
|
|
8
|
+
const UserLocationContainer = styled('li') `
|
|
9
|
+
position: relative;
|
|
10
|
+
width: 100%;
|
|
11
|
+
background: #fff;
|
|
12
|
+
padding: 32px;
|
|
13
|
+
|
|
14
|
+
> div {
|
|
15
|
+
width: 100%;
|
|
16
|
+
max-width: 260px;
|
|
17
|
+
margin: auto;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
align-items: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.ul-icon-close {
|
|
25
|
+
position: absolute;
|
|
26
|
+
top: 0;
|
|
27
|
+
right: 0;
|
|
28
|
+
padding: 16px;
|
|
29
|
+
|
|
30
|
+
background: transparent;
|
|
31
|
+
box-shadow: none;
|
|
32
|
+
border: 0;
|
|
33
|
+
|
|
34
|
+
svg {
|
|
35
|
+
stroke: #878787;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&:hover svg {
|
|
39
|
+
stroke: #000;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.ul-icon-circle {
|
|
44
|
+
padding: 16px;
|
|
45
|
+
background: #f2f2f2;
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
h2 {
|
|
50
|
+
font-family: 'Source Sans Pro', sans-serif;
|
|
51
|
+
font-size: 18px;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
line-height: 23px;
|
|
54
|
+
margin: 16px 0;
|
|
55
|
+
text-align: center;
|
|
56
|
+
}
|
|
57
|
+
`;
|
|
58
|
+
const UserLocation = ({ setUserLocation }) => {
|
|
59
|
+
const [hide, setHide] = useState(false);
|
|
60
|
+
const { getPosition, isAvailable, position } = useGeolocation({
|
|
61
|
+
onSuccess: ({ coords: { latitude, longitude } }) => setUserLocation({ latitude, longitude }),
|
|
62
|
+
onError: err => console.log(err)
|
|
63
|
+
});
|
|
64
|
+
if (hide || !isAvailable || position)
|
|
65
|
+
return null;
|
|
66
|
+
return (React.createElement(UserLocationContainer, null,
|
|
67
|
+
React.createElement("div", null,
|
|
68
|
+
React.createElement("button", { className: "ul-icon-close", onClick: () => setHide(true) },
|
|
69
|
+
React.createElement(CrossSvg, null)),
|
|
70
|
+
React.createElement("span", { className: "ul-icon-circle" },
|
|
71
|
+
React.createElement(LocationSvg, null)),
|
|
72
|
+
React.createElement("h2", null, t('Find the closest store using your location')),
|
|
73
|
+
React.createElement(TrendButton, { onClick: getPosition }, t('Share location')))));
|
|
74
|
+
};
|
|
75
|
+
export default UserLocation;
|
|
76
|
+
//# sourceMappingURL=UserLocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserLocation.js","sourceRoot":"","sources":["../../../../src/components/StoreLocator/UserLocation.js"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAEhE,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDzC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;IAC3C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAC5D,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CACjD,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAElD,OAAO,CACL,oBAAC,qBAAqB;QACpB;YACE,gCAAQ,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC5D,oBAAC,QAAQ,OAAG,CACL;YACT,8BAAM,SAAS,EAAC,gBAAgB;gBAC9B,oBAAC,WAAW,OAAG,CACV;YACP,gCAAK,CAAC,CAAC,4CAA4C,CAAC,CAAM;YAC1D,oBAAC,WAAW,IAAC,OAAO,EAAE,WAAW,IAAG,CAAC,CAAC,gBAAgB,CAAC,CAAe,CAClE,CACgB,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
|