From ce7c2ec8269602a3817a1185e880b8e1404342ef Mon Sep 17 00:00:00 2001 From: Daria Larionova Date: Wed, 6 Apr 2022 19:14:41 +0300 Subject: [PATCH] Release 4.0.0 --- .config/dotnet-tools.json | 6 + GitVersion.yml | 2 +- automation/azure-pipelines-packages.yml | 39 +- automation/azure-pipelines-unit.yml | 2 + automation/backend-pipeline.yml | 96 +- automation/frontend-pipeline.yml | 12 +- automation/update-build-pipeline.yml | 117 +- package-lock.json | 6 + .../Account/shipping-address.yml | 38 + .../Renderings/Account/Account Details.yml | 38 + .../Renderings/Account/Account.yml | 40 + .../Renderings/Account/Delete My Account.yml | 35 + .../Renderings/Account/Delivery.yml | 38 + .../Renderings/Account/Notifications.yml | 41 + .../Account/Ordering And Payments.yml | 38 + .../Renderings/Account/Out Of Stock List.yml | 30 + .../Renderings/Account/Payment Cards.yml | 38 + .../Renderings/Account/ReturnsExchanges.yml | 42 + .../Account/Shipping Address List.yml | 41 + .../Renderings/Account/Shipping Address.yml | 41 + .../Controllers/AccountsControllerTests.cs | 2 +- .../website/Controllers/AccountsController.cs | 45 +- .../website/HCA.Feature.Account.csproj | 3 +- .../Pipelines/Initialize/RegisterRoutes.cs | 8 +- .../website/Models/Requests/AddressRequest.cs | 5 + .../Models/Requests/CreateAccountRequest.cs | 2 + .../website/Models/Requests/DateValidator.cs | 34 + .../Models/Requests/UpdateAccountRequest.cs | 7 + .../website/Models/Requests/VariantRequest.cs | 52 + .../website/HCA.Feature.Catalog.csproj | 4 + .../Requests/Search/ProductsSearchRequest.cs | 9 +- .../Renderings/Checkout/Order History.yml | 9 +- .../Order Confirmation/__Standard Values.yml | 14 +- .../tests/Controllers/CartsControllerTests.cs | 39 +- .../Controllers/CheckoutControllerTests.cs | 6 +- .../Controllers/PromotionsControllerTests.cs | 49 + .../website/Controllers/CartsController.cs | 9 +- .../website/Controllers/OrdersController.cs | 2 +- .../Controllers/PromotionsController.cs | 41 + .../website/HCA.Feature.Checkout.csproj | 1 - .../Pipelines/Initialize/RegisterRoutes.cs | 10 +- .../Models/Requests/UpdateCartLineRequest.cs | 2 +- .../Navigation/left-menu.yml | 38 + .../Navigation/Dropdown Footer Links.yml | 66 + .../Renderings/Navigation/Left Menu.yml} | 54 +- .../Templates/Navigation/Left Menu.yml} | 16 +- .../Navigation/Left Menu/Left Menu Link.yml | 33 + .../Left Menu/Left Menu Link/Content.yml | 23 + .../Left Menu Link/Content/Is Primary.yml | 36 + .../Left Menu/Left Menu Link/Content/Uri.yml | 30 + .../Left Menu Link/__Standard Values.yml | 31 + .../Navigation/Left Menu/Menu Links.yml | 33 + .../Left Menu/Menu Links/Content.yml | 23 + .../Left Menu/Menu Links/Content/Links.yml | 39 + .../Menu Links/__Standard Values.yml | 31 + .../tests/Services/BreadcrumbsServiceTests.cs | 2 +- .../website/HCA.Feature.Navigation.csproj | 7 - .../Services/Breadcrumb/BreadcrumbService.cs | 2 +- .../Navigation/website/packages.config | 1 - .../Templates/PageContent/Account.yml | 23 + .../PageContent/Account/Account Folder.yml | 33 + .../Account Folder/__Standard Values.yml | 31 + .../tests/HCA.Foundation.Base.Tests.csproj | 110 + .../ExtendedSearchQueryHelper.cs | 36 + .../FacetOnPipelineProcessorTests.cs | 67 + .../FilterByFieldsPipelineProcessorTests.cs | 68 + .../FilterByKeywordPipelineProcessorTests.cs | 68 + .../FilterByLanguagePipelineProcessorTests.cs | 68 + .../FilterByRootItemPipelineProcessorTests.cs | 68 + .../FilterByVersionPipelineProcessorTests.cs | 68 + .../SortResultsPipelineProcessorTests.cs | 68 + ...on.Base.ExtendedSearchQueryPipeline.config | 17 + src/Foundation/Base/website/Constants.cs | 5 + .../Extensions/CustomPropertyExtensions.cs | 43 + .../Base/website/Extensions/ItemExtensions.cs | 31 +- .../Base/website/HCA.Foundation.Base.csproj | 13 + .../FacetOnPipelineProcessor.cs | 52 + .../FilterByFieldsPipelineProcessor.cs | 97 + .../FilterByKeywordPipelineProcessor.cs | 48 + .../FilterByLanguagePipelineProcessor.cs | 50 + .../FilterByRootItemPipelineProcessor.cs | 52 + .../FilterByVersionPipelineProcessor.cs | 45 + .../SortResultsPipelineProcessor.cs | 59 + .../Base/website/Mappers/IMapper.cs | 4 + src/Foundation/Base/website/Mappers/Mapper.cs | 11 + .../Base/website/Models.Generated.cs | 28 + .../ExtendedSearchQueryPipelineArgs.cs} | 23 +- .../Base/website/Models/Result/Result.cs | 8 +- .../SiteDataSources/DataSourcesProvider.cs | 65 + .../SiteDataSources/IDataSourcesProvider.cs} | 16 +- .../GraphQL/Queries/ExtendedSearchQuery.cs | 68 +- src/Foundation/Commerce/tests/App.config | 3 - .../Converters/Cart/CartConverterTests.cs | 4 +- .../SettingsSearchOptionsConverterTests.cs | 6 +- .../HCA.Foundation.Commerce.Tests.csproj | 10 +- .../Mappers/Profiles/AccountProfileTests.cs | 8 +- .../Services/Account/AccountServiceTests.cs | 19 +- .../tests/Services/Cart/CartServiceTests.cs | 28 +- .../Services/Delivery/DeliveryServiceTests.cs | 8 +- .../tests/Services/Order/OrderServiceTests.cs | 1 + .../Foundation/HCA.Foundation.Commerce.config | 2 +- src/Foundation/Commerce/website/Constants.cs | 35 +- .../website/Context/Site/ISiteContext.cs | 2 +- .../website/Context/Site/SiteContext.cs | 6 +- .../website/Converters/Cart/CartConverter.cs | 2 +- .../Search/SettingsSearchOptionsConverter.cs | 21 +- .../website/HCA.Foundation.Commerce.csproj | 16 +- .../Pipelines/CatalogItemResolver.cs | 7 +- .../VerifyEmailProcessor.cs | 2 +- .../CustomerResolverProcessor.cs | 1 + .../Login/GetCommerceUserProcessor.cs | 4 +- .../Login/SetCurrentUserProcessor.cs | 1 + .../SubmitVisitorOrder/SendEmailProcessor.cs | 3 +- .../SetAnonymousInfoProcessor.cs | 3 +- .../Mappers/Profiles/AccountProfile.cs | 3 + .../Mappers/Profiles/AddressProfile.cs | 4 +- .../website/Mappers/Profiles/CartProfile.cs | 2 +- .../Mappers/Profiles/CatalogProfile.cs | 11 +- .../website/Mappers/Profiles/SearchProfile.cs | 2 +- .../Mappers/Profiles/ShippingProfile.cs | 3 +- .../website/Mappers/Profiles/UserProfile.cs | 17 + .../website/Mappers/Search/SearchMapper.cs | 3 +- .../Models/Entities/Addresses/Address.cs | 7 +- .../Models/Entities/Payment/PaymentData.cs | 18 + .../website/Models/Entities/Search/Facet.cs | 2 + .../Entities/Search/ProductSearchOptions.cs | 4 + .../Models/Entities/Shipping/ShippingData.cs | 16 + .../website/Models/Entities/Users/User.cs | 6 + .../Providers/Currency/CurrencyProvider.cs | 2 +- .../Providers/Currency/ICurrencyProvider.cs | 2 +- .../Providers/Customer/CustomerProvider.cs | 11 +- .../Providers/Customer/ICustomerProvider.cs | 2 +- .../Providers/ItemType/IItemTypeProvider.cs | 2 +- .../Providers/ItemType/ItemTypeProvider.cs | 2 +- .../Providers/PageType/IPageTypeProvider.cs | 2 +- .../Providers/PageType/PageTypeProvider.cs | 2 +- .../website/Repositories/IItemRepository.cs} | 22 +- .../Services/Account/AccountService.cs | 203 +- .../Services/Account/IAccountService.cs | 7 +- .../Services/Billing/BillingService.cs | 10 +- .../Services/Billing/IBillingService.cs | 2 +- .../website/Services/Cart/CartService.cs | 54 +- .../website/Services/Cart/ICartService.cs | 7 +- .../Services/Catalog/CatalogService.cs | 4 +- .../Services/Delivery/DeliveryService.cs | 41 +- .../Services/Delivery/IDeliveryService.cs | 3 +- .../tests/HCA.Foundation.Connect.Tests.csproj | 5 +- .../tests/Managers/Cart/CartManagerTests.cs | 74 +- .../Inventory/InventoryManagerTests.cs | 3 +- .../Managers/Payment/PaymentManagerTests.cs | 15 +- .../Managers/Pricing/PricingManagerTests.cs | 12 +- .../Managers/Shipping/ShippingManagerTests.cs | 8 +- .../website/HCA.Foundation.Connect.csproj | 8 +- .../website/Managers/Cart/CartManager.cs | 29 +- .../website/Managers/Cart/ICartManager.cs | 19 +- .../Managers/Inventory/IInventoryManager.cs | 3 +- .../Managers/Inventory/InventoryManager.cs | 4 +- .../Managers/Payment/PaymentManager.cs | 27 +- .../Managers/Pricing/PricingManager.cs | 4 +- .../Managers/Promotion/PromotionManager.cs | 147 - .../Managers/Shipping/ShippingManager.cs | 5 +- .../Mappers/Profiles/AddressProfile.cs | 4 +- .../Mappers/Profiles/CatalogProfile.cs | 4 +- .../Mappers/Profiles/PaymentProfile.cs | 3 +- .../Providers/ConnectServiceProvider.cs | 16 +- .../Providers/IConnectServiceProvider.cs | 10 +- .../HCA.Foundation.ConnectBase/Constants.cs | 20 + .../Entities/Benefit.cs | 12 + .../CommerceBaseCatalogSearchResultItem.cs | 17 + .../Entities/CommerceCart.cs | 36 + .../Entities/CommerceCartLine.cs | 64 + .../Entities/CommerceCartProduct.cs | 19 + .../Entities/CommerceInventoryProduct.cs | 11 + .../Entities/CommerceOrder.cs | 34 + .../Entities/CommerceOrderForm.cs | 60 + .../Entities/CommerceOrderHeader.cs | 27 + .../Entities/CommerceParty.cs | 23 + .../Entities/CommercePrice.cs | 17 + .../Entities/CommerceSearchResultItem.cs | 11 + .../CommerceSellableItemSearchResultItem.cs | 22 + .../Entities/CommerceShippingInfo.cs | 71 + .../Entities/CommerceTotal.cs | 19 + .../Entities/FreeGiftItem.cs | 22 + .../Entities/FreeGiftSelection.cs | 16 + .../Entities/ItemAvailability.cs | 19 + .../Entities/ItemPricing.cs | 16 + .../Entities/Qualification.cs | 16 + .../Entities/VariationPricing.cs | 11 + .../HCA.Foundation.ConnectBase.csproj | 169 + .../Arguments/AddShippingInfoRequest.cs | 19 + .../Arguments/GetPaymentMethodsRequest.cs | 18 + .../Arguments/GetProductBulkPricesRequest.cs | 27 + .../Arguments/GetProductPricesRequest.cs | 19 + .../Arguments/GetShippingMethodsRequest.cs | 22 + .../GetSupportedCurrenciesRequest.cs | 12 + .../Arguments/LoadCartByNameRequest.cs | 25 + .../Arguments/PaymentClientTokenResult.cs | 9 + .../Properties/AssemblyInfo.cs | 35 + .../PublishProfiles/LocalDev.pubxml | 8 + .../Providers/CartServiceProviderBase.cs | 10 + .../Providers/PaymentServiceProviderBase.cs | 15 + .../Providers/PricingServiceProviderBase.cs | 11 + .../HCA.Foundation.ConnectBase/Web.config | 11 + .../packages.config | 8 + .../Infrastructure/GlassMapperConfigurator.cs | 2 +- .../tests/HCA.Foundation.Search.Tests.csproj | 9 + .../Mappers/Profiles/SearchProfileTests.cs | 7 +- src/Foundation/Search/tests/packages.config | 2 + src/Foundation/Search/website/Constants.cs | 11 +- .../website/HCA.Foundation.Search.csproj | 2 +- .../website/Models/Common/SearchOptions.cs | 2 + .../Products/ProductConverterTests.cs | 5 +- ...A.Foundation.SitecoreCommerce.Tests.csproj | 10 + .../HCA.Foundation.SitecoreCommerce.config | 36 + .../SitecoreCommerce/website/Constants.cs | 16 + .../Products/ItemToProductConverter.cs | 3 +- .../HCA.Foundation.SitecoreCommerce.csproj | 20 +- .../TranslateCommercePartyToParty.cs | 54 + .../TranslatePartyToCommerceParty.cs | 59 + .../website/Mappers/Provider/Extensions.cs | 413 + .../Mappers/Provider/ProviderMapper.cs | 9 + .../Mappers/Provider/ProviderProfile.cs | 33 + .../website/Mappers/Search/SearchMapper.cs | 3 +- .../Cart/CommerceCartServiceProvider.cs | 122 + .../CommerceCustomerServiceProvider.cs | 37 + .../CommerceInventoryServiceProvider.cs | 35 + .../Orders/CommerceOrderServiceProvider.cs | 39 + .../CommercePaymentServiceProvider.cs | 39 + .../Prices/CommercePricingServiceProvider.cs | 39 + .../CommerceProductSearchResultProvider.cs | 17 +- .../CommerceShippingServiceProvider.cs | 27 + .../Product/CommerceProductSearchService.cs | 19 +- src/HCA.sln | 17 +- src/HCA.sln.DotSettings | 6 +- src/Project/HCA.content/Metadata.module.json | 8 +- .../Content/HCA/Data/Account.yml | 23 + .../Content/HCA/Data/Account/Left Menu.yml | 41 + .../Account/Left Menu/Account Details.yml | 31 + .../Data/Account/Left Menu/Address Book.yml | 31 + .../HCA/Data/Account/Left Menu/Delivery.yml | 31 + .../HCA/Data/Account/Left Menu/Log Out.yml | 31 + .../HCA/Data/Account/Left Menu/My Account.yml | 27 + .../HCA/Data/Account/Left Menu/Need Help.yml | 38 + .../Data/Account/Left Menu/Order History.yml | 27 + .../Left Menu/Ordering and Payments.yml | 35 + .../Account/Left Menu/Payment Methods.yml | 30 + .../Account/Left Menu/Returns Exchanges.yml | 35 + .../HCA/Data/Account/Left Menu/Settings.yml | 34 + .../HCA/Data/Advantages/Free delivery.yml | 8 +- .../Data/Advantages/High-quality products.yml | 8 +- .../Data/Advantages/Special promotions.yml | 8 +- .../HCA/Data/Advantages/Support 24-7.yml | 8 +- .../serialization/Content/HCA/Data/Footer.yml | 4 +- .../Content/HCA/Data/Footer/Copyright.yml | 4 +- .../{Primary Links.yml => Delivery.yml} | 13 +- .../Gift Cards.yml => Delivery/Delivery.yml} | 72 +- .../Payment Options.yml | 54 +- .../Footer/Delivery/Returns and refunds.yml | 35 + .../Where is My Order.yml} | 68 +- .../Data/Footer/Footer Social Networks.yml | 4 +- .../{Help Links.yml => Let Us Help You.yml} | 79 +- .../About HCA.yml | 62 +- .../Help and Contact Us.yml} | 54 +- .../How Can I Join HCA.yml} | 72 +- .../Let Us Help You.yml} | 65 +- .../Our Stores.yml} | 54 +- .../Returns.yml | 54 +- .../Shipping and Review.yml | 54 +- .../Primary Links/Sign Up for Email.yml | 34 - .../{News Links.yml => Shopping With Us.yml} | 74 +- .../Customer Rewards Scheme FAQs.yml | 38 + .../Customer Rewards Scheme.yml | 38 + .../Shopping With Us/Gift Card Balance.yml | 35 + .../Shopping With Us.yml} | 68 +- .../HCA Email/Messages/Service Messages.yml | 27 - .../Self-Service Subscription.yml | 31 - .../Subscription Confirmation.yml | 91 - .../Subscription Notification.yml | 82 - .../Unsubscribe Notification.yml | 77 - .../Service Messages/Status Messages.yml | 34 - .../Automated Notification.yml | 76 - .../Status Messages/Dispatch Completed.yml | 79 - .../serialization/Content/HCA/Home.yml | 23 +- .../Content/HCA/Home/AboutUs.yml | 20 +- .../Content/HCA/Home/Account.yml | 71 - .../HCA/Home/Account/Order-History.yml | 58 - .../serialization/Content/HCA/Home/Blog.yml | 67 - .../serialization/Content/HCA/Home/Cart.yml | 19 +- .../Content/HCA/Home/Checkout.yml | 19 +- .../Content/HCA/Home/Checkout/Billing.yml | 20 +- .../HCA/Home/Checkout/Confirmation.yml | 20 +- .../Content/HCA/Home/Checkout/Payment.yml | 20 +- .../Content/HCA/Home/Checkout/Shipping.yml | 20 +- .../Content/HCA/Home/ContactUs.yml | 31 +- .../HCA/Home/CustomerRewardsScheme.yml | 101 + .../HCA/Home/CustomerRewardsSchemeFAQs.yml | 101 + .../Content/HCA/Home/FreeDelivery.yml | 92 + .../Content/HCA/Home/GiftCardBalance.yml | 101 + .../Content/HCA/Home/High-qualityProducts.yml | 92 + .../Content/HCA/Home/Login-Register.yml | 19 +- .../Content/HCA/Home/MyAccount.yml | 100 + .../HCA/Home/MyAccount/AccountDetails.yml | 95 + .../Content/HCA/Home/MyAccount/Delivery.yml | 109 + .../HCA/Home/MyAccount/Order-History.yml | 88 + .../HCA/Home/MyAccount/OrderingPayments.yml | 107 + .../HCA/Home/MyAccount/ReturnsExchanges.yml | 91 + .../HCA/Home/MyAccount/ShippingAddress.yml | 105 + .../Content/HCA/Home/NotFound.yml | 89 +- .../Content/HCA/Home/PaymentOptions.yml | 101 + .../Content/HCA/Home/Product.yml | 21 +- .../Content/HCA/Home/Product/_.yml | 19 +- .../Content/HCA/Home/ReturnsRefunds.yml | 101 + .../serialization/Content/HCA/Home/Search.yml | 19 +- .../serialization/Content/HCA/Home/Shop.yml | 19 +- .../serialization/Content/HCA/Home/Shop/_.yml | 19 +- .../Content/HCA/Home/Shop/_/_.yml | 19 +- .../Content/HCA/Home/SpecialPromotions.yml | 92 + .../Content/HCA/Home/StoreLocator.yml | 70 - .../Content/HCA/Home/Support24-7.yml | 92 + .../Content/HCA/Home/WhereIsMyOrder.yml | 101 + .../Content/HCA/Home/Wishlist.yml | 46 - .../Content/HCA/Home/new-password.yml | 19 +- .../Content/HCA/Home/reset-password.yml | 19 +- .../Geolocation Settings/Kilometer.yml | 34 - .../Settings/Geolocation Settings/Meter.yml | 34 - .../Settings/Geolocation Settings/Mile.yml | 34 - .../serialization/Dictionary/HCA.yml | 8 + .../serialization/Storefront/HCA.yml | 8 + .../HCA/Home 2/Account 2/Wishlist 2.yml | 50 - src/Project/HCA/website/Models.Generated.cs | 100 + src/build-ci.ps1 | 245 - src/build.cake | 550 +- src/build.ps1 | 244 - src/cake.config | 5 - src/client/.eslintrc | 74 + src/client/.stylelintrc.json | 2 +- src/client/package-lock.json | 94429 +++++++++++----- src/client/package.json | 53 +- .../scripts/code-generation/codeGenTsUtils.js | 18 +- .../development/devServerOptions.js | 146 +- .../environments/development/server.js | 7 +- .../development/webpack.config.js | 69 +- .../webpack/environments/production.js | 39 +- src/client/src/Foundation/Base/models.ts | 27 - .../Commerce/dataModel.Generated.ts | 197 - .../Foundation/Integration/actionCreators.ts | 18 - .../Foundation/Integration/models/Action.ts | 32 - .../Foundation/Integration/models/index.ts | 17 - .../ExperienceEditorWarning/index.tsx | 24 +- .../Components/SafePureComponent/styles.scss | 2 +- .../ReactJss/Controls/Date/Date.tsx | 8 +- .../ReactJss/Controls/Dictionary/index.tsx | 6 +- .../ReactJss/Controls/Dictionary/models.ts | 6 +- .../ReactJss/Controls/Image/index.tsx | 50 +- .../ReactJss/Controls/Image/models.ts | 10 +- .../ReactJss/Controls/Link/index.tsx | 6 +- .../ReactJss/Controls/Link/models.ts | 10 +- .../ReactJss/Controls/RichText/RichText.tsx | 2 +- .../ReactJss/Controls/Text/index.tsx | 6 +- .../ReactJss/Controls/Text/models.ts | 8 +- .../ReactJss/Enhancers/ErrorHandler/index.tsx | 18 +- .../ReactJss/Enhancers/ErrorHandler/models.ts | 6 +- .../ReactJss/Enhancers/commonActions.ts | 6 +- .../ReactJss/Enhancers/commonComponent.ts | 8 +- .../Foundation/ReactJss/Enhancers/models.ts | 8 +- .../ReactJss/Form/FormConsumers/BaseField.ts | 6 +- .../DependentField/DependentField.tsx | 6 +- .../FormConsumers/DependentField/index.ts | 6 +- .../FormConsumers/DependentField/models.ts | 6 +- .../Form/FormConsumers/FieldSet/FieldSet.tsx | 6 +- .../Form/FormConsumers/FieldSet/index.ts | 6 +- .../Form/FormConsumers/FieldSet/models.ts | 6 +- .../Form/FormConsumers/Input/Input.tsx | 4 +- .../Form/FormConsumers/Radio/Radio.tsx | 4 +- .../Form/FormConsumers/Select/Select.tsx | 9 +- .../Form/FormConsumers/Submit/Submit.tsx | 6 +- .../Form/FormConsumers/Submit/index.ts | 6 +- .../Form/FormConsumers/Submit/models.ts | 6 +- .../ReactJss/Form/FormConsumers/enhancers.tsx | 10 +- .../ReactJss/Form/FormConsumers/models.ts | 6 +- .../Foundation/ReactJss/Form/FormContext.ts | 6 +- .../ReactJss/Form/FormProvider/Form.tsx | 6 +- .../ReactJss/Form/FormProvider/actions.ts | 6 +- .../ReactJss/Form/FormProvider/constants.ts | 8 +- .../ReactJss/Form/FormProvider/enhancers.ts | 11 +- .../ReactJss/Form/FormProvider/handlers.ts | 8 +- .../ReactJss/Form/FormProvider/index.tsx | 6 +- .../ReactJss/Form/FormProvider/models.ts | 6 +- .../ReactJss/Form/FormProvider/reducer.ts | 6 +- .../src/Foundation/ReactJss/Form/index.ts | 6 +- .../src/Foundation/ReactJss/Form/models.ts | 6 +- .../SitecoreContext/actionCreators.ts | 8 +- .../ReactJss/SitecoreContext/actions.ts | 4 +- .../ReactJss/SitecoreContext/index.ts | 6 +- .../ReactJss/SitecoreContext/reducer.ts | 8 +- .../SitecoreContext/routerMiddleware.ts | 2 +- .../ReactJss/SitecoreContext/sagas.ts | 6 +- .../SitecoreContext/tests/actions.test.ts | 2 +- .../SitecoreContext/tests/reducer.test.ts | 6 +- .../SitecoreContext/tests/sagas.test.ts | 4 +- .../ReactJss/api/JssDataApi/dataFetcher.ts | 6 +- .../ReactJss/api/JssDataApi/index.ts | 13 +- .../ReactJss/api/JssDataApi/models.ts | 13 +- .../src/Foundation/ReactJss/dataModels.ts | 2 +- .../Foundation/ReactJss/dataProvider/index.ts | 6 +- .../{models.ts => headlessDefinitions.ts} | 26 +- src/client/src/Foundation/ReactJss/index.ts | 8 +- .../src/Foundation/ReactJss/selectors.ts | 8 +- src/client/src/Foundation/ReactJss/utils.ts | 6 +- .../Errors/GlobalError/Component.tsx | 37 - .../components/Errors/GlobalError/index.ts | 37 - .../components/Errors/Integration/reducer.ts | 59 - .../UI/common/scss-new/_variables.scss | 231 - .../Foundation/UI/common/scss-new/style.scss | 30 - .../src/bootstrap/App/components/NotFound.tsx | 6 +- .../bootstrap/App/components/ServerError.tsx | 6 +- .../src/bootstrap/App/components/index.ts | 6 +- .../App/containers/App/Component.tsx | 14 +- .../src/bootstrap/App/containers/App/index.ts | 1 + src/client/src/bootstrap/App/i18n.ts | 13 +- src/client/src/bootstrap/App/index.ts | 8 +- src/client/src/bootstrap/Root/actionTypes.ts | 6 +- src/client/src/bootstrap/Root/initialState.ts | 6 +- src/client/src/bootstrap/Store/index.ts | 5 +- src/client/src/bootstrap/componentFactory.ts | 20 + .../models/generated/Models.Generated.ts | 60 +- .../generated/codegenerationts.config.js | 2 +- .../models/generated/codegenerationts.tmpl | 6 +- src/client/src/bootstrap/models/models.ts | 1 + src/client/src/bootstrap/server.index.tsx | 124 +- src/client/src/bootstrap/tests/client.test.ts | 6 +- src/client/src/components/Button/Button.scss | 67 +- src/client/src/components/Button/Button.tsx | 7 +- .../Checkbox/__stories__/Checkbox.stories.tsx | 24 +- src/client/src/components/Checkbox/cn.ts | 2 +- src/client/src/components/Checkbox/index.ts | 8 +- src/client/src/components/Dialog/Dialog.scss | 9 +- src/client/src/components/Dialog/Dialog.tsx | 15 +- .../components/ImageSlider/ImageSlider.scss | 2 +- src/client/src/components/Input/Input.scss | 48 +- src/client/src/components/Input/Input.tsx | 19 +- .../Input/__stories__/Input.stories.tsx | 75 +- .../components/Input/__tests__/Input.test.tsx | 19 +- src/client/src/components/Input/cn.ts | 6 +- src/client/src/components/Input/index.ts | 6 +- .../QuantityPicker/QuantityPicker.scss | 5 +- .../QuantityPicker/QuantityPicker.tsx | 27 +- .../__stories__/RadioButton.stories.tsx | 46 +- .../__tests__/RadioButton.test.tsx | 22 +- src/client/src/components/RadioButton/cn.ts | 6 +- .../src/components/RadioButton/index.ts | 6 +- src/client/src/components/Select/Select.scss | 122 +- src/client/src/components/Select/Select.tsx | 31 +- .../Select/__stories__/Select.stories.tsx | 81 +- .../Select/__tests__/Select.test.tsx | 23 +- .../__snapshots__/Select.test.tsx.snap | 44 +- src/client/src/components/Select/cn.ts | 6 +- src/client/src/components/Select/index.ts | 6 +- .../SidebarFilter/SidebarFilter.scss | 6 +- .../src/components/Spinner/Spinner.scss | 14 +- src/client/src/components/Spinner/Spinner.tsx | 15 +- src/client/src/components/Spoiler/Spoiler.tsx | 22 +- .../Spoiler/__stories__/Spoiler.stories.tsx | 55 +- .../Spoiler/__tests__/Spoiler.test.tsx | 23 +- src/client/src/components/Spoiler/cn.ts | 6 +- src/client/src/components/Spoiler/index.ts | 6 +- src/client/src/layouts/index.ts | 2 +- src/client/src/layouts/models.ts | 4 +- .../models/generated/dataModel.Generated.tt | 6 +- .../src/services/account/actionCreators.ts | 40 +- src/client/src/services/account/actions.ts | 194 +- src/client/src/services/account/api.ts | 63 +- src/client/src/services/account/constants.ts | 29 + src/client/src/services/account/index.ts | 6 +- .../models/generated/dataModel.Generated.ts | 17 +- .../src/services/account/models/index.ts | 42 + src/client/src/services/account/reducer.ts | 97 + src/client/src/services/account/sagas.ts | 117 +- src/client/src/services/account/selectors.ts | 12 +- .../src/services/authentication/reducer.ts | 4 +- src/client/src/services/catalog/index.ts | 6 +- .../models/generated/dataModel.Generated.ts | 37 +- .../src/services/catalog/models/index.ts | 6 +- src/client/src/services/catalog/selectors.ts | 6 +- src/client/src/services/checkout/index.ts | 6 +- .../models/generated/Models.Generated.ts | 142 +- .../generated/codegenerationts.config.js | 2 +- .../models/generated/codegenerationts.tmpl | 6 +- .../models/generated/dataModel.Generated.ts | 3 +- .../src/services/checkout/models/index.ts | 1 + src/client/src/services/checkout/sagas.ts | 29 +- .../services/checkout/tests/actions.test.ts | 406 +- .../src/services/checkout/tests/sagas.test.ts | 4 +- .../models/generated/dataModel.Generated.ts | 26 +- .../models/generated/dataModel.Generated.tt | 6 +- .../src/services/commerce/models/models.ts | 6 +- .../src/services/order/actionCreators.ts | 14 +- src/client/src/services/order/actionTypes.ts | 5 + src/client/src/services/order/actions.ts | 36 +- src/client/src/services/order/api.ts | 4 +- src/client/src/services/order/index.ts | 6 +- src/client/src/services/order/models.ts | 19 +- src/client/src/services/order/reducer.ts | 30 +- src/client/src/services/order/sagas.ts | 28 +- src/client/src/services/order/selectors.ts | 2 + .../models/generated/Models.Generated.ts | 244 +- .../generated/codegenerationts.config.js | 2 +- .../models/generated/codegenerationts.tmpl | 6 +- .../services/productVariant/actionCreators.ts | 11 +- .../src/services/productVariant/actions.ts | 11 +- .../src/services/productVariant/constants.ts | 8 +- .../src/services/productVariant/index.ts | 6 +- .../src/services/productVariant/models.ts | 6 +- .../src/services/productVariant/reducer.ts | 6 +- .../src/services/search/actionCreators.ts | 6 + src/client/src/services/search/actions.ts | 34 +- src/client/src/services/search/api.ts | 22 +- src/client/src/services/search/constants.ts | 6 + src/client/src/services/search/models.ts | 18 + src/client/src/services/search/reducer.ts | 34 +- src/client/src/services/search/sagas.ts | 26 +- src/client/src/services/search/selectors.ts | 2 + .../src/services/search/tests/actions.test.ts | 6 +- .../src/services/search/tests/reducer.test.ts | 6 +- .../src/services/search/tests/sagas.test.ts | 11 +- .../services/shoppingCart/actionCreators.ts | 6 +- .../src/services/shoppingCart/actionTypes.ts | 6 +- .../src/services/shoppingCart/actions.ts | 27 + src/client/src/services/shoppingCart/api.ts | 8 +- src/client/src/services/shoppingCart/index.ts | 6 +- .../src/services/shoppingCart/models.ts | 4 +- .../src/services/shoppingCart/reducer.ts | 7 +- src/client/src/services/shoppingCart/sagas.ts | 15 +- .../src/services/shoppingCart/selectors.ts | 6 +- .../shoppingCart/tests/actions.test.ts | 1 + .../shoppingCart/tests/reducer.test.ts | 8 +- .../services/shoppingCart/tests/sagas.test.ts | 2 +- .../models/generated/Models.Generated.ts | 322 +- .../generated/codegenerationts.config.js | 2 +- .../models/generated/codegenerationts.tmpl | 6 +- src/client/src/styles/base.scss | 8 +- src/client/src/styles/layout.scss | 4 + src/client/src/styles/navigation.scss | 2 +- src/client/src/styles/variables.scss | 19 +- src/client/src/ui/AboutUs/Team/models.ts | 14 +- src/client/src/ui/Account/Account.scss | 16 + src/client/src/ui/Account/Account.tsx | 54 + .../ui/Account/ActiveOrder/ActiveOrder.scss | 35 + .../ui/Account/ActiveOrder/ActiveOrder.tsx | 82 + .../ActiveOrderItem/ActiveOrderItem.scss | 122 + .../ActiveOrderItem/ActiveOrderItem.tsx | 64 + .../Account/ActiveOrder/ActiveOrderItem/cn.ts | 19 + .../ActiveOrder/ActiveOrderItem}/index.ts | 11 +- .../ActiveOrder/ActiveOrderItem/models.ts | 23 + .../ActiveOrder/ActiveOrderItem/utils.ts | 35 + .../ActiveOrderList/ActiveOrderList.scss | 30 + .../ActiveOrderList/ActiveOrderList.tsx | 80 + .../Account/ActiveOrder/ActiveOrderList/cn.ts | 19 + .../ActiveOrder/ActiveOrderList}/index.ts | 12 +- .../ActiveOrder/ActiveOrderList/models.ts | 21 + src/client/src/ui/Account/ActiveOrder/cn.ts | 19 + .../src/ui/Account/ActiveOrder/index.ts | 15 + src/client/src/ui/Account/Avatar/Avatar.scss | 159 + src/client/src/ui/Account/Avatar/Avatar.tsx | 225 + .../src/ui/Account/Avatar/avatar-default.svg | 4 + src/client/src/ui/Account/Avatar/cn.ts | 19 + src/client/src/ui/Account/Avatar/models.ts | 18 + .../ChangePassword/ChangePassword.scss | 147 + .../Account/ChangePassword/ChangePassword.tsx | 204 + .../ChangePasswordDialog.tsx | 160 + .../ChangePasswordDialog/index.ts | 15 + .../ChangePasswordDialog/models.ts | 31 + .../ConfirmationDialog/ConfirmationDialog.tsx | 42 + .../ConfirmationDialog/index.ts | 15 + .../ConfirmationDialog/models.ts | 20 + .../ResetPasswordDialog.tsx | 59 + .../ResetPasswordDialog/index.ts | 15 + .../ResetPasswordDialog/models.ts | 19 + .../src/ui/Account/ChangePassword/cn.ts | 19 + .../ui/Account/ChangePassword/constants.ts | 25 + .../src/ui/Account/ChangePassword/index.ts | 15 + .../src/ui/Account/ChangePassword/utils.ts | 87 + .../src/ui/Account/ClubPoints/ClubPoints.scss | 62 + .../src/ui/Account/ClubPoints/ClubPoints.tsx | 42 + src/client/src/ui/Account/ClubPoints/cn.ts | 19 + .../src/ui/Account/ClubPoints/models.ts | 17 + .../src/ui/Account/Dropdown/Dropdown.scss | 114 + .../src/ui/Account/Dropdown/Dropdown.tsx | 45 + src/client/src/ui/Account/Dropdown/cn.ts | 19 + src/client/src/ui/Account/Dropdown/models.ts | 23 + .../PaymentAndShippingInfo.scss | 22 + .../PaymentAndShippingInfo.tsx | 61 + .../Account/PaymentAndShippingInfo/index.ts | 15 + .../Account/PaymentAndShippingInfo/models.ts | 19 + .../PersonalInformation.scss | 127 + .../PersonalInformation.tsx | 64 + .../src/ui/Account/PersonalInformation/cn.ts | 19 + .../ui/Account/PersonalInformation/index.ts | 15 + .../ui/Account/PersonalInformation/models.ts | 23 + .../SectionWrapper/SectionWrapper.scss | 76 + .../Account/SectionWrapper/SectionWrapper.tsx | 49 + .../src/ui/Account/SectionWrapper/cn.ts | 19 + .../src/ui/Account/SectionWrapper/index.ts | 15 + src/client/src/ui/Account/cn.ts | 19 + src/client/src/ui/Account/index.ts | 15 + .../src/ui/AccountDetails/AccountDetails.scss | 16 + .../src/ui/AccountDetails/AccountDetails.tsx | 60 + .../DeleteAccount/DeleteAccount.scss | 80 + .../DeleteAccount/DeleteAccount.tsx | 108 + .../src/ui/AccountDetails/DeleteAccount/cn.ts | 19 + .../AccountDetails/DeleteAccount/constants.ts | 22 + .../ui/AccountDetails/DeleteAccount/index.ts | 15 + .../EditPersonalInformation.scss | 174 + .../EditPersonalInformation.tsx | 142 + .../EditPersonalInformation/cn.ts | 19 + .../EditPersonalInformation/index.ts | 15 + .../EditPersonalInformation/models.ts | 17 + .../PersonalInformationForm.scss | 103 + .../PersonalInformationForm.tsx | 144 + .../PersonalInformationForm/cn.ts | 19 + .../PersonalInformationForm/index.ts | 15 + .../PersonalInformationForm/models.ts | 22 + .../PersonalInformationForm/utils.ts | 88 + .../PersonalInformationStatic.scss | 73 + .../PersonalInformationStatic.tsx | 70 + .../PersonalInformationStatic/cn.ts | 19 + .../PersonalInformationStatic/index.ts | 15 + .../PersonalInformationStatic/models.ts | 19 + src/client/src/ui/AccountDetails/cn.ts | 19 + src/client/src/ui/AccountDetails/index.ts | 15 + src/client/src/ui/AccountDetails/models.ts | 17 + .../src/ui/AccountWrapper/AccountWrapper.scss | 132 + .../src/ui/AccountWrapper/AccountWrapper.tsx | 65 + src/client/src/ui/AccountWrapper/cn.ts | 19 + src/client/src/ui/AccountWrapper/index.ts | 15 + src/client/src/ui/AccountWrapper/models.ts | 27 + .../components/AddressForm/AddressForm.tsx | 1 - .../components/AddressForm/constants.ts | 8 +- .../components/AddressForm/models.ts | 6 +- .../components/AddressForm/utils.ts | 17 +- .../src/ui/AddressManager/components/index.ts | 6 +- src/client/src/ui/Advantages/Advantages.tsx | 14 +- .../AddressOptions/AddressOptions.scss | 1 + .../src/ui/Billing/AddressOptions/index.ts | 6 +- src/client/src/ui/Billing/Component.tsx | 213 +- src/client/src/ui/Billing/constants.ts | 11 +- src/client/src/ui/Billing/index.ts | 1 + src/client/src/ui/Billing/models.ts | 3 + .../src/ui/Breadcrumb/BreadcrumbComponent.tsx | 43 + src/client/src/ui/Breadcrumb/index.js | 2 +- src/client/src/ui/Breadcrumb/styles.scss | 7 +- src/client/src/ui/CarouselBanner/models.ts | 10 +- src/client/src/ui/CarouselBanner/styles.scss | 7 + src/client/src/ui/Cart/Component.tsx | 99 +- .../components/CartSummary/CartSummary.tsx | 96 +- .../ui/Cart/components/CartSummary/index.ts | 37 +- .../ui/Cart/components/CartSummary/models.ts | 2 +- .../Cart/components/CartSummary/styles.scss | 197 +- .../components/OrderSummary/Component.tsx | 205 +- .../ui/Cart/components/OrderSummary/index.tsx | 5 +- .../ui/Cart/components/OrderSummary/models.ts | 10 +- .../Cart/components/OrderSummary/styles.scss | 193 +- src/client/src/ui/Cart/index.ts | 1 + src/client/src/ui/Cart/models.ts | 2 + src/client/src/ui/Cart/styles.scss | 83 +- src/client/src/ui/CartView/CartView.scss | 8 +- src/client/src/ui/CartView/CartView.tsx | 2 +- src/client/src/ui/ChangePassword/constants.ts | 8 +- .../ui/ChangeUserInformationForm/constants.ts | 8 +- .../src/ui/CheckoutNavigation/index.tsx | 39 +- .../src/ui/CheckoutNavigation/styles.scss | 52 +- src/client/src/ui/ContactUs/models.ts | 6 +- src/client/src/ui/ContactUs/styles.scss | 7 - .../src/ui/CookieBanner/CookieBanner.scss | 52 + .../src/ui/CookieBanner/CookieBanner.tsx | 45 + src/client/src/ui/CookieBanner/cn.ts | 17 + src/client/src/ui/CookieBanner/constants.ts | 18 + src/client/src/ui/CookieBanner/hooks.ts | 17 + src/client/src/ui/CookieBanner/index.ts | 15 + src/client/src/ui/Copyright/cn.ts | 17 + src/client/src/ui/Copyright/index.tsx | 18 +- src/client/src/ui/Copyright/models.ts | 8 +- src/client/src/ui/Copyright/styles.scss | 52 +- .../DropdownFooterLinks.scss | 58 +- .../DropdownFooterLinks.tsx | 79 +- .../DropdownFooterLinks/cn.ts} | 6 +- .../src/ui/DropdownFooterLinks/models.ts | 2 +- src/client/src/ui/FooterLinks/cn.ts | 17 + src/client/src/ui/FooterLinks/index.tsx | 43 +- src/client/src/ui/FooterLinks/models.ts | 14 +- src/client/src/ui/FooterLinks/styles.scss | 44 +- src/client/src/ui/GetInTouchForm/models.ts | 12 +- src/client/src/ui/GetInTouchForm/styles.scss | 7 +- src/client/src/ui/GlobalFooter/cn.ts | 17 + src/client/src/ui/GlobalFooter/index.tsx | 9 +- src/client/src/ui/GlobalFooter/models.ts | 12 +- src/client/src/ui/GlobalFooter/styles.scss | 155 +- src/client/src/ui/GoToCheckout/index.tsx | 6 +- src/client/src/ui/GoToCheckout/models.ts | 8 +- .../src/ui/Header/CartButton/CartButton.tsx | 9 +- src/client/src/ui/Header/Header/Header.tsx | 17 +- .../src/ui/Header/HeaderContent/models.ts | 3 +- .../src/ui/Header/HeaderContent/styles.scss | 16 +- src/client/src/ui/Header/Logo/models.ts | 2 +- .../src/ui/Header/MenuButton/MenuButton.tsx | 10 +- .../ui/Header/NavigationMenu/Item/Item.tsx | 40 +- .../NavigationMenu/MenuItem/MenuItem.scss | 11 +- .../NavigationMenu/MenuItem/MenuItem.tsx | 3 +- .../Header/NavigationMenu/NavigationMenu.tsx | 21 +- .../ui/Header/NavigationSearch/styles.scss | 4 +- .../src/ui/Header/UserButton/Component.tsx | 8 +- src/client/src/ui/Header/UserButton/index.ts | 2 +- .../src/ui/Header/UserButton/styles.scss | 4 +- src/client/src/ui/Header/index.ts | 1 + src/client/src/ui/LeftMenu/LeftMenu.scss | 93 + src/client/src/ui/LeftMenu/LeftMenu.tsx | 71 + src/client/src/ui/LeftMenu/cn.ts | 19 + src/client/src/ui/LeftMenu/index.ts | 15 + .../actions.ts => ui/LeftMenu/models.ts} | 36 +- src/client/src/ui/LoginRegister/Component.tsx | 31 +- .../src/ui/LoginRegister/Login/Component.tsx | 53 +- .../index.ts => ui/LoginRegister/Login/cn.ts} | 4 +- .../src/ui/LoginRegister/Login/models.ts | 1 + .../src/ui/LoginRegister/Login/styles.scss | 115 +- .../Register/FormFields/FormFields.tsx | 26 +- .../Register/PasswordField/PasswordField.tsx | 3 + .../ui/LoginRegister/Register/Register.scss | 25 +- src/client/src/ui/LoginRegister/index.ts | 4 + src/client/src/ui/LoginRegister/models.ts | 2 + src/client/src/ui/LoginRegister/styles.scss | 15 - src/client/src/ui/NavigationLink/index.ts | 6 +- src/client/src/ui/NotFound/cn.ts | 19 + src/client/src/ui/NotFound/index.tsx | 36 +- src/client/src/ui/NotFound/models.ts | 10 +- src/client/src/ui/NotFound/styles.scss | 83 +- .../components/Confirmation/styles.scss | 2 +- .../components/Summary/index.tsx | 107 +- .../components/Summary/styles.scss | 81 - src/client/src/ui/OrderHistory/Component.tsx | 12 +- .../ui/OrderHistory/OrderHistoryWrapper.tsx | 55 + .../components/OrderHistoryItem/models.ts | 6 +- .../src/ui/OrderHistory/components/index.ts | 6 +- src/client/src/ui/OrderHistory/index.ts | 6 +- src/client/src/ui/OrderHistory/models.ts | 2 +- src/client/src/ui/OrderHistory/styles.scss | 2 +- src/client/src/ui/Payment/Component.tsx | 2 +- src/client/src/ui/Payment/styles.scss | 12 + .../CreditCardTypes/CreditCardTypes.scss | 34 + .../CreditCardTypes/CreditCardTypes.tsx | 64 + .../src/ui/PaymentCard/CreditCardTypes/cn.ts | 19 + .../ui/PaymentCard/CreditCardTypes/index.ts | 15 + .../src/ui/PaymentCard/PaymentCard.scss | 48 + src/client/src/ui/PaymentCard/PaymentCard.tsx | 75 + .../PaymentCardForm/PaymentCardForm.scss | 33 + .../PaymentCardForm/PaymentCardForm.tsx | 155 + .../src/ui/PaymentCard/PaymentCardForm/cn.ts | 19 + .../PaymentCard/PaymentCardForm/constants.ts | 50 + .../ui/PaymentCard/PaymentCardForm/index.ts | 15 + .../ui/PaymentCard/PaymentCardForm/utils.ts | 61 + src/client/src/ui/PaymentCard/cn.ts | 19 + src/client/src/ui/PaymentCard/index.ts | 15 + .../src/ui/PaymentCardList/Item/Item.scss | 65 + .../src/ui/PaymentCardList/Item/Item.tsx | 121 + .../PaymentCardList/Item/cn.ts} | 37 +- .../src/ui/PaymentCardList/Item/index.ts | 15 + .../ui/PaymentCardList/PaymentCardList.scss | 77 + .../ui/PaymentCardList/PaymentCardList.tsx | 126 + src/client/src/ui/PaymentCardList/cn.ts | 19 + src/client/src/ui/PaymentCardList/index.ts | 15 + .../ui/ProductCard/AddToCart/AddToCart.tsx | 6 +- .../src/ui/ProductCard/AddToCart/models.ts | 32 + .../ui/ProductCard/__tests__/ProductCard.tsx | 1 - src/client/src/ui/ProductCard/context.ts | 5 +- .../src/ui/ProductInformation/index.tsx | 5 +- src/client/src/ui/ProductList/Component.tsx | 10 +- .../ProductList/ProductItem/ProductItem.scss | 8 +- src/client/src/ui/ProductList/index.ts | 2 +- src/client/src/ui/ProductList/styles.scss | 30 +- .../ui/ProductListItem/Actions/Actions.scss | 76 + .../ui/ProductListItem/Actions/Actions.tsx | 72 + .../src/ui/ProductListItem/Actions/cn.ts | 19 + .../src/ui/ProductListItem/Actions/index.ts | 15 + .../AdditionalInformation.scss} | 14 +- .../AdditionalInformation.tsx | 54 + .../Description/AdditionalInformation/cn.ts | 19 + .../AdditionalInformation/index.ts | 15 + .../Description/Description.scss | 69 + .../Description/Description.tsx | 84 + .../Description/Options/Options.scss | 106 + .../Description/Options/Options.tsx | 125 + .../ProductListItem/Description/Options/cn.ts | 19 + .../Description/Options/index.ts | 15 + .../QuantityControl/QuantityControl.scss | 48 + .../QuantityControl/QuantityControl.tsx | 73 + .../Description/QuantityControl/cn.ts | 19 + .../Description/QuantityControl/index.ts | 15 + .../Description/Title/Title.scss | 68 + .../Description/Title/Title.tsx | 83 + .../ProductListItem/Description/Title/cn.ts | 19 + .../Description/Title/index.ts | 15 + .../src/ui/ProductListItem/Description/cn.ts | 19 + .../ui/ProductListItem/Description/index.ts | 15 + .../ProductListItem/Image/Image.scss} | 44 +- .../src/ui/ProductListItem/Image/Image.tsx | 47 + src/client/src/ui/ProductListItem/Image/cn.ts | 19 + .../src/ui/ProductListItem/Image/index.ts | 15 + .../OrderedItemPrice/OrderedItemPrice.scss | 22 + .../OrderedItemPrice/OrderedItemPrice.tsx | 35 + .../ui/ProductListItem/OrderedItemPrice/cn.ts | 19 + .../ProductListItem/OrderedItemPrice/index.ts | 15 + .../ui/ProductListItem/ProductListItem.scss | 60 + .../ui/ProductListItem/ProductListItem.tsx | 69 + src/client/src/ui/ProductListItem/cn.ts | 19 + src/client/src/ui/ProductListItem/index.ts | 15 + .../src/ui/ProductOverview/Component.tsx | 25 +- .../ProductActions/ProductActions.scss | 3 - .../ProductActions/ProductActions.tsx | 56 +- .../SubmitEmailDialog/SubmitEmailDialog.scss | 2 +- .../components/ProductGallery/cn.ts} | 9 +- .../components/ProductGallery/index.tsx | 47 +- .../components/ProductGallery/styles.scss | 245 +- src/client/src/ui/ProductOverview/styles.scss | 142 +- src/client/src/ui/ProductShop/Component.tsx | 20 - .../ui/ProductVariants/ProductVariants.tsx | 98 +- src/client/src/ui/ProductVariants/cn.ts | 17 + src/client/src/ui/ProductVariants/styles.scss | 92 + src/client/src/ui/ProductVariants/utils.ts | 24 + .../src/ui/ProductsSearch/ProductSearch.tsx | 8 +- .../Carousel/components/Slide/index.tsx | 6 +- .../Carousel/components/Slide/models.ts | 6 +- .../Carousel/components/index.ts | 6 +- .../ui/RecommendedProducts/Carousel/index.tsx | 52 +- .../ui/RecommendedProducts/Carousel/models.ts | 6 +- .../RecommendedProducts/Carousel/styles.scss | 17 +- .../src/ui/RecommendedProducts/index.tsx | 24 +- .../src/ui/RecommendedProducts/models.ts | 6 +- .../src/ui/RelatedProducts/Item/Item.scss | 36 + .../src/ui/RelatedProducts/Item/Item.tsx | 41 + .../src/ui/RelatedProducts/Item/index.ts | 15 + .../ui/RelatedProducts/RelatedProducts.scss | 2 +- .../ui/RelatedProducts/RelatedProducts.tsx | 105 + src/client/src/ui/RelatedProducts/cn.ts | 17 + src/client/src/ui/RelatedProducts/index.ts | 15 + src/client/src/ui/RelatedProducts/mock.ts | 191 + .../ErrorMessage/ErrorMessage.scss | 12 +- .../ErrorMessage/ErrorMessage.tsx | 10 +- .../ResetRequestForm/ResetRequestForm.scss | 36 +- .../ResetRequestForm/ResetRequestForm.tsx | 3 +- .../src/ui/Shipping/AddressOptions/index.ts | 6 +- src/client/src/ui/Shipping/Component.tsx | 181 +- src/client/src/ui/Shipping/constants.ts | 11 +- src/client/src/ui/Shipping/index.ts | 3 + src/client/src/ui/Shipping/models.ts | 5 + src/client/src/ui/Shipping/styles.scss | 8 + .../ui/ShippingAddress/ShippingAddress.scss | 41 + .../ui/ShippingAddress/ShippingAddress.tsx | 89 + .../ShippingAddressForm.scss | 42 + .../ShippingAddressForm.tsx | 226 + .../ShippingAddress/ShippingAddressForm/cn.ts | 19 + .../ShippingAddressForm/constants.ts | 34 + .../ShippingAddressForm/index.ts | 15 + .../ShippingAddressForm/models.ts | 23 + .../ShippingAddressForm/utils.ts | 116 + src/client/src/ui/ShippingAddress/cn.ts | 19 + src/client/src/ui/ShippingAddress/index.ts | 15 + .../src/ui/ShippingAddressList/Item/Item.scss | 62 + .../src/ui/ShippingAddressList/Item/Item.tsx | 109 + .../src/ui/ShippingAddressList/Item/cn.ts | 19 + .../src/ui/ShippingAddressList/Item/index.ts | 15 + .../ShippingAddressList.scss | 51 + .../ShippingAddressList.tsx | 45 + .../ShippingAddressListComponent.tsx | 96 + src/client/src/ui/ShippingAddressList/cn.ts | 19 + .../src/ui/ShippingAddressList/index.ts | 15 + src/client/src/utils/index.ts | 1 + src/client/src/utils/tryParseUrlSearch.ts | 40 +- src/client/src/utils/utils.ts | 83 + src/client/src/utils/validation.ts | 14 +- src/client/static/images.d.ts | 6 +- src/client/tsconfig.json | 3 +- src/package-lock.json | 13144 ++- src/scripts/cake/backendbuild.cake | 24 - src/scripts/cake/client.cake | 162 - src/scripts/cake/coverage.cake | 29 - src/scripts/cake/scs.cake | 10 - src/scripts/cake/xunit.cake | 78 - src/scripts/coverage/cobertura.tpl.xml | 8 - src/scripts/coverage/coverage.cake | 145 - src/scripts/coverage/index.tpl.html | 32 - src/{scripts/cake => }/solr.cake | 41 +- src/tools/packages.config | 4 - .../generateTypescript.cake => ts.cake} | 11 +- .../ConstantsAndEnums/PagePrefix.cs | 52 - 893 files changed, 99707 insertions(+), 38687 deletions(-) create mode 100644 package-lock.json create mode 100644 src/Feature/Account/serialization/PlaceholderSettings/Account/shipping-address.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Account Details.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Account.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Delete My Account.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Delivery.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Notifications.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Ordering And Payments.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Out Of Stock List.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Payment Cards.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/ReturnsExchanges.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Shipping Address List.yml create mode 100644 src/Feature/Account/serialization/Renderings/Account/Shipping Address.yml create mode 100644 src/Feature/Account/website/Models/Requests/DateValidator.cs create mode 100644 src/Feature/Account/website/Models/Requests/VariantRequest.cs create mode 100644 src/Feature/Checkout/tests/Controllers/PromotionsControllerTests.cs create mode 100644 src/Feature/Checkout/website/Controllers/PromotionsController.cs create mode 100644 src/Feature/Navigation/serialization/PlaceholderSettings/Navigation/left-menu.yml create mode 100644 src/Feature/Navigation/serialization/Renderings/Navigation/Dropdown Footer Links.yml rename src/{Project/HCA/serialization/Renderings/HCA/Home 2/Account 2/Add To Wishlist 2.yml => Feature/Navigation/serialization/Renderings/Navigation/Left Menu.yml} (57%) rename src/{Project/HCA.content/serialization/Content/HCA/Settings/Geolocation Settings.yml => Feature/Navigation/serialization/Templates/Navigation/Left Menu.yml} (52%) create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Left Menu Link.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Left Menu Link/Content.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Left Menu Link/Content/Is Primary.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Left Menu Link/Content/Uri.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Left Menu Link/__Standard Values.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Menu Links.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Menu Links/Content.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Menu Links/Content/Links.yml create mode 100644 src/Feature/Navigation/serialization/Templates/Navigation/Left Menu/Menu Links/__Standard Values.yml create mode 100644 src/Feature/PageContent/serialization/Templates/PageContent/Account.yml create mode 100644 src/Feature/PageContent/serialization/Templates/PageContent/Account/Account Folder.yml create mode 100644 src/Feature/PageContent/serialization/Templates/PageContent/Account/Account Folder/__Standard Values.yml create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/ExtendedSearchQueryHelper.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FacetOnPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByFieldsPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByKeywordPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByLanguagePipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByRootItemPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByVersionPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/tests/Infrastructure/Pipelines/ExtendedSearchQuery/SortResultsPipelineProcessorTests.cs create mode 100644 src/Foundation/Base/website/App_Config/Include/Foundation/HCA.Foundation.Base.ExtendedSearchQueryPipeline.config create mode 100644 src/Foundation/Base/website/Extensions/CustomPropertyExtensions.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FacetOnPipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByFieldsPipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByKeywordPipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByLanguagePipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByRootItemPipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/FilterByVersionPipelineProcessor.cs create mode 100644 src/Foundation/Base/website/Infrastructure/Pipelines/ExtendedSearchQuery/SortResultsPipelineProcessor.cs rename src/Foundation/{Connect/website/Managers/Promotion/IPromotionManager.cs => Base/website/Models/ExtendedSearchQuery/ExtendedSearchQueryPipelineArgs.cs} (53%) create mode 100644 src/Foundation/Base/website/Providers/SiteDataSources/DataSourcesProvider.cs rename src/{Feature/Checkout/website/Models/Requests/PromoCodeRequest.cs => Foundation/Base/website/Providers/SiteDataSources/IDataSourcesProvider.cs} (68%) create mode 100644 src/Foundation/Commerce/website/Models/Entities/Payment/PaymentData.cs create mode 100644 src/Foundation/Commerce/website/Models/Entities/Shipping/ShippingData.cs rename src/{client/src/Foundation/Integration/models/Status.ts => Foundation/Commerce/website/Repositories/IItemRepository.cs} (68%) delete mode 100644 src/Foundation/Connect/website/Managers/Promotion/PromotionManager.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Constants.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/Benefit.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceBaseCatalogSearchResultItem.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceCart.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceCartLine.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceCartProduct.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceInventoryProduct.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceOrder.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceOrderForm.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceOrderHeader.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceParty.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommercePrice.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceSearchResultItem.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceSellableItemSearchResultItem.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceShippingInfo.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/CommerceTotal.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/FreeGiftItem.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/FreeGiftSelection.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/ItemAvailability.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/ItemPricing.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/Qualification.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Entities/VariationPricing.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/HCA.Foundation.ConnectBase.csproj create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/AddShippingInfoRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/GetPaymentMethodsRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/GetProductBulkPricesRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/GetProductPricesRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/GetShippingMethodsRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/GetSupportedCurrenciesRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/LoadCartByNameRequest.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Pipelines/Arguments/PaymentClientTokenResult.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Properties/AssemblyInfo.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Properties/PublishProfiles/LocalDev.pubxml create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Providers/CartServiceProviderBase.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Providers/PaymentServiceProviderBase.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Providers/PricingServiceProviderBase.cs create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/Web.config create mode 100644 src/Foundation/ConnectBase/website/HCA.Foundation.ConnectBase/packages.config create mode 100644 src/Foundation/SitecoreCommerce/website/App_Config/Include/Y.Foundation/HCA.Foundation.SitecoreCommerce.config create mode 100644 src/Foundation/SitecoreCommerce/website/Constants.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Infrastructure/Pipelines/TranslateCommercePartyToParty.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Infrastructure/Pipelines/TranslatePartyToCommerceParty.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Mappers/Provider/Extensions.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Mappers/Provider/ProviderMapper.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Mappers/Provider/ProviderProfile.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Cart/CommerceCartServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Customer/CommerceCustomerServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Inventory/CommerceInventoryServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Orders/CommerceOrderServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Payments/CommercePaymentServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Prices/CommercePricingServiceProvider.cs create mode 100644 src/Foundation/SitecoreCommerce/website/Providers/Shipping/CommerceShippingServiceProvider.cs create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Account Details.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Address Book.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Delivery.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Log Out.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/My Account.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Need Help.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Order History.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Ordering and Payments.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Payment Methods.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Returns Exchanges.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Account/Left Menu/Settings.yml rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Primary Links.yml => Delivery.yml} (75%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Primary Links/Gift Cards.yml => Delivery/Delivery.yml} (66%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links => Delivery}/Payment Options.yml (59%) create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Footer/Delivery/Returns and refunds.yml rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Primary Links/Find a Store.yml => Delivery/Where is My Order.yml} (68%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links.yml => Let Us Help You.yml} (74%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{News Links => Let Us Help You}/About HCA.yml (76%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links/Contact Us.yml => Let Us Help You/Help and Contact Us.yml} (63%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Primary Links/Join HCA.yml => Let Us Help You/How Can I Join HCA.yml} (56%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links/Get Help.yml => Let Us Help You/Let Us Help You.yml} (66%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links/Order Status.yml => Let Us Help You/Our Stores.yml} (65%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links => Let Us Help You}/Returns.yml (81%) rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{Help Links => Let Us Help You}/Shipping and Review.yml (80%) delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Footer/Primary Links/Sign Up for Email.yml rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{News Links.yml => Shopping With Us.yml} (74%) create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Footer/Shopping With Us/Customer Rewards Scheme FAQs.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Footer/Shopping With Us/Customer Rewards Scheme.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Data/Footer/Shopping With Us/Gift Card Balance.yml rename src/Project/HCA.content/serialization/Content/HCA/Data/Footer/{News Links/News.yml => Shopping With Us/Shopping With Us.yml} (72%) delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Self-Service Subscription.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Self-Service Subscription/Subscription Confirmation.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Self-Service Subscription/Subscription Notification.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Self-Service Subscription/Unsubscribe Notification.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Status Messages.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Status Messages/Automated Notification.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/HCA Email/Messages/Service Messages/Status Messages/Dispatch Completed.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/Account.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/Account/Order-History.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/Blog.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/CustomerRewardsScheme.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/CustomerRewardsSchemeFAQs.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/FreeDelivery.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/GiftCardBalance.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/High-qualityProducts.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/AccountDetails.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/Delivery.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/Order-History.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/OrderingPayments.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/ReturnsExchanges.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/MyAccount/ShippingAddress.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/PaymentOptions.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/ReturnsRefunds.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/SpecialPromotions.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/StoreLocator.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/Support24-7.yml create mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/WhereIsMyOrder.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Home/Wishlist.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Settings/Geolocation Settings/Kilometer.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Settings/Geolocation Settings/Meter.yml delete mode 100644 src/Project/HCA.content/serialization/Content/HCA/Settings/Geolocation Settings/Mile.yml delete mode 100644 src/Project/HCA/serialization/Renderings/HCA/Home 2/Account 2/Wishlist 2.yml delete mode 100644 src/build-ci.ps1 delete mode 100644 src/build.ps1 delete mode 100644 src/cake.config create mode 100644 src/client/.eslintrc delete mode 100644 src/client/src/Foundation/Base/models.ts delete mode 100644 src/client/src/Foundation/Commerce/dataModel.Generated.ts delete mode 100644 src/client/src/Foundation/Integration/actionCreators.ts delete mode 100644 src/client/src/Foundation/Integration/models/Action.ts delete mode 100644 src/client/src/Foundation/Integration/models/index.ts rename src/client/src/Foundation/ReactJss/{models.ts => headlessDefinitions.ts} (87%) delete mode 100644 src/client/src/Foundation/UI/common/components/Errors/GlobalError/Component.tsx delete mode 100644 src/client/src/Foundation/UI/common/components/Errors/GlobalError/index.ts delete mode 100644 src/client/src/Foundation/UI/common/components/Errors/Integration/reducer.ts delete mode 100644 src/client/src/Foundation/UI/common/scss-new/_variables.scss delete mode 100644 src/client/src/Foundation/UI/common/scss-new/style.scss create mode 100644 src/client/src/ui/Account/Account.scss create mode 100644 src/client/src/ui/Account/Account.tsx create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrder.scss create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrder.tsx create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderItem/ActiveOrderItem.scss create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderItem/ActiveOrderItem.tsx create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderItem/cn.ts rename src/client/src/{Foundation/Integration => ui/Account/ActiveOrder/ActiveOrderItem}/index.ts (83%) create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderItem/models.ts create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderItem/utils.ts create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderList/ActiveOrderList.scss create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderList/ActiveOrderList.tsx create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderList/cn.ts rename src/client/src/{Foundation/Base => ui/Account/ActiveOrder/ActiveOrderList}/index.ts (83%) create mode 100644 src/client/src/ui/Account/ActiveOrder/ActiveOrderList/models.ts create mode 100644 src/client/src/ui/Account/ActiveOrder/cn.ts create mode 100644 src/client/src/ui/Account/ActiveOrder/index.ts create mode 100644 src/client/src/ui/Account/Avatar/Avatar.scss create mode 100644 src/client/src/ui/Account/Avatar/Avatar.tsx create mode 100644 src/client/src/ui/Account/Avatar/avatar-default.svg create mode 100644 src/client/src/ui/Account/Avatar/cn.ts create mode 100644 src/client/src/ui/Account/Avatar/models.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ChangePassword.scss create mode 100644 src/client/src/ui/Account/ChangePassword/ChangePassword.tsx create mode 100644 src/client/src/ui/Account/ChangePassword/ChangePasswordDialog/ChangePasswordDialog.tsx create mode 100644 src/client/src/ui/Account/ChangePassword/ChangePasswordDialog/index.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ChangePasswordDialog/models.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ConfirmationDialog/ConfirmationDialog.tsx create mode 100644 src/client/src/ui/Account/ChangePassword/ConfirmationDialog/index.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ConfirmationDialog/models.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ResetPasswordDialog/ResetPasswordDialog.tsx create mode 100644 src/client/src/ui/Account/ChangePassword/ResetPasswordDialog/index.ts create mode 100644 src/client/src/ui/Account/ChangePassword/ResetPasswordDialog/models.ts create mode 100644 src/client/src/ui/Account/ChangePassword/cn.ts create mode 100644 src/client/src/ui/Account/ChangePassword/constants.ts create mode 100644 src/client/src/ui/Account/ChangePassword/index.ts create mode 100644 src/client/src/ui/Account/ChangePassword/utils.ts create mode 100644 src/client/src/ui/Account/ClubPoints/ClubPoints.scss create mode 100644 src/client/src/ui/Account/ClubPoints/ClubPoints.tsx create mode 100644 src/client/src/ui/Account/ClubPoints/cn.ts create mode 100644 src/client/src/ui/Account/ClubPoints/models.ts create mode 100644 src/client/src/ui/Account/Dropdown/Dropdown.scss create mode 100644 src/client/src/ui/Account/Dropdown/Dropdown.tsx create mode 100644 src/client/src/ui/Account/Dropdown/cn.ts create mode 100644 src/client/src/ui/Account/Dropdown/models.ts create mode 100644 src/client/src/ui/Account/PaymentAndShippingInfo/PaymentAndShippingInfo.scss create mode 100644 src/client/src/ui/Account/PaymentAndShippingInfo/PaymentAndShippingInfo.tsx create mode 100644 src/client/src/ui/Account/PaymentAndShippingInfo/index.ts create mode 100644 src/client/src/ui/Account/PaymentAndShippingInfo/models.ts create mode 100644 src/client/src/ui/Account/PersonalInformation/PersonalInformation.scss create mode 100644 src/client/src/ui/Account/PersonalInformation/PersonalInformation.tsx create mode 100644 src/client/src/ui/Account/PersonalInformation/cn.ts create mode 100644 src/client/src/ui/Account/PersonalInformation/index.ts create mode 100644 src/client/src/ui/Account/PersonalInformation/models.ts create mode 100644 src/client/src/ui/Account/SectionWrapper/SectionWrapper.scss create mode 100644 src/client/src/ui/Account/SectionWrapper/SectionWrapper.tsx create mode 100644 src/client/src/ui/Account/SectionWrapper/cn.ts create mode 100644 src/client/src/ui/Account/SectionWrapper/index.ts create mode 100644 src/client/src/ui/Account/cn.ts create mode 100644 src/client/src/ui/Account/index.ts create mode 100644 src/client/src/ui/AccountDetails/AccountDetails.scss create mode 100644 src/client/src/ui/AccountDetails/AccountDetails.tsx create mode 100644 src/client/src/ui/AccountDetails/DeleteAccount/DeleteAccount.scss create mode 100644 src/client/src/ui/AccountDetails/DeleteAccount/DeleteAccount.tsx create mode 100644 src/client/src/ui/AccountDetails/DeleteAccount/cn.ts create mode 100644 src/client/src/ui/AccountDetails/DeleteAccount/constants.ts create mode 100644 src/client/src/ui/AccountDetails/DeleteAccount/index.ts create mode 100644 src/client/src/ui/AccountDetails/EditPersonalInformation/EditPersonalInformation.scss create mode 100644 src/client/src/ui/AccountDetails/EditPersonalInformation/EditPersonalInformation.tsx create mode 100644 src/client/src/ui/AccountDetails/EditPersonalInformation/cn.ts create mode 100644 src/client/src/ui/AccountDetails/EditPersonalInformation/index.ts create mode 100644 src/client/src/ui/AccountDetails/EditPersonalInformation/models.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/PersonalInformationForm.scss create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/PersonalInformationForm.tsx create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/cn.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/index.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/models.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationForm/utils.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationStatic/PersonalInformationStatic.scss create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationStatic/PersonalInformationStatic.tsx create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationStatic/cn.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationStatic/index.ts create mode 100644 src/client/src/ui/AccountDetails/PersonalInformationStatic/models.ts create mode 100644 src/client/src/ui/AccountDetails/cn.ts create mode 100644 src/client/src/ui/AccountDetails/index.ts create mode 100644 src/client/src/ui/AccountDetails/models.ts create mode 100644 src/client/src/ui/AccountWrapper/AccountWrapper.scss create mode 100644 src/client/src/ui/AccountWrapper/AccountWrapper.tsx create mode 100644 src/client/src/ui/AccountWrapper/cn.ts create mode 100644 src/client/src/ui/AccountWrapper/index.ts create mode 100644 src/client/src/ui/AccountWrapper/models.ts create mode 100644 src/client/src/ui/Breadcrumb/BreadcrumbComponent.tsx create mode 100644 src/client/src/ui/CookieBanner/CookieBanner.scss create mode 100644 src/client/src/ui/CookieBanner/CookieBanner.tsx create mode 100644 src/client/src/ui/CookieBanner/cn.ts create mode 100644 src/client/src/ui/CookieBanner/constants.ts create mode 100644 src/client/src/ui/CookieBanner/hooks.ts create mode 100644 src/client/src/ui/CookieBanner/index.ts create mode 100644 src/client/src/ui/Copyright/cn.ts rename src/client/src/{Foundation/Base/dataModel.Generated.ts => ui/DropdownFooterLinks/cn.ts} (84%) create mode 100644 src/client/src/ui/FooterLinks/cn.ts create mode 100644 src/client/src/ui/GlobalFooter/cn.ts create mode 100644 src/client/src/ui/LeftMenu/LeftMenu.scss create mode 100644 src/client/src/ui/LeftMenu/LeftMenu.tsx create mode 100644 src/client/src/ui/LeftMenu/cn.ts create mode 100644 src/client/src/ui/LeftMenu/index.ts rename src/client/src/{Foundation/UI/common/components/Errors/Integration/actions.ts => ui/LeftMenu/models.ts} (63%) rename src/client/src/{Foundation/Commerce/index.ts => ui/LoginRegister/Login/cn.ts} (88%) create mode 100644 src/client/src/ui/NotFound/cn.ts create mode 100644 src/client/src/ui/OrderHistory/OrderHistoryWrapper.tsx create mode 100644 src/client/src/ui/PaymentCard/CreditCardTypes/CreditCardTypes.scss create mode 100644 src/client/src/ui/PaymentCard/CreditCardTypes/CreditCardTypes.tsx create mode 100644 src/client/src/ui/PaymentCard/CreditCardTypes/cn.ts create mode 100644 src/client/src/ui/PaymentCard/CreditCardTypes/index.ts create mode 100644 src/client/src/ui/PaymentCard/PaymentCard.scss create mode 100644 src/client/src/ui/PaymentCard/PaymentCard.tsx create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/PaymentCardForm.scss create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/PaymentCardForm.tsx create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/cn.ts create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/constants.ts create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/index.ts create mode 100644 src/client/src/ui/PaymentCard/PaymentCardForm/utils.ts create mode 100644 src/client/src/ui/PaymentCard/cn.ts create mode 100644 src/client/src/ui/PaymentCard/index.ts create mode 100644 src/client/src/ui/PaymentCardList/Item/Item.scss create mode 100644 src/client/src/ui/PaymentCardList/Item/Item.tsx rename src/client/src/{Foundation/UI/common/components/Errors/Integration/index.ts => ui/PaymentCardList/Item/cn.ts} (80%) create mode 100644 src/client/src/ui/PaymentCardList/Item/index.ts create mode 100644 src/client/src/ui/PaymentCardList/PaymentCardList.scss create mode 100644 src/client/src/ui/PaymentCardList/PaymentCardList.tsx create mode 100644 src/client/src/ui/PaymentCardList/cn.ts create mode 100644 src/client/src/ui/PaymentCardList/index.ts create mode 100644 src/client/src/ui/ProductCard/AddToCart/models.ts create mode 100644 src/client/src/ui/ProductListItem/Actions/Actions.scss create mode 100644 src/client/src/ui/ProductListItem/Actions/Actions.tsx create mode 100644 src/client/src/ui/ProductListItem/Actions/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Actions/index.ts rename src/client/src/{Foundation/Integration/models/Result.ts => ui/ProductListItem/Description/AdditionalInformation/AdditionalInformation.scss} (85%) create mode 100644 src/client/src/ui/ProductListItem/Description/AdditionalInformation/AdditionalInformation.tsx create mode 100644 src/client/src/ui/ProductListItem/Description/AdditionalInformation/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Description/AdditionalInformation/index.ts create mode 100644 src/client/src/ui/ProductListItem/Description/Description.scss create mode 100644 src/client/src/ui/ProductListItem/Description/Description.tsx create mode 100644 src/client/src/ui/ProductListItem/Description/Options/Options.scss create mode 100644 src/client/src/ui/ProductListItem/Description/Options/Options.tsx create mode 100644 src/client/src/ui/ProductListItem/Description/Options/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Description/Options/index.ts create mode 100644 src/client/src/ui/ProductListItem/Description/QuantityControl/QuantityControl.scss create mode 100644 src/client/src/ui/ProductListItem/Description/QuantityControl/QuantityControl.tsx create mode 100644 src/client/src/ui/ProductListItem/Description/QuantityControl/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Description/QuantityControl/index.ts create mode 100644 src/client/src/ui/ProductListItem/Description/Title/Title.scss create mode 100644 src/client/src/ui/ProductListItem/Description/Title/Title.tsx create mode 100644 src/client/src/ui/ProductListItem/Description/Title/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Description/Title/index.ts create mode 100644 src/client/src/ui/ProductListItem/Description/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Description/index.ts rename src/client/src/{Foundation/UI/common/components/Errors/GlobalError/models.ts => ui/ProductListItem/Image/Image.scss} (54%) create mode 100644 src/client/src/ui/ProductListItem/Image/Image.tsx create mode 100644 src/client/src/ui/ProductListItem/Image/cn.ts create mode 100644 src/client/src/ui/ProductListItem/Image/index.ts create mode 100644 src/client/src/ui/ProductListItem/OrderedItemPrice/OrderedItemPrice.scss create mode 100644 src/client/src/ui/ProductListItem/OrderedItemPrice/OrderedItemPrice.tsx create mode 100644 src/client/src/ui/ProductListItem/OrderedItemPrice/cn.ts create mode 100644 src/client/src/ui/ProductListItem/OrderedItemPrice/index.ts create mode 100644 src/client/src/ui/ProductListItem/ProductListItem.scss create mode 100644 src/client/src/ui/ProductListItem/ProductListItem.tsx create mode 100644 src/client/src/ui/ProductListItem/cn.ts create mode 100644 src/client/src/ui/ProductListItem/index.ts rename src/client/src/{Foundation/UI/common/components/Errors/Integration/models.ts => ui/ProductOverview/components/ProductGallery/cn.ts} (86%) create mode 100644 src/client/src/ui/ProductVariants/cn.ts create mode 100644 src/client/src/ui/ProductVariants/styles.scss create mode 100644 src/client/src/ui/RelatedProducts/Item/Item.scss create mode 100644 src/client/src/ui/RelatedProducts/Item/Item.tsx create mode 100644 src/client/src/ui/RelatedProducts/Item/index.ts create mode 100644 src/client/src/ui/RelatedProducts/RelatedProducts.tsx create mode 100644 src/client/src/ui/RelatedProducts/cn.ts create mode 100644 src/client/src/ui/RelatedProducts/index.ts create mode 100644 src/client/src/ui/RelatedProducts/mock.ts create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddress.scss create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddress.tsx create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/ShippingAddressForm.scss create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/ShippingAddressForm.tsx create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/cn.ts create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/constants.ts create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/index.ts create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/models.ts create mode 100644 src/client/src/ui/ShippingAddress/ShippingAddressForm/utils.ts create mode 100644 src/client/src/ui/ShippingAddress/cn.ts create mode 100644 src/client/src/ui/ShippingAddress/index.ts create mode 100644 src/client/src/ui/ShippingAddressList/Item/Item.scss create mode 100644 src/client/src/ui/ShippingAddressList/Item/Item.tsx create mode 100644 src/client/src/ui/ShippingAddressList/Item/cn.ts create mode 100644 src/client/src/ui/ShippingAddressList/Item/index.ts create mode 100644 src/client/src/ui/ShippingAddressList/ShippingAddressList.scss create mode 100644 src/client/src/ui/ShippingAddressList/ShippingAddressList.tsx create mode 100644 src/client/src/ui/ShippingAddressList/ShippingAddressListComponent.tsx create mode 100644 src/client/src/ui/ShippingAddressList/cn.ts create mode 100644 src/client/src/ui/ShippingAddressList/index.ts create mode 100644 src/client/src/utils/utils.ts delete mode 100644 src/scripts/cake/backendbuild.cake delete mode 100644 src/scripts/cake/client.cake delete mode 100644 src/scripts/cake/coverage.cake delete mode 100644 src/scripts/cake/scs.cake delete mode 100644 src/scripts/cake/xunit.cake delete mode 100644 src/scripts/coverage/cobertura.tpl.xml delete mode 100644 src/scripts/coverage/coverage.cake delete mode 100644 src/scripts/coverage/index.tpl.html rename src/{scripts/cake => }/solr.cake (87%) delete mode 100644 src/tools/packages.config rename src/{scripts/code-generation/generateTypescript.cake => ts.cake} (90%) delete mode 100644 tests/private/AutoTests.HCA.Core.UI/ConstantsAndEnums/PagePrefix.cs diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 4a67e4d64..fd8435b87 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -7,6 +7,12 @@ "commands": [ "sitecore" ] + }, + "cake.tool": { + "version": "1.3.0", + "commands": [ + "dotnet-cake" + ] } } } \ No newline at end of file diff --git a/GitVersion.yml b/GitVersion.yml index 011b0b765..aceb280b0 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -14,7 +14,7 @@ branches: regex: feature?[/] mode: ContinuousDeployment increment: Inherit - tag: 'dev' + tag: 'alpha' is-release-branch: false prevent-increment-of-merged-branch-version: true diff --git a/automation/azure-pipelines-packages.yml b/automation/azure-pipelines-packages.yml index 5dfa1714f..f5b52a546 100644 --- a/automation/azure-pipelines-packages.yml +++ b/automation/azure-pipelines-packages.yml @@ -4,7 +4,7 @@ trigger: none pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-latest' variables: build_cake: './src/build.cake' @@ -13,8 +13,8 @@ steps: - task: UseNode@1 inputs: - script: '"C:\Program Files\nodejs\npm.cmd" --version' - displayName: Installing Node 10 + version: '16.x' + displayName: Installing Node 16 - task: PowerShell@2 inputs: @@ -23,35 +23,58 @@ steps: (Get-Content $(build_cake)) -replace "MSBuildToolVersion.VS201\d{1,3}", '$(agent_buildTools)' | Set-Content $(build_cake) displayName: Config preparation +- task: DotNetCoreCLI@2 + displayName: Add sitecore nuget source + inputs: + command: 'custom' + custom: 'nuget' + arguments: 'add source -n Sitecore https://sitecore.myget.org/F/sc-packages/api/v3/index.json' + workingDirectory: '$(Pipeline.Workspace)/s' + - task: NuGetAuthenticate@0 displayName: 'NuGet Authenticate' + inputs: + nuGetServiceConnections: 'Connect.DynamicsRetail Nuget connection' -- task: PowerShell@2 +- task: DotNetCoreCLI@2 + displayName: Restore .Net Core tools + inputs: + command: 'custom' + custom: 'tool' + arguments: 'restore' + workingDirectory: './' + +- task: Cake@2 + displayName: "Restore" inputs: - filePath: './src/build.ps1' - arguments: '-Target 001-Restore' - workingDirectory: './src/' - displayName: Restore + script: './src/build.cake' + target: '001-Restore' + verbosity: 'Quiet' + Version: '1.3.0' - task: PublishPipelineArtifact@1 + displayName: "Publish Tools" inputs: targetPath: '$(Pipeline.Workspace)/s/src/tools' artifact: 'tools' publishLocation: 'pipeline' - task: PublishPipelineArtifact@1 + displayName: "Publish Packages" inputs: targetPath: '$(Pipeline.Workspace)/s/src/packages' artifact: 'packages' publishLocation: 'pipeline' - task: PublishPipelineArtifact@1 + displayName: "Publish Common Node Modules" inputs: targetPath: '$(Pipeline.Workspace)/s/src/node_modules' artifact: 'node_modules' publishLocation: 'pipeline' - task: PublishPipelineArtifact@1 + displayName: "Publish Client Node Modules" inputs: targetPath: '$(Pipeline.Workspace)/s/src/client/node_modules' artifact: 'client_node_modules' diff --git a/automation/azure-pipelines-unit.yml b/automation/azure-pipelines-unit.yml index b12d7c827..cbf778ffa 100644 --- a/automation/azure-pipelines-unit.yml +++ b/automation/azure-pipelines-unit.yml @@ -103,6 +103,8 @@ steps: displayName: 'NuGet restore' inputs: restoreSolution: '$(Pipeline.Workspace)/s/src/HCA.sln' + feedsToUse: 'config' + nugetConfigPath: '$(Pipeline.Workspace)/s/src/nuget.config' - task: MSBuild@1 displayName: MSBuild diff --git a/automation/backend-pipeline.yml b/automation/backend-pipeline.yml index 9805a1bf4..44faa2776 100644 --- a/automation/backend-pipeline.yml +++ b/automation/backend-pipeline.yml @@ -4,18 +4,28 @@ trigger: none pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-latest' variables: - build_cake: './src/build.cake' + build_cake: "./src/build.cake" + artifacts_location: "$(Pipeline.Workspace)/s/output" steps: - task: UseNode@1 - displayName: Install Node 10 + displayName: Install Node 16 inputs: - script: 'npm --version' + version: '16.x' +- task: DownloadPipelineArtifact@2 + displayName: Download tools + inputs: + buildType: 'specific' + project: 'c8a112df-eb95-41fa-bb80-48e83128fe75' + definition: '10' + buildVersionToDownload: 'latest' + artifactName: 'tools' + targetPath: '$(Pipeline.Workspace)/s/src/tools' - task: DownloadPipelineArtifact@2 displayName: Download node modules @@ -53,16 +63,6 @@ steps: artifactName: 'packages' targetPath: '$(Pipeline.Workspace)/s/src/packages' -- task: DownloadPipelineArtifact@2 - displayName: Download tools - inputs: - buildType: 'specific' - project: 'c8a112df-eb95-41fa-bb80-48e83128fe75' - definition: '10' - buildVersionToDownload: 'latest' - artifactName: 'tools' - targetPath: '$(Pipeline.Workspace)/s/src/tools' - - task: PowerShell@2 displayName: Move license_file inputs: @@ -70,52 +70,50 @@ steps: script: | move $(license_file.secureFilePath) ./src/ -Force - -- task: NuGetCommand@2 - displayName: 'NuGet restore' +- task: DotNetCoreCLI@2 + displayName: Add sitecore nuget source inputs: - restoreSolution: '$(Pipeline.Workspace)/s/src/HCA.sln' - feedsToUse: 'config' - nugetConfigPath: '$(Pipeline.Workspace)/s/src/nuget.config' + command: 'custom' + custom: 'nuget' + arguments: 'add source -n Sitecore https://sitecore.myget.org/F/sc-packages/api/v3/index.json' + workingDirectory: '$(Pipeline.Workspace)/s' -- task: MSBuild@1 - displayName: MSBuild +- task: NuGetAuthenticate@0 inputs: - solution: './src/HCA.sln' - msbuildVersion: '15.0' - configuration: 'Debug' - msbuildArguments: '/t:Rebuild' + nuGetServiceConnections: 'Connect.DynamicsRetail Nuget connection' -- task: PowerShell@2 - displayName: Run Unit tests +- task: DotNetCoreCLI@2 + displayName: Restore .Net Core tools inputs: - filePath: './src/build.ps1' - arguments: '-Target 003-Tests' - workingDirectory: './src/' + command: 'custom' + custom: 'tool' + arguments: 'restore' + workingDirectory: './' -- task: MSBuild@1 - displayName: MSBuild Foundation +- task: Cake@2 + displayName: "NuGet restore" inputs: - solution: './src/Foundation/**/*.csproj' - msbuildVersion: '15.0' - configuration: 'Debug' - msbuildArguments: '/t:Build /p:Verbosity=Minimal /p:DeployOnBuild=True' + script: 'src/build.cake' + target: 'Restore :: Restore NuGet Packages' + verbosity: 'Quiet' + Version: '1.3.0' -- task: MSBuild@1 - displayName: MSBuild Feature +- task: Cake@2 + displayName: Build Server Code inputs: - solution: './src/Feature/**/*.csproj' - msbuildVersion: '15.0' - configuration: 'Debug' - msbuildArguments: '/t:Build /p:Verbosity=Minimal /p:DeployOnBuild=True' + script: 'src/build.cake' + target: '008-Build-Server-Code' + verbosity: 'Quiet' + Version: '1.3.0' -- task: MSBuild@1 - displayName: MSBuild Project +- task: Cake@2 + displayName: Run Unit tests inputs: - solution: './src/Project/**/*.csproj' - msbuildVersion: '15.0' - configuration: 'Debug' - msbuildArguments: '/t:Build /p:Verbosity=Minimal /p:DeployOnBuild=True' + script: 'src/build.cake' + target: '003-Tests' + verbosity: 'Quiet' + Version: '1.3.0' + - task: PublishCodeCoverageResults@1 displayName: Publish code coverage diff --git a/automation/frontend-pipeline.yml b/automation/frontend-pipeline.yml index b5ae554c7..913d26aed 100644 --- a/automation/frontend-pipeline.yml +++ b/automation/frontend-pipeline.yml @@ -4,7 +4,7 @@ trigger: none pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-latest' variables: build_cake: './src/build.cake' @@ -12,9 +12,9 @@ variables: steps: - task: UseNode@1 - displayName: Install Node 10 + displayName: Install Node 16 inputs: - script: 'npm --version' + version: '16.x' - task: DownloadSecureFile@1 @@ -90,6 +90,12 @@ steps: $(Pipeline.Workspace)/s/src/client/node_modules/.bin/cross-env.cmd NODE_ENV=production $(Pipeline.Workspace)/s/src/client/node_modules/.bin/webpack.cmd workingDirectory: './src/client' +- task: PowerShell@2 + displayName: Run client tests + inputs: + targetType: 'inline' + script: 'npm run test' + workingDirectory: './src/client' - task: PublishCodeCoverageResults@1 displayName: Publish code coverage diff --git a/automation/update-build-pipeline.yml b/automation/update-build-pipeline.yml index 47db4519d..022b340b6 100644 --- a/automation/update-build-pipeline.yml +++ b/automation/update-build-pipeline.yml @@ -13,17 +13,17 @@ steps: - task: gitversion/setup@0 inputs: - versionSpec: '5.x' + versionSpec: '5.8.1' - task: GitVersion@5 inputs: - runtime: 'core' + runtime: 'full' configFilePath: '$(Build.Repository.LocalPath)/GitVersion.yml' - task: UseNode@1 displayName: Installing Node 10 inputs: - script: "npm --version" + version: '16.x' - task: DownloadSecureFile@1 displayName: Download license @@ -31,6 +31,16 @@ steps: inputs: secureFile: "license.xml" + - task: DownloadPipelineArtifact@2 + displayName: Download tools + inputs: + buildType: 'specific' + project: 'c8a112df-eb95-41fa-bb80-48e83128fe75' + definition: '10' + buildVersionToDownload: 'latest' + artifactName: 'tools' + targetPath: '$(Pipeline.Workspace)/s/src/tools' + - task: DownloadPipelineArtifact@2 displayName: Download node modules inputs: @@ -61,16 +71,6 @@ steps: artifactName: "packages" targetPath: "$(Pipeline.Workspace)/s/src/packages" - - task: DownloadPipelineArtifact@2 - displayName: Download tools - inputs: - buildType: "specific" - project: "c8a112df-eb95-41fa-bb80-48e83128fe75" - definition: "10" - buildVersionToDownload: "latest" - artifactName: "tools" - targetPath: "$(Pipeline.Workspace)/s/src/tools" - - task: PowerShell@2 displayName: Config preparation inputs: @@ -93,18 +93,34 @@ steps: targets: arguments: "generate-ts" enableCodeCoverage: false + + - task: DotNetCoreCLI@2 + displayName: Add sitecore nuget source + inputs: + command: 'custom' + custom: 'nuget' + arguments: 'add source -n Sitecore https://sitecore.myget.org/F/sc-packages/api/v3/index.json' + workingDirectory: '$(Pipeline.Workspace)/s' - - task: PowerShell@2 + - task: NuGetAuthenticate@0 + displayName: Nuget Authenticate + inputs: + nuGetServiceConnections: 'Connect.DynamicsRetail Nuget connection' + + - task: DotNetCoreCLI@2 + displayName: Restore .Net Core tools + inputs: + command: 'custom' + custom: 'tool' + arguments: 'restore' + workingDirectory: './' + + - task: DotNetCoreCLI@2 displayName: Create wooli.itempackage inputs: - targetType: 'inline' - script: | - dotnet new tool-manifest - dotnet nuget add source -n Sitecore https://sitecore.myget.org/F/sc-packages/api/v3/index.json - dotnet tool install Sitecore.CLI --version 3.0.0 - dotnet sitecore plugin add -n Sitecore.DevEx.Extensibility.Serialization --version 3.0.0 - dotnet sitecore plugin add -n Sitecore.DevEx.Extensibility.Publishing --version 3.0.0 - dotnet sitecore ser pkg create -o wooli.itempackage + command: 'custom' + custom: 'sitecore' + arguments: 'ser pkg create -o wooli.itempackage' workingDirectory: '$(Pipeline.Workspace)/s' - task: PowerShell@2 @@ -119,32 +135,29 @@ steps: $(Pipeline.Workspace)/s/src/client/node_modules/.bin/cross-env.cmd NODE_ENV=production $(Pipeline.Workspace)/s/src/client/node_modules/.bin/webpack.cmd workingDirectory: "./src/client" - - task: NuGetAuthenticate@0 - displayName: Nuget Authenticate - inputs: - nuGetServiceConnections: 'Connect.DynamicsRetail Nuget connection' - - - task: NuGetCommand@2 + - task: Cake@2 displayName: "NuGet restore" inputs: - command: "restore" - restoreSolution: "$(Pipeline.Workspace)/s/src/HCA.sln" - feedsToUse: "config" - nugetConfigPath: "$(Pipeline.Workspace)/s/src/nuget.config" - - - task: PowerShell@2 + script: 'src/build.cake' + target: 'Restore :: Restore NuGet Packages' + verbosity: 'Verbose' + Version: '1.3.0' + + - task: Cake@2 displayName: Build Server Code inputs: - filePath: './src/build.ps1' - arguments: '-Target 008-Build-Server-Code' - workingDirectory: './src/' + script: 'src/build.cake' + target: '008-Build-Server-Code' + verbosity: 'Verbose' + Version: '1.3.0' - - task: PowerShell@2 + - task: Cake@2 displayName: Run Unit tests inputs: - filePath: "./src/build.ps1" - arguments: "-Target 003-Tests" - workingDirectory: "./src/" + script: 'src/build.cake' + target: '003-Tests' + verbosity: 'Quiet' + Version: '1.3.0' - task: PublishCodeCoverageResults@1 displayName: Publish code coverage @@ -160,7 +173,6 @@ steps: targetType: 'inline' script: | robocopy $(Pipeline.Workspace)/s/src/configs/Sitecore/ $(Pipeline.Workspace)/s/output/ web.config - robocopy $(Pipeline.Workspace)/s/src/tools/cake.sitecore.recipe/Cake.Sitecore.Recipe/tools/unicorn $(Pipeline.Workspace)/s/output/unicorn-sync /s ./automation/Get-Artifacts.ps1 Feature ./automation/Get-Artifacts.ps1 Foundation ./automation/Get-Artifacts.ps1 Project @@ -183,13 +195,6 @@ steps: artifact: "web_config" publishLocation: "pipeline" - - task: PublishPipelineArtifact@1 - displayName: Publish unicorn - inputs: - targetPath: "$(artifacts_location)/unicorn" - artifact: "unicorn" - publishLocation: "pipeline" - - task: PublishPipelineArtifact@1 displayName: Publish Feature inputs: @@ -211,13 +216,6 @@ steps: artifact: "Project" publishLocation: "pipeline" - - task: PublishPipelineArtifact@1 - displayName: Publish unicorn sync tool - inputs: - targetPath: "$(artifacts_location)/unicorn-sync" - artifact: "unicorn-sync" - publishLocation: "pipeline" - - task: PublishBuildArtifacts@1 displayName: Publish Sitecore.json file inputs: @@ -231,3 +229,10 @@ steps: PathtoPublish: '$(Pipeline.Workspace)/s/wooli.itempackage' ArtifactName: 'itempackage' publishLocation: 'Container' + + - task: PublishBuildArtifacts@1 + displayName: Publish Test Reports + inputs: + PathtoPublish: '$(Pipeline.Workspace)/s/output/tests/' + ArtifactName: 'Coverage' + publishLocation: 'Container' \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..b1dd7d331 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "HeadlessCommerceAccelerator", + "lockfileVersion": 2, + "requires": true, + "packages": {} +} diff --git a/src/Feature/Account/serialization/PlaceholderSettings/Account/shipping-address.yml b/src/Feature/Account/serialization/PlaceholderSettings/Account/shipping-address.yml new file mode 100644 index 000000000..19a01b974 --- /dev/null +++ b/src/Feature/Account/serialization/PlaceholderSettings/Account/shipping-address.yml @@ -0,0 +1,38 @@ +--- +ID: "dff94194-7414-417e-9f5c-00cd840705f4" +Parent: "b887e776-0fb9-4467-aad5-7c5c53239e4c" +Template: "5c547d4e-7111-4995-95b0-6b561751bf2e" +Path: "/sitecore/layout/Placeholder Settings/HCA/Feature/Account/shipping-address" +SharedFields: +- ID: "7256bdab-1fd2-49dd-b205-cb4873d2917c" + Hint: Placeholder Key + Value: "shipping-address" +- ID: "e391b526-d0c5-439d-803e-17512eae6222" + Hint: Allowed Controls + Value: "{E88E5856-A737-4DAD-8C5E-EBFE6693E19C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220118T112933Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\AGolikov + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\AGolikov + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "6992e94e-84ef-4b84-80e4-931480e7aefd" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\AGolikov + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220118T113607Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Account Details.yml b/src/Feature/Account/serialization/Renderings/Account/Account Details.yml new file mode 100644 index 000000000..a2d4715de --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Account Details.yml @@ -0,0 +1,38 @@ +--- +ID: "3d81cd43-d74b-49ae-9f92-fe90dc773d8c" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Account Details +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Account Details +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211227T094721Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "0a264e6a-3ef0-4f0f-9947-da5a4c4be014" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\AGolikov + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T101212Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Account.yml b/src/Feature/Account/serialization/Renderings/Account/Account.yml new file mode 100644 index 000000000..35ce1e20e --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Account.yml @@ -0,0 +1,40 @@ +--- +ID: "0e8460e8-9e01-4322-b175-510e5d7205c1" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Account +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Account +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: | + {CBF054E0-EBE4-4994-9A3B-50217523FA1C} + {DFF94194-7414-417E-9F5C-00CD840705F4} +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211222T122610Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "fe896291-9593-400c-8bb1-c9e24f1ae20e" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\AGolikov + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220118T150930Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Delete My Account.yml b/src/Feature/Account/serialization/Renderings/Account/Delete My Account.yml new file mode 100644 index 000000000..51a91b83c --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Delete My Account.yml @@ -0,0 +1,35 @@ +--- +ID: "90a6fcf4-7936-401e-8ce9-7e4889814381" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Delete My Account +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Delete My Account +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220216T083702Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\yuliya_anel + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\yuliya_anel + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "68cebe3e-28f3-4177-9a45-2df1b8f9f5d6" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\yuliya_anel + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220216T083702Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Delivery.yml b/src/Feature/Account/serialization/Renderings/Account/Delivery.yml new file mode 100644 index 000000000..fa1905198 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Delivery.yml @@ -0,0 +1,38 @@ +--- +ID: "91476221-4744-47ac-9082-da86b7b1b3b2" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Delivery +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Delivery +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211222T100718Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "2dec882d-ce93-4626-9bce-7146289ad44c" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T103206Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Notifications.yml b/src/Feature/Account/serialization/Renderings/Account/Notifications.yml new file mode 100644 index 000000000..67e64a8a8 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Notifications.yml @@ -0,0 +1,41 @@ +--- +ID: "8864367a-9790-4f1d-bdd4-f1ef37b50f63" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Notifications +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Notifications +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +- ID: "e441abe7-2ca3-4640-ae26-3789967925d7" + Hint: Compatible Renderings + Value: "{8864367A-9790-4F1D-BDD4-F1EF37B50F63}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211222T084619Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "6291d18e-21e4-4fda-88c3-5a35b0eb13b4" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T102853Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Ordering And Payments.yml b/src/Feature/Account/serialization/Renderings/Account/Ordering And Payments.yml new file mode 100644 index 000000000..f098e74ea --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Ordering And Payments.yml @@ -0,0 +1,38 @@ +--- +ID: "45a909fc-54a6-474f-b7e5-e30d949ad816" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Ordering And Payments +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Ordering And Payments +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220127T141522Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "36b64ed6-4604-446d-a0db-1c5bbda523f6" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T141551Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Out Of Stock List.yml b/src/Feature/Account/serialization/Renderings/Account/Out Of Stock List.yml new file mode 100644 index 000000000..2d22b9630 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Out Of Stock List.yml @@ -0,0 +1,30 @@ +--- +ID: "f935bfac-9e1d-40ad-bc6c-c2f2e41beac2" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Out Of Stock List +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: OutOfStockList +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211214T122046Z + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "8b8460f9-64a1-4d16-a4a5-79de7797679c" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T102524Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Payment Cards.yml b/src/Feature/Account/serialization/Renderings/Account/Payment Cards.yml new file mode 100644 index 000000000..daefeafb2 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Payment Cards.yml @@ -0,0 +1,38 @@ +--- +ID: "aebbc27f-9da8-4cd0-aace-e1f7c1a4a896" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Payment Cards +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Payment Cards +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220120T122113Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "66ffa20b-b92d-41e9-ac5c-55b90a03290b" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T102944Z diff --git a/src/Feature/Account/serialization/Renderings/Account/ReturnsExchanges.yml b/src/Feature/Account/serialization/Renderings/Account/ReturnsExchanges.yml new file mode 100644 index 000000000..def3e08d2 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/ReturnsExchanges.yml @@ -0,0 +1,42 @@ +--- +ID: "dd9ae0bb-5d02-4aa4-ba6f-058074bcb8c7" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/ReturnsExchanges +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: ReturnsExchanges +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +Languages: +- Language: en + Fields: + - ID: "b5e02ad9-d56f-4c41-a065-a133db87bdeb" + Hint: __Display name + Value: Returns / Exchanges + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20211222T100654Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "e7aee08f-840c-491a-8bd8-3cab4c8a2453" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T103041Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Shipping Address List.yml b/src/Feature/Account/serialization/Renderings/Account/Shipping Address List.yml new file mode 100644 index 000000000..a3e23825f --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Shipping Address List.yml @@ -0,0 +1,41 @@ +--- +ID: "2bbced26-34ed-488c-b39f-c425012c61a7" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Shipping Address List +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Shipping Address List +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" +- ID: "b0b15510-b138-470e-8f33-8da2e228aafe" + Hint: Rendering Contents Resolver + Value: "{AA4E3D69-E525-4BEA-9045-E4C1405A812C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220113T122725Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\dziyana_khadasevich + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\dziyana_khadasevich + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "ee3baf62-2426-4cf0-9b00-43d713efaf17" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\dziyana_khadasevich + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220127T103025Z diff --git a/src/Feature/Account/serialization/Renderings/Account/Shipping Address.yml b/src/Feature/Account/serialization/Renderings/Account/Shipping Address.yml new file mode 100644 index 000000000..f7b309ea1 --- /dev/null +++ b/src/Feature/Account/serialization/Renderings/Account/Shipping Address.yml @@ -0,0 +1,41 @@ +--- +ID: "e88e5856-a737-4dad-8c5e-ebfe6693e19c" +Parent: "f4ba5f16-0a33-46e3-ad7a-60ce4ed52bda" +Template: "04646a89-996f-4ee7-878a-ffdbf1f0ef0d" +Path: /sitecore/layout/Renderings/HCA/Feature/Account/Shipping Address +SharedFields: +- ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" + Hint: componentName + Value: Shipping Address +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: +- ID: "b0b15510-b138-470e-8f33-8da2e228aafe" + Hint: Rendering Contents Resolver + Value: "{AA4E3D69-E525-4BEA-9045-E4C1405A812C}" +Languages: +- Language: en + Versions: + - Version: 1 + Fields: + - ID: "25bed78c-4957-4165-998a-ca1b52f67497" + Hint: __Created + Value: 20220118T113032Z + - ID: "52807595-0f8f-4b20-8d2a-cb71d28c6103" + Hint: __Owner + Value: | + sitecore\AGolikov + - ID: "5dd74568-4d4b-44c1-b513-0af5f4cda34f" + Hint: __Created by + Value: | + sitecore\AGolikov + - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" + Hint: __Revision + Value: "a632fb65-ce07-4f9b-8cdf-a0a4ff9f88a7" + - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" + Hint: __Updated by + Value: | + sitecore\Admin + - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" + Hint: __Updated + Value: 20220121T073434Z diff --git a/src/Feature/Account/tests/Controllers/AccountsControllerTests.cs b/src/Feature/Account/tests/Controllers/AccountsControllerTests.cs index 809029424..a19a6d9b7 100644 --- a/src/Feature/Account/tests/Controllers/AccountsControllerTests.cs +++ b/src/Feature/Account/tests/Controllers/AccountsControllerTests.cs @@ -94,7 +94,7 @@ public void CreateAccount_ShouldCallExecuteMethod() public void DeleteAccount_ShouldCallExecuteMethod() { // act - this.controller.DeleteAccount(new DeleteAccountRequest()); + this.controller.DeleteAccount(); // assert this.controller.Received(1).Execute(Arg.Any>>(), Arg.Any, ActionResult>>()); diff --git a/src/Feature/Account/website/Controllers/AccountsController.cs b/src/Feature/Account/website/Controllers/AccountsController.cs index 88bbb8cf1..b876bf6c4 100644 --- a/src/Feature/Account/website/Controllers/AccountsController.cs +++ b/src/Feature/Account/website/Controllers/AccountsController.cs @@ -18,7 +18,6 @@ namespace HCA.Feature.Account.Controllers using System.Net; using System.Web.Mvc; - using Foundation.Account.Managers.User; using Foundation.Base.Controllers; using Foundation.Base.Services.Tracking; using Foundation.Commerce.Context.Visitor; @@ -37,12 +36,8 @@ public class AccountsController : BaseController { private readonly IAccountService accountService; - private readonly IUserManager userManager; - private readonly IAccountMapper mapper; - private readonly IAuthenticationService authenticationService; - private readonly ITrackingService trackingService; private readonly IVisitorContext visitorContext; @@ -64,7 +59,6 @@ public AccountsController( this.mapper = accountMapper; this.visitorContext = visitorContext; this.trackingService = trackingService; - this.authenticationService = authenticationService; } [HttpPost] @@ -123,6 +117,22 @@ public ActionResult CreateAccount(CreateAccountRequest requests) }); } + [HttpPost] + [Authorize] + [ActionName("userImage")] + public ActionResult UploadUserImage() + { + return this.Execute(this.accountService.UploadUserImage); + } + + [HttpDelete] + [Authorize] + [ActionName("userImage")] + public ActionResult RemoveUserImage() + { + return this.Execute(this.accountService.DeleteUserImage); + } + [HttpGet] [AllowAnonymous] [ActionName("address")] @@ -146,7 +156,11 @@ public ActionResult RemoveAddress(string externalId) public ActionResult UpdateAccount(UpdateAccountRequest request) { return this.Execute( - () => this.accountService.UpdateAccount(this.visitorContext.ExternalId, request.FirstName, request.LastName)); + () => this.accountService.UpdateAccount(this.visitorContext.ExternalId, + request.FirstName, + request.LastName, + request.PhoneNumber, + request.DateOfBirth)); } [HttpPut] @@ -195,22 +209,13 @@ public ActionResult RecoverPassword(RecoverPasswordRequest request) [HttpDelete] [Authorize] [ActionName("account")] - public ActionResult DeleteAccount(DeleteAccountRequest request) + public ActionResult DeleteAccount() { var userId = this.visitorContext.ExternalId; - return this.Execute(() => - { - return this.accountService.DeleteAccount(userId); - }, - result => - { - if (result.Success) - return this.JsonOk(result.Data); - - return this.JsonError(result.Errors?.FirstOrDefault(), HttpStatusCode.InternalServerError); - } - ); + return this.Execute( + () => this.accountService.DeleteAccount(userId), + result => result.Success ? this.JsonOk(result.Data) : this.JsonError(result.Errors?.FirstOrDefault(), HttpStatusCode.InternalServerError)); } } } \ No newline at end of file diff --git a/src/Feature/Account/website/HCA.Feature.Account.csproj b/src/Feature/Account/website/HCA.Feature.Account.csproj index beb76ef1b..75fdb4832 100644 --- a/src/Feature/Account/website/HCA.Feature.Account.csproj +++ b/src/Feature/Account/website/HCA.Feature.Account.csproj @@ -539,10 +539,11 @@ - + + diff --git a/src/Feature/Account/website/Infrastructure/Pipelines/Initialize/RegisterRoutes.cs b/src/Feature/Account/website/Infrastructure/Pipelines/Initialize/RegisterRoutes.cs index c095089b1..89cce40b7 100644 --- a/src/Feature/Account/website/Infrastructure/Pipelines/Initialize/RegisterRoutes.cs +++ b/src/Feature/Account/website/Infrastructure/Pipelines/Initialize/RegisterRoutes.cs @@ -20,11 +20,11 @@ namespace HCA.Feature.Account.Infrastructure.Pipelines.Initialize using Controllers; + using Foundation.Commerce; + using Sitecore.Diagnostics; using Sitecore.Pipelines; - using Constants = Foundation.Commerce.Constants; - [ExcludeFromCodeCoverage] public class RegisterRoutes { @@ -36,12 +36,12 @@ public void Process(PipelineArgs args) private void RegisterHttpRoutes(RouteCollection routeCollection) { Assert.ArgumentNotNull(routeCollection, nameof(routeCollection)); - + const string AccountsControllerName = "Accounts"; routeCollection.MapRoute( nameof(AccountsController), - Foundation.Commerce.Constants.CommerceRoutePrefix + $"/{AccountsControllerName.ToLowerInvariant()}" + "/{action}", + Constants.CommerceRoutePrefix + $"/{AccountsControllerName.ToLowerInvariant()}" + "/{action}", namespaces: new[] { typeof(AccountsController).Namespace }, defaults: new { diff --git a/src/Feature/Account/website/Models/Requests/AddressRequest.cs b/src/Feature/Account/website/Models/Requests/AddressRequest.cs index 01a3e818a..8473236b3 100644 --- a/src/Feature/Account/website/Models/Requests/AddressRequest.cs +++ b/src/Feature/Account/website/Models/Requests/AddressRequest.cs @@ -26,14 +26,18 @@ public class AddressRequest public string Name { get; set; } [Required] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "First name is invalid")] public string FirstName { get; set; } [Required] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Last name is invalid")] public string LastName { get; set; } [Required] + [RegularExpression("^[A-Za-z0-9'\\.\\-\\s\\,]+$", ErrorMessage = "Address line is invalid")] public string Address1 { get; set; } + [RegularExpression("^[A-Za-z0-9'\\.\\-\\s\\,]+$", ErrorMessage = "Address line is invalid")] public string Address2 { get; set; } [Required] @@ -42,6 +46,7 @@ public class AddressRequest public string CountryCode { get; set; } [Required] + [RegularExpression("^[a-zA-Z',.\\s-]{1,25}$", ErrorMessage = "^[a-zA-Z',.\\s-]{1,25}$")] public string City { get; set; } [Required] diff --git a/src/Feature/Account/website/Models/Requests/CreateAccountRequest.cs b/src/Feature/Account/website/Models/Requests/CreateAccountRequest.cs index 5851b2c21..048c22646 100644 --- a/src/Feature/Account/website/Models/Requests/CreateAccountRequest.cs +++ b/src/Feature/Account/website/Models/Requests/CreateAccountRequest.cs @@ -28,9 +28,11 @@ public class CreateAccountRequest public string Email { get; set; } [Required] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "First name is invalid")] public string FirstName { get; set; } [Required] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Last name is invalid")] public string LastName { get; set; } [Required] diff --git a/src/Feature/Account/website/Models/Requests/DateValidator.cs b/src/Feature/Account/website/Models/Requests/DateValidator.cs new file mode 100644 index 000000000..540e2a122 --- /dev/null +++ b/src/Feature/Account/website/Models/Requests/DateValidator.cs @@ -0,0 +1,34 @@ +namespace HCA.Feature.Account.Models.Requests +{ + using System; + using System.ComponentModel.DataAnnotations; + using System.Globalization; + using System.Text.RegularExpressions; + + public class DateValidator + { + private const string Pattern = @"^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$"; + public static ValidationResult Validate(string date) + { + if (string.IsNullOrEmpty(date)) + { + return ValidationResult.Success; + } + + var reg = new Regex(Pattern); + + if (reg.IsMatch(date)) + { + if (DateTime.TryParseExact(date, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out var dateTime)) + { + if (dateTime.ToUniversalTime() < DateTime.UtcNow) + { + return ValidationResult.Success; + } + } + } + + return new ValidationResult("Date has invalid format"); + } + } +} \ No newline at end of file diff --git a/src/Feature/Account/website/Models/Requests/UpdateAccountRequest.cs b/src/Feature/Account/website/Models/Requests/UpdateAccountRequest.cs index 4aea1e286..5d3ab8135 100644 --- a/src/Feature/Account/website/Models/Requests/UpdateAccountRequest.cs +++ b/src/Feature/Account/website/Models/Requests/UpdateAccountRequest.cs @@ -28,5 +28,12 @@ public class UpdateAccountRequest [Required] public string LastName { get; set; } + + [CustomValidation(typeof(DateValidator), "Validate")] + public string DateOfBirth { get; set; } + + [RegularExpression(@"^\+[0-9]+$", ErrorMessage = "Phone number is invalid")] + [MaxLength(15, ErrorMessage = "Phone length exceeds 15 symbols")] + public string PhoneNumber { get; set; } } } \ No newline at end of file diff --git a/src/Feature/Account/website/Models/Requests/VariantRequest.cs b/src/Feature/Account/website/Models/Requests/VariantRequest.cs new file mode 100644 index 000000000..9f46a16cb --- /dev/null +++ b/src/Feature/Account/website/Models/Requests/VariantRequest.cs @@ -0,0 +1,52 @@ +// Copyright 2020 EPAM Systems, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +namespace HCA.Feature.Account.Models.Requests +{ + using System.Collections.Generic; + using System.ComponentModel.DataAnnotations; + + public class VariantRequest + { + [Required] + public string VariantId { get; set; } + + public IDictionary Properties { get; set; } + + [Required] + public string ProductId { get; set; } + + [Required] + public string DisplayName { get; set; } + + [Required] + public string Description { get; set; } + + public string Brand { get; set; } + + public IList Tags { get; set; } + + public IList ImageUrls { get; set; } + + public string CurrencySymbol { get; set; } + + public decimal? ListPrice { get; set; } + + public decimal? AdjustedPrice { get; set; } + + public string StockStatusName { get; set; } + + public decimal? CustomerAverageRating { get; set; } + } +} \ No newline at end of file diff --git a/src/Feature/Catalog/website/HCA.Feature.Catalog.csproj b/src/Feature/Catalog/website/HCA.Feature.Catalog.csproj index 119f389e1..558f902a2 100644 --- a/src/Feature/Catalog/website/HCA.Feature.Catalog.csproj +++ b/src/Feature/Catalog/website/HCA.Feature.Catalog.csproj @@ -660,6 +660,10 @@ {9F27A62C-2A80-42F8-8BF0-3877B65C0427} HCA.Foundation.ReactJss + + {54eecef5-4c9d-4353-ac43-67fded4bbe1e} + HCA.Foundation.Search + 10.0 diff --git a/src/Feature/Catalog/website/Models/Requests/Search/ProductsSearchRequest.cs b/src/Feature/Catalog/website/Models/Requests/Search/ProductsSearchRequest.cs index dac492b01..059105b4a 100644 --- a/src/Feature/Catalog/website/Models/Requests/Search/ProductsSearchRequest.cs +++ b/src/Feature/Catalog/website/Models/Requests/Search/ProductsSearchRequest.cs @@ -14,15 +14,12 @@ namespace HCA.Feature.Catalog.Models.Requests.Search { + using DTO; + using Foundation.Search.Models.Common; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Diagnostics.CodeAnalysis; - - using DTO; - - using Foundation.Commerce.Models.Entities.Search; - using TypeLite; [TsClass] @@ -31,6 +28,8 @@ public class ProductsSearchRequest { public string SearchKeyword { get; set; } + public IEnumerable ProductIds { get; set; } + public IEnumerable Facets { get; set; } public Guid CategoryId { get; set; } diff --git a/src/Feature/Checkout/serialization/Renderings/Checkout/Order History.yml b/src/Feature/Checkout/serialization/Renderings/Checkout/Order History.yml index 025306224..36437ab28 100644 --- a/src/Feature/Checkout/serialization/Renderings/Checkout/Order History.yml +++ b/src/Feature/Checkout/serialization/Renderings/Checkout/Order History.yml @@ -7,6 +7,9 @@ SharedFields: - ID: "037fe404-dd19-4bf7-8e30-4dadf68b27b0" Hint: componentName Value: Order History +- ID: "069a8361-b1cd-437c-8c32-a3be78941446" + Hint: Placeholders + Value: "{CBF054E0-EBE4-4994-9A3B-50217523FA1C}" Languages: - Language: en Versions: @@ -17,11 +20,11 @@ Languages: Value: 20180504T144452Z - ID: "8cdc337e-a112-42fb-bbb4-4143751e123f" Hint: __Revision - Value: "d80c4aeb-da10-45ac-ae7f-c834d45dbd0e" + Value: "c839c8f0-22d1-41dc-b013-f238324b5cff" - ID: "badd9cf9-53e0-4d0c-bcc0-2d784c282f6a" Hint: __Updated by Value: | - sitecore\unicorn + sitecore\dziyana_khadasevich - ID: "d9cf14b1-fa16-4ba6-9288-e8a174d4d522" Hint: __Updated - Value: 20210122T150016Z + Value: 20220127T102843Z diff --git a/src/Feature/Checkout/serialization/Templates.Emails/Checkout/Order Confirmation/__Standard Values.yml b/src/Feature/Checkout/serialization/Templates.Emails/Checkout/Order Confirmation/__Standard Values.yml index 2f38621fa..d2ec4420d 100644 --- a/src/Feature/Checkout/serialization/Templates.Emails/Checkout/Order Confirmation/__Standard Values.yml +++ b/src/Feature/Checkout/serialization/Templates.Emails/Checkout/Order Confirmation/__Standard Values.yml @@ -45,19 +45,7 @@ Languages: We received your order and will contact you as soon as your order is shipped. - - - You can find your purchase information by clicking the button below. - - - - - - VIEW ORDER - - - - + - - - - - - - - - \ No newline at end of file diff --git a/src/scripts/cake/solr.cake b/src/solr.cake similarity index 87% rename from src/scripts/cake/solr.cake rename to src/solr.cake index 65ffe2127..7419cbf4c 100644 --- a/src/scripts/cake/solr.cake +++ b/src/solr.cake @@ -1,11 +1,11 @@ -#addin nuget:https://api.nuget.org/v3/index.json?package=Cake.Http&version=1.2.2 - #reference "System.Net" +#reference "System.Net.Http" #reference "Newtonsoft.Json" using System.IO; using System.Net; - +using System.Net.Http; +using System.Net.Http.Headers; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -79,35 +79,25 @@ public class FsUtils public class HttpManager { public string Post(string url, string command, string jsonRequest){ - - return HttpClientAliases.HttpPost(Solr.Context, url, settings => - { - settings.SetContentType("application/json") - .SetRequestBody($"{{\"{command}\":{jsonRequest}}}"); - }); + using(var client = new HttpClient()) + { + var content = new ByteArrayContent(Encoding.UTF8.GetBytes($"{{\"{command}\":{jsonRequest}}}")); + content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + var res = client.PostAsync(url, content).Result; + return Encoding.UTF8.GetString(res.Content.ReadAsByteArrayAsync().Result); + } } public string Get(string url){ - try - { - HttpClientAliases.HttpGet(Solr.Context, url); - } - catch (System.Exception) - { - return JsonConvert.SerializeObject(new {}); + using (var client = new HttpClient()) { + return Encoding.UTF8.GetString(client.GetByteArrayAsync(url).Result); } - - return HttpClientAliases.HttpGet(Solr.Context, url); } } Solr.AddSuggesterComponents = Task("Solr :: Add Suggester Components") .Does(()=> { - Sitecore.Utils.AssertIfNullOrEmpty(Solr.VagrantIP, "VagrantIP", "VAGRANT_IP"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrPort, "SolrPort", "SOLR_PORT"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrCore, "SolrCore", "SOLR_CORE"); - var HttpManager = new HttpManager(); var solrConfigUrl = $"https://{Solr.VagrantIP}:{Solr.SolrPort}/solr/{Solr.SolrCore}/config"; @@ -161,9 +151,6 @@ Solr.AddSuggesterComponents = Task("Solr :: Add Suggester Components") Solr.CreateCores = Task("Solr :: Create Cores") .Does(() => { - Sitecore.Utils.AssertIfNullOrEmpty(Solr.VagrantIP, "VagrantIP", "VAGRANT_IP"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrInstance, "SolrInstance", "SOLR_INSTANCE"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrPort, "SolrPort", "SOLR_PORT"); ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var HttpManager = new HttpManager(); @@ -225,10 +212,6 @@ Solr.CreateCores = Task("Solr :: Create Cores") Solr.UpdateSchema = Task("Solr :: Update Schema") .Does(()=> { - Sitecore.Utils.AssertIfNullOrEmpty(Solr.VagrantIP, "VagrantIP", "VAGRANT_IP"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrPort, "SolrPort", "SOLR_PORT"); - Sitecore.Utils.AssertIfNullOrEmpty(Solr.SolrCore, "SolrCore", "SOLR_CORE"); - var HttpManager = new HttpManager(); var solrSchemaUrl = $"https://{Solr.VagrantIP}:{Solr.SolrPort}/solr/{Solr.SolrCore}/schema"; diff --git a/src/tools/packages.config b/src/tools/packages.config deleted file mode 100644 index e8610c046..000000000 --- a/src/tools/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/scripts/code-generation/generateTypescript.cake b/src/ts.cake similarity index 90% rename from src/scripts/code-generation/generateTypescript.cake rename to src/ts.cake index a669e2572..1a7d25594 100644 --- a/src/scripts/code-generation/generateTypescript.cake +++ b/src/ts.cake @@ -1,6 +1,6 @@ -#addin "Cake.FileHelpers" -#addin "nuget:?package=TypeLite.Lib" -#addin "nuget:?package=Newtonsoft.Json&version=9.0.1" +#addin nuget:?package=Cake.FileHelpers&version=4.0.1 +#addin nuget:?package=TypeLitePlus.Core&version=2.1.0 +#addin nuget:?package=Newtonsoft.Json&version=13.0.1 using System; using System.Linq; @@ -9,9 +9,8 @@ using System.Text; using Newtonsoft.Json.Serialization; -using TypeLite; -using TypeLite.Net4; -using TypeLite.TsModels; +using TypeLitePlus; +using TypeLitePlus.TsModels; Func getGenerator = () => { var generator = new TsGenerator(); diff --git a/tests/private/AutoTests.HCA.Core.UI/ConstantsAndEnums/PagePrefix.cs b/tests/private/AutoTests.HCA.Core.UI/ConstantsAndEnums/PagePrefix.cs deleted file mode 100644 index eab893c63..000000000 --- a/tests/private/AutoTests.HCA.Core.UI/ConstantsAndEnums/PagePrefix.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System.Runtime.Serialization; -using AutoTests.AutomationFramework.Shared.Extensions; - -namespace AutoTests.HCA.Core.UI.ConstantsAndEnums -{ - public enum PagePrefix - { - [EnumMember(Value = "")] Home, - - [EnumMember(Value = "Search")] Search, - - [EnumMember(Value = "Cart")] Cart, - - [EnumMember(Value = "login-register?form=login")] Login, - - [EnumMember(Value = "login-register?form=register")] Register, - - [EnumMember(Value = "Shop")] Shop, - - [EnumMember(Value = "Shop/Phone")] PhoneShop, - - [EnumMember(Value = "Product")] Product, - - [EnumMember(Value = "Checkout/Shipping")] - CheckoutShipping, - - [EnumMember(Value = "Checkout/Billing")] - CheckoutBilling, - - [EnumMember(Value = "Checkout/Payment")] - CheckoutPayment, - - [EnumMember(Value = "Checkout/Confirmation")] - CheckoutConfirmation, - - [EnumMember(Value = "Account")] Account, - - [EnumMember(Value = "Account/Order-history")] - AccountOrderHistory, - - [EnumMember(Value = "storelocator")] - StoreLocator - } - - public static class PagePrefixExtensions - { - public static string GetPrefix(this PagePrefix prefix) - { - return prefix.GetAttribute().Value; - } - } -} \ No newline at end of file