diff --git a/.gitignore b/.gitignore index 5b8dfe9c11..b9576fda4c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.user *.userosscache *.sln.docstates +*.editorconfig # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/docs/en/API/Dynamic-CSharp-API-Clients.md b/docs/en/API/Dynamic-CSharp-API-Clients.md index 23ec336acf..d92846f5e8 100644 --- a/docs/en/API/Dynamic-CSharp-API-Clients.md +++ b/docs/en/API/Dynamic-CSharp-API-Clients.md @@ -1,4 +1,4 @@ -# Dynamic C# API Clients +# Dynamic C# API Client Proxies ABP can dynamically create C# API client proxies to call remote HTTP services (REST APIs). In this way, you don't need to deal with `HttpClient` and other low level HTTP features to call remote services and get results. diff --git a/docs/en/Application-Services.md b/docs/en/Application-Services.md index f48ff9cb5b..7fe9825f2a 100644 --- a/docs/en/Application-Services.md +++ b/docs/en/Application-Services.md @@ -342,12 +342,12 @@ public class DistrictAppService { } - protected override async Task DeleteByIdAsync(DistrictKey id) + protected async override Task DeleteByIdAsync(DistrictKey id) { await Repository.DeleteAsync(d => d.CityId == id.CityId && d.Name == id.Name); } - protected override async Task GetEntityByIdAsync(DistrictKey id) + protected async override Task GetEntityByIdAsync(DistrictKey id) { return await AsyncQueryableExecuter.FirstOrDefaultAsync( Repository.Where(d => d.CityId == id.CityId && d.Name == id.Name) @@ -400,7 +400,7 @@ public class MyPeopleAppService : CrudAppService { } - protected override async Task CheckDeletePolicyAsync() + protected async override Task CheckDeletePolicyAsync() { await AuthorizationService.CheckAsync("..."); } diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md index eef4237039..158466d153 100644 --- a/docs/en/Authorization.md +++ b/docs/en/Authorization.md @@ -234,7 +234,7 @@ context When you write this code inside your permission definition provider, it finds the "role deletion" permission of the [Identity Module](Modules/Identity.md) and disabled the permission, so no one can delete a role on the application. -> Tip: It is better to check the value returned by the `GetPermissionOrNull` method since it may return null if the given permission was not defined. +> Tip: It is better to check the value returned by the `GetPermissionOrNull` method since it may return null if the given permission was not defined. ## IAuthorizationService @@ -354,7 +354,7 @@ public class SystemAdminPermissionValueProvider : PermissionValueProvider public override string Name => "SystemAdmin"; - public override async Task + public async override Task CheckAsync(PermissionValueCheckContext context) { if (context.Principal?.FindFirst("User_Type")?.Value == "SystemAdmin") diff --git a/docs/en/Background-Workers-Quartz.md b/docs/en/Background-Workers-Quartz.md index e1d8287019..ce82222c14 100644 --- a/docs/en/Background-Workers-Quartz.md +++ b/docs/en/Background-Workers-Quartz.md @@ -37,7 +37,7 @@ public class YourModule : AbpModule ```` > Quartz background worker integration provided `QuartzPeriodicBackgroundWorkerAdapter` to adapt `PeriodicBackgroundWorkerBase` and `AsyncPeriodicBackgroundWorkerBase` derived class. So, you can still fllow the [background workers document](Background-Workers.md) to define the background worker. -> `BackgroundJobWorker` checks todo jobs every 5 seconds, but quartz will not block when long time jobs are executing. So,after Added Quartz background worker integration, you also need to add [Quartz Background Jobs](Background-Jobs-Quartz.md) or [Hangfire Background Jobs](Background-Jobs-Hangfire.md) to avoid duplicate execution jobs. +> `BackgroundJobWorker` checks jobs every 5 seconds, but quartz will not block when long time jobs are executing. So,after Added Quartz background worker integration, you also need to add [Quartz Background Jobs](Background-Jobs-Quartz.md) or [Hangfire Background Jobs](Background-Jobs-Hangfire.md) to avoid duplicate execution jobs. ## Configuration diff --git a/docs/en/Background-Workers.md b/docs/en/Background-Workers.md index c8a617efec..2e1b9d2a90 100644 --- a/docs/en/Background-Workers.md +++ b/docs/en/Background-Workers.md @@ -54,7 +54,7 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase Timer.Period = 600000; //10 minutes } - protected override async Task DoWorkAsync( + protected async override Task DoWorkAsync( PeriodicBackgroundWorkerContext workerContext) { Logger.LogInformation("Starting: Setting status of inactive users..."); diff --git a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/Post.md b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/Post.md index b6c1d3f952..c09b0eb75c 100644 --- a/docs/en/Blog-Posts/2020-05-08 v2_7_Release/Post.md +++ b/docs/en/Blog-Posts/2020-05-08 v2_7_Release/Post.md @@ -16,7 +16,7 @@ ABP.IO Platform is rapidly growing and we are getting more and more contribution ### Object Extending System -In the last few releases, we've mostly focused on providing ways to extend existing modules when you use them as NuGet/NPM Packages. +In the last few releases, we've mostly focused on providing ways to extend existing modules when you use them as NuGet/NPM Packages. The Object Extending System allows module developers to create extensible modules and allows application developers to customize and extend a module easily. @@ -43,7 +43,7 @@ ObjectExtensionManager.Instance options.Attributes.Add(new RequiredAttribute()); options.Attributes.Add( new StringLengthAttribute(32) { - MinimumLength = 6 + MinimumLength = 6 } ); }); @@ -121,7 +121,7 @@ Just create a class derived from the `ExceptionSubscriber` class in your applica ````csharp public class MyExceptionSubscriber : ExceptionSubscriber { - public override async Task HandleAsync(ExceptionNotificationContext context) + public async override Task HandleAsync(ExceptionNotificationContext context) { //TODO... } @@ -244,4 +244,4 @@ We ([Volosoft](https://volosoft.com/) - the core team behind the ABP.IO platform [ABP Framework](https://abp.io/) provides all the infrastructure and application independent framework features to make you more productive, focus on your own business code and implement software development best practices. It provides you a well defined and comfortable development experience without repeating yourself. -[ABP Commercial](https://commercial.abp.io/) provides pre-built functionalities, themes and tooling to save your time if your requirements involve these functionalities in addition to the premium support for the framework and the pre-built modules. \ No newline at end of file +[ABP Commercial](https://commercial.abp.io/) provides pre-built functionalities, themes and tooling to save your time if your requirements involve these functionalities in addition to the premium support for the framework and the pre-built modules. diff --git a/docs/en/Community-Articles/2020-04-19-Customize-the-SignIn-Manager/POST.md b/docs/en/Community-Articles/2020-04-19-Customize-the-SignIn-Manager/POST.md index d46049526d..1342407880 100644 --- a/docs/en/Community-Articles/2020-04-19-Customize-the-SignIn-Manager/POST.md +++ b/docs/en/Community-Articles/2020-04-19-Customize-the-SignIn-Manager/POST.md @@ -1,6 +1,6 @@ # How to Customize the SignIn Manager for ABP Applications -After creating a new application using the [application startup template](https://docs.abp.io/en/abp/latest/Startup-Templates/Application), you may want extend or change the default behavior of the SignIn Manager for your authentication and registration flow needs. ABP [Account Module](https://docs.abp.io/en/abp/latest/Modules/Account) uses the [Identity Management Module](https://docs.abp.io/en/abp/latest/Modules/Identity) for SignIn Manager and the [Identity Management Module](https://docs.abp.io/en/abp/latest/Modules/Identity) uses default [Microsoft Identity SignIn Manager](https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Core/src/SignInManager.cs) ([see here](https://github.com/abpframework/abp/blob/be32a55449e270d2d456df3dabdc91f3ffdd4fa9/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpIdentityAspNetCoreModule.cs#L17)). +After creating a new application using the [application startup template](https://docs.abp.io/en/abp/latest/Startup-Templates/Application), you may want extend or change the default behavior of the SignIn Manager for your authentication and registration flow needs. ABP [Account Module](https://docs.abp.io/en/abp/latest/Modules/Account) uses the [Identity Management Module](https://docs.abp.io/en/abp/latest/Modules/Identity) for SignIn Manager and the [Identity Management Module](https://docs.abp.io/en/abp/latest/Modules/Identity) uses default [Microsoft Identity SignIn Manager](https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Core/src/SignInManager.cs) ([see here](https://github.com/abpframework/abp/blob/be32a55449e270d2d456df3dabdc91f3ffdd4fa9/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpIdentityAspNetCoreModule.cs#L17)). To write your Custom SignIn Manager, you need to extend [Microsoft Identity SignIn Manager](https://github.com/dotnet/aspnetcore/blob/master/src/Identity/Core/src/SignInManager.cs) class and register it to the DI container. @@ -27,7 +27,7 @@ public class CustomSignInManager : Microsoft.AspNetCore.Identity.SignInManager It is important to use **Volo.Abp.Identity.IdentityUser** type for SignInManager to inherit, not the AppUser of your application. +> It is important to use **Volo.Abp.Identity.IdentityUser** type for SignInManager to inherit, not the AppUser of your application. Afterwards you can override any of the SignIn Manager methods you need and add new methods and properties needed for your authentication or registration flow. @@ -38,7 +38,7 @@ In this case we'll be overriding the `GetExternalLoginInfoAsync` method which is A good way to override a method is copying its [source code](https://github.com/dotnet/aspnetcore/blob/c56aa320c32ee5429d60647782c91d53ac765865/src/Identity/Core/src/SignInManager.cs#L638-L674). In this case, we will be using a minorly modified version of the source code which explicitly shows the namespaces of the methods and properties to help better understanding of the concept. ````csharp -public override async Task GetExternalLoginInfoAsync(string expectedXsrf = null) +public async override Task GetExternalLoginInfoAsync(string expectedXsrf = null) { var auth = await Context.AuthenticateAsync(Microsoft.AspNetCore.Identity.IdentityConstants.ExternalScheme); var items = auth?.Properties?.Items; @@ -93,4 +93,4 @@ PreConfigure(identityBuilder => ## The Source Code -You can find the source code of the completed example [here](https://github.com/abpframework/abp-samples/tree/master/Authentication-Customization). \ No newline at end of file +You can find the source code of the completed example [here](https://github.com/abpframework/abp-samples/tree/master/Authentication-Customization). diff --git a/docs/en/Community-Articles/2020-08-07-Passwordless-Authentication/POST.md b/docs/en/Community-Articles/2020-08-07-Passwordless-Authentication/POST.md index b31ea023f2..9489c004bd 100644 --- a/docs/en/Community-Articles/2020-08-07-Passwordless-Authentication/POST.md +++ b/docs/en/Community-Articles/2020-08-07-Passwordless-Authentication/POST.md @@ -33,7 +33,7 @@ namespace PasswordlessAuthentication.Web } //We need to override this method as well. - public override async Task GetUserModifierAsync(string purpose, UserManager manager, TUser user) + public async override Task GetUserModifierAsync(string purpose, UserManager manager, TUser user) { var userId = await manager.GetUserIdAsync(user); @@ -105,7 +105,7 @@ namespace PasswordlessAuthentication.Web.Pages UserManager = userManager; _userRepository = userRepository; } - + public ActionResult OnGet() { if (!CurrentUser.IsAuthenticated) @@ -115,15 +115,15 @@ namespace PasswordlessAuthentication.Web.Pages return Page(); } - + //added for passwordless authentication public async Task OnPostGeneratePasswordlessTokenAsync() { var adminUser = await _userRepository.FindByNormalizedUserNameAsync("admin"); - + var token = await UserManager.GenerateUserTokenAsync(adminUser, "PasswordlessLoginProvider", "passwordless-auth"); - + PasswordlessLoginUrl = Url.Action("Login", "Passwordless", new {token = token, userId = adminUser.Id.ToString()}, Request.Scheme); @@ -238,7 +238,7 @@ namespace PasswordlessAuthentication.Web.Controllers return Redirect("/"); } - + private static IEnumerable CreateClaims(IUser user, IEnumerable roles) { var claims = new List @@ -272,4 +272,4 @@ That's all! We created a passwordless login with 7 steps. ## Source Code -The completed sample is available on [GitHub repository](https://github.com/abpframework/abp-samples/tree/master/PasswordlessAuthentication). \ No newline at end of file +The completed sample is available on [GitHub repository](https://github.com/abpframework/abp-samples/tree/master/PasswordlessAuthentication). diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/POST.md b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/POST.md new file mode 100644 index 0000000000..b1b2d08c20 --- /dev/null +++ b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/POST.md @@ -0,0 +1,46 @@ +# How to add a new language to your ABP project? + +Adding a new language to your ABP project is pretty simple. Let's add the German language to our ABP project: + + + +1. Go to your solution's root folder and write the following CLI command. This command will generate an empty translation file from English. + ```bash + abp translate -c de-DE + ``` + + Check out for [the complete supported culture codes](https://docs.microsoft.com/en-us/bingmaps/rest-services/common-parameters-and-types/supported-culture-codes). + (For internal development `D:\Github\abp` and `D:\Github\volo\abp`) + +2. Fill the `target` fields in your target language. + + ![Fill target fields](language-target.png) + +3. Copy `abp-translation.json` your solution's root folder (Do not change the filename!) + +4. Run the following command. This command will create the necessary `json` files. + ```bash + abp translate --apply + ``` + +5. Open your solution and add the new language to the language list. To do this; + + * open `MyProjectNameDomainModule.cs` and in `ConfigureServices` you'll find `Configure`. If you have `HttpApi.Host` project then you need to add this in `MyProjectNameHttpApiHostModule.cs` + + ``` + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de")); + ``` + + ![Add to languages](add-to-languages.png) + + The last parameter is the flag icon. You can find the list of flag icons on https://flagicons.lipis.dev/ + + 6. The last step is running the DbMigrator project. It will seed the database for the new language. + ![The database table](database-table.png) + + + +Close the IIS Express / Kestrel to invalidate the language cache and run the project. You will see the new language on your website. + +![See the final result](website-new-language.png) + diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png new file mode 100644 index 0000000000..1dda317685 Binary files /dev/null and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/add-to-languages.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png new file mode 100644 index 0000000000..2d512fabeb Binary files /dev/null and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/database-table.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png new file mode 100644 index 0000000000..7b5f104003 Binary files /dev/null and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/language-target.png differ diff --git a/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png new file mode 100644 index 0000000000..1e04841983 Binary files /dev/null and b/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/website-new-language.png differ diff --git a/docs/en/Customizing-Application-Modules-Overriding-Services.md b/docs/en/Customizing-Application-Modules-Overriding-Services.md index b8706eea61..97df12a3a6 100644 --- a/docs/en/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/en/Customizing-Application-Modules-Overriding-Services.md @@ -29,7 +29,7 @@ public class TestAppService : IIdentityUserAppService, ITransientDependency } ```` -The dependency injection system allows to register multiple services for the same interface. The last registered one is used when the interface is injected. It is a good practice to explicitly replace the service. +The dependency injection system allows to register multiple services for the same interface. The last registered one is used when the interface is injected. It is a good practice to explicitly replace the service. Example: @@ -76,7 +76,7 @@ public class MyIdentityUserAppService : IdentityUserAppService { } - public override async Task CreateAsync(IdentityUserCreateDto input) + public async override Task CreateAsync(IdentityUserCreateDto input) { if (input.PhoneNumber.IsNullOrWhiteSpace()) { @@ -109,33 +109,33 @@ public class MyIdentityUserManager : IdentityUserManager { public MyIdentityUserManager( IdentityUserStore store, - IIdentityRoleRepository roleRepository, + IIdentityRoleRepository roleRepository, IIdentityUserRepository userRepository, - IOptions optionsAccessor, + IOptions optionsAccessor, IPasswordHasher passwordHasher, - IEnumerable> userValidators, - IEnumerable> passwordValidators, + IEnumerable> userValidators, + IEnumerable> passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, - ILogger logger, - ICancellationTokenProvider cancellationTokenProvider) : + ILogger logger, + ICancellationTokenProvider cancellationTokenProvider) : base(store, roleRepository, - userRepository, - optionsAccessor, - passwordHasher, - userValidators, + userRepository, + optionsAccessor, + passwordHasher, + userValidators, passwordValidators, - keyNormalizer, - errors, - services, - logger, + keyNormalizer, + errors, + services, + logger, cancellationTokenProvider) { } - public override async Task CreateAsync(IdentityUser user) + public async override Task CreateAsync(IdentityUser user) { if (user.PhoneNumber.IsNullOrWhiteSpace()) { @@ -182,7 +182,7 @@ namespace MyProject.Controllers } - public override async Task SendPasswordResetCodeAsync( + public async override Task SendPasswordResetCodeAsync( SendPasswordResetCodeDto input) { Logger.LogInformation("Your custom logic..."); @@ -214,7 +214,7 @@ Assuming that you've already added a `SocialSecurityNumber` as described in the You can use the [object extension system](Object-Extensions.md) to add the property to the `IdentityUserDto`. Write this code inside the `YourProjectNameDtoExtensions` class comes with the application startup template: ````csharp -ObjectExtensionManager.Instance +ObjectExtensionManager.Instance .AddOrUpdateProperty( "SocialSecurityNumber" ); @@ -286,8 +286,8 @@ ObjectExtensionManager.Instance .AddOrUpdateProperty( new[] { - typeof(IdentityUserDto), - typeof(IdentityUserCreateDto), + typeof(IdentityUserDto), + typeof(IdentityUserCreateDto), typeof(IdentityUserUpdateDto) }, "SocialSecurityNumber" diff --git a/docs/en/Domain-Driven-Design.md b/docs/en/Domain-Driven-Design.md index ce33295492..bbf22eab13 100644 --- a/docs/en/Domain-Driven-Design.md +++ b/docs/en/Domain-Driven-Design.md @@ -19,8 +19,12 @@ ABP follows DDD principles and patterns to achieve a layered application model w - **Domain Layer**: Includes business objects and the core (domain) business rules. This is the heart of the application. - **Infrastructure Layer**: Provides generic technical capabilities that support higher layers mostly using 3rd-party libraries. +DDD mostly interest in the **Domain** and the **Application** layers, rather than the Infrastructure and the Presentation layers. + ## Contents +See the following documents to learn what ABP Framework provides to you to implement DDD in your project. + * **Domain Layer** * [Entities & Aggregate Roots](Entities.md) * Value Objects @@ -30,4 +34,4 @@ ABP follows DDD principles and patterns to achieve a layered application model w * **Application Layer** * [Application Services](Application-Services.md) * [Data Transfer Objects (DTOs)](Data-Transfer-Objects.md) - * Unit of Work \ No newline at end of file + * [Unit of Work](Unit-Of-Work.md) \ No newline at end of file diff --git a/docs/en/Domain-Services.md b/docs/en/Domain-Services.md index 7eb6c917cd..9f4a5ee544 100644 --- a/docs/en/Domain-Services.md +++ b/docs/en/Domain-Services.md @@ -1,3 +1,3 @@ -# ABP Documentation +# Domain Services -TODO! \ No newline at end of file +TODO \ No newline at end of file diff --git a/docs/en/Entity-Framework-Core.md b/docs/en/Entity-Framework-Core.md index 98163e7c28..5d41d571b7 100644 --- a/docs/en/Entity-Framework-Core.md +++ b/docs/en/Entity-Framework-Core.md @@ -92,7 +92,7 @@ protected override void OnModelCreating(ModelBuilder builder) b.ToTable("Books"); //Configure the base properties - b.ConfigureByConvention(); + b.ConfigureByConvention(); //Configure other properties (if you are using the fluent API) b.Property(x => x.Name).IsRequired().HasMaxLength(128); @@ -113,7 +113,7 @@ If you have multiple databases in your application, you can configure the connec [ConnectionStringName("MySecondConnString")] public class MyDbContext : AbpDbContext { - + } ``` @@ -254,7 +254,7 @@ If you want to replace default repository implementation with your custom reposi context.Services.AddAbpDbContext(options => { options.AddDefaultRepositories(); - + //Replaces IRepository options.AddRepository(); }); @@ -263,7 +263,7 @@ context.Services.AddAbpDbContext(options => This is especially important when you want to **override a base repository method** to customize it. For instance, you may want to override `DeleteAsync` method to delete a specific entity in a more efficient way: ````csharp -public override async Task DeleteAsync( +public async override Task DeleteAsync( Guid id, bool autoSave = false, CancellationToken cancellationToken = default) @@ -365,7 +365,7 @@ public class MyRepositoryBase : EfCoreRepository where TEntity : class, IEntity { - public MyRepositoryBase(IDbContextProvider dbContextProvider) + public MyRepositoryBase(IDbContextProvider dbContextProvider) : base(dbContextProvider) { } @@ -395,7 +395,7 @@ context.Services.AddAbpDbContext(options => typeof(MyRepositoryBase<,>), typeof(MyRepositoryBase<>) ); - + //... }); ``` @@ -448,4 +448,4 @@ In this example, `OtherDbContext` implements `IBookStoreDbContext`. This feature ## See Also -* [Entities](Entities.md) \ No newline at end of file +* [Entities](Entities.md) diff --git a/docs/en/Exception-Handling.md b/docs/en/Exception-Handling.md index 59a2c6bd0e..04cc6fc695 100644 --- a/docs/en/Exception-Handling.md +++ b/docs/en/Exception-Handling.md @@ -85,7 +85,7 @@ Error **details** in an optional field of the JSON error message. Thrown `Except ### Logging -Caught exceptions are automatically logged. +Caught exceptions are automatically logged. #### Log Level @@ -300,7 +300,7 @@ In this case, create a class derived from the `ExceptionSubscriber` class in you ````csharp public class MyExceptionSubscriber : ExceptionSubscriber { - public override async Task HandleAsync(ExceptionNotificationContext context) + public async override Task HandleAsync(ExceptionNotificationContext context) { //TODO... } diff --git a/docs/en/MongoDB.md b/docs/en/MongoDB.md index 475eb94f1b..98769c13b8 100644 --- a/docs/en/MongoDB.md +++ b/docs/en/MongoDB.md @@ -40,7 +40,7 @@ public class MyDbContext : AbpMongoDbContext protected override void CreateModel(IMongoModelBuilder modelBuilder) { base.CreateModel(modelBuilder); - + //Customize the configuration for your collections. } } @@ -62,7 +62,7 @@ So, most of times you don't need to explicitly configure registration for your e protected override void CreateModel(IMongoModelBuilder modelBuilder) { base.CreateModel(modelBuilder); - + modelBuilder.Entity(b => { b.CollectionName = "MyQuestions"; //Sets the collection name @@ -88,7 +88,7 @@ If you have multiple databases in your application, you can configure the connec [ConnectionStringName("MySecondConnString")] public class MyDbContext : AbpMongoDbContext { - + } ```` @@ -202,7 +202,7 @@ You generally want to derive from the `IRepository` to inherit standard reposito Example implementation of the `IBookRepository` interface: ```csharp -public class BookRepository : +public class BookRepository : MongoDbRepository, IBookRepository { @@ -242,9 +242,9 @@ context.Services.AddMongoDbContext(options => This is especially important when you want to **override a base repository method** to customize it. For instance, you may want to override `DeleteAsync` method to delete an entity in a more efficient way: ```csharp -public override async Task DeleteAsync( - Guid id, - bool autoSave = false, +public async override Task DeleteAsync( + Guid id, + bool autoSave = false, CancellationToken cancellationToken = default) { //TODO: Custom implementation of the delete method @@ -381,4 +381,4 @@ context.Services.AddMongoDbContext(options => }); ``` -In this example, `OtherMongoDbContext` implements `IBookStoreMongoDbContext`. This feature allows you to have multiple MongoDbContext (one per module) on development, but single MongoDbContext (implements all interfaces of all MongoDbContexts) on runtime. \ No newline at end of file +In this example, `OtherMongoDbContext` implements `IBookStoreMongoDbContext`. This feature allows you to have multiple MongoDbContext (one per module) on development, but single MongoDbContext (implements all interfaces of all MongoDbContexts) on runtime. diff --git a/docs/en/Themes/Basic.md b/docs/en/Themes/Basic.md index a0165c803a..819138de5f 100644 --- a/docs/en/Themes/Basic.md +++ b/docs/en/Themes/Basic.md @@ -1,3 +1,2 @@ -## Basic Theme +This document has been moved to [here](../UI/AspNetCore/Basic-Theme.md). -TODO \ No newline at end of file diff --git a/docs/en/Tutorials/Part-10.md b/docs/en/Tutorials/Part-10.md index 53f19d93dd..e161a267cc 100644 --- a/docs/en/Tutorials/Part-10.md +++ b/docs/en/Tutorials/Part-10.md @@ -10,7 +10,7 @@ In this tutorial series, you will build an ABP based web application named `Acme.BookStore`. This application is used to manage a list of books and their authors. It is developed using the following technologies: -* **{{DB_Value}}** as the ORM provider. +* **{{DB_Value}}** as the ORM provider. * **{{UI_Value}}** as the UI Framework. This tutorial is organized as the following parts; @@ -78,7 +78,7 @@ builder.Entity(b => b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema); b.ConfigureByConvention(); //auto configure for the base class props b.Property(x => x.Name).IsRequired().HasMaxLength(128); - + // ADD THE MAPPING FOR THE RELATION b.HasOne().WithMany().HasForeignKey(x => x.AuthorId).IsRequired(); }); @@ -362,7 +362,7 @@ namespace Acme.BookStore.Books DeletePolicyName = BookStorePermissions.Books.Create; } - public override async Task GetAsync(Guid id) + public async override Task GetAsync(Guid id) { await CheckGetPolicyAsync(); @@ -384,7 +384,7 @@ namespace Acme.BookStore.Books return bookDto; } - public override async Task> + public async override Task> GetListAsync(PagedAndSortedResultRequestDto input) { await CheckGetListPolicyAsync(); @@ -485,7 +485,7 @@ namespace Acme.BookStore.Books DeletePolicyName = BookStorePermissions.Books.Create; } - public override async Task GetAsync(Guid id) + public async override Task GetAsync(Guid id) { await CheckGetPolicyAsync(); @@ -498,7 +498,7 @@ namespace Acme.BookStore.Books return bookDto; } - public override async Task> + public async override Task> GetListAsync(PagedAndSortedResultRequestDto input) { await CheckGetListPolicyAsync(); @@ -524,7 +524,7 @@ namespace Acme.BookStore.Books var authorDictionary = await GetAuthorDictionaryAsync(books); //Set AuthorName for the DTOs - bookDtos.ForEach(bookDto => bookDto.AuthorName = + bookDtos.ForEach(bookDto => bookDto.AuthorName = authorDictionary[bookDto.AuthorId].Name); //Get the total count with another query (required for the paging) @@ -622,7 +622,7 @@ namespace Acme.BookStore.Books result.Items.ShouldContain(b => b.Name == "1984" && b.AuthorName == "George Orwell"); } - + [Fact] public async Task Should_Create_A_Valid_Book() { @@ -645,7 +645,7 @@ namespace Acme.BookStore.Books result.Id.ShouldNotBe(Guid.Empty); result.Name.ShouldBe("New test book 42"); } - + [Fact] public async Task Should_Not_Create_A_Book_Without_Name() { @@ -1100,15 +1100,15 @@ The final `@code` block should be the following: //ADDED A NEW FIELD IReadOnlyList authorList = Array.Empty(); - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { await base.OnInitializedAsync(); - canCreateBook = await + canCreateBook = await AuthorizationService.IsGrantedAsync(BookStorePermissions.Books.Create); - canEditBook = await + canEditBook = await AuthorizationService.IsGrantedAsync(BookStorePermissions.Books.Edit); - canDeleteBook = await + canDeleteBook = await AuthorizationService.IsGrantedAsync(BookStorePermissions.Books.Delete); //GET AUTHORS @@ -1164,4 +1164,4 @@ Add the following `Field` definition into the `ModalBody` of the *Edit* modal, a That's all. We are reusing the `authorList` defined for the *Create* modal. -{{end}} \ No newline at end of file +{{end}} diff --git a/docs/en/Tutorials/Part-5.md b/docs/en/Tutorials/Part-5.md index a293ec586e..f07356e892 100644 --- a/docs/en/Tutorials/Part-5.md +++ b/docs/en/Tutorials/Part-5.md @@ -487,7 +487,7 @@ Add the following code block to the end of the `Books.razor` file: bool canEditBook; bool canDeleteBook; - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { await base.OnInitializedAsync(); diff --git a/docs/en/Tutorials/Part-9.md b/docs/en/Tutorials/Part-9.md index 374efff2b4..fce94633d2 100644 --- a/docs/en/Tutorials/Part-9.md +++ b/docs/en/Tutorials/Part-9.md @@ -1038,7 +1038,7 @@ namespace Acme.BookStore.Blazor.Pages EditingAuthor = new UpdateAuthorDto(); } - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { await SetPermissionsAsync(); await GetAuthorsAsync(); diff --git a/docs/en/UI/Angular/Component-Replacement.md b/docs/en/UI/Angular/Component-Replacement.md index 577129e139..cf0041ab72 100644 --- a/docs/en/UI/Angular/Component-Replacement.md +++ b/docs/en/UI/Angular/Component-Replacement.md @@ -45,7 +45,7 @@ Run the following command to generate a layout in `angular` folder: yarn ng generate component my-application-layout ``` -Add the following code in your layout template (`my-layout.component.html`) where you want the page to be loaded. +Add the following code in your layout template (`my-application-layout.component.html`) where you want the page to be loaded. ```html diff --git a/docs/en/UI/AspNetCore/Basic-Theme.md b/docs/en/UI/AspNetCore/Basic-Theme.md index 3435e94a8b..67977ffd4e 100644 --- a/docs/en/UI/AspNetCore/Basic-Theme.md +++ b/docs/en/UI/AspNetCore/Basic-Theme.md @@ -1,3 +1,90 @@ # ASP.NET Core MVC / Razor Pages: The Basic Theme -This document is in progress. See the [Theming](Theming.md) document. \ No newline at end of file +The Basic Theme is a theme implementation for the ASP.NET Core MVC / Razor Pages UI. It is a minimalist theme that doesn't add any styling on top of the plain [Bootstrap](https://getbootstrap.com/). You can take the Basic Theme as the **base theme** and build your own theme or styling on top of it. See the *Customization* section. + +The Basic Theme has RTL (Right-to-Left language) support. + +> If you are looking for a professional, enterprise ready theme, you can check the [Lepton Theme](https://commercial.abp.io/themes), which is a part of the [ABP Commercial](https://commercial.abp.io/). + +> See the [Theming document](Theming.md) to learn about themes. + +## Installation + +**This theme is already installed** when you create a new solution using the [startup templates](../../Startup-Templates/Index.md). If you need to manually install it, follow the steps below: + +* Install the [Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) NuGet package to your web project. +* Add `AbpAspNetCoreMvcUiBasicThemeModule` into the `[DependsOn(...)]` attribute for your [module class](../../Module-Development-Basics.md) in the web project. +* Install the [@abp/aspnetcore.mvc.ui.theme.basic](https://www.npmjs.com/package/@abp/aspnetcore.mvc.ui.theme.basic) NPM package to your web project (e.g. `npm install @abp/aspnetcore.mvc.ui.theme.basic` or `yarn add @abp/aspnetcore.mvc.ui.theme.basic`). +* Run `gulp` command in a command line terminal in the web project's folder. + +## Layouts + +The Basic Theme implements the standard layouts. All the layouts implement the following parts; + +* Global [Bundles](Bundling-Minification.md) +* [Page Alerts](Page-Alerts.md) +* [Layout Hooks](Layout-Hooks.md) +* [Widget](Widgets.md) Resources + +### The Application Layout + +![basic-theme-application-layout](../../images/basic-theme-application-layout.png) + +Application Layout implements the following parts, in addition to the common parts mentioned above; + +* Branding +* Main [Menu](Navigation-Menu.md) +* Main [Toolbar](Toolbars.md) with Language Selection & User Menu + +### The Account Layout + +![basic-theme-account-layout](../../images/basic-theme-account-layout.png) + +Application Layout implements the following parts, in addition to the common parts mentioned above; + +* Branding +* Main [Menu](Navigation-Menu.md) +* Main [Toolbar](Toolbars.md) with Language Selection & User Menu +* Tenant Switch Area + +### Empty Layout + +Empty layout is empty, as its name stands for. However, it implements the common parts mentioned above. + +## Customization + +You have two options two customize this theme: + +### Overriding Styles/Components + +In this approach, you continue to use the the theme as NuGet and NPM packages and customize the parts you need to. There are several ways to customize it; + +#### Override the Styles + +1. Create a CSS file in the `wwwroot` folder of your project: + +![example-global-styles](../../images/example-global-styles.png) + +2. Add the style file to the global bundle, in the `ConfigureServices` method of your [module](../../Module-Development-Basics.md): + +````csharp +Configure(options => +{ + options.StyleBundles.Configure(BasicThemeBundles.Styles.Global, bundle => + { + bundle.AddFiles("/styles/global-styles.css"); + }); +}); +```` + +#### Override the Components + +See the [User Interface Customization Guide](Customization-User-Interface.md) to learn how you can replace components, customize and extend the user interface. + +### Copy & Customize + +You can download the [source code](https://github.com/abpframework/abp/tree/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic) of the Basic Theme, copy the project content into your solution, re-arrange the package/module dependencies (see the Installation section above to understand how it was installed to the project) and freely customize the theme based on your application requirements. + +## See Also + +* [Theming](Theming.md) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Branding.md b/docs/en/UI/AspNetCore/Branding.md new file mode 100644 index 0000000000..ee19cd5845 --- /dev/null +++ b/docs/en/UI/AspNetCore/Branding.md @@ -0,0 +1,45 @@ +# ASP.NET Core MVC / Razor Pages: Branding + +## IBrandingProvider + +`IBrandingProvider` is a simple interface that is used to show the application name and logo on the layout. + +The screenshot below shows *MyProject* as the application name: + +![branding-nobrand](../../images/branding-nobrand.png) + +You can implement the `IBrandingProvider` interface or inherit from the `DefaultBrandingProvider` to set the application name: + +````csharp +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Components; +using Volo.Abp.DependencyInjection; + +namespace MyProject.Web +{ + [Dependency(ReplaceServices = true)] + public class MyProjectBrandingProvider : DefaultBrandingProvider + { + public override string AppName => "Book Store"; + } +} +```` + +The result will be like shown below: + +![branding-appname](../../images/branding-appname.png) + +`IBrandingProvider` has the following properties: + +* `AppName`: The application name. +* `LogoUrl`: A URL to show the application logo. +* `LogoReverseUrl`: A URL to show the application logo on a reverse color theme (dark, for example). + +> **Tip**: `IBrandingProvider` is used in every page refresh. For a multi-tenant application, you can return a tenant specific application name to customize it per tenant. + +## Overriding the Branding Area + +The [Basic Theme](Basic-Theme.md) doesn't implement the logos. However, you can see the [UI Customization Guide](Customization-User-Interface.md) to learn how you can replace the branding area with a custom view component. + +An example screenshot with an image is used in the branding area: + +![bookstore-added-logo](../../images/bookstore-added-logo.png) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Breadcrumbs.md b/docs/en/UI/AspNetCore/Breadcrumbs.md deleted file mode 100644 index cc3bcd95be..0000000000 --- a/docs/en/UI/AspNetCore/Breadcrumbs.md +++ /dev/null @@ -1,3 +0,0 @@ -# Toolbars - -TODO \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Customization-User-Interface.md b/docs/en/UI/AspNetCore/Customization-User-Interface.md index c4e196fbb9..bc8e15e8bb 100644 --- a/docs/en/UI/AspNetCore/Customization-User-Interface.md +++ b/docs/en/UI/AspNetCore/Customization-User-Interface.md @@ -28,15 +28,15 @@ namespace Acme.BookStore.Web.Pages.Identity.Users public class MyEditModalModel : EditModalModel { public MyEditModalModel( - IIdentityUserAppService identityUserAppService, + IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService ) : base( - identityUserAppService, + identityUserAppService, identityRoleAppService) { } - public override async Task OnPostAsync() + public async override Task OnPostAsync() { //TODO: Additional logic await base.OnPostAsync(); @@ -84,10 +84,10 @@ Create a page model class deriving from the ` LoginModel ` (defined in the ` Vol public class MyLoginModel : LoginModel { public MyLoginModel( - IAuthenticationSchemeProvider schemeProvider, + IAuthenticationSchemeProvider schemeProvider, IOptions accountOptions ) : base( - schemeProvider, + schemeProvider, accountOptions) { @@ -128,11 +128,11 @@ The ABP Framework, pre-built themes and modules define some **re-usable view com ### Example -The screenshot below was taken from the **basic theme** comes with the application startup template. +The screenshot below was taken from the [Basic Theme](Basic-Theme.md) comes with the application startup template. ![bookstore-brand-area-highlighted](../../images/bookstore-brand-area-highlighted.png) -[The basic theme](../../Themes/Basic.md) defines some view components for the layout. For example, the highlighted area with the red rectangle above is called **Brand component**. You probably want to customize this component by adding your **own application logo**. Let's see how to do it. +The [Basic Theme](Basic-Theme.md) defines some view components for the layout. For example, the highlighted area with the red rectangle above is called **Brand component**. You probably want to customize this component by adding your **own application logo**. Let's see how to do it. First, create your logo and place under a folder in your web application. We used `wwwroot/logos/bookstore-logo.png` path. Then copy the Brand component's view ([from here](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/Default.cshtml)) from the basic theme files under the `Themes/Basic/Components/Brand` folder. The result should be similar the picture below: @@ -437,7 +437,7 @@ See the layouts section below to learn more about the layout system. Layout system allows themes to define standard, named layouts and allows any page to select a proper layout for its purpose. There are three pre-defined layouts: -* "**Application**": The main (and the default) layout for an application. It typically contains header, menu (sidebar), footer, toolbar... etc. +* "**Application**": The main (and the default) layout for an application. It typically contains header, menu (sidebar), footer, toolbar... etc. * "**Account**": This layout is used by login, register and other similar pages. It is used for the pages under the `/Pages/Account` folder by default. * "**Empty**": Empty and minimal layout. diff --git a/docs/en/UI/AspNetCore/Data-Tables.md b/docs/en/UI/AspNetCore/Data-Tables.md new file mode 100644 index 0000000000..79fd6a3be1 --- /dev/null +++ b/docs/en/UI/AspNetCore/Data-Tables.md @@ -0,0 +1,263 @@ +# ASP.NET Core MVC / Razor Pages: Data Tables + +A Data Table (aka Data Grid) is a UI component to show tabular data to the users. There are a lot of Data table components/libraries and **you can use any one you like** with the ABP Framework. However, the startup templates come with the [DataTables.Net](https://datatables.net/) library as **pre-installed and configured**. ABP Framework provides adapters for this library and make it easy to use with the API endpoints. + +An example screenshot from the user management page that shows the user list in a data table: + +![datatables-example](../../images/datatables-example.png) + +## DataTables.Net Integration + +First of all, you can follow the official documentation to understand how the [DataTables.Net](https://datatables.net/) works. This section will focus on the ABP addons & integration points rather than fully covering the usage of this library. + +### A Quick Example + +You can follow the [web application development tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=MVC) for a complete example application that uses the DataTables.Net as the Data Table. This section shows a minimalist example. + +You do nothing to add DataTables.Net library to the page since it is already added to the global [bundle](Bundling-Minification.md) by default. + +First, add an `abp-table` as shown below, with an `id`: + +````html + +```` + +> `abp-table` is a [Tag Helper](Tag-Helpers/Index.md) defined by the ABP Framework, but a simple `` tag would also work. + +Then call the `DataTable` plugin on the table selector: + +````js +var dataTable = $('#BooksTable').DataTable( + abp.libs.datatables.normalizeConfiguration({ + serverSide: true, + paging: true, + order: [[1, "asc"]], + searching: false, + ajax: abp.libs.datatables.createAjax(acme.bookStore.books.book.getList), + columnDefs: [ + { + title: l('Actions'), + rowAction: { + items: + [ + { + text: l('Edit'), + action: function (data) { + ///... + } + } + ] + } + }, + { + title: l('Name'), + data: "name" + }, + { + title: l('PublishDate'), + data: "publishDate", + render: function (data) { + return luxon + .DateTime + .fromISO(data, { + locale: abp.localization.currentCulture.name + }).toLocaleString(); + } + }, + { + title: l('Price'), + data: "price" + } + ] + }) +); +```` + +The example code above uses some ABP integration features those will be explained in the next sections. + +### Configuration Normalization + +`abp.libs.datatables.normalizeConfiguration` function takes a DataTables configuration and normalizes to simplify it; + +* Sets `scrollX` option to `true`, if not set. +* Sets `target` index for the column definitions. +* Sets the `language` option to [localize](../../Localization.md) the table in the current language. + +#### Default Configuration + +`normalizeConfiguration` uses the default configuration. You can change the default configuration using the `abp.libs.datatables.defaultConfigurations` object. Example: + +````js +abp.libs.datatables.defaultConfigurations.scrollX = false; +```` + +Here, the all configuration options; + +* `scrollX`: `false` by default. +* `dom`: Default value is `<"dataTable_filters"f>rt<"row dataTable_footer"<"col-auto"l><"col-auto"i><"col"p>>`. +* `language`: A function that returns the localization text using the current language. + +### AJAX Adapter + +DataTables.Net has its own expected data format while getting results of an AJAX call to the server to get the table data. They are especially related how paging and sorting parameters are sent and received. ABP Framework also offers its own conventions for the client-server [AJAX](JavaScript-API/Ajax.md) communication. + +The `abp.libs.datatables.createAjax` method (used in the example above) adapts request and response data format and perfectly works with the [Dynamic JavaScript Client Proxy](Dynamic-JavaScript-Client-Proxies.md) system. + +This works automatically, so most of the times you don't need to know how it works. See the [DTO document](../../Data-Transfer-Objects.md) if you want to learn more about `IPagedAndSortedResultRequest`, `IPagedResult` and other standard interfaces and base DTO classes those are used in client to server communication. + +### Row Actions + +`rowAction` is an option defined by the ABP Framework to the column definitions to show a drop down button to take actions for a row in the table. + +The example screenshot below shows the actions for each user in the user management table: + +![datatables-example](../../images/datatables-row-actions.png) + +`rowAction` is defined as a part of a column definition: + +````csharp +{ + title: l('Actions'), + rowAction: { + //TODO: CONFIGURATION + } +}, +```` + +**Example: Show *Edit* and *Delete* actions for a book row** + +````js +{ + title: l('Actions'), + rowAction: { + items: + [ + { + text: l('Edit'), + action: function (data) { + //TODO: Open a modal to edit the book + } + }, + { + text: l('Delete'), + confirmMessage: function (data) { + return "Are you sure to delete the book " + data.record.name; + }, + action: function (data) { + acme.bookStore.books.book + .delete(data.record.id) + .then(function() { + abp.notify.info("Successfully deleted!"); + data.table.ajax.reload(); + }); + } + } + ] + } +}, +```` + +#### Action Items + +`items` is an array of action definitions. An action definition can have the following options; + +* `text`: The text (a `string`) for this action to be shown in the actions drop down. +* `action`: A `function` that is executed when the user clicks to the action. The function takes a `data` argument that has the following fields; + * `data.record`: This is the data object related to the row. You can access the data fields like `data.record.id`, `data.record.name`... etc. + * `data.table`: The DataTables instance. +* `confirmMessage`: A `function` (see the example above) that returns a message (`string`) to show a dialog to get a confirmation from the user before executing the `action`. Example confirmation dialog: + +![datatables-row-actions-confirmation](../../images/datatables-row-actions-confirmation.png) + +You can use the [localization](JavaScript-API/Localization.md) system to show a localized message. + +* `visible`: A `bool` or a `function` that returns a `bool`. If the result is `false`, then the action is not shown in the actions dropdown. This is generally combined by the [authorization](JavaScript-API/Auth.md) system to hide the action if the user has no permission to take this action. Example: + +````js +visible: abp.auth.isGranted('BookStore.Books.Delete'); +```` + +If you define a `function`, then the `function` has two arguments: `record` (the data object of the related row) and the `table` (the DataTable instance). So, you can decide to show/hide the action dynamically, based on the row data and other conditions. + +* `iconClass`: Can be used to show a font-icon, like a [Font-Awesome](https://fontawesome.com/) icon (ex: `fas fa-trash-alt`), near to the action text. Example screenshot: + +![datatables-row-actions-confirmation](../../images/datatables-row-actions-icon.png) + +* `enabled`: A `function` that returns a `bool` to disable the action. The `function` takes a `data` object with two fields: `data.record` is the data object related to the row and `data.table` is the DataTables instance. +* `displayNameHtml`: Set this to `true` is the `text` value contains HTML tags. + +There are some rules with the action items; + +* If none of the action items is visible then the actions column is not rendered. + +### Data Format + +#### The Problem + +See the *Creation Time* column in the example below: + +````js +{ + title: l('CreationTime'), + data: "creationTime", + render: function (data) { + return luxon + .DateTime + .fromISO(data, { + locale: abp.localization.currentCulture.name + }).toLocaleString(luxon.DateTime.DATETIME_SHORT); + } +} +```` + +The `render` is a standard DataTables option to render the column content by a custom function. This example uses the [luxon](https://moment.github.io/luxon/) library (which is installed by default) to write a human readable value of the `creationTime` in the current user's language. Example output of the column: + +![datatables-custom-render-date](../../images/datatables-custom-render-date.png) + +If you don't define the render option, then the result will be ugly and not user friendly: + +![datatables-custom-render-date](../../images/datatables-default-render-date.png) + +However, rendering a `DateTime` is almost same and repeating the same rendering logic everywhere is against to the DRY (Don't Repeat Yourself!) principle. + +#### dataFormat Option + +`dataFormat` column option specifies the data format that is used to render the column data. The same output could be accomplished using the following column definition: + +````js +{ + title: l('CreationTime'), + data: "creationTime", + dataFormat: 'datetime' +} +```` + +`dataFormat: 'datetime'` specifies the data format for this column. There are a few pre-defined `dataFormat`s: + +* `boolean`: Shows a `check` icon for `true` and `times` icon for `false` value and useful to render `bool` values. +* `date`: Shows date part of a `DateTime` value, formatted based on the current culture. +* `datetime`: Shows date & time (excluding seconds) of a `DateTime` value, formatted based on the current culture. + +### Default Renderers + +`abp.libs.datatables.defaultRenderers` option allows you to define new data formats and set renderers for them. + +**Example: Render male / female icons based on the gender** + +````js +abp.libs.datatables.defaultRenderers['gender'] = function(value) { + if (value === 'f') { + return ''; + } else { + return ''; + } +}; +```` + +Assuming that the possible values for a column data is `f` and `m`, the `gender` data format shows female/male icons instead of `f` and `m` texts. You can now set `dataFormat: 'gender'` for a column definition that has the proper data values. + +> You can write the default renderers in a single JavaScript file and add it to the [Global Script Bundle](Bundling-Minification.md), so you can reuse them in all the pages. + +## Other Data Grids + +You can use any library you like. For example, [see this article](https://community.abp.io/articles/using-devextreme-components-with-the-abp-framework-zb8z7yqv) to learn how to use DevExtreme Data Grid in your applications. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Dynamic-JavaScript-Proxies.md b/docs/en/UI/AspNetCore/Dynamic-JavaScript-Proxies.md index 391a63a910..3464d4bc68 100644 --- a/docs/en/UI/AspNetCore/Dynamic-JavaScript-Proxies.md +++ b/docs/en/UI/AspNetCore/Dynamic-JavaScript-Proxies.md @@ -1,3 +1,91 @@ -# Dynamic JavaScript HTTP API Proxies +# Dynamic JavaScript API Client Proxies -TODO \ No newline at end of file +It is typical to consume your HTTP APIs from your JavaScript code. To do that, you normally deal with low level AJAX calls, like $.ajax, or better [abp.ajax](JavaScript-API/Ajax.md). ABP Framework provides **a better way** to call your HTTP APIs from your JavaScript code: Dynamic JavaScript API Client Proxies! + +## A Quick Example + +Assume that you have an application service defined as shown below: + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Acme.BookStore.Authors +{ + public interface IAuthorAppService : IApplicationService + { + Task GetAsync(Guid id); + + Task> GetListAsync(GetAuthorListDto input); + + Task CreateAsync(CreateAuthorDto input); + + Task UpdateAsync(Guid id, UpdateAuthorDto input); + + Task DeleteAsync(Guid id); + } +} +```` + +> You can follow the [web application development tutorial](../../Tutorials/Part-1.md) to learn how to create [application services](../../Application-Services.md), expose them as [HTTP APIs](../../API/Auto-API-Controllers.md) and consume from the JavaScript code as a complete example. + +You can call any of the methods just like calling a JavaScript function. The JavaScript function has the identical function **name**, **parameters** and the **return value** with the C# method. + +**Example: Get the authors list** + +````js +acme.bookStore.authors.author.getList({ + maxResultCount: 10 +}).then(function(result){ + console.log(result.items); +}); +```` + +**Example: Delete an author** + +```js +acme.bookStore.authors.author + .delete('7245a066-5457-4941-8aa7-3004778775f0') //Get id from somewhere! + .then(function() { + abp.notify.info('Successfully deleted!'); + }); +``` + +## AJAX Details + +Dynamic JavaScript client proxy functions use the [abp.ajax](JavaScript-API/Ajax.md) under the hood. So, you have the same benefits like **automatic error handling**. Also, you can fully control the AJAX call by providing the options. + +### The Return Value + +Every function returns a [Deferred object](https://api.jquery.com/category/deferred-object/). That means you can chain with `then` to get the result, `catch` to handle the error, `always` to perform an action once the operation completes (success or failed). + +### AJAX Options + +Every function gets an additional **last parameter** after your own parameters. The last parameter is called as `ajaxParams`. It is an object that overrides the AJAX options. + +**Example: Set `type` and `dataType` AJAX options** + +````js +acme.bookStore.authors.author + .delete('7245a066-5457-4941-8aa7-3004778775f0', { + type: 'POST', + dataType: 'xml' + }) + .then(function() { + abp.notify.info('Successfully deleted!'); + }); +```` + +See the [jQuery.ajax](https://api.jquery.com/jQuery.ajax/) documentation for all the available options. + +## Service Proxy Script Endpoint + +The magic is done by the `/Abp/ServiceProxyScript` endpoint defined by the ABP Framework and automatically added to the layout. You can visit this endpoint in your application to see the client proxy function definitions. This script file is automatically generated by the ABP Framework based on the server side method definitions and the related HTTP endpoint details. + +## See Also + +* [Web Application Development Tutorial](../../Tutorials/Part-1.md) +* [Auto API Controllers](../../API/Auto-API-Controllers.md) +* [Dynamic C# API Client Proxies](../../API/Dynamic-CSharp-API-Clients.md) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Layout-Hooks.md b/docs/en/UI/AspNetCore/Layout-Hooks.md index 7039749142..168454a7c2 100644 --- a/docs/en/UI/AspNetCore/Layout-Hooks.md +++ b/docs/en/UI/AspNetCore/Layout-Hooks.md @@ -1,4 +1,4 @@ -# ASP.NET Core MVC / Razor Pages Layout Hooks +# ASP.NET Core MVC / Razor Pages: Layout Hooks ABP Framework theming system places the page layout into the [theme](Theming.md) NuGet packages. That means the final application doesn't include a `Layout.cshtml`, so you can't directly change the layout code to customize it. diff --git a/docs/en/UI/AspNetCore/Libraries/DatatablesNet.md b/docs/en/UI/AspNetCore/Libraries/DatatablesNet.md deleted file mode 100644 index a5a66e9e19..0000000000 --- a/docs/en/UI/AspNetCore/Libraries/DatatablesNet.md +++ /dev/null @@ -1,3 +0,0 @@ -# ABP Datatables.Net Integration for ASP.NET Core UI - -TODO \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Navigation-Menu.md b/docs/en/UI/AspNetCore/Navigation-Menu.md index ddbfbbd857..13a6e1678c 100644 --- a/docs/en/UI/AspNetCore/Navigation-Menu.md +++ b/docs/en/UI/AspNetCore/Navigation-Menu.md @@ -83,7 +83,7 @@ Here, a few notes on the menu contributors; There are more options of a menu item (the constructor of the `ApplicationMenuItem` class). Here, the list of all available options; -* `name` (`string`, required): The unique name of the menu item. +* `name` (`string`, required): The **unique name** of the menu item. * `displayName` (`string`, required): Display name/text of the menu item. You can [localize](../../Localization.md) this as shown before. * `url` (`string`): The URL of the menu item. * `icon` (`string`): An icon name. Free [Font Awesome](https://fontawesome.com/) icon classes are supported out of the box. Example: `fa fa-book`. You can use any CSS font icon class as long as you include the necessary CSS files to your application. diff --git a/docs/en/UI/AspNetCore/Overall.md b/docs/en/UI/AspNetCore/Overall.md new file mode 100644 index 0000000000..a499cd93a3 --- /dev/null +++ b/docs/en/UI/AspNetCore/Overall.md @@ -0,0 +1,159 @@ +# ASP.NET Core MVC / Razor Pages UI + +## Introduction + +ABP Framework provides a convenient and comfortable way of creating web applications using the ASP.NET Core MVC / Razor Pages as the User Interface framework. + +> ABP doesn't offer a new/custom way of UI development. You can continue to use your current skills to create the UI. However, it offers a lot of features to make your development easier and have a more maintainable code base. + +### MVC vs Razor Pages + +ASP.NET Core provides two models for UI development: + +* **[MVC (Model-View-Controller)](https://docs.microsoft.com/en-us/aspnet/core/mvc/)** is the classic way that exists from the version 1.0. This model can be used to create UI pages/components and HTTP APIs. +* **[Razor Pages](https://docs.microsoft.com/en-us/aspnet/core/razor-pages/)** was introduced with the ASP.NET Core 2.0 as a new way to create web pages. + +**ABP Framework supports both** of the MVC and the Razor Pages models. However, it is suggested to create the **UI pages with Razor Pages** approach and use the **MVC model to build HTTP APIs**. So, all the pre-build modules, samples and the documentation is based on the Razor Pages for the UI development, while you can always apply the MVC pattern to create your own pages. + +### Modularity + +[Modularity](../../Module-Development-Basics.md) is one of the key goals of the ABP Framework. It is not different for the UI; It is possible to develop modular applications and reusable application modules with isolated and reusable UI pages and components. + +The [application startup template](../../Startup-Templates/Application.md) comes with some application modules pre-installed. These modules have their own UI pages embedded into their own NuGet packages. You don't see their code in your solution, but they work as expected on runtime. + +## Theme System + +ABP Framework provides a complete [Theming](Theming.md) system with the following goals: + +* Reusable [application modules](../../Modules/Index.md) are developed **theme-independent**, so they can work with any UI theme. +* UI theme is **decided by the final application**. +* The theme is distributed via NuGet/NPM packages, so it is **easily upgradable**. +* The final application can **customize** the selected theme. + +### Current Themes + +Currently, two themes are **officially provided**: + +* The [Basic Theme](Basic-Theme.md) is the minimalist theme with the plain Bootstrap style. It is **open source and free**. +* The [Lepton Theme](https://commercial.abp.io/themes) is a **commercial** theme developed by the core ABP team and is a part of the [ABP Commercial](https://commercial.abp.io/) license. + +There are also some community-driven themes for the ABP Framework (you can search on the web). + +### Base Libraries + +There are a set of standard JavaScript/CSS libraries that comes pre-installed and supported by all the themes: + +- [Twitter Bootstrap](https://getbootstrap.com/) as the fundamental HTML/CSS framework. +- [JQuery](https://jquery.com/) for DOM manipulation. +- [DataTables.Net](https://datatables.net/) for data grids. +- [JQuery Validation](https://jqueryvalidation.org/) for client side & [unobtrusive](https://github.com/aspnet/jquery-validation-unobtrusive) validation +- [FontAwesome](https://fontawesome.com/) as the fundamental CSS font library. +- [SweetAlert](https://sweetalert.js.org/) to show fancy alert message and confirmation dialogs. +- [Toastr](https://github.com/CodeSeven/toastr) to show toast notifications. +- [Lodesh](https://lodash.com/) as a utility library. +- [Luxon](https://moment.github.io/luxon/) for date/time operations. +- [JQuery Form](https://github.com/jquery-form/form) for AJAX forms. +- [bootstrap-datepicker](https://github.com/uxsolutions/bootstrap-datepicker) to show date pickers. +- [Select2](https://select2.org/) for better select/combo boxes. +- [Timeago](http://timeago.yarp.com/) to show automatically updating fuzzy timestamps. +- [malihu-custom-scrollbar-plugin](https://github.com/malihu/malihu-custom-scrollbar-plugin) for custom scrollbars. + +You can use these libraries directly in your applications, without needing to manually import your page. + +### Layouts + +The themes provide the standard layouts. So, you have responsive layouts with the standard features already implemented. The screenshot below has taken from the Application Layout of the [Basic Theme](Basic-Theme.md): + +![basic-theme-application-layout](../../images/basic-theme-application-layout.png) + +See the [Theming](Theming.md) document for more layout options and other details. + +### Layout Parts + +A typical layout consists of multiple parts. The [Theming](Theming.md) system provides [menus](Navigation-Menu.md), [toolbars](Toolbars.md), [layout hooks](Layout-Hooks.md) and more to dynamically control the layout by your application and the modules you are using. + +## Features + +This section highlights some of the features provided by the ABP Framework for the ASP.NET Core MVC / Razor Pages UI. + +### Dynamic JavaScript API Client Proxies + +Dynamic JavaScript API Client Proxy system allows you to consume your server side HTTP APIs from your JavaScript client code, just like calling local functions. + +**Example: Get a list of authors from the server** + +````js +acme.bookStore.authors.author.getList({ + maxResultCount: 10 +}).then(function(result){ + console.log(result.items); +}); +```` + +`acme.bookStore.authors.author.getList` is an auto-generated function that internally makes an AJAX call to the server. + +See the [Dynamic JavaScript API Client Proxies](Dynamic-JavaScript-Proxies.md) document for more. + +### Bootstrap Tag Helpers + +ABP makes it easier & type safe to write Bootstrap HTML. + +**Example: Render a Bootstrap modal** + +````html + + + + Woohoo, you're reading this text in a modal! + + + +```` + +See the [Tag Helpers](Tag-Helpers/Index.md) document for more. + +### Forms & Validation + +ABP provides `abp-dynamic-form` and `abp-input` tag helpers to dramatically simplify to create a fully functional form that automates localization, validation and AJAX submission. + +**Example: Use `abp-dynamic-form` to create a complete form based on a model** + +````html + +```` + +See the [Forms & Validation](Forms-Validation.md) document for details. + +### Bundling & Minification / Client Side Libraries + +ABP provides a flexible and modular Bundling & Minification system to create bundles and minify style/script files on runtime. + +````html + + + + + + +```` + +Also, Client Side Package Management system offers a modular and consistent way of managing 3rd-party library dependencies. + +See the [Bundling & Minification](Bundling-Minification.md) and [Client Side Package Management](Client-Side-Package-Management.md) documents. + +### JavaScript APIs + +[JavaScript APIs](JavaScript-API/Index.md) provides a strong abstractions to the server side localization, settings, permissions, features... etc. They also provide a simple way to show messages and **notifications** to the user. + +### Modals, Alerts, Widgets and More + +ABP Framework provides a lot of built-in solutions to common application requirements; + +* [Widget System](Widgets.md) can be used to create reusable widgets & create dashboards. +* [Page Alerts](Page-Alerts.md) makes it easy to show alerts to the user. +* [Modal Manager](Modals.md) provides a simple way to build and use modals. +* [Data Tables](Data-Tables.md) integration makes straightforward to create data grids. + +## Customization + +There are a lot of ways to customize the theme and the UIs of the pre-built modules. You can override components, pages, static resources, bundles and more. See the [User Interface Customization Guide](Customization-User-Interface.md). \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Page-Header.md b/docs/en/UI/AspNetCore/Page-Header.md new file mode 100644 index 0000000000..f6ec3074de --- /dev/null +++ b/docs/en/UI/AspNetCore/Page-Header.md @@ -0,0 +1,58 @@ +# ASP.NET Core MVC / Razor Pages: Page Header + +`IPageLayout` service can be used to set the page title, selected menu item and the breadcrumb items for a page. It's the [theme](Theming.md)'s responsibility to render these on the page. + +## IPageLayout + +`IPageLayout` can be injected in any page/view to set the page header properties. + +### Page Title + +Page Title can be set as shown in the example below: + +````csharp +@inject IPageLayout PageLayout +@{ + PageLayout.Content.Title = "Book List"; +} +```` + +* The Page Title is set to the HTML `title` tag (in addition to the [brand/application name](Branding.md)). +* The theme may render the Page Title before the Page Content (not implemented by the Basic Theme). + +### Breadcrumb + +> **The [Basic Theme](Basic-Theme.md) currently doesn't implement the breadcrumbs.** + +Breadcrumb items can be added to the `PageLayout.Content.BreadCrumb`. + +**Example: Add Language Management to the breadcrumb items.** + +```` +PageLayout.Content.BreadCrumb.Add("Language Management"); +```` + +The theme then renders the breadcrumb. An example render result can be: + +![breadcrumbs-example](../../images/breadcrumbs-example.png) + +* The Home icon is rendered by default. Set `PageLayout.Content.BreadCrumb.ShowHome` to `false` to hide it. +* Current Page name (got from the `PageLayout.Content.Title`) is added as the last by default. Set `PageLayout.Content.BreadCrumb.ShowCurrent` to `false` to hide it. + +Any item that you add is inserted between Home and Current Page items. You can add as many item as you need. `BreadCrumb.Add(...)` method gets three parameters: + +* `text`: The text to show for the breadcrumb item. +* `url` (optional): A URL to navigate to, if the user clicks to the breadcrumb item. +* `icon` (optional): An icon class (like `fas fa-user-tie` for Font-Awesome) to show with the `text`. + +### The Selected Menu Item + +> **The [Basic Theme](Basic-Theme.md) currently doesn't implement the selected menu item since it is not applicable to the top menu which is the only option for the Basic Theme for now.** + +You can set the Menu Item name related to this page: + +````csharp +PageLayout.Content.MenuItemName = "BookStore.Books"; +```` + +Menu item name should match a unique menu item name defined using the [Navigation / Menu](Navigation-Menu.md) system. In this case, it is expected from the theme to make the menu item "active" in the main menu. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Index.md b/docs/en/UI/AspNetCore/Tag-Helpers/Index.md index 54c37af688..f85edb5142 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Index.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Index.md @@ -13,7 +13,7 @@ ABP Framework also adds some **useful features** to the standard bootstrap compo Here, the list of components those are wrapped by the ABP Framework: * [Alerts](Alerts.md) -* [Badges](Badges.md)) +* [Badges](Badges.md) * [Blockquote](Blockquote.md) * [Borders](Borders.md) * [Breadcrumb](Breadcrumb.md) @@ -42,4 +42,4 @@ Here, the list of components those are wrapped by the ABP Framework: ## Dynamic Forms -**Abp Tag helpers** offer an easy way to build complete **Bootstrap forms**. See [Dynamic Forms documentation](Dynamic-Forms.md). \ No newline at end of file +**Abp Tag helpers** offer an easy way to build complete **Bootstrap forms**. See [Dynamic Forms documentation](Dynamic-Forms.md). diff --git a/docs/en/UI/AspNetCore/Theming.md b/docs/en/UI/AspNetCore/Theming.md index 69e6b33769..8c680973b8 100644 --- a/docs/en/UI/AspNetCore/Theming.md +++ b/docs/en/UI/AspNetCore/Theming.md @@ -406,6 +406,8 @@ The Basic Theme doesn't implement this service, but the Lepton Theme implements: ![breadcrumbs-example](../../images/breadcrumbs-example.png) +See the [Page Header](Page-Header.md) document for more. + #### Tenant Switch The Account Layout should allow the user to switch the current tenant if the application is multi-tenant and the tenant was resolved from the cookies. See the [Basic Theme Account Layout](https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Layouts/Account.cshtml) as an example implementation. diff --git a/docs/en/UI/AspNetCore/Toolbars.md b/docs/en/UI/AspNetCore/Toolbars.md index cc3bcd95be..3f1185f61b 100644 --- a/docs/en/UI/AspNetCore/Toolbars.md +++ b/docs/en/UI/AspNetCore/Toolbars.md @@ -1,3 +1,74 @@ -# Toolbars +# ASP.NET Core MVC / Razor Pages UI: Toolbars -TODO \ No newline at end of file +The Toolbar system is used to define **toolbars** on the user interface. Modules (or your application) can add **items** to a toolbar, then the [theme](Theming.md) renders the toolbar on the **layout**. + +There is only one **standard toolbar** named "Main" (defined as a constant: `StandardToolbars.Main`). The [Basic Theme](Basic-Theme) renders the main toolbar as shown below: + +![bookstore-toolbar-highlighted](../../images/bookstore-toolbar-highlighted.png) + +In the screenshot above, there are two items added to the main toolbar: Language switch component & user menu. You can add your own items here. + +## Example: Add a Notification Icon + +In this example, we will add a **notification (bell) icon** to the left of the language switch item. A item in the toolbar should be a **view component**. So, first, create a new view component in your project: + +![bookstore-notification-view-component](../../images/bookstore-notification-view-component.png) + +**NotificationViewComponent.cs** + +````csharp +public class NotificationViewComponent : AbpViewComponent +{ + public async Task InvokeAsync() + { + return View("/Pages/Shared/Components/Notification/Default.cshtml"); + } +} +```` + +**Default.cshtml** + +````xml +
+ +
+```` + +Now, we can create a class implementing the `IToolbarContributor` interface: + +````csharp +public class MyToolbarContributor : IToolbarContributor +{ + public Task ConfigureToolbarAsync(IToolbarConfigurationContext context) + { + if (context.Toolbar.Name == StandardToolbars.Main) + { + context.Toolbar.Items + .Insert(0, new ToolbarItem(typeof(NotificationViewComponent))); + } + + return Task.CompletedTask; + } +} +```` + +This class adds the `NotificationViewComponent` as the first item in the `Main` toolbar. + +Finally, you need to add this contributor to the `AbpToolbarOptions`, in the `ConfigureServices` of your [module](../../Module-Development-Basics.md): + +````csharp +Configure(options => +{ + options.Contributors.Add(new MyToolbarContributor()); +}); +```` + +That's all, you will see the notification icon on the toolbar when you run the application: + +![bookstore-notification-icon-on-toolbar](../../images/bookstore-notification-icon-on-toolbar.png) + +`NotificationViewComponent` in this sample simply returns a view without any data. In real life, you probably want to **query database** (or call an HTTP API) to get notifications and pass to the view. If you need, you can add a `JavaScript` or `CSS` file to the global [bundle](Bundling-Minification.md) for your toolbar item. + +## IToolbarManager + +`IToolbarManager` is used to render the toolbar. It returns the toolbar items by a toolbar name. This is generally used by the [themes](Theming.md) to render the toolbar on the layout. \ No newline at end of file diff --git a/docs/en/UI/Blazor/Localization.md b/docs/en/UI/Blazor/Localization.md index e6cf761ce3..23b31a5a24 100644 --- a/docs/en/UI/Blazor/Localization.md +++ b/docs/en/UI/Blazor/Localization.md @@ -1,3 +1,3 @@ -# Blazor UI: Localization +# Blazor: Localization Blazor applications can reuse the same `IStringLocalizer` service that is explained in the [localization document](../../Localization.md). All the localization resources and texts available in the server side are usable in the Blazor application. \ No newline at end of file diff --git a/docs/en/UI/Blazor/Message.md b/docs/en/UI/Blazor/Message.md new file mode 100644 index 0000000000..8373bd1d82 --- /dev/null +++ b/docs/en/UI/Blazor/Message.md @@ -0,0 +1,3 @@ +# Blazor: UI Message Service + +TODO \ No newline at end of file diff --git a/docs/en/UI/Blazor/Notification.md b/docs/en/UI/Blazor/Notification.md new file mode 100644 index 0000000000..ef8945347b --- /dev/null +++ b/docs/en/UI/Blazor/Notification.md @@ -0,0 +1,3 @@ +# Blazor: Notification + +`UiNotificationService` is used to show toastr style notifications on the user interface. The documentation is in progress... \ No newline at end of file diff --git a/docs/en/UI/Blazor/Overall.md b/docs/en/UI/Blazor/Overall.md index 74c469e3c4..8af0e2fd0d 100644 --- a/docs/en/UI/Blazor/Overall.md +++ b/docs/en/UI/Blazor/Overall.md @@ -1,6 +1,8 @@ # Blazor UI for the ABP Framework -The detailed documentation for the Blazor UI is in progress. However, you can follow the documents below to start with the Blazor UI today. +## Getting Started + +You can follow the documents below to start with the ABP Framework and the Blazor UI: * [Get started](https://docs.abp.io/en/abp/latest/Getting-Started?UI=Blazor) with the Blazor UI for the ABP Framework. * [Web Application Development Tutorial](https://docs.abp.io/en/abp/latest/Tutorials/Part-1?UI=Blazor) with the Blazor UI. \ No newline at end of file diff --git a/docs/en/UI/Blazor/Services/Notification.md b/docs/en/UI/Blazor/Services/Notification.md deleted file mode 100644 index 0e5ababa0e..0000000000 --- a/docs/en/UI/Blazor/Services/Notification.md +++ /dev/null @@ -1,3 +0,0 @@ -# Blazor UI Notification - -`UiNotificationService` is used to show toastr style notifications on the user interface. The documentation is in progress... \ No newline at end of file diff --git a/docs/en/UI/Blazor/Settings.md b/docs/en/UI/Blazor/Settings.md index 276462c411..ad03dce5e2 100644 --- a/docs/en/UI/Blazor/Settings.md +++ b/docs/en/UI/Blazor/Settings.md @@ -1,3 +1,3 @@ -# Blazor UI: Settings +# Blazor: Settings Blazor applications can reuse the same `ISettingProvider` service that is explained in the [settings document](../../Settings.md). \ No newline at end of file diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 1f4e77541f..838e41d5be 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -404,8 +404,12 @@ "text": "User Interface", "items": [ { - "text": "ASP.NET Core MVC / Razor Pages", + "text": "MVC / Razor Pages", "items": [ + { + "text": "Overall", + "path": "UI/AspNetCore/Overall.md" + }, { "text": "Navigation / Menus", "path": "UI/AspNetCore/Navigation-Menu.md" @@ -418,10 +422,18 @@ "text": "Modals", "path": "UI/AspNetCore/Modals.md" }, + { + "text": "Data Tables", + "path": "UI/AspNetCore/Data-Tables.md" + }, { "text": "Page Alerts", "path": "UI/AspNetCore/Page-Alerts.md" }, + { + "text": "Dynamic JavaScript API Client Proxies", + "path": "UI/AspNetCore/Dynamic-JavaScript-Proxies.md" + }, { "text": "Client Side Package Management", "path": "UI/AspNetCore/Client-Side-Package-Management.md" @@ -448,13 +460,31 @@ "text": "Widgets", "path": "UI/AspNetCore/Widgets.md" }, + { + "text": "Toolbars", + "path": "UI/AspNetCore/Toolbars.md" + }, + { + "text": "Page Header", + "path": "UI/AspNetCore/Page-Header.md" + }, + { + "text": "Branding", + "path": "UI/AspNetCore/Branding.md" + }, { "text": "Layout Hooks", "path": "UI/AspNetCore/Layout-Hooks.md" }, { "text": "Theming", - "path": "UI/AspNetCore/Theming.md" + "path": "UI/AspNetCore/Theming.md", + "items": [ + { + "text": "The Basic Theme", + "path": "UI/AspNetCore/Basic-Theme.md" + } + ] }, { "text": "JavaScript API", @@ -534,8 +564,20 @@ "text": "Services", "items": [ { - "text": "Overall", - "path": "UI/Blazor/Services/Notification.md" + "text": "Localization", + "path": "UI/Blazor/Localization.md" + }, + { + "text": "Settings", + "path": "UI/Blazor/Settings.md" + }, + { + "text": "Notification", + "path": "UI/Blazor/Notification.md" + }, + { + "text": "Message", + "path": "UI/Blazor/Message.md" } ] } diff --git a/docs/en/images/branding-appname.png b/docs/en/images/branding-appname.png new file mode 100644 index 0000000000..9300ad2c7f Binary files /dev/null and b/docs/en/images/branding-appname.png differ diff --git a/docs/en/images/branding-nobrand.png b/docs/en/images/branding-nobrand.png new file mode 100644 index 0000000000..1fdf78472b Binary files /dev/null and b/docs/en/images/branding-nobrand.png differ diff --git a/docs/en/images/datatables-custom-render-date.png b/docs/en/images/datatables-custom-render-date.png new file mode 100644 index 0000000000..344237aea7 Binary files /dev/null and b/docs/en/images/datatables-custom-render-date.png differ diff --git a/docs/en/images/datatables-default-render-date.png b/docs/en/images/datatables-default-render-date.png new file mode 100644 index 0000000000..430c889d2f Binary files /dev/null and b/docs/en/images/datatables-default-render-date.png differ diff --git a/docs/en/images/datatables-example.png b/docs/en/images/datatables-example.png new file mode 100644 index 0000000000..ef3e74576b Binary files /dev/null and b/docs/en/images/datatables-example.png differ diff --git a/docs/en/images/datatables-row-actions-confirmation.png b/docs/en/images/datatables-row-actions-confirmation.png new file mode 100644 index 0000000000..9be8433f9c Binary files /dev/null and b/docs/en/images/datatables-row-actions-confirmation.png differ diff --git a/docs/en/images/datatables-row-actions-icon.png b/docs/en/images/datatables-row-actions-icon.png new file mode 100644 index 0000000000..70111fc1ac Binary files /dev/null and b/docs/en/images/datatables-row-actions-icon.png differ diff --git a/docs/en/images/datatables-row-actions.png b/docs/en/images/datatables-row-actions.png new file mode 100644 index 0000000000..4eae0f098a Binary files /dev/null and b/docs/en/images/datatables-row-actions.png differ diff --git a/docs/en/images/example-global-styles.png b/docs/en/images/example-global-styles.png new file mode 100644 index 0000000000..04232aa62d Binary files /dev/null and b/docs/en/images/example-global-styles.png differ diff --git a/docs/zh-Hans/Application-Services.md b/docs/zh-Hans/Application-Services.md index 6bb18daa37..e68217a94d 100644 --- a/docs/zh-Hans/Application-Services.md +++ b/docs/zh-Hans/Application-Services.md @@ -353,12 +353,12 @@ public class DistrictAppService { } - protected override async Task DeleteByIdAsync(DistrictKey id) + protected async override Task DeleteByIdAsync(DistrictKey id) { await Repository.DeleteAsync(d => d.CityId == id.CityId && d.Name == id.Name); } - protected override async Task GetEntityByIdAsync(DistrictKey id) + protected async override Task GetEntityByIdAsync(DistrictKey id) { return await AsyncQueryableExecuter.FirstOrDefaultAsync( Repository.Where(d => d.CityId == id.CityId && d.Name == id.Name) diff --git a/docs/zh-Hans/Authorization.md b/docs/zh-Hans/Authorization.md index 96caae1404..db0dfdb654 100644 --- a/docs/zh-Hans/Authorization.md +++ b/docs/zh-Hans/Authorization.md @@ -343,7 +343,7 @@ public class SystemAdminPermissionValueProvider : PermissionValueProvider public override string Name => "SystemAdmin"; - public override async Task + public async override Task CheckAsync(PermissionValueCheckContext context) { if (context.Principal?.FindFirst("User_Type")?.Value == "SystemAdmin") diff --git a/docs/zh-Hans/Background-Workers.md b/docs/zh-Hans/Background-Workers.md index 1daedde384..26bafed2da 100644 --- a/docs/zh-Hans/Background-Workers.md +++ b/docs/zh-Hans/Background-Workers.md @@ -54,7 +54,7 @@ public class PassiveUserCheckerWorker : AsyncPeriodicBackgroundWorkerBase Timer.Period = 600000; //10 minutes } - protected override async Task DoWorkAsync( + protected async override Task DoWorkAsync( PeriodicBackgroundWorkerContext workerContext) { Logger.LogInformation("Starting: Setting status of inactive users..."); diff --git a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/Post.md b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/Post.md index 0f97391eb8..bc448179cc 100644 --- a/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/Post.md +++ b/docs/zh-Hans/Blog-Posts/2020-05-08 v2_7_Release/Post.md @@ -121,7 +121,7 @@ ABP框架的[异常处理系统](https://docs.abp.io/en/abp/latest/Exception-Han ````csharp public class MyExceptionSubscriber : ExceptionSubscriber { - public override async Task HandleAsync(ExceptionNotificationContext context) + public async override Task HandleAsync(ExceptionNotificationContext context) { //TODO... } diff --git a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md index 21245cec16..2e950d4355 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md @@ -76,7 +76,7 @@ public class MyIdentityUserAppService : IdentityUserAppService { } - public override async Task CreateAsync(IdentityUserCreateDto input) + public async override Task CreateAsync(IdentityUserCreateDto input) { if (input.PhoneNumber.IsNullOrWhiteSpace()) { @@ -109,33 +109,33 @@ public class MyIdentityUserManager : IdentityUserManager { public MyIdentityUserManager( IdentityUserStore store, - IIdentityRoleRepository roleRepository, + IIdentityRoleRepository roleRepository, IIdentityUserRepository userRepository, - IOptions optionsAccessor, + IOptions optionsAccessor, IPasswordHasher passwordHasher, - IEnumerable> userValidators, - IEnumerable> passwordValidators, + IEnumerable> userValidators, + IEnumerable> passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, - ILogger logger, - ICancellationTokenProvider cancellationTokenProvider) : + ILogger logger, + ICancellationTokenProvider cancellationTokenProvider) : base(store, roleRepository, - userRepository, - optionsAccessor, - passwordHasher, - userValidators, + userRepository, + optionsAccessor, + passwordHasher, + userValidators, passwordValidators, - keyNormalizer, - errors, - services, - logger, + keyNormalizer, + errors, + services, + logger, cancellationTokenProvider) { } - public override async Task CreateAsync(IdentityUser user) + public async override Task CreateAsync(IdentityUser user) { if (user.PhoneNumber.IsNullOrWhiteSpace()) { @@ -251,8 +251,8 @@ ObjectExtensionManager.Instance .AddOrUpdateProperty( new[] { - typeof(IdentityUserDto), - typeof(IdentityUserCreateDto), + typeof(IdentityUserDto), + typeof(IdentityUserCreateDto), typeof(IdentityUserUpdateDto) }, "SocialSecurityNumber" diff --git a/docs/zh-Hans/Entity-Framework-Core-Migrations.md b/docs/zh-Hans/Entity-Framework-Core-Migrations.md index c6f1086540..266c0f46b0 100644 --- a/docs/zh-Hans/Entity-Framework-Core-Migrations.md +++ b/docs/zh-Hans/Entity-Framework-Core-Migrations.md @@ -235,7 +235,7 @@ public static class BackgroundJobsDbContextModelCreatingExtensions } ```` -此u还获取选项用于更改此模块的数据库表前缀和模式,但在这里并不重要. +此扩展方法还提供了选项用于更改此模块的数据库表前缀和模式,但在这里并不重要. 最终的应用程序在 `MigrationsDbContext` 类中调用扩展方法, 因此它可以确定此 `MigrationsDbContext` 维护的数据库中包含哪些模块. 如果要创建第二个数据库并将某些模块表移动到第二个数据库,则需要有第二个`MigrationsDbContext` 类,该类仅调用相关模块的扩展方法. 下一部分将详细介绍该主题. @@ -883,4 +883,4 @@ public class BookStoreDbMigratorModule : AbpModule ## 结论 -本文档说明了如何拆分数据库以及管理Entity Framework Core解决方案的数据库迁移. 简而言之,你需要为每个不同的数据库创建一个单独的迁移项目. \ No newline at end of file +本文档说明了如何拆分数据库以及管理Entity Framework Core解决方案的数据库迁移. 简而言之,你需要为每个不同的数据库创建一个单独的迁移项目. diff --git a/docs/zh-Hans/Entity-Framework-Core.md b/docs/zh-Hans/Entity-Framework-Core.md index 211ec4d65f..b5252b86c0 100644 --- a/docs/zh-Hans/Entity-Framework-Core.md +++ b/docs/zh-Hans/Entity-Framework-Core.md @@ -263,7 +263,7 @@ context.Services.AddAbpDbContext(options => 在你想要覆盖默认仓储方法对其自定义时,这一点非常需要. 例如你可能希望自定义`DeleteAsync`方法覆盖默认实现 ````csharp -public override async Task DeleteAsync( +public async override Task DeleteAsync( Guid id, bool autoSave = false, CancellationToken cancellationToken = default) @@ -365,7 +365,7 @@ public class MyRepositoryBase : EfCoreRepository where TEntity : class, IEntity { - public MyRepositoryBase(IDbContextProvider dbContextProvider) + public MyRepositoryBase(IDbContextProvider dbContextProvider) : base(dbContextProvider) { } @@ -447,4 +447,4 @@ context.Services.AddAbpDbContext(options => ## 另请参阅 -* [实体](Entities.md) \ No newline at end of file +* [实体](Entities.md) diff --git a/docs/zh-Hans/Getting-Started-AspNetCore-Application.md b/docs/zh-Hans/Getting-Started-AspNetCore-Application.md index 0334609bd3..be5e50c2bd 100644 --- a/docs/zh-Hans/Getting-Started-AspNetCore-Application.md +++ b/docs/zh-Hans/Getting-Started-AspNetCore-Application.md @@ -1,194 +1,160 @@ -## 在AspNet Core MVC Web Application中使用ABP - -本教程将介绍如何开始以最少的依赖关系开始使用ABP开发. - -通常情况下你需要下载一个 ***[启动模板](Getting-Started-AspNetCore-MVC-Template.md)*** - -### 创建一个新项目 - -1. 使用Visual Studio创建一个空的AspNet Core Web Application: - -![](images/create-new-aspnet-core-application.png) - -2. 选择空模板 - -![](images/select-empty-web-application.png) - -你可以选择其它模板,但是我想要从一个简洁的项目演示它. - -### 安装 Volo.Abp.AspNetCore.Mvc 包 - -Volo.Abp.AspNetCore.Mvc是ABP集成AspNet Core MVC的包,请安装它到你项目中: - -```` -Install-Package Volo.Abp.AspNetCore.Mvc -```` - -### 创建ABP模块 - -ABP是一个模块化框架,它需要一个**启动 (根) 模块**继承自``AbpModule``: - -````C# -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.Hosting; -using Volo.Abp; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Modularity; - -namespace BasicAspNetCoreApplication -{ - [DependsOn(typeof(AbpAspNetCoreMvcModule))] - public class AppModule : AbpModule - { - public override void OnApplicationInitialization( - ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - else - { - app.UseExceptionHandler("/Error"); - } - - app.UseStaticFiles(); - app.UseRouting(); - app.UseConfiguredEndpoints(); - } - } -} -```` - -``AppModule`` 是应用程序启动模块的好名称(建议你的启动模块也使用这个命名). - -ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` (模块存在于Volo.Abp.AspNetCore.Mvc包中). 安装新的ABP的包后添加``DependsOn``是很常见的做法. - -我们在此模块类中配置ASP.NET Core管道,而不是Startup类中. - -### 启动类 - -接下来修改启动类集成ABP模块系统: - -````C# -using System; -using Microsoft.AspNetCore.Builder; -using Microsoft.Extensions.DependencyInjection; - -namespace BasicAspNetCoreApplication -{ - public class Startup - { - public IServiceProvider ConfigureServices(IServiceCollection services) - { - services.AddApplication(); - - return services.BuildServiceProviderFromFactory(); - } - - public void Configure(IApplicationBuilder app) - { - app.InitializeApplication(); - } - } -} - -```` - -修改``ConfigureServices``方法的返回值为``IServiceProvider``(默认是``void``).这个修改允许我们替换AspNet Core的依赖注入框架. (参阅下面的Autofac集成部分). ``services.AddApplication()``添加了所有模块中定义的全部服务. - -``app.InitializeApplication()`` 调用 ``Configure`` 方法初始化并启动应用程序 - -### Hello World! - -上面的应用程序没有什么功能,让我们创建一个MVC控制器实现一些功能: - -````C# -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace BasicAspNetCoreApplication.Controllers -{ - public class HomeController : AbpController - { - public IActionResult Index() - { - return Content("Hello World!"); - } - } -} - -```` - -如果运行这个应用程序你会在页面中看到"Hello World!". - -Derived ``HomeController`` from ``AbpController`` instead of standard ``Controller`` class. This is not required, but ``AbpController`` class has useful base properties and methods to make your development easier. - -从``AbpController``派生``HomeController`` 而不是继承自``Controller``类.虽然这不是强制要求,但是``AbpController``类有很多有用的有属性和方法,使你的开发更容易. - -### 使用 Autofac 依赖注入框架 - -虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但Autofac提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的. - -用Autofac取代AspNet Core的DI系统并集成到ABP非常简单. - -1. 安装 Volo.Abp.Autofac 包 - -```` -Install-Package Volo.Abp.Autofac -```` - -2. 添加 ``AbpAutofacModule`` 依赖 - -````C# -[DependsOn(typeof(AbpAspNetCoreMvcModule))] -[DependsOn(typeof(AbpAutofacModule))] // 在模块上添加依赖AbpAutofacModule -public class AppModule : AbpModule -{ - ... -} -```` - -3. 修改在``Startup``类下的``services.AddApplication();``如下所示: - -````C# -services.AddApplication(options => -{ - options.UseAutofac(); // 集成 Autofac -}); -```` - -4. 更新 `Program.cs`代码, 不再使用`WebHost.CreateDefaultBuilder()`方法(因为它使用默认的DI容器): - - ````csharp -public class Program -{ - public static void Main(string[] args) - { - /* - https://github.com/aspnet/AspNetCore/issues/4206#issuecomment-445612167 - CurrentDirectoryHelpers 文件位于: \framework\src\Volo.Abp.AspNetCore.Mvc\Microsoft\AspNetCore\InProcess\CurrentDirectoryHelpers.cs - 当升级到ASP.NET Core 3.0的时候将会删除这个类. - */ - CurrentDirectoryHelpers.SetCurrentDirectory(); - - BuildWebHostInternal(args).Run(); - } - public static IWebHost BuildWebHostInternal(string[] args) => - new WebHostBuilder() - .UseKestrel() - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIIS() - .UseIISIntegration() - .UseStartup() - .Build(); -} -```` - - -### 源码 - -从[此处](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication)获取本教程中创建的示例项目的源代码. +# 在AspNet Core MVC Web Application中使用ABP + +本教程将介绍如何开始以最少的依赖关系开始使用ABP开发. + +通常情况下你需要下载一个 **[启动模板](Getting-Started-AspNetCore-MVC-Template.md)** + +## 创建一个新项目 + +1. 使用Visual Studio 2019 (16.4.0+)创建一个新的AspNet Core Web Application: + +![](images/create-new-aspnet-core-application-v2.png) + +2. 配置新的项目: + +![](images/select-empty-web-application-v2.png) + +3. 完成创建: + +![](images/create-aspnet-core-application.png) + + +## 安装 Volo.Abp.AspNetCore.Mvc 包 + +Volo.Abp.AspNetCore.Mvc是ABP集成AspNet Core MVC的包,请安装它到你项目中: + +```` +Install-Package Volo.Abp.AspNetCore.Mvc +```` + +## 创建ABP模块 + +ABP是一个模块化框架,它需要一个**启动 (根) 模块**继承自``AbpModule``: + +````C# +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.Hosting; +using Volo.Abp; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Modularity; + +namespace BasicAspNetCoreApplication +{ + [DependsOn(typeof(AbpAspNetCoreMvcModule))] + public class AppModule : AbpModule + { + public override void OnApplicationInitialization( + ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + app.UseExceptionHandler("/Error"); + } + + app.UseStaticFiles(); + app.UseRouting(); + app.UseConfiguredEndpoints(); + } + } +} +```` + +``AppModule`` 是应用程序启动模块的好名称. + +ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` (模块存在于[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)包中). 安装新的ABP的包后添加``DependsOn``是很常见的做法. + +我们在此模块类中配置ASP.NET Core管道,而不是Startup类中. + +### 启动类 + +接下来修改启动类集成ABP模块系统: + +````C# +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; + +namespace BasicAspNetCoreApplication +{ + public class Startup + { + public void ConfigureServices(IServiceCollection services) + { + services.AddApplication(); + } + + public void Configure(IApplicationBuilder app) + { + app.InitializeApplication(); + } + } +} + +```` + +``services.AddApplication()``添加了所有``AppModule``模块中定义的全部服务. + +``Configure``方法中的``app.InitializeApplication()``完成初始化并启动应用程序. + +## 运行应用程序! + +启动该应用,它将按预期运行. + +## 使用 Autofac 依赖注入框架 + +虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但[Autofac](https://autofac.org/)提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的. + +用Autofac取代AspNet Core的DI系统并集成到ABP非常简单. + +1. 安装 [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) 包 + +```` +Install-Package Volo.Abp.Autofac +```` + +2. 添加 ``AbpAutofacModule`` 依赖 + +````C# +[DependsOn(typeof(AbpAspNetCoreMvcModule))] +[DependsOn(typeof(AbpAutofacModule))] // 在模块上添加依赖AbpAutofacModule +public class AppModule : AbpModule +{ + ... +} +```` + +3. 修改``Program.cs``以使用Autofac: + +````C# +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Hosting; + +namespace BasicAspNetCoreApplication +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }) + .UseAutofac(); // 添加这一行 + } +} +```` + +## 源码 + +从[此处](https://github.com/abpframework/abp-samples/tree/master/BasicAspNetCoreApplication)获取本教程中创建的示例项目的源代码. diff --git a/docs/zh-Hans/How-To/Customize-SignIn-Manager.md b/docs/zh-Hans/How-To/Customize-SignIn-Manager.md index 73cbcd2ce7..eea0364e6e 100644 --- a/docs/zh-Hans/How-To/Customize-SignIn-Manager.md +++ b/docs/zh-Hans/How-To/Customize-SignIn-Manager.md @@ -38,7 +38,7 @@ public class CustomSignInManager : Microsoft.AspNetCore.Identity.SignInManager GetExternalLoginInfoAsync(string expectedXsrf = null) +public async override Task GetExternalLoginInfoAsync(string expectedXsrf = null) { var auth = await Context.AuthenticateAsync(Microsoft.AspNetCore.Identity.IdentityConstants.ExternalScheme); var items = auth?.Properties?.Items; diff --git a/docs/zh-Hans/MongoDB.md b/docs/zh-Hans/MongoDB.md index c90b9b5740..2ceeb1e00c 100644 --- a/docs/zh-Hans/MongoDB.md +++ b/docs/zh-Hans/MongoDB.md @@ -160,7 +160,7 @@ public interface IBookRepository : IRepository 实现`IBookRepository`接口的例子: ```csharp -public class BookRepository : +public class BookRepository : MongoDbRepository, IBookRepository { @@ -200,9 +200,9 @@ context.Services.AddMongoDbContext(options => 当你想**重写基础仓储方法**时,这一点尤为重要.例如,你想要重写`DeleteAsync`方法,以便更有效的删除实体: ```csharp -public override async Task DeleteAsync( - Guid id, - bool autoSave = false, +public async override Task DeleteAsync( + Guid id, + bool autoSave = false, CancellationToken cancellationToken = default) { //TODO: 自定义实现删除方法 @@ -338,4 +338,4 @@ context.Services.AddMongoDbContext(options => }); ``` -这个例子中,`OtherMongoDbContext`实现了`IBookStoreMongoDbContext`.这个特性允许你在发开的时候使用多个MongoDbContext(每个模块一个),但是运行的时候只能使有一个MongoDbContext(实现所有MongoDbContexts的所有接口) \ No newline at end of file +这个例子中,`OtherMongoDbContext`实现了`IBookStoreMongoDbContext`.这个特性允许你在发开的时候使用多个MongoDbContext(每个模块一个),但是运行的时候只能使有一个MongoDbContext(实现所有MongoDbContexts的所有接口) diff --git a/docs/zh-Hans/Tutorials/Part-1.md b/docs/zh-Hans/Tutorials/Part-1.md index 99a7e3d9fb..e459c8b960 100644 --- a/docs/zh-Hans/Tutorials/Part-1.md +++ b/docs/zh-Hans/Tutorials/Part-1.md @@ -84,7 +84,7 @@ namespace Acme.BookStore.Books } ```` -* ABP为实体提供了两个基本的基类: `AggregateRoot`和`Entity`. **Aggregate Root**是**[领域驱动设计](./Domain-Driven-Design.md)** 概念之一. 可以视为直接查询和处理的根实体(请参阅[实体文档](./Entities.md)). +* ABP为实体提供了两个基本的基类: `AggregateRoot`和`Entity`. **Aggregate Root**是[**领域驱动设计**](./Domain-Driven-Design.md) 概念之一. 可以视为直接查询和处理的根实体(请参阅[实体文档](./Entities.md)). * `Book`实体继承了`AuditedAggregateRoot`,`AuditedAggregateRoot`类在`AggregateRoot`类的基础上添加了一些审计属性(`CreationTime`, `CreatorId`, `LastModificationTime` 等). ABP框架自动为你管理这些属性. * `Guid`是`Book`实体的主键类型. @@ -185,7 +185,7 @@ namespace Acme.BookStore.EntityFrameworkCore ### 添加数据迁移 -启动模板使用[EF Core Code First Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/)创建和维护数据库架构. 打开菜单*工具 > NuGet包管理器*下的**程序包管理控制台 (PMC)**. +启动模板使用[EF Core Code First Migrations](https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/)创建和维护数据库架构. 打开菜单*工具 > NuGet包管理器*下的**程序包管理控制台 (PMC)**. ![Open Package Manager Console](images/bookstore-open-package-manager-console.png) @@ -201,7 +201,7 @@ Add-Migration "Created_Book_Entity" 在更新数据库之前,请阅读下面的部分了解如何将一些初始数据插入到数据库. -> 如果你使用其他IDE而不是Visual Studio, 你可以使用 [`dotnet-ef]`(https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli#create-a-migration) 工具. +> 如果你使用其他IDE而不是Visual Studio, 你可以使用 [`dotnet-ef`](https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli#create-a-migration) 工具. {{end}} @@ -262,7 +262,7 @@ namespace Acme.BookStore } ``` -* 如果数据库中当前没有图书,则此代码使用 `IRepository`(默认为[repository](../Repositories.md)将两本书插入数据库. +* 如果数据库中当前没有图书,则此代码使用 `IRepository`(默认为[repository](../Repositories.md))将两本书插入数据库. ### 更新数据库 @@ -276,7 +276,7 @@ namespace Acme.BookStore 应用程序层由两个分离的项目组成: -* `Acme.BookStore.Application.Contracts 包含你的[DTO](../Data-Transfer-Objects.md)和[应用服务](../Application-Services.md)接口. +* `Acme.BookStore.Application.Contracts` 包含你的[DTO](../Data-Transfer-Objects.md)和[应用服务](../Application-Services.md)接口. * `Acme.BookStore.Application` 包含你的应用服务实现. 在本部分中,你将创建一个应用程序服务,使用ABP Framework的 `CrudAppService` 基类来获取,创建,更新和删除书籍. diff --git a/docs/zh-Hans/UI/Angular/Component-Replacement.md b/docs/zh-Hans/UI/Angular/Component-Replacement.md index 221ac6775a..2c37a5a2e7 100644 --- a/docs/zh-Hans/UI/Angular/Component-Replacement.md +++ b/docs/zh-Hans/UI/Angular/Component-Replacement.md @@ -49,7 +49,7 @@ export class AppComponent { yarn ng generate component my-application-layout ``` -在你的布局模板(`my-layout.component.html`)中添加以下代码: +在你的布局模板(`my-application-layout.component.html`)中添加以下代码: ```html @@ -543,4 +543,4 @@ export class AppComponent implements OnInit { ## 下一步是什么? -- [自定义设置页面](./Custom-Setting-Page.md) \ No newline at end of file +- [自定义设置页面](./Custom-Setting-Page.md) diff --git a/docs/zh-Hans/UI/AspNetCore/Customization-User-Interface.md b/docs/zh-Hans/UI/AspNetCore/Customization-User-Interface.md index c94c29d27f..44eb9b6e26 100644 --- a/docs/zh-Hans/UI/AspNetCore/Customization-User-Interface.md +++ b/docs/zh-Hans/UI/AspNetCore/Customization-User-Interface.md @@ -36,7 +36,7 @@ namespace Acme.BookStore.Web.Pages.Identity.Users { } - public override async Task OnPostAsync() + public async override Task OnPostAsync() { //TODO: Additional logic await base.OnPostAsync(); @@ -83,10 +83,10 @@ namespace Acme.BookStore.Web.Pages.Identity.Users public class MyLoginModel : LoginModel { public MyLoginModel( - IAuthenticationSchemeProvider schemeProvider, + IAuthenticationSchemeProvider schemeProvider, IOptions accountOptions ) : base( - schemeProvider, + schemeProvider, accountOptions) { diff --git a/framework/.editorconfig b/framework/.editorconfig deleted file mode 100644 index 9f20b90112..0000000000 --- a/framework/.editorconfig +++ /dev/null @@ -1,131 +0,0 @@ -# Rules in this file were initially inferred by Visual Studio IntelliCode from the D:\Projects\Volosoft\abp\framework codebase based on best match to current usage at 2.10.2020. -# You can modify the rules from these initially generated values to suit your own policies -# You can learn more about editorconfig here: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference -[*.cs] - - -#Core editorconfig formatting - indentation - -#use soft tabs (spaces) for indentation -indent_style = space - -#Formatting - indentation options - -#indent switch case contents. -csharp_indent_case_contents = true -#indent switch labels -csharp_indent_switch_labels = true - -#Formatting - new line options - -#place catch statements on a new line -csharp_new_line_before_catch = true -#place else statements on a new line -csharp_new_line_before_else = true -#require members of object intializers to be on separate lines -csharp_new_line_before_members_in_object_initializers = true -#require braces to be on a new line for accessors, methods, lambdas, object_collection_array_initializers, control_blocks, types, and properties (also known as "Allman" style) -csharp_new_line_before_open_brace = accessors, methods, lambdas, object_collection_array_initializers, control_blocks, types, properties - -#Formatting - organize using options - -#sort System.* using directives alphabetically, and place them before other usings -dotnet_sort_system_directives_first = true - -#Formatting - spacing options - -csharp_space_after_cast = false -csharp_space_after_colon_in_inheritance_clause = true -csharp_space_after_comma = true -csharp_space_after_dot = false -csharp_space_after_keywords_in_control_flow_statements = true -csharp_space_after_semicolon_in_for_statement = true -csharp_space_around_binary_operators = before_and_after -csharp_space_around_declaration_statements = false -csharp_space_before_colon_in_inheritance_clause = true -csharp_space_before_comma = false -csharp_space_before_dot = false -csharp_space_before_open_square_brackets = false -csharp_space_before_semicolon_in_for_statement = false -csharp_space_between_empty_square_brackets = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false -csharp_space_between_method_call_name_and_opening_parenthesis = false -csharp_space_between_method_call_parameter_list_parentheses = false -csharp_space_between_method_declaration_empty_parameter_list_parentheses = false -csharp_space_between_method_declaration_name_and_open_parenthesis = false -csharp_space_between_method_declaration_parameter_list_parentheses = false -csharp_space_between_parentheses = false -csharp_space_between_square_brackets = false - -#Formatting - wrapping options - -#leave code block on single line -csharp_preserve_single_line_blocks = true - -#Style - Code block preferences - -#prefer curly braces even for one line of code -csharp_prefer_braces = true:suggestion - -#Style - expression bodied member options - -#prefer block bodies for constructors -csharp_style_expression_bodied_constructors = false:suggestion -#prefer block bodies for methods -csharp_style_expression_bodied_methods = false:suggestion -#prefer expression-bodied members for properties -csharp_style_expression_bodied_properties = true:suggestion - -#Style - expression level options - -#prefer out variables to be declared inline in the argument list of a method call when possible -csharp_style_inlined_variable_declaration = true:suggestion -#prefer the language keyword for member access expressions, instead of the type name, for types that have a keyword to represent them -dotnet_style_predefined_type_for_member_access = true:suggestion - -#Style - Expression-level preferences - -#prefer default over default(T) -csharp_prefer_simple_default_expression = true:suggestion -#prefer objects to be initialized using object initializers when possible -dotnet_style_object_initializer = true:suggestion -#prefer inferred tuple element names -dotnet_style_prefer_inferred_tuple_names = true:suggestion - -#Style - implicit and explicit types - -#prefer var over explicit type in all cases, unless overridden by another code style rule -csharp_style_var_elsewhere = true:suggestion -#prefer var is used to declare variables with built-in system types such as int -csharp_style_var_for_built_in_types = true:suggestion -#prefer var when the type is already mentioned on the right-hand side of a declaration expression -csharp_style_var_when_type_is_apparent = true:suggestion - -#Style - language keyword and framework type options - -#prefer the language keyword for local variables, method parameters, and class members, instead of the type name, for types that have a keyword to represent them -dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion - -#Style - modifier options - -#prefer accessibility modifiers to be declared except for public interface members. This will currently not differ from always and will act as future proofing for if C# adds default interface methods. -dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion - -#Style - Modifier preferences - -#when this rule is set to a list of modifiers, prefer the specified ordering. -csharp_preferred_modifier_order = public,protected,private,virtual,async,static,override,readonly,abstract:suggestion - -#Style - Pattern matching - -#prefer pattern matching instead of is expression with type casts -csharp_style_pattern_matching_over_as_with_null_check = true:suggestion - -#Style - qualification options - -#prefer fields not to be prefaced with this. or Me. in Visual Basic -dotnet_style_qualification_for_field = false:suggestion -#prefer methods not to be prefaced with this. or Me. in Visual Basic -dotnet_style_qualification_for_method = false:suggestion -#prefer properties not to be prefaced with this. or Me. in Visual Basic -dotnet_style_qualification_for_property = false:suggestion diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LanguageSwitch.razor b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LanguageSwitch.razor index 8c7b348f7d..6b93618f44 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LanguageSwitch.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LanguageSwitch.razor @@ -5,23 +5,23 @@ @inject IJSRuntime JsRuntime @if (_otherLanguages != null && _otherLanguages.Any()) { - - + + @_currentLanguage.DisplayName - - + + @foreach (var language in _otherLanguages) { - @language.DisplayName + @language.DisplayName } - - + + } @code { private IReadOnlyList _otherLanguages; private LanguageInfo _currentLanguage; - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { var selectedLanguageName = await JsRuntime.InvokeAsync( "localStorage.getItem", diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor index e4767cc031..58d4d5753e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor @@ -26,9 +26,6 @@ @menuItem.DisplayName } } - - @UiLocalizer["ManageYourAccount"] - Logout diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs index 17718dbcfb..494eca34ab 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs @@ -1,50 +1,33 @@ using System; using System.Threading.Tasks; -using Localization.Resources.AbpUi; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Routing; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Options; -using Volo.Abp.Http.Client; using Volo.Abp.UI.Navigation; namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic { public partial class LoginDisplay : IDisposable { - [Inject] - protected IMenuManager MenuManager { get; set; } - - [Inject] - protected IStringLocalizer UiLocalizer { get; set; } - [Inject] - protected IOptions RemoteServiceOptions { get; set; } - - protected ApplicationMenu Menu { get; set; } + protected IMenuManager MenuManager { get; set; } - protected string ServerUrl { get; set; } - protected string ServerAccountUrl { get; set; } + protected ApplicationMenu Menu { get; set; } - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { Menu = await MenuManager.GetAsync(StandardMenus.User); - - ServerUrl = RemoteServiceOptions.Value.RemoteServices.Default?.BaseUrl?.TrimEnd('/'); - ServerAccountUrl = ServerUrl + "/Account/Manage?returnUrl=" + Navigation.Uri; - + Navigation.LocationChanged += OnLocationChanged; } protected virtual void OnLocationChanged(object sender, LocationChangedEventArgs e) { - ServerAccountUrl = ServerUrl + "/Account/Manage?returnUrl=" + Navigation.Uri; StateHasChanged(); } - + public void Dispose() { Navigation.LocationChanged -= OnLocationChanged; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/MainLayout.razor b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/MainLayout.razor index 45496a7984..20b96bef45 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/MainLayout.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/MainLayout.razor @@ -22,4 +22,5 @@ @Body + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor index 5eea07ea8f..ede8a54415 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor @@ -1,8 +1,8 @@  diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor.cs index 6fddf263b3..33044282f9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/NavToolbar.razor.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic private List ToolbarItemRenders { get; set; } = new List(); - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { var toolbar = await ToolbarManager.GetAsync(StandardToolbars.Main); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs index c409c38319..31388b7bad 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs @@ -1,5 +1,4 @@ using System; -using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.AspNetCore.ExceptionHandling; diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiNotificationService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiNotificationService.cs deleted file mode 100644 index a9816dc325..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiNotificationService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System.Threading.Tasks; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly -{ - public interface IUiNotificationService - { - Task Info(string message); - Task Success(string message); - Task Warn(string message); - Task Error(string message); - } -} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Messages/SimpleUiMessageService.cs similarity index 95% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Messages/SimpleUiMessageService.cs index 8f43b3fdcd..4cf7aa5f09 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/Messages/SimpleUiMessageService.cs @@ -3,7 +3,7 @@ using System.Threading.Tasks; using Microsoft.JSInterop; using Volo.Abp.DependencyInjection; -namespace Volo.Abp.AspNetCore.Components.WebAssembly +namespace Volo.Abp.AspNetCore.Components.WebAssembly.Messages { public class SimpleUiMessageService : IUiMessageService, ITransientDependency { diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiNotificationService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiNotificationService.cs deleted file mode 100644 index 85ee10287c..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiNotificationService.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly -{ - public class NullUiNotificationService : IUiNotificationService, ITransientDependency - { - public Task Info(string message) - { - return Task.CompletedTask; - } - - public Task Success(string message) - { - return Task.CompletedTask; - } - - public Task Warn(string message) - { - return Task.CompletedTask; - } - public Task Error(string message) - { - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs index a4b4c7740e..006cc955fd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/AbpComponentBase.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.AspNetCore.Components.WebAssembly; using Volo.Abp.Localization; using Volo.Abp.ObjectMapping; using Volo.Abp.Users; @@ -53,6 +54,12 @@ namespace Volo.Abp.AspNetCore.Components protected ICurrentUser CurrentUser => LazyGetRequiredService(ref _currentUser); private ICurrentUser _currentUser; + protected IUiMessageService Message => LazyGetNonScopedRequiredService(ref _message); + private IUiMessageService _message; + + protected IUiNotificationService Notify => LazyGetNonScopedRequiredService(ref _notify); + private IUiNotificationService _notify; + protected IObjectMapper ObjectMapper { get @@ -90,6 +97,21 @@ namespace Volo.Abp.AspNetCore.Components return reference; } + protected TService LazyGetNonScopedRequiredService(ref TService reference) => LazyGetNonScopedRequiredService(typeof(TService), ref reference); + + protected TRef LazyGetNonScopedRequiredService(Type serviceType, ref TRef reference) + { + if (reference == null) + { + reference = (TRef)NonScopedServices.GetRequiredService(serviceType); + } + + return reference; + } + + [Inject] + protected IServiceProvider NonScopedServices { get; set; } + protected virtual IStringLocalizer CreateLocalizer() { if (LocalizationResource != null) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/IUiMessageService.cs similarity index 100% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageService.cs rename to framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/IUiMessageService.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageEventArgs.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs similarity index 100% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageEventArgs.cs rename to framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageEventArgs.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageOptions.cs similarity index 100% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageOptions.cs rename to framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageOptions.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageType.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageType.cs similarity index 100% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageType.cs rename to framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Messages/UiMessageType.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/IUiNotificationService.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/IUiNotificationService.cs new file mode 100644 index 0000000000..753dad4dcd --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/IUiNotificationService.cs @@ -0,0 +1,13 @@ +using System; +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public interface IUiNotificationService + { + Task Info(string message, string title = null, Action options = null); + Task Success(string message, string title = null, Action options = null); + Task Warn(string message, string title = null, Action options = null); + Task Error(string message, string title = null, Action options = null); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/NullUiNotificationService.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/NullUiNotificationService.cs new file mode 100644 index 0000000000..950cca3047 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/NullUiNotificationService.cs @@ -0,0 +1,28 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public class NullUiNotificationService : IUiNotificationService, ITransientDependency + { + public Task Info(string message, string title = null, Action options = null) + { + return Task.CompletedTask; + } + + public Task Success(string message, string title = null, Action options = null) + { + return Task.CompletedTask; + } + + public Task Warn(string message, string title = null, Action options = null) + { + return Task.CompletedTask; + } + public Task Error(string message, string title = null, Action options = null) + { + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs new file mode 100644 index 0000000000..402bfb329b --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationEventArgs.cs @@ -0,0 +1,23 @@ +using System; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public class UiNotificationEventArgs : EventArgs + { + public UiNotificationEventArgs(UiNotificationType notificationType, string message, string title, UiNotificationOptions options) + { + NotificationType = notificationType; + Message = message; + Title = title; + Options = options; + } + + public UiNotificationType NotificationType { get; set; } + + public string Message { get; } + + public string Title { get; } + + public UiNotificationOptions Options { get; } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationOptions.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationOptions.cs new file mode 100644 index 0000000000..ae8a400368 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationOptions.cs @@ -0,0 +1,20 @@ +using Volo.Abp.Localization; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + /// + /// Options to override notification appearance. + /// + public class UiNotificationOptions + { + /// + /// Custom text for the Ok button. + /// + public ILocalizableString OkButtonText { get; set; } + + /// + /// Custom icon for the Ok button. + /// + public object OkButtonIcon { get; set; } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationType.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationType.cs new file mode 100644 index 0000000000..78f3a86bb5 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/Notifications/UiNotificationType.cs @@ -0,0 +1,10 @@ +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public enum UiNotificationType + { + Info, + Success, + Warning, + Error, + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs index f769f512a5..4cba01bea2 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteFeatureChecker.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.AspNetCore.Mvc.Client ConfigurationClient = configurationClient; } - public override async Task GetOrNullAsync(string name) + public async override Task GetOrNullAsync(string name) { var configuration = await ConfigurationClient.GetAsync(); return configuration.Features.Values.GetOrDefault(name); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbTagHelperService.cs index 4b433ac495..e1b4469f8c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Breadcrumb/AbpBreadcrumbTagHelperService.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Breadcrumb { public class AbpBreadcrumbTagHelperService : AbpTagHelperService { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = "nav"; output.Attributes.Add("aria-label", "breadcrumb"); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs index c3672db7f5..e4a277ba66 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Carousel/AbpCarouselTagHelperService.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Carousel L = localizer; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs index 6e532cb71d..0cd400d43c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs @@ -9,7 +9,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse { public class AbpAccordionItemTagHelperService : AbpTagHelperService { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { SetRandomIdIfNotProvided(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelperService.cs index c7f93e87cc..7651309e1a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionTagHelperService.cs @@ -17,7 +17,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse HtmlGenerator = htmlGenerator; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { SetRandomIdIfNotProvided(); @@ -25,7 +25,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse output.TagMode = TagMode.StartTagAndEndTag; output.Attributes.AddClass("accordion"); output.Attributes.Add("id",TagHelper.Id); - + var items = InitilizeFormGroupContentsContext(context, output); await output.GetChildContentAsync(); @@ -62,4 +62,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs index 10e49b92a7..198c5b91e6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse { public class AbpCollapseBodyTagHelperService : AbpTagHelperService { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = "div"; output.Attributes.AddClass("collapse"); @@ -27,4 +27,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse output.Content.SetHtmlContent(innerContent); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs index 673204b302..52ea6ace85 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown _serviceProvider = serviceProvider; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { var content = await output.GetChildContentAsync(); @@ -60,7 +60,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown protected virtual async Task GetMainButtonAsync(TagHelperContext context, TagHelperOutput output, TagHelperContent content) { var abpButtonTagHelper = _serviceProvider.GetRequiredService(); - + abpButtonTagHelper.Icon = TagHelper.Icon; abpButtonTagHelper.Text = TagHelper.Text; abpButtonTagHelper.IconType = TagHelper.IconType; @@ -121,7 +121,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown {"aria-haspopup", "true"}, {"aria-expanded", "false"}, }; - + attributes.AddClass("dropdown-toggle"); attributes.AddClass("dropdown-toggle-split"); @@ -142,4 +142,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown return buttonTag; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 4504906566..cd8c7e6f22 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -31,7 +31,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form _serviceProvider = serviceProvider; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { var list = InitilizeFormGroupContentsContext(context, output); @@ -144,7 +144,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form } } } - + protected virtual void RemoveFormGroupItemsNotInModel(TagHelperContext context, TagHelperOutput output, List items) { var models = GetModels(context, output); @@ -303,4 +303,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form return explorer.GetAttribute() != null; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index ff5b085df5..adb50d7382 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -26,7 +26,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form _tagHelperLocalizer = tagHelperLocalizer; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { var (innerHtml, isCheckBox) = await GetFormInputGroupAsHtmlAsync(context, output); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs index 017d58dc17..a33b48d11b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs @@ -35,7 +35,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form _stringLocalizerFactory = stringLocalizerFactory; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { var innerHtml = await GetFormInputGroupAsHtmlAsync(context, output); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelperService.cs index 78d664b562..9086d8def4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Modal/AbpModalTagHelperService.cs @@ -1,22 +1,22 @@ using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.Rendering; -using Microsoft.AspNetCore.Razor.TagHelpers; -using System.Text; +using Microsoft.AspNetCore.Razor.TagHelpers; +using System.Text; using System.Threading.Tasks; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal -{ - public class AbpModalTagHelperService : AbpTagHelperService - { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) - { - output.TagName = null; - - var childContent = await output.GetChildContentAsync(); - - SetContent(context, output, childContent); - } - +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal +{ + public class AbpModalTagHelperService : AbpTagHelperService + { + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + output.TagName = null; + + var childContent = await output.GetChildContentAsync(); + + SetContent(context, output, childContent); + } + protected virtual void SetContent(TagHelperContext context, TagHelperOutput output, TagHelperContent childContent) { var modalContent = GetModalContentElement(context, output, childContent); @@ -24,16 +24,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal var modal = GetModal(context, output, modalDialog); output.Content.SetHtmlContent(modal); - } - + } + protected virtual TagBuilder GetModalContentElement(TagHelperContext context, TagHelperOutput output, TagHelperContent childContent) { var element = new TagBuilder("div"); element.AddCssClass(GetModalContentClasses()); element.InnerHtml.SetHtmlContent(childContent); return element; - } - + } + protected virtual TagBuilder GetModalDialogElement(TagHelperContext context, TagHelperOutput output, IHtmlContent innerHtml) { var element = new TagBuilder("div"); @@ -41,8 +41,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal element.Attributes.Add("role", "document"); element.InnerHtml.SetHtmlContent(innerHtml); return element; - } - + } + protected virtual TagBuilder GetModal(TagHelperContext context, TagHelperOutput output, IHtmlContent innerHtml) { var element = new TagBuilder("div"); @@ -61,37 +61,37 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal element.InnerHtml.SetHtmlContent(innerHtml); return element; - } - - protected virtual string GetModalClasses() - { - return "modal fade"; - } - - protected virtual string GetModalDialogClasses() - { - var classNames = new StringBuilder("modal-dialog"); - - if (TagHelper.Centered ?? false) - { - classNames.Append(" "); - classNames.Append("modal-dialog-centered"); - } - - if (TagHelper.Size != AbpModalSize.Default) - { - classNames.Append(" "); - classNames.Append(TagHelper.Size.ToClassName()); - } - - return classNames.ToString(); - } - - protected virtual string GetModalContentClasses() - { - return "modal-content"; - } - + } + + protected virtual string GetModalClasses() + { + return "modal fade"; + } + + protected virtual string GetModalDialogClasses() + { + var classNames = new StringBuilder("modal-dialog"); + + if (TagHelper.Centered ?? false) + { + classNames.Append(" "); + classNames.Append("modal-dialog-centered"); + } + + if (TagHelper.Size != AbpModalSize.Default) + { + classNames.Append(" "); + classNames.Append(TagHelper.Size.ToClassName()); + } + + return classNames.ToString(); + } + + protected virtual string GetModalContentClasses() + { + return "modal-content"; + } + protected virtual string GetDataAttributes() { if (TagHelper.Static == true) @@ -107,6 +107,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal { builder.Attributes.Add("data-backdrop", "static"); } - } - } -} \ No newline at end of file + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs index 71f3bfe247..148f196aad 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Pagination/AbpPaginationTagHelperService.cs @@ -21,9 +21,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination private readonly IStringLocalizerFactory _stringLocalizerFactory; public AbpPaginationTagHelperService( - IHtmlGenerator generator, - HtmlEncoder encoder, - IAbpTagHelperLocalizer tagHelperLocalizer, + IHtmlGenerator generator, + HtmlEncoder encoder, + IAbpTagHelperLocalizer tagHelperLocalizer, IStringLocalizerFactory stringLocalizerFactory) { _generator = generator; @@ -32,7 +32,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination _stringLocalizerFactory = stringLocalizerFactory; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (TagHelper.Model.ShownItemsCount <= 0) { @@ -199,4 +199,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelperService.cs index 8746e4a48b..cdaf55d87c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabDropdownTagHelperService.cs @@ -9,7 +9,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab { public class AbpTabDropdownTagHelperService : AbpTagHelperService { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { if (string.IsNullOrWhiteSpace(TagHelper.Name)) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs index 9080e49d83..c4d4b654a9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs @@ -9,7 +9,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab { public class AbpTabTagHelperService : AbpTagHelperService { - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { SetPlaceholderForNameIfNotProvided(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelperService.cs index 92e50990a4..8046af8ccd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabsTagHelperService.cs @@ -20,7 +20,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab HtmlGenerator = htmlGenerator; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { SetRandomNameIfNotProvided(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs index eca80c5fcf..0ffb5b9049 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers ResourceService = resourceService; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { var tagHelperItems = context.Items.GetOrDefault(AbpTagHelperConsts.ContextBundleItemListKey) as List; if (tagHelperItems != null) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs index f0c76d5cc4..9158f33b90 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers ResourceService = resourceService; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { await ResourceService.ProcessAsync( TagHelper.ViewContext, diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs index 6efbb793e7..9e4e77a6dd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs @@ -38,7 +38,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers ); } - protected override async Task> GetBundleFilesAsync(string bundleName) + protected async override Task> GetBundleFilesAsync(string bundleName) { return await BundleManager.GetScriptBundleFilesAsync(bundleName); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs index 8612e4f8b4..a9d9b54fca 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs @@ -38,7 +38,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers ); } - protected override async Task> GetBundleFilesAsync(string bundleName) + protected async override Task> GetBundleFilesAsync(string bundleName) { return await BundleManager.GetStyleBundleFilesAsync(bundleName); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/TagHelpers/AbpComponentDemoSectionTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/TagHelpers/AbpComponentDemoSectionTagHelper.cs index 27fc4c4d13..9a16b4b43a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/TagHelpers/AbpComponentDemoSectionTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/TagHelpers/AbpComponentDemoSectionTagHelper.cs @@ -21,14 +21,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S private readonly IGuidGenerator _guidGenerator; public AbpComponentDemoSectionTagHelper( - IVirtualFileProvider virtualFileProvider, + IVirtualFileProvider virtualFileProvider, IGuidGenerator guidGenerator) { _virtualFileProvider = virtualFileProvider; _guidGenerator = guidGenerator; } - public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = null; @@ -40,7 +40,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S var codeBlockTabId = _guidGenerator.Create(); var tagHelperCodeBlockId = _guidGenerator.Create(); var bootstrapCodeBlockId = _guidGenerator.Create(); - + output.PreContent.AppendHtml("
"); output.PreContent.AppendHtml("
"); output.PreContent.AppendHtml("
"); @@ -58,14 +58,14 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S output.PreContent.AppendHtml("
"); output.PreContent.AppendHtml($"
"); output.PreContent.AppendHtml($"
"); - + /* component rendering here */ output.PostContent.AppendHtml("
"); // tab-pane output.PostContent.AppendHtml($"
"); - + /* CodeBlock tabs */ - + output.PostContent.AppendHtml($"
    "); output.PostContent.AppendHtml("
  • "); output.PostContent.AppendHtml($"Abp Tag Helper"); @@ -75,7 +75,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S output.PostContent.AppendHtml("
  • "); output.PostContent.AppendHtml("
"); output.PostContent.AppendHtml($"
"); - + output.PostContent.AppendHtml($"
"); output.PostContent.AppendHtml("
");
             output.PostContent.AppendHtml("");
@@ -83,7 +83,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S
             output.PostContent.AppendHtml("");
             output.PostContent.AppendHtml("
"); output.PostContent.AppendHtml("
"); - + output.PostContent.AppendHtml($"
"); output.PostContent.AppendHtml("
");
             output.PostContent.AppendHtml("");
@@ -91,7 +91,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S
             output.PostContent.AppendHtml("");
             output.PostContent.AppendHtml("
"); output.PostContent.AppendHtml("
"); - + output.PostContent.AppendHtml("
"); // tab-content output.PostContent.AppendHtml("
"); // tab-pane output.PostContent.AppendHtml("
"); // tab-content diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs index cf49642459..2e1ef471a2 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/ExceptionHandling/DefaultHttpExceptionStatusCodeFinder.cs @@ -22,7 +22,13 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling public virtual HttpStatusCode GetStatusCode(HttpContext httpContext, Exception exception) { - if (exception is IHasErrorCode exceptionWithErrorCode && + if (exception is IHasHttpStatusCode exceptionWithHttpStatusCode && + exceptionWithHttpStatusCode.HttpStatusCode > 0) + { + return (HttpStatusCode) exceptionWithHttpStatusCode.HttpStatusCode; + } + + if (exception is IHasErrorCode exceptionWithErrorCode && !exceptionWithErrorCode.Code.IsNullOrWhiteSpace()) { if (Options.ErrorCodeToHttpStatusCodeMappings.TryGetValue(exceptionWithErrorCode.Code, out var status)) @@ -39,7 +45,7 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling } //TODO: Handle SecurityException..? - + if (exception is AbpValidationException) { return HttpStatusCode.BadRequest; @@ -59,8 +65,8 @@ namespace Volo.Abp.AspNetCore.ExceptionHandling { return HttpStatusCode.Forbidden; } - + return HttpStatusCode.InternalServerError; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/SecurityLog/AspNetCoreSecurityLogManager.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/SecurityLog/AspNetCoreSecurityLogManager.cs index f0fc0aa347..b518c5abbb 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/SecurityLog/AspNetCoreSecurityLogManager.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/SecurityLog/AspNetCoreSecurityLogManager.cs @@ -48,7 +48,7 @@ namespace Volo.Abp.AspNetCore.SecurityLog WebClientInfoProvider = webClientInfoProvider; } - protected override async Task CreateAsync() + protected async override Task CreateAsync() { var securityLogInfo = await base.CreateAsync(); diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs index 5a401a218e..0eef78ed6a 100644 --- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs +++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Auditing _auditingManager = auditingManager; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { if (!ShouldIntercept(invocation, out var auditLog, out var auditLogAction)) { @@ -46,8 +46,8 @@ namespace Volo.Abp.Auditing } protected virtual bool ShouldIntercept( - IAbpMethodInvocation invocation, - out AuditLogInfo auditLog, + IAbpMethodInvocation invocation, + out AuditLogInfo auditLog, out AuditLogActionInfo auditLogAction) { auditLog = null; @@ -73,7 +73,7 @@ namespace Volo.Abp.Auditing auditLogAction = _auditingHelper.CreateAuditLogAction( auditLog, invocation.TargetObject.GetType(), - invocation.Method, + invocation.Method, invocation.Arguments ); diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs index f636877fc1..f889251c69 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs @@ -23,7 +23,7 @@ namespace Volo.Abp.Authorization _options = options.Value; } - public override async Task GetPolicyAsync(string policyName) + public async override Task GetPolicyAsync(string policyName) { var policy = await base.GetPolicyAsync(policyName); if (policy != null) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptor.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptor.cs index 44466884dd..82f4adeabe 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptor.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AuthorizationInterceptor.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.Authorization _methodInvocationAuthorizationService = methodInvocationAuthorizationService; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { await AuthorizeAsync(invocation); await invocation.ProceedAsync(); diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/PermissionRequirementHandler.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/PermissionRequirementHandler.cs index d4ec7c1d3c..b0446f5602 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/PermissionRequirementHandler.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/PermissionRequirementHandler.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.Authorization _permissionChecker = permissionChecker; } - protected override async Task HandleRequirementAsync( + protected async override Task HandleRequirementAsync( AuthorizationHandlerContext context, PermissionRequirement requirement) { diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs index 38c29b1ddf..c1d9b3a6dc 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.Authorization.Permissions } - public override async Task CheckAsync(PermissionValueCheckContext context) + public async override Task CheckAsync(PermissionValueCheckContext context) { var clientId = context.Principal?.FindFirst(AbpClaimTypes.ClientId)?.Value; @@ -24,7 +24,7 @@ namespace Volo.Abp.Authorization.Permissions return PermissionGrantResult.Undefined; } - return await PermissionStore.IsGrantedAsync(context.Permission.Name, Name, clientId) + return await PermissionStore.IsGrantedAsync(context.Permission.Name, Name, clientId) ? PermissionGrantResult.Granted : PermissionGrantResult.Undefined; } diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RolePermissionValueProvider.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RolePermissionValueProvider.cs index b98867a78e..a458cd8fdb 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RolePermissionValueProvider.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/RolePermissionValueProvider.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.Authorization.Permissions } - public override async Task CheckAsync(PermissionValueCheckContext context) + public async override Task CheckAsync(PermissionValueCheckContext context) { var roles = context.Principal?.FindAll(AbpClaimTypes.Role).Select(c => c.Value).ToArray(); @@ -36,4 +36,4 @@ namespace Volo.Abp.Authorization.Permissions return PermissionGrantResult.Undefined; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/UserPermissionValueProvider.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/UserPermissionValueProvider.cs index c7f327c40c..204b928e61 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/UserPermissionValueProvider.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/UserPermissionValueProvider.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.Authorization.Permissions } - public override async Task CheckAsync(PermissionValueCheckContext context) + public async override Task CheckAsync(PermissionValueCheckContext context) { var userId = context.Principal?.FindFirst(AbpClaimTypes.UserId)?.Value; diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs index fdf0b8c90d..62e79010cc 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/BackgroundJobWorker.cs @@ -30,7 +30,7 @@ namespace Volo.Abp.BackgroundJobs Timer.Period = WorkerOptions.JobPollPeriod; } - protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) + protected async override Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) { var store = workerContext.ServiceProvider.GetRequiredService(); diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs index 96cf3988bd..e6a65a2865 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/QuartzBackgroundWorkerAdapter.cs @@ -57,7 +57,7 @@ namespace Volo.Abp.BackgroundWorkers.Quartz .Build(); } - public override async Task Execute(IJobExecutionContext context) + public async override Task Execute(IJobExecutionContext context) { var worker = (IBackgroundWorker) ServiceProvider.GetService(typeof(TWorker)); var workerContext = new PeriodicBackgroundWorkerContext(ServiceProvider); diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AsyncPeriodicBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AsyncPeriodicBackgroundWorkerBase.cs index cb2f6dbfae..ed48ba69ee 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AsyncPeriodicBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/AsyncPeriodicBackgroundWorkerBase.cs @@ -22,13 +22,13 @@ namespace Volo.Abp.BackgroundWorkers Timer.Elapsed += Timer_Elapsed; } - public override async Task StartAsync(CancellationToken cancellationToken = default) + public async override Task StartAsync(CancellationToken cancellationToken = default) { await base.StartAsync(cancellationToken); Timer.Start(cancellationToken); } - public override async Task StopAsync(CancellationToken cancellationToken = default) + public async override Task StopAsync(CancellationToken cancellationToken = default) { Timer.Stop(cancellationToken); await base.StopAsync(cancellationToken); @@ -59,4 +59,4 @@ namespace Volo.Abp.BackgroundWorkers protected abstract Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs index c63adaf798..e29dbfec6e 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo/Abp/BackgroundWorkers/PeriodicBackgroundWorkerBase.cs @@ -9,7 +9,7 @@ using Volo.Abp.Threading; namespace Volo.Abp.BackgroundWorkers { /// - /// Extends to add a periodic running Timer. + /// Extends to add a periodic running Timer. /// public abstract class PeriodicBackgroundWorkerBase : BackgroundWorkerBase { @@ -25,13 +25,13 @@ namespace Volo.Abp.BackgroundWorkers Timer.Elapsed += Timer_Elapsed; } - public override async Task StartAsync(CancellationToken cancellationToken = default) + public async override Task StartAsync(CancellationToken cancellationToken = default) { await base.StartAsync(cancellationToken); Timer.Start(cancellationToken); } - public override async Task StopAsync(CancellationToken cancellationToken = default) + public async override Task StopAsync(CancellationToken cancellationToken = default) { Timer.Stop(cancellationToken); await base.StopAsync(cancellationToken); @@ -62,4 +62,4 @@ namespace Volo.Abp.BackgroundWorkers /// protected abstract void DoWork(PeriodicBackgroundWorkerContext workerContext); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 5154c88cd1..ffd93e6954 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -15,6 +15,7 @@ using Volo.Abp.Application.Services; using Volo.Abp.AspNetCore.Components; using Volo.Abp.AspNetCore.Components.WebAssembly; using Volo.Abp.Authorization; +using Volo.Abp.BlazoriseUI.Components; using Volo.Abp.ObjectMapping; namespace Volo.Abp.BlazoriseUI @@ -170,9 +171,7 @@ namespace Volo.Abp.BlazoriseUI where TUpdateViewModel : class, new() { [Inject] protected TAppService AppService { get; set; } - [Inject] protected IUiMessageService UiMessageService { get; set; } [Inject] protected IStringLocalizer UiLocalizer { get; set; } - [Inject] protected IAuthorizationService AuthorizationService { get; set; } protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount; @@ -186,7 +185,10 @@ namespace Volo.Abp.BlazoriseUI protected TUpdateViewModel EditingEntity; protected Modal CreateModal; protected Modal EditModal; + protected Validations CreateValidationsRef; + protected Validations EditValidationsRef; protected List BreadcrumbItems = new List(2); + protected DataGridEntityActionsColumn EntityActionsColumn; protected string CreatePolicyName { get; set; } protected string UpdatePolicyName { get; set; } @@ -202,7 +204,7 @@ namespace Volo.Abp.BlazoriseUI EditingEntity = new TUpdateViewModel(); } - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { await SetBreadcrumbItemsAsync(); await SetPermissionsAsync(); @@ -279,9 +281,16 @@ namespace Volo.Abp.BlazoriseUI protected virtual async Task OpenCreateModalAsync() { + CreateValidationsRef?.ClearAll(); + await CheckCreatePolicyAsync(); NewEntity = new TCreateViewModel(); + + // Mapper will not notify Blazor that binded values are changed + // so we need to notify it manually by calling StateHasChanged + await InvokeAsync(() => StateHasChanged()); + CreateModal.Show(); } @@ -293,11 +302,17 @@ namespace Volo.Abp.BlazoriseUI protected virtual async Task OpenEditModalAsync(TKey id) { + EditValidationsRef?.ClearAll(); + await CheckUpdatePolicyAsync(); var entityDto = await AppService.GetAsync(id); + EditingEntityId = id; EditingEntity = MapToEditingEntity(entityDto); + + await InvokeAsync(() => StateHasChanged()); + EditModal.Show(); } @@ -334,30 +349,61 @@ namespace Volo.Abp.BlazoriseUI protected virtual async Task CreateEntityAsync() { - await CheckCreatePolicyAsync(); - var createInput = MapToCreateInput(NewEntity); - await AppService.CreateAsync(createInput); - await GetEntitiesAsync(); - CreateModal.Hide(); + if (CreateValidationsRef?.ValidateAll() ?? true) + { + await OnCreatingEntityAsync(); + + await CheckCreatePolicyAsync(); + var createInput = MapToCreateInput(NewEntity); + await AppService.CreateAsync(createInput); + await GetEntitiesAsync(); + + await OnCreatedEntityAsync(); + + CreateModal.Hide(); + } } - protected virtual async Task UpdateEntityAsync() + protected virtual Task OnCreatingEntityAsync() { - await CheckUpdatePolicyAsync(); - var updateInput = MapToUpdateInput(EditingEntity); - await AppService.UpdateAsync(EditingEntityId, updateInput); - await GetEntitiesAsync(); - EditModal.Hide(); + return Task.CompletedTask; } - protected virtual async Task DeleteEntityAsync(TListViewModel entity) + protected virtual Task OnCreatedEntityAsync() { - await CheckDeletePolicyAsync(); + return Task.CompletedTask; + } - if (!await UiMessageService.ConfirmAsync(GetDeleteConfirmationMessage(entity))) + protected virtual async Task UpdateEntityAsync() + { + if (EditValidationsRef?.ValidateAll() ?? true) { - return; + await OnUpdatingEntityAsync(); + + await CheckUpdatePolicyAsync(); + var updateInput = MapToUpdateInput(EditingEntity); + await AppService.UpdateAsync(EditingEntityId, updateInput); + await GetEntitiesAsync(); + + await OnUpdatedEntityAsync(); + + EditModal.Hide(); } + } + + protected virtual Task OnUpdatingEntityAsync() + { + return Task.CompletedTask; + } + + protected virtual Task OnUpdatedEntityAsync() + { + return Task.CompletedTask; + } + + protected virtual async Task DeleteEntityAsync(TListViewModel entity) + { + await CheckDeletePolicyAsync(); await AppService.DeleteAsync(entity.Id); await GetEntitiesAsync(); diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs index 549a1f4d07..ca79b02e98 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiNotificationService.cs @@ -1,40 +1,61 @@ -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; +using System; +using System.Threading.Tasks; using Volo.Abp.AspNetCore.Components.WebAssembly; using Volo.Abp.DependencyInjection; namespace Volo.Abp.BlazoriseUI { [Dependency(ReplaceServices = true)] - public class BlazoriseUiNotificationService : IUiNotificationService, ITransientDependency + public class BlazoriseUiNotificationService : IUiNotificationService, IScopedDependency { - public ILogger Logger { get; set; } + /// + /// An event raised after the notification is received. + /// + public event EventHandler NotificationReceived; - public BlazoriseUiNotificationService() + public Task Info(string message, string title = null, Action options = null) { - Logger = NullLogger.Instance; + var uiNotificationOptions = CreateDefaultOptions(); + options?.Invoke(uiNotificationOptions); + + NotificationReceived?.Invoke(this, new UiNotificationEventArgs(UiNotificationType.Info, message, title, uiNotificationOptions)); + + return Task.CompletedTask; } - public Task Info(string message) + public Task Success(string message, string title = null, Action options = null) { - Logger.LogInformation(message); + var uiNotificationOptions = CreateDefaultOptions(); + options?.Invoke(uiNotificationOptions); + + NotificationReceived?.Invoke(this, new UiNotificationEventArgs(UiNotificationType.Success, message, title, uiNotificationOptions)); + return Task.CompletedTask; } - public Task Success(string message) + public Task Warn(string message, string title = null, Action options = null) { + var uiNotificationOptions = CreateDefaultOptions(); + options?.Invoke(uiNotificationOptions); + + NotificationReceived?.Invoke(this, new UiNotificationEventArgs(UiNotificationType.Warning, message, title, uiNotificationOptions)); + return Task.CompletedTask; } - public Task Warn(string message) + public Task Error(string message, string title = null, Action options = null) { + var uiNotificationOptions = CreateDefaultOptions(); + options?.Invoke(uiNotificationOptions); + + NotificationReceived?.Invoke(this, new UiNotificationEventArgs(UiNotificationType.Error, message, title, uiNotificationOptions)); + return Task.CompletedTask; } - public Task Error(string message) + protected virtual UiNotificationOptions CreateDefaultOptions() { - return Task.CompletedTask; + return new UiNotificationOptions(); } } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/ActionType.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/ActionType.cs new file mode 100644 index 0000000000..8f6afd69c9 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/ActionType.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.BlazoriseUI.Components +{ + public enum ActionType + { + Dropdown, + Button + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.cs new file mode 100644 index 0000000000..f41ec63e2c --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/DataGridEntityActionsColumn.cs @@ -0,0 +1,30 @@ +using System.Linq; +using System.Threading.Tasks; +using Blazorise.DataGrid; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public class DataGridEntityActionsColumn : DataGridColumn + { + [Inject] + public IStringLocalizer UiLocalizer { get; set; } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + await SetDefaultValuesAsync(); + } + + protected virtual ValueTask SetDefaultValuesAsync() + { + Caption = UiLocalizer["Actions"]; + Width = "150px"; + Sortable = false; + Field = typeof(TItem).GetProperties().First().Name; + return ValueTask.CompletedTask; + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor new file mode 100644 index 0000000000..99e0383fdc --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor @@ -0,0 +1,21 @@ +@typeparam TItem +@using Blazorise + +@if (ParentActions.Type == ActionType.Dropdown) +{ + if (IsVisible && Primary == false) + { + @Text + } +} +else +{ + if (IsVisible) + { + + @Text + + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs new file mode 100644 index 0000000000..a7680edc81 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityAction.razor.cs @@ -0,0 +1,75 @@ +using System; +using System.Threading.Tasks; +using Blazorise; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; +using Volo.Abp.AspNetCore.Components.WebAssembly; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class EntityAction : ComponentBase + { + internal bool IsVisible = true; + + [Parameter] + public string Text { get; set; } + + [Parameter] + public bool Primary { get; set; } + + [Parameter] + public EventCallback Clicked { get; set; } + + [Parameter] + public string RequiredPolicy { get; set; } + + [Parameter] + public Color Color { get; set; } + + [Parameter] + public Func ConfirmationMessage { get; set; } + + [CascadingParameter] + public EntityActions ParentActions { get; set; } + + [Inject] + protected IAuthorizationService AuthorizationService { get; set; } + + [Inject] + protected IUiMessageService UiMessageService { get; set; } + + protected async override Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + await SetDefaultValuesAsync(); + if (!RequiredPolicy.IsNullOrEmpty()) + { + IsVisible = await AuthorizationService.IsGrantedAsync(RequiredPolicy); + } + ParentActions.AddAction(this); + } + + protected internal virtual async Task ActionClickedAsync() + { + if (ConfirmationMessage != null) + { + if (await UiMessageService.ConfirmAsync(ConfirmationMessage())) + { + await Clicked.InvokeAsync(); + } + } + else + { + await Clicked.InvokeAsync(); + } + } + + protected virtual ValueTask SetDefaultValuesAsync() + { + Color = Color.Primary; + return ValueTask.CompletedTask; + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor new file mode 100644 index 0000000000..d445d102d3 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor @@ -0,0 +1,30 @@ +@typeparam TItem + + @if (Type == ActionType.Dropdown) + { + + @if (HasPrimaryAction) + { + + @PrimaryAction.Text + + + } + else + { + + @ToggleText + + } + + @ChildContent + + + } + else + { + @ChildContent + } + \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs new file mode 100644 index 0000000000..1785079cf0 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/EntityActions.razor.cs @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using System.Linq; +using Blazorise; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class EntityActions : ComponentBase + { + protected readonly List> Actions = new List>(); + protected bool HasPrimaryAction => Actions.Any(t => t.Primary); + protected EntityAction PrimaryAction => Actions.FirstOrDefault(t => t.Primary); + protected internal ActionType Type => Actions.Count(t => t.IsVisible) > 1 ? ActionType.Dropdown : ActionType.Button; + + [Parameter] + public Color ToggleColor { get; set; } = Color.Primary; + + [Parameter] + public string ToggleText { get; set; } + + [Parameter] + public RenderFragment ChildContent { get; set; } + + [Parameter] + public DataGridEntityActionsColumn EntityActionsColumn { get; set; } + + [Inject] + public IStringLocalizer UiLocalizer { get; set; } + + internal void AddAction(EntityAction action) + { + Actions.Add(action); + if (EntityActionsColumn != null) + { + EntityActionsColumn.Displayable = Actions.Any(t => t.IsVisible); + } + StateHasChanged(); + } + + protected override void OnInitialized() + { + base.OnInitialized(); + ToggleText = UiLocalizer["Actions"]; + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor new file mode 100644 index 0000000000..349eee2c40 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor.cs new file mode 100644 index 0000000000..67c890f922 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/UiNotificationAlert.razor.cs @@ -0,0 +1,76 @@ +using System; +using System.Threading.Tasks; +using Blazorise.Snackbar; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; +using Volo.Abp.AspNetCore.Components.WebAssembly; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class UiNotificationAlert : ComponentBase, IDisposable + { + protected SnackbarStack SnackbarStack { get; set; } + + [Parameter] public UiNotificationType NotificationType { get; set; } + + [Parameter] public string Message { get; set; } + + [Parameter] public string Title { get; set; } + + [Parameter] public UiNotificationOptions Options { get; set; } + + [Parameter] public EventCallback Okayed { get; set; } + + [Parameter] public EventCallback Closed { get; set; } + + [Inject] protected BlazoriseUiNotificationService UiNotificationService { get; set; } + + [Inject] protected IStringLocalizerFactory StringLocalizerFactory { get; set; } + + protected virtual SnackbarColor GetSnackbarColor(UiNotificationType notificationType) + { + return notificationType switch + { + UiNotificationType.Info => SnackbarColor.Info, + UiNotificationType.Success => SnackbarColor.Success, + UiNotificationType.Warning => SnackbarColor.Warning, + UiNotificationType.Error => SnackbarColor.Danger, + _ => SnackbarColor.None, + }; + } + + protected override void OnInitialized() + { + base.OnInitialized(); + + UiNotificationService.NotificationReceived += OnNotificationReceived; + } + + protected virtual void OnNotificationReceived(object sender, UiNotificationEventArgs e) + { + NotificationType = e.NotificationType; + Message = e.Message; + Title = e.Title; + Options = e.Options; + + var okButtonText = Options?.OkButtonText?.Localize(StringLocalizerFactory); + + SnackbarStack.Push(Message, GetSnackbarColor( e.NotificationType ), okButtonText); + } + + public virtual void Dispose() + { + if (UiNotificationService != null) + { + UiNotificationService.NotificationReceived -= OnNotificationReceived; + } + } + + protected virtual Task OnSnackbarClosed(SnackbarClosedEventArgs eventArgs) + { + return eventArgs.CloseReason == SnackbarCloseReason.UserClosed + ? Okayed.InvokeAsync() + : Closed.InvokeAsync(); + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index e696a2f915..7a63fe11c0 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -12,8 +12,9 @@ - - + + + diff --git a/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor b/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor index 37be71828c..0aae8ed947 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor @@ -1,2 +1,3 @@ @using Microsoft.AspNetCore.Components.Web -@using Blazorise \ No newline at end of file +@using Blazorise +@using Blazorise.Snackbar \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs index 237465ef91..aa0fecaf09 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobProvider.cs @@ -73,7 +73,7 @@ namespace Volo.Abp.BlobStoring.Aliyun return Task.FromResult(BlobExistsAsync(ossClient, containerName, blobName)); } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var containerName = GetContainerName(args); var blobName = AliyunBlobNameCalculator.Calculate(args); diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs index 6acb91aea9..191f9a0ac7 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobProvider.cs @@ -20,7 +20,7 @@ namespace Volo.Abp.BlobStoring.Aws AmazonS3ClientFactory = amazonS3ClientFactory; } - public override async Task SaveAsync(BlobProviderSaveArgs args) + public async override Task SaveAsync(BlobProviderSaveArgs args) { var blobName = AwsBlobNameCalculator.Calculate(args); var configuration = args.Configuration.GetAwsConfiguration(); @@ -48,7 +48,7 @@ namespace Volo.Abp.BlobStoring.Aws } } - public override async Task DeleteAsync(BlobProviderDeleteArgs args) + public async override Task DeleteAsync(BlobProviderDeleteArgs args) { var blobName = AwsBlobNameCalculator.Calculate(args); var containerName = GetContainerName(args); @@ -70,7 +70,7 @@ namespace Volo.Abp.BlobStoring.Aws } } - public override async Task ExistsAsync(BlobProviderExistsArgs args) + public async override Task ExistsAsync(BlobProviderExistsArgs args) { var blobName = AwsBlobNameCalculator.Calculate(args); var containerName = GetContainerName(args); @@ -81,7 +81,7 @@ namespace Volo.Abp.BlobStoring.Aws } } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var blobName = AwsBlobNameCalculator.Calculate(args); var containerName = GetContainerName(args); @@ -155,4 +155,4 @@ namespace Volo.Abp.BlobStoring.Aws : configuration.ContainerName; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs index 1afc3b6a53..3a9a062e76 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobProvider.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.BlobStoring.Azure AzureBlobNameCalculator = azureBlobNameCalculator; } - public override async Task SaveAsync(BlobProviderSaveArgs args) + public async override Task SaveAsync(BlobProviderSaveArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); var configuration = args.Configuration.GetAzureConfiguration(); @@ -33,7 +33,7 @@ namespace Volo.Abp.BlobStoring.Azure await GetBlobClient(args, blobName).UploadAsync(args.BlobStream, true); } - public override async Task DeleteAsync(BlobProviderDeleteArgs args) + public async override Task DeleteAsync(BlobProviderDeleteArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); @@ -45,14 +45,14 @@ namespace Volo.Abp.BlobStoring.Azure return false; } - public override async Task ExistsAsync(BlobProviderExistsArgs args) + public async override Task ExistsAsync(BlobProviderExistsArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); return await BlobExistsAsync(args, blobName); } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var blobName = AzureBlobNameCalculator.Calculate(args); diff --git a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs index cbfe4bcaf7..3a512a0ba3 100644 --- a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobProvider.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.BlobStoring.FileSystem FilePathCalculator = filePathCalculator; } - public override async Task SaveAsync(BlobProviderSaveArgs args) + public async override Task SaveAsync(BlobProviderSaveArgs args) { var filePath = FilePathCalculator.Calculate(args); @@ -59,7 +59,7 @@ namespace Volo.Abp.BlobStoring.FileSystem return ExistsAsync(filePath); } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var filePath = FilePathCalculator.Calculate(args); diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs index 1a3f14e97b..fca23324dc 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.BlobStoring.Minio MinioBlobNameCalculator = minioBlobNameCalculator; } - public override async Task SaveAsync(BlobProviderSaveArgs args) + public async override Task SaveAsync(BlobProviderSaveArgs args) { var blobName = MinioBlobNameCalculator.Calculate(args); var configuration = args.Configuration.GetMinioConfiguration(); @@ -36,7 +36,7 @@ namespace Volo.Abp.BlobStoring.Minio await client.PutObjectAsync(containerName, blobName, args.BlobStream, args.BlobStream.Length); } - public override async Task DeleteAsync(BlobProviderDeleteArgs args) + public async override Task DeleteAsync(BlobProviderDeleteArgs args) { var blobName = MinioBlobNameCalculator.Calculate(args); var client = GetMinioClient(args); @@ -51,7 +51,7 @@ namespace Volo.Abp.BlobStoring.Minio return false; } - public override async Task ExistsAsync(BlobProviderExistsArgs args) + public async override Task ExistsAsync(BlobProviderExistsArgs args) { var blobName = MinioBlobNameCalculator.Calculate(args); var client = GetMinioClient(args); @@ -60,7 +60,7 @@ namespace Volo.Abp.BlobStoring.Minio return await BlobExistsAsync(client, containerName, blobName); } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var blobName = MinioBlobNameCalculator.Calculate(args); var client = GetMinioClient(args); @@ -69,10 +69,10 @@ namespace Volo.Abp.BlobStoring.Minio if (!await BlobExistsAsync(client, containerName, blobName)) { return null; - } - + } + var memoryStream = new MemoryStream(); - await client.GetObjectAsync(containerName, blobName, (stream) => + await client.GetObjectAsync(containerName, blobName, (stream) => { if (stream != null) { @@ -118,13 +118,13 @@ namespace Volo.Abp.BlobStoring.Minio await client.StatObjectAsync(containerName, blobName); } catch (Exception e) - { + { if (e is ObjectNotFoundException) { return false; - } - - throw; + } + + throw; } return true; diff --git a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapter.cs b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapter.cs index 89f3713521..7a99859d3a 100644 --- a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapter.cs +++ b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapter.cs @@ -18,9 +18,9 @@ namespace Volo.Abp.Castle.DynamicProxy Proceed = proceed; } - public override async Task ProceedAsync() + public async override Task ProceedAsync() { await Proceed(Invocation, ProceedInfo); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterWithReturnValue.cs b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterWithReturnValue.cs index bf91102337..a0babad231 100644 --- a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterWithReturnValue.cs +++ b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterWithReturnValue.cs @@ -19,9 +19,9 @@ namespace Volo.Abp.Castle.DynamicProxy Proceed = proceed; } - public override async Task ProceedAsync() + public async override Task ProceedAsync() { ReturnValue = await Proceed(Invocation, ProceedInfo); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAsyncAbpInterceptorAdapter.cs b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAsyncAbpInterceptorAdapter.cs index 8a0c4fdd45..6d08e8f6a6 100644 --- a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAsyncAbpInterceptorAdapter.cs +++ b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAsyncAbpInterceptorAdapter.cs @@ -15,14 +15,14 @@ namespace Volo.Abp.Castle.DynamicProxy _abpInterceptor = abpInterceptor; } - protected override async Task InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func proceed) + protected async override Task InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func proceed) { await _abpInterceptor.InterceptAsync( new CastleAbpMethodInvocationAdapter(invocation, proceedInfo, proceed) ); } - protected override async Task InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func> proceed) + protected async override Task InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func> proceed) { var adapter = new CastleAbpMethodInvocationAdapterWithReturnValue(invocation, proceedInfo, proceed); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs index bd3037d830..3712d0be13 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Http/CliHttpClient.cs @@ -17,7 +17,8 @@ namespace Volo.Abp.Cli.Http { public static TimeSpan DefaultTimeout { get; set; } = TimeSpan.FromMinutes(1); - public CliHttpClient(TimeSpan? timeout = null) : base(new CliHttpClientHandler()) + public CliHttpClient(TimeSpan? timeout = null) + : base(new CliHttpClientHandler()) { Timeout = timeout ?? DefaultTimeout; @@ -98,4 +99,4 @@ namespace Volo.Abp.Cli.Http } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Core/System/AbpObjectExtensions.cs b/framework/src/Volo.Abp.Core/System/AbpObjectExtensions.cs index 958398e0c5..a3fd87188f 100644 --- a/framework/src/Volo.Abp.Core/System/AbpObjectExtensions.cs +++ b/framework/src/Volo.Abp.Core/System/AbpObjectExtensions.cs @@ -2,6 +2,7 @@ using System.ComponentModel; using System.Globalization; using System.Linq; +using System.Reflection; namespace System { diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/ExceptionHandling/IHasHttpStatusCode.cs b/framework/src/Volo.Abp.Core/Volo/Abp/ExceptionHandling/IHasHttpStatusCode.cs new file mode 100644 index 0000000000..a32e3fd45f --- /dev/null +++ b/framework/src/Volo.Abp.Core/Volo/Abp/ExceptionHandling/IHasHttpStatusCode.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.ExceptionHandling +{ + public interface IHasHttpStatusCode + { + int HttpStatusCode { get; } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs index fffde41ba7..111359d7f3 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs @@ -80,12 +80,12 @@ namespace Volo.Abp.Application.Services Repository = repository; } - protected override async Task DeleteByIdAsync(TKey id) + protected async override Task DeleteByIdAsync(TKey id) { await Repository.DeleteAsync(id); } - protected override async Task GetEntityByIdAsync(TKey id) + protected async override Task GetEntityByIdAsync(TKey id) { return await Repository.GetAsync(id); } diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs index d99928126c..c585b2ac38 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs +++ b/framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/ReadOnlyAppService.cs @@ -46,7 +46,7 @@ namespace Volo.Abp.Application.Services Repository = repository; } - protected override async Task GetEntityByIdAsync(TKey id) + protected async override Task GetEntityByIdAsync(TKey id) { return await Repository.GetAsync(id); } diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJob.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJob.cs index a81bfb8c7f..5c704f74f0 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJob.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJob.cs @@ -14,7 +14,7 @@ namespace Volo.Abp.Emailing EmailSender = emailSender; } - public override async Task ExecuteAsync(BackgroundEmailSendingJobArgs args) + public async override Task ExecuteAsync(BackgroundEmailSendingJobArgs args) { if (args.From.IsNullOrWhiteSpace()) { diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs index b278d70d16..b0c572f0e4 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs @@ -69,7 +69,7 @@ namespace Volo.Abp.Emailing ); } - public async Task QueueAsync(string from, string to, string subject, string body, bool isBodyHtml = true) + public virtual async Task QueueAsync(string from, string to, string subject, string body, bool isBodyHtml = true) { if (!BackgroundJobManager.IsAvailable()) { diff --git a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs index 24ca7d6a34..710febff9d 100644 --- a/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs +++ b/framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs @@ -67,7 +67,7 @@ namespace Volo.Abp.Emailing.Smtp } } - protected override async Task SendEmailAsync(MailMessage mail) + protected async override Task SendEmailAsync(MailMessage mail) { using (var smtpClient = await BuildClientAsync()) { diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index 4f2ce6b434..d75133cb07 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -45,7 +45,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore ); } - public override async Task InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task InsertAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) { CheckAndSetId(entity); @@ -59,7 +59,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore return savedEntity; } - public override async Task UpdateAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task UpdateAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) { DbContext.Attach(entity); @@ -73,7 +73,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore return updatedEntity; } - public override async Task DeleteAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task DeleteAsync(TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) { DbSet.Remove(entity); @@ -83,19 +83,19 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore } } - public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) + public async override Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) { return includeDetails ? await WithDetails().ToListAsync(GetCancellationToken(cancellationToken)) : await DbSet.ToListAsync(GetCancellationToken(cancellationToken)); } - public override async Task GetCountAsync(CancellationToken cancellationToken = default) + public async override Task GetCountAsync(CancellationToken cancellationToken = default) { return await DbSet.LongCountAsync(GetCancellationToken(cancellationToken)); } - public override async Task> GetPagedListAsync( + public async override Task> GetPagedListAsync( int skipCount, int maxResultCount, string sorting, @@ -115,7 +115,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore return DbSet.AsQueryable(); } - public override async Task FindAsync( + public async override Task FindAsync( Expression> predicate, bool includeDetails = true, CancellationToken cancellationToken = default) @@ -129,7 +129,7 @@ namespace Volo.Abp.Domain.Repositories.EntityFrameworkCore .SingleOrDefaultAsync(GetCancellationToken(cancellationToken)); } - public override async Task DeleteAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task DeleteAsync(Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) { var entities = await GetQueryable() .Where(predicate) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs index 9a61e7f8e3..a17aab8621 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs @@ -148,7 +148,7 @@ namespace Volo.Abp.EntityFrameworkCore } } - public override async Task SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default) + public async override Task SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default) { try { diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs index fd6d773952..363744c1d4 100644 --- a/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs @@ -146,7 +146,7 @@ namespace Volo.Abp.EventBus.Kafka GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear()); } - public override async Task PublishAsync(Type eventType, object eventData) + public async override Task PublishAsync(Type eventType, object eventData) { var eventName = EventNameAttribute.GetNameOrDefault(eventType); var body = Serializer.Serialize(eventData); diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs index ce3549646e..44d229ee94 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs @@ -124,7 +124,7 @@ namespace Volo.Abp.EventBus.Rebus return Subscribe(typeof(TEvent), handler); } - public override async Task PublishAsync(Type eventType, object eventData) + public async override Task PublishAsync(Type eventType, object eventData) { await AbpRebusEventBusOptions.Publish(Rebus, eventType, eventData); } diff --git a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Local/LocalEventBus.cs b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Local/LocalEventBus.cs index 8c7bef6f2d..828bd4f5c7 100644 --- a/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Local/LocalEventBus.cs +++ b/framework/src/Volo.Abp.EventBus/Volo/Abp/EventBus/Local/LocalEventBus.cs @@ -117,7 +117,7 @@ namespace Volo.Abp.EventBus.Local GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear()); } - public override async Task PublishAsync(Type eventType, object eventData) + public async override Task PublishAsync(Type eventType, object eventData) { var exceptions = new List(); diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs index 49ea1b3f4c..3bb039f7b2 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/EditionFeatureValueProvider.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Features PrincipalAccessor = principalAccessor; } - public override async Task GetOrNullAsync(FeatureDefinition feature) + public async override Task GetOrNullAsync(FeatureDefinition feature) { var editionId = PrincipalAccessor.Principal?.FindEditionId(); if (editionId == null) @@ -29,4 +29,4 @@ namespace Volo.Abp.Features return await FeatureStore.GetOrNullAsync(feature.Name, Name, editionId.Value.ToString()); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs index 0c653c3448..b52ffe355e 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs @@ -34,8 +34,8 @@ namespace Volo.Abp.Features true ); } - - public override async Task GetOrNullAsync(string name) + + public async override Task GetOrNullAsync(string name) { var featureDefinition = FeatureDefinitionManager.Get(name); var providers = Enumerable @@ -65,4 +65,4 @@ namespace Volo.Abp.Features return null; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs index 9986af6275..7b84593378 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureInterceptor.cs @@ -15,7 +15,7 @@ namespace Volo.Abp.Features _methodInvocationFeatureCheckerService = methodInvocationFeatureCheckerService; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { if (AbpCrossCuttingConcerns.IsApplied(invocation.TargetObject, AbpCrossCuttingConcerns.FeatureChecking)) { diff --git a/framework/src/Volo.Abp.Features/Volo/Abp/Features/TenantFeatureValueProvider.cs b/framework/src/Volo.Abp.Features/Volo/Abp/Features/TenantFeatureValueProvider.cs index 5ae4b5f876..6e4dc669fa 100644 --- a/framework/src/Volo.Abp.Features/Volo/Abp/Features/TenantFeatureValueProvider.cs +++ b/framework/src/Volo.Abp.Features/Volo/Abp/Features/TenantFeatureValueProvider.cs @@ -10,16 +10,16 @@ namespace Volo.Abp.Features public override string Name => ProviderName; protected ICurrentTenant CurrentTenant { get; } - + public TenantFeatureValueProvider(IFeatureStore featureStore, ICurrentTenant currentTenant) : base(featureStore) { CurrentTenant = currentTenant; } - public override async Task GetOrNullAsync(FeatureDefinition feature) + public async override Task GetOrNullAsync(FeatureDefinition feature) { return await FeatureStore.GetOrNullAsync(feature.Name, Name, CurrentTenant.Id?.ToString()); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo/Abp/Http/Client/IdentityModel/Web/HttpContextIdentityModelRemoteServiceHttpClientAuthenticator.cs b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo/Abp/Http/Client/IdentityModel/Web/HttpContextIdentityModelRemoteServiceHttpClientAuthenticator.cs index a829a630d6..f3001eb443 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo/Abp/Http/Client/IdentityModel/Web/HttpContextIdentityModelRemoteServiceHttpClientAuthenticator.cs +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo/Abp/Http/Client/IdentityModel/Web/HttpContextIdentityModelRemoteServiceHttpClientAuthenticator.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.Http.Client.IdentityModel.Web { } - public override async Task Authenticate(RemoteServiceHttpClientAuthenticateContext context) + public async override Task Authenticate(RemoteServiceHttpClientAuthenticateContext context) { if (context.RemoteService.GetUseCurrentAccessToken() != false) { diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteCallException.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteCallException.cs index 19ecfba0ab..f9a6436715 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteCallException.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/AbpRemoteCallException.cs @@ -5,8 +5,10 @@ using Volo.Abp.ExceptionHandling; namespace Volo.Abp.Http.Client { [Serializable] - public class AbpRemoteCallException : AbpException, IHasErrorCode, IHasErrorDetails + public class AbpRemoteCallException : AbpException, IHasErrorCode, IHasErrorDetails, IHasHttpStatusCode { + public int HttpStatusCode { get; set; } + public string Code => Error?.Code; public string Details => Error?.Details; diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs index 321d538044..59bb7d67b6 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs +++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/DynamicHttpProxyInterceptor.cs @@ -75,7 +75,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying Logger = NullLogger>.Instance; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { if (invocation.Method.ReturnType.GenericTypeArguments.IsNullOrEmpty()) { @@ -252,10 +252,22 @@ namespace Volo.Abp.Http.Client.DynamicProxying await response.Content.ReadAsStringAsync() ); - throw new AbpRemoteCallException(errorResponse.Error); + throw new AbpRemoteCallException(errorResponse.Error) + { + HttpStatusCode = (int) response.StatusCode + }; } - throw new AbpException($"Remote service returns error! HttpStatusCode: {response.StatusCode}, ReasonPhrase: {response.ReasonPhrase}"); + throw new AbpRemoteCallException( + new RemoteServiceErrorInfo + { + Message = response.ReasonPhrase, + Code = response.StatusCode.ToString() + } + ) + { + HttpStatusCode = (int) response.StatusCode + }; } protected virtual CancellationToken GetCancellationToken() diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/PropertyApiDescriptionModel.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/PropertyApiDescriptionModel.cs index 610b6bd347..786ea32b76 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/PropertyApiDescriptionModel.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/PropertyApiDescriptionModel.cs @@ -1,4 +1,5 @@ using System; +using System.ComponentModel.DataAnnotations; using System.Reflection; namespace Volo.Abp.Http.Modeling @@ -12,6 +13,8 @@ namespace Volo.Abp.Http.Modeling public string TypeSimple { get; set; } + public bool IsRequired { get; set; } + //TODO: Validation rules for this property public static PropertyApiDescriptionModel Create(PropertyInfo propertyInfo) { @@ -19,7 +22,8 @@ namespace Volo.Abp.Http.Modeling { Name = propertyInfo.Name, Type = ApiTypeNameHelper.GetTypeName(propertyInfo.PropertyType), - TypeSimple = ApiTypeNameHelper.GetSimpleTypeName(propertyInfo.PropertyType) + TypeSimple = ApiTypeNameHelper.GetSimpleTypeName(propertyInfo.PropertyType), + IsRequired = propertyInfo.IsDefined(typeof(RequiredAttribute), true) }; } } diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerFactory.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerFactory.cs index cd347d8437..ff40680034 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerFactory.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerFactory.cs @@ -58,14 +58,11 @@ namespace Volo.Abp.Localization resource.Contributors.Add((ILocalizationResourceContributor) Activator.CreateInstance(globalContributor)); } - using (var scope = ServiceProvider.CreateScope()) - { - var context = new LocalizationResourceInitializationContext(resource, scope.ServiceProvider); + var context = new LocalizationResourceInitializationContext(resource, ServiceProvider); - foreach (var contributor in resource.Contributors) - { - contributor.Initialize(context); - } + foreach (var contributor in resource.Contributors) + { + contributor.Initialize(context); } return new StringLocalizerCacheItem( @@ -109,4 +106,4 @@ namespace Volo.Abp.Localization return Create(AbpLocalizationOptions.DefaultResourceType); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs b/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs index 0fb93e8f40..d089f7b684 100644 --- a/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs +++ b/framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs @@ -28,7 +28,7 @@ namespace Volo.Abp.MailKit SmtpConfiguration = smtpConfiguration; } - protected override async Task SendEmailAsync(MailMessage mail) + protected async override Task SendEmailAsync(MailMessage mail) { using (var client = await BuildClientAsync()) { diff --git a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs index fdf66b08a6..bb77149a29 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs +++ b/framework/src/Volo.Abp.MemoryDb/Volo/Abp/Domain/Repositories/MemoryDb/MemoryDbRepository.cs @@ -170,7 +170,7 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb return Task.FromResult(GetQueryable().Where(predicate).SingleOrDefault()); } - public override async Task DeleteAsync( + public async override Task DeleteAsync( Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) @@ -182,7 +182,7 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb } } - public override async Task InsertAsync( + public async override Task InsertAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) @@ -194,7 +194,7 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb return entity; } - public override async Task UpdateAsync( + public async override Task UpdateAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) @@ -218,7 +218,7 @@ namespace Volo.Abp.Domain.Repositories.MemoryDb return entity; } - public override async Task DeleteAsync( + public async override Task DeleteAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs index 02dd0e5de7..6af98da56b 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/Domain/Repositories/MongoDB/MongoDbRepository.cs @@ -55,7 +55,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB GuidGenerator = SimpleGuidGenerator.Instance; } - public override async Task InsertAsync( + public async override Task InsertAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) @@ -81,7 +81,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB return entity; } - public override async Task UpdateAsync( + public async override Task UpdateAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) @@ -131,7 +131,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB return entity; } - public override async Task DeleteAsync( + public async override Task DeleteAsync( TEntity entity, bool autoSave = false, CancellationToken cancellationToken = default) @@ -194,17 +194,17 @@ namespace Volo.Abp.Domain.Repositories.MongoDB } } - public override async Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) + public async override Task> GetListAsync(bool includeDetails = false, CancellationToken cancellationToken = default) { return await GetMongoQueryable().ToListAsync(GetCancellationToken(cancellationToken)); } - public override async Task GetCountAsync(CancellationToken cancellationToken = default) + public async override Task GetCountAsync(CancellationToken cancellationToken = default) { return await GetMongoQueryable().LongCountAsync(GetCancellationToken(cancellationToken)); } - public override async Task> GetPagedListAsync( + public async override Task> GetPagedListAsync( int skipCount, int maxResultCount, string sorting, @@ -218,7 +218,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB .ToListAsync(GetCancellationToken(cancellationToken)); } - public override async Task DeleteAsync( + public async override Task DeleteAsync( Expression> predicate, bool autoSave = false, CancellationToken cancellationToken = default) @@ -238,7 +238,7 @@ namespace Volo.Abp.Domain.Repositories.MongoDB return GetMongoQueryable(); } - public override async Task FindAsync( + public async override Task FindAsync( Expression> predicate, bool includeDetails = true, CancellationToken cancellationToken = default) diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs index eab23b7258..4fa876ae80 100644 --- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs +++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/TenantSettingValueProvider.cs @@ -10,16 +10,16 @@ namespace Volo.Abp.Settings public override string Name => ProviderName; protected ICurrentTenant CurrentTenant { get; } - + public TenantSettingValueProvider(ISettingStore settingStore, ICurrentTenant currentTenant) : base(settingStore) { CurrentTenant = currentTenant; } - public override async Task GetOrNullAsync(SettingDefinition setting) + public async override Task GetOrNullAsync(SettingDefinition setting) { return await SettingStore.GetOrNullAsync(setting.Name, Name, CurrentTenant.Id?.ToString()); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs index 01125f3201..0781b10433 100644 --- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs +++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/UserSettingValueProvider.cs @@ -17,7 +17,7 @@ namespace Volo.Abp.Settings CurrentUser = currentUser; } - public override async Task GetOrNullAsync(SettingDefinition setting) + public async override Task GetOrNullAsync(SettingDefinition setting) { if (CurrentUser.Id == null) { @@ -27,4 +27,4 @@ namespace Volo.Abp.Settings return await SettingStore.GetOrNullAsync(setting.Name, Name, CurrentUser.Id.ToString()); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs index 81bd132a5e..f5afcea494 100644 --- a/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs +++ b/framework/src/Volo.Abp.Uow/Volo/Abp/Uow/UnitOfWorkInterceptor.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Uow _defaultOptions = options.Value; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { if (!UnitOfWorkHelper.IsUnitOfWorkMethod(invocation.Method, out var unitOfWorkAttribute)) { diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs index b4ce642471..d0d9e7594d 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationInterceptor.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.Validation _methodInvocationValidator = methodInvocationValidator; } - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { Validate(invocation); await invocation.ProceedAsync(); diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 9bd999dd53..a31363fe11 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^3.3.0", + "@abp/aspnetcore.mvc.ui.theme.shared": "^3.3.1", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index ab68399880..c97c79ee81 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,145 +34,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 028b3e8535..fbffc848eb 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0", - "@abp/prismjs": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1", + "@abp/prismjs": "^3.3.1" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 2e05ff90ce..51bb71f35d 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,162 +41,162 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e" - integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA== +"@abp/clipboard@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.1.tgz#057381ecb3f5fb0744f2a742a4aff54294800439" + integrity sha512-iLtmLD/HXpHVWmLvbt2zY0EjZPmRLneCsT/gw07RWvy8iu+Hk8Cta8CD/Ak8RP5NdZkoYTO3Ojxdm7JUH0XN2g== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" clipboard "^2.0.6" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff" - integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A== +"@abp/prismjs@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.1.tgz#3abe550b34aa957248f6b1e4543aab990561351e" + integrity sha512-4+BHvKDcJa8A3yKccUqyfDgr1eqVMGt9e9ie8HPHOGTG2y1XMAYipZJ22E+T8QvUxaeBBkkmpQ4dyAOpndHJJw== dependencies: - "@abp/clipboard" "~3.3.0" - "@abp/core" "~3.3.0" + "@abp/clipboard" "~3.3.1" + "@abp/core" "~3.3.1" prismjs "^1.20.0" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs index 71d780e880..a448c2160e 100644 --- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs +++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo/Abp/BlobStoring/Minio/AbpBlobStoringMinioTestModule.cs @@ -60,7 +60,7 @@ namespace Volo.Abp.BlobStoring.Minio }); } - public override async void OnApplicationShutdown(ApplicationShutdownContext context) + public async override void OnApplicationShutdown(ApplicationShutdownContext context) { var minioClient = new MinioClient(_endPoint, _accessKey, _secretKey); if (await minioClient.BucketExistsAsync(_randomContainerName)) @@ -74,7 +74,7 @@ namespace Volo.Abp.BlobStoring.Minio await minioClient.RemoveBucketAsync(_randomContainerName); } - + } } diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleAsyncInterceptor.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleAsyncInterceptor.cs index ac5f6beb16..7f38276df2 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleAsyncInterceptor.cs +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleAsyncInterceptor.cs @@ -5,7 +5,7 @@ namespace Volo.Abp.DynamicProxy { public class SimpleAsyncInterceptor : AbpInterceptor { - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { await Task.Delay(5); (invocation.TargetObject as ICanLogOnObject)?.Logs?.Add($"{GetType().Name}_InterceptAsync_BeforeInvocation"); @@ -14,4 +14,4 @@ namespace Volo.Abp.DynamicProxy await Task.Delay(5); } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleResultCacheTestInterceptor.cs b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleResultCacheTestInterceptor.cs index 15bcf4631b..ebbf890b14 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleResultCacheTestInterceptor.cs +++ b/framework/test/Volo.Abp.Core.Tests/Volo/Abp/DynamicProxy/SimpleResultCacheTestInterceptor.cs @@ -12,8 +12,8 @@ namespace Volo.Abp.DynamicProxy { _cache = new ConcurrentDictionary(); } - - public override async Task InterceptAsync(IAbpMethodInvocation invocation) + + public async override Task InterceptAsync(IAbpMethodInvocation invocation) { if (_cache.ContainsKey(invocation.Method)) { diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs index 09b1551e3d..f998da8528 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Repositories/Repository_Basic_Tests.cs @@ -51,7 +51,7 @@ namespace Volo.Abp.MongoDB.Repositories } [Fact] - public override async Task InsertAsync() + public async override Task InsertAsync() { var person = new Person(Guid.NewGuid(), "New Person", 35); person.Phones.Add(new Phone(person.Id, "1234567890")); diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/DistrictAppService.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/DistrictAppService.cs index f7e7fde5e2..772db07e72 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/DistrictAppService.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Application/DistrictAppService.cs @@ -15,12 +15,12 @@ namespace Volo.Abp.TestApp.Application { } - protected override async Task DeleteByIdAsync(DistrictKey id) + protected async override Task DeleteByIdAsync(DistrictKey id) { await Repository.DeleteAsync(d => d.CityId == id.CityId && d.Name == id.Name); } - protected override async Task GetEntityByIdAsync(DistrictKey id) + protected async override Task GetEntityByIdAsync(DistrictKey id) { return await AsyncExecuter.FirstOrDefaultAsync( Repository.Where(d => d.CityId == id.CityId && d.Name == id.Name) diff --git a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountComponentBase.cs b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountComponentBase.cs new file mode 100644 index 0000000000..d41367d485 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountComponentBase.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Account.Localization; +using Volo.Abp.AspNetCore.Components; + +namespace Volo.Abp.Account.Blazor +{ + public abstract class AbpAccountComponentBase : AbpComponentBase + { + protected AbpAccountComponentBase() + { + LocalizationResource = typeof(AccountResource); + ObjectMapperContext = typeof(AbpAccountBlazorModule); + } + } +} diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor similarity index 79% rename from modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor rename to modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor index 3e101b38a4..a6edb30a64 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor +++ b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor @@ -1,5 +1,7 @@ @page "/account/manage-profile" -@inherits AccountManageBase +@using Microsoft.AspNetCore.Components.Forms +@inherits AbpAccountComponentBase + @@ -14,15 +16,15 @@ @L["DisplayName:CurrentPassword"] - + @L["DisplayName:NewPassword"] - + @L["DisplayName:NewPasswordConfirm"] - + @@ -36,25 +38,25 @@ @L["DisplayName:UserName"] - + @L["DisplayName:Name"] - + @L["DisplayName:Surname"] - + @L["DisplayName:Email"] - + @L["DisplayName:PhoneNumber"] - + diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor.cs b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs similarity index 81% rename from modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor.cs rename to modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs index 7dfee0da53..bececf4193 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/Manage.razor.cs +++ b/modules/account/src/Volo.Abp.Account.Blazor/Pages/Account/AccountManage.razor.cs @@ -1,34 +1,23 @@ using System.Threading.Tasks; -using Localization.Resources.AbpUi; using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Localization; -using Volo.Abp.Account.Localization; using Volo.Abp.AspNetCore.Components.WebAssembly; using Volo.Abp.Identity; -using Volo.Abp.ObjectMapping; namespace Volo.Abp.Account.Blazor.Pages.Account { - public abstract class AccountManageBase : OwningComponentBase + public partial class AccountManage { - [Inject] protected IAccountAppService AccountAppService { get; set; } [Inject] protected IProfileAppService ProfileAppService { get; set; } - - [Inject] protected IObjectMapper ObjectMapper { get; set; } - + [Inject] protected IUiMessageService UiMessageService { get; set; } - [Inject] protected IStringLocalizer UiLocalizer { get; set; } - - [Inject] protected IStringLocalizer L { get; set; } - protected string SelectedTab = "Password"; protected ChangePasswordModel ChangePasswordModel; protected PersonalInfoModel PersonalInfoModel; - - protected override async Task OnInitializedAsync() + + protected async override Task OnInitializedAsync() { await GetUserInformations(); } diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj index 84d4e4a7f4..727a49be5c 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj +++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj @@ -17,10 +17,4 @@ - - - true - - - diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs index df6eb0e1ae..e52f6731dc 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLoginModel.cs @@ -43,7 +43,7 @@ namespace Volo.Abp.Account.Web.Pages.Account IdentityServerEvents = identityServerEvents; } - public override async Task OnGetAsync() + public async override Task OnGetAsync() { LoginInput = new LoginInputModel(); @@ -98,7 +98,7 @@ namespace Volo.Abp.Account.Web.Pages.Account return Page(); } - public override async Task OnPostAsync(string action) + public async override Task OnPostAsync(string action) { if (action == "Cancel") { @@ -173,7 +173,7 @@ namespace Volo.Abp.Account.Web.Pages.Account return RedirectSafely(ReturnUrl, ReturnUrlHash); } - public override async Task OnPostExternalLogin(string provider) + public async override Task OnPostExternalLogin(string provider) { if (AccountOptions.WindowsAuthenticationSchemeName == provider) { diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs index bec2ede369..26ee0d4c34 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Account/IdentityServerSupportedLogoutModel.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Account.Web.Pages.Account Interaction = interaction; } - public override async Task OnGetAsync() + public async override Task OnGetAsync() { await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext() { diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs index 7fec4592c6..6d9b3dfc5b 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo/Abp/BlobStoring/Database/DatabaseBlobProvider.cs @@ -26,7 +26,7 @@ namespace Volo.Abp.BlobStoring.Database CurrentTenant = currentTenant; } - public override async Task SaveAsync(BlobProviderSaveArgs args) + public async override Task SaveAsync(BlobProviderSaveArgs args) { var container = await GetOrCreateContainerAsync(args.ContainerName, args.CancellationToken); @@ -57,7 +57,7 @@ namespace Volo.Abp.BlobStoring.Database } } - public override async Task DeleteAsync(BlobProviderDeleteArgs args) + public async override Task DeleteAsync(BlobProviderDeleteArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync( args.ContainerName, @@ -77,7 +77,7 @@ namespace Volo.Abp.BlobStoring.Database ); } - public override async Task ExistsAsync(BlobProviderExistsArgs args) + public async override Task ExistsAsync(BlobProviderExistsArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync( args.ContainerName, @@ -96,7 +96,7 @@ namespace Volo.Abp.BlobStoring.Database ); } - public override async Task GetOrNullAsync(BlobProviderGetArgs args) + public async override Task GetOrNullAsync(BlobProviderGetArgs args) { var container = await DatabaseBlobContainerRepository.FindAsync( args.ContainerName, diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 6adf8b1f41..3b5bdb2024 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0", - "@abp/blogging": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1", + "@abp/blogging": "^3.3.1" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 48bb4a8680..886914cc6d 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,214 +41,214 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/blogging@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.0.tgz#144b0bfe15b70900f1bd99f4646f3d2c0bb89d52" - integrity sha512-Fc7/SUTBg8qAIzwgKVLu4bUZZlmyKXK55LS8NXbhw6E4H54QJWdXTssP5/ChaKZRbxF6DOh/yIiTnSfu2WuUaQ== +"@abp/blogging@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.1.tgz#37d10f8c9230c27dc2a25fbec66c216915236444" + integrity sha512-BhMGPd8O2XTl5XEU63QAe0o0f8o+64yhXyIs/Ax1OyG32Qf9pgbutlRBIWhqmqKQzP9N/pPWWskPyJZOrMeWcg== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - "@abp/owl.carousel" "~3.3.0" - "@abp/prismjs" "~3.3.0" - "@abp/tui-editor" "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + "@abp/owl.carousel" "~3.3.1" + "@abp/prismjs" "~3.3.1" + "@abp/tui-editor" "~3.3.1" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e" - integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA== +"@abp/clipboard@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.1.tgz#057381ecb3f5fb0744f2a742a4aff54294800439" + integrity sha512-iLtmLD/HXpHVWmLvbt2zY0EjZPmRLneCsT/gw07RWvy8iu+Hk8Cta8CD/Ak8RP5NdZkoYTO3Ojxdm7JUH0XN2g== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" clipboard "^2.0.6" -"@abp/codemirror@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.0.tgz#a9ac33155a92241dc6f35c9de104639fdc2c199f" - integrity sha512-C5/L0Hv0F7fzQt14NAyL0QQhhPrUcLkgFSxja/SknrA9nSIMoTg+r37Ny436GEHqoj8Jjj8u3jqErYhrOqd9cA== +"@abp/codemirror@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.1.tgz#5f810ad81cb306dc7bf6078c79ec6878a556ab5d" + integrity sha512-SHhHaoHXnc+PT5sst+5gP9pvYu+Nx+5pBudAGOGtugSV7QmZffrD42iCi64/D8b+eYeU1QN/FxS3hRQ0IDt1DA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" codemirror "^5.54.0" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.0.tgz#94c773e66a75ffe5d62485c2e70c7300fad9a611" - integrity sha512-CMXMeEA262yOs/ip2qbXfl+Kh3tTaUlogHlypT0AZ8Q0aQGs0tJiPVtGRJQ9xng/QfOzv+XWpPgYB5UIuwU6SQ== +"@abp/highlight.js@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.1.tgz#284def87eba0601d24e9221166e12ee94e13998f" + integrity sha512-6e9lAGi6uld2zIchMF12JWEdWPHUpG+npikbRxO5z5nHQhwplNk05uLVtMh5+KJKEwpsHkHMqtP5yo68gkjZ9w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.0.tgz#91395f9c6f98a69d955b4e5cb534e38c5f4902b9" - integrity sha512-Awt1SD6zgy72kfEbHVOBbVv/bB0o17lZBg4dNf11jqEbJMUpsW04pE5U1nc7FgsaJuTZFLm36cgnjdeGzlb/yw== +"@abp/markdown-it@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.1.tgz#efacc89e49f370f9d05eaea639188115e8b5da84" + integrity sha512-I/UlKUynF8awg7b/hyG4Tr3/yqT/vilD1vStxqsIYHmLaBYRbd6Av+FI2iiUH/DwdPexJGWjq8xmi5nxsC2vlg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" markdown-it "^11.0.0" -"@abp/owl.carousel@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.0.tgz#bc3b721770ac0c41066581d55228eca65fd95b07" - integrity sha512-wKWplt/zupf+q+iYjAEMoHo/Trjf5pPM5a9EhIb+6C1s7d+VJ8+FbxXHXA1F86MF5Eq4HVhuWFJITmEwOTqnMg== +"@abp/owl.carousel@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.1.tgz#246a524459e24f5f506c40ad0e89512f164a83d8" + integrity sha512-xoQXh+OpHlSOt36lcO1/B2j4WfjWLMB/mn1lx7AxTOPtGNfo9pF06o9Tks5jG3tCvyPvUIuLH3ZXJbmWLvptYw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" owl.carousel "^2.3.4" -"@abp/prismjs@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff" - integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A== +"@abp/prismjs@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.1.tgz#3abe550b34aa957248f6b1e4543aab990561351e" + integrity sha512-4+BHvKDcJa8A3yKccUqyfDgr1eqVMGt9e9ie8HPHOGTG2y1XMAYipZJ22E+T8QvUxaeBBkkmpQ4dyAOpndHJJw== dependencies: - "@abp/clipboard" "~3.3.0" - "@abp/core" "~3.3.0" + "@abp/clipboard" "~3.3.1" + "@abp/core" "~3.3.1" prismjs "^1.20.0" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/tui-editor@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.0.tgz#3d8333df7e9bb4972c9fb4bba89b2f8f2aa905d0" - integrity sha512-AwQO3D/WtrqytVOFcaQpHf3GcEThJ8+UvL9h382tb5rVbmKVkxCemRPkLF7wS1RVCJwPoZYFPXp6VNWY3nZTiw== +"@abp/tui-editor@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.1.tgz#c1aa4891d0aba055dbaed05947c4c9e0a94cdd36" + integrity sha512-dpuJ8YPmdpostILYizPIRJx1B7utBJl+P7L80Hy0ACXcXdc9HuRPe1vLoRMQ/OKfI9nLF9AbjmCEXy3h7JXYbw== dependencies: - "@abp/codemirror" "~3.3.0" - "@abp/highlight.js" "~3.3.0" - "@abp/jquery" "~3.3.0" - "@abp/markdown-it" "~3.3.0" + "@abp/codemirror" "~3.3.1" + "@abp/highlight.js" "~3.3.1" + "@abp/jquery" "~3.3.1" + "@abp/markdown-it" "~3.3.1" tui-editor "^1.4.10" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Comments/CommentAuthorizationHandler.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Comments/CommentAuthorizationHandler.cs index bd6dcdf8c5..9771d136b3 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Comments/CommentAuthorizationHandler.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Comments/CommentAuthorizationHandler.cs @@ -15,7 +15,7 @@ namespace Volo.Blogging.Comments _permissionChecker = permissionChecker; } - protected override async Task HandleRequirementAsync( + protected async override Task HandleRequirementAsync( AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, Comment resource) diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAuthorizationHandler.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAuthorizationHandler.cs index 9d2d0e9e9f..7c6033f4b2 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAuthorizationHandler.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAuthorizationHandler.cs @@ -15,7 +15,7 @@ namespace Volo.Blogging.Posts _permissionChecker = permissionChecker; } - protected override async Task HandleRequirementAsync( + protected async override Task HandleRequirementAsync( AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement, Post resource) diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 4b35db8c0f..945ff9a958 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 9a46ed73d8..b0e37066bd 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index afb0c67fd0..35b92ec223 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.3.0", - "@abp/ng.identity": "~3.3.0", - "@abp/ng.setting-management": "~3.3.0", - "@abp/ng.tenant-management": "~3.3.0", - "@abp/ng.theme.basic": "~3.3.0", + "@abp/ng.account": "~3.3.1", + "@abp/ng.identity": "~3.3.1", + "@abp/ng.setting-management": "~3.3.1", + "@abp/ng.tenant-management": "~3.3.1", + "@abp/ng.theme.basic": "~3.3.1", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 8acad00cff..034381b987 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.3.0", - "@abp/ng.theme.shared": ">=3.3.0" + "@abp/ng.core": ">=3.3.1", + "@abp/ng.theme.shared": ">=3.3.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 8e9f71b33b..8718ef2557 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 7478ec439a..b6fb3e1d1e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 34ca938f87..e415c0b911 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index fdf6b928a6..9b9528ce1b 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 34ca938f87..e415c0b911 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 8a2cf41872..69bf261f91 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index a23a6d8f89..fd4d07be82 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0", - "@abp/docs": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1", + "@abp/docs": "^3.3.1" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 64515a90df..cd91877d1f 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.3.0.tgz#a40489ee53865c5746297e014297ae7bbd6ada3b" - integrity sha512-885Ub6OFJvlv+EZNpQ642K79C63n2g4ogfhVIgAhUuhTYSjpP4Oq/WFOhUPIWyMHHphZemyqqV0UZRvFs0lqpQ== +"@abp/anchor-js@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.3.1.tgz#ba0843f55e324f0bc4714d8183c7f942865aa774" + integrity sha512-at2m281xksP5A9I9HykPai4WQK2UedrLXFSAWGpFhXx6zWvQ5YeUZliCS/eX1rX3fhMGKwcEL0CGXA03kMn72A== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -49,181 +49,181 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0.tgz#44029c7bac7fe4f693ab3963515d300c49aa2d5e" - integrity sha512-YZKqjwZGue7o39GiuZf8WPEjt4ydQCSCG109fkIJQgbwjqkseeWPExJcYnogMSA4qWr4Ip1m3CQ17Yqtl1n8JA== +"@abp/clipboard@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.1.tgz#057381ecb3f5fb0744f2a742a4aff54294800439" + integrity sha512-iLtmLD/HXpHVWmLvbt2zY0EjZPmRLneCsT/gw07RWvy8iu+Hk8Cta8CD/Ak8RP5NdZkoYTO3Ojxdm7JUH0XN2g== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" clipboard "^2.0.6" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/docs@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.3.0.tgz#65259049e6e891048bb2f9fb1606b9a8fe896555" - integrity sha512-zBlextUI0VI8mBFJjH91tRFDZDCpcVP3nvB68z08idRhronlc7nB1tzeNfG0rxMh8palZlZtQwPVYUTLY4oKUw== +"@abp/docs@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.3.1.tgz#97c07bb4a436c63dcb9208d3075f131ee1e90a89" + integrity sha512-ZUhm8ubt/zQQ9psp1dLTf4S1/DPo8rfc82nTH/EgRvbUsX3Qmwj+3McDFJNPzCqC7j/3162/j+flRZn9j0Vm3g== dependencies: - "@abp/anchor-js" "~3.3.0" - "@abp/clipboard" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/popper.js" "~3.3.0" - "@abp/prismjs" "~3.3.0" + "@abp/anchor-js" "~3.3.1" + "@abp/clipboard" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/popper.js" "~3.3.1" + "@abp/prismjs" "~3.3.1" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.3.0.tgz#53ff96017e2dea348ede0390d605cfe4d2981fcd" - integrity sha512-SjADjLdKhUet2rM5oqr9VJcgIPBlxCQwYYUSZzB51Mwp30KFhx272rdww3J/khVbt6N7L/YTIL/FKC2iTqBGcQ== +"@abp/popper.js@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.3.1.tgz#4c7a7e0fee346d60a76dc50e82220b4e03bff839" + integrity sha512-rSegW12pPBk3PaBfPVz7tH5fxP48A06xVVRq5ztYicHIHq1lpTJeXXZJf4QFMBvFtdaMOPPtQEL8wFRUM3OJJw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" popper.js "^1.16.0" -"@abp/prismjs@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0.tgz#88381eb65612c68d13dac02eb7e177a264a025ff" - integrity sha512-YwVmPDtvWq8JwjZ4sGqnR2fhkzlcfhH2qO1RQsv9wpfFe61Mh/3mIC1QKFq5mW52cM3f8I51oC7z9HMbBo8n4A== +"@abp/prismjs@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.1.tgz#3abe550b34aa957248f6b1e4543aab990561351e" + integrity sha512-4+BHvKDcJa8A3yKccUqyfDgr1eqVMGt9e9ie8HPHOGTG2y1XMAYipZJ22E+T8QvUxaeBBkkmpQ4dyAOpndHJJw== dependencies: - "@abp/clipboard" "~3.3.0" - "@abp/core" "~3.3.0" + "@abp/clipboard" "~3.3.1" + "@abp/core" "~3.3.1" prismjs "^1.20.0" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/AbpFeatureManagementComponentBase.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/AbpFeatureManagementComponentBase.cs new file mode 100644 index 0000000000..5cb4961072 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/AbpFeatureManagementComponentBase.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Components; +using Volo.Abp.FeatureManagement.Localization; + +namespace Volo.Abp.FeatureManagement.Blazor +{ + public abstract class AbpFeatureManagementComponentBase : AbpComponentBase + { + protected AbpFeatureManagementComponentBase() + { + LocalizationResource = typeof(AbpFeatureManagementResource); + } + } +} \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor index 90d2539841..02fdd768a9 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor @@ -1,6 +1,8 @@ @using Volo.Abp.Validation.StringValues @using Microsoft.Extensions.Localization +@inherits AbpFeatureManagementComponentBase + @@ -9,84 +11,80 @@ - - @if (Groups == null) - { - @L["NoFeatureFoundMessage"] - } - else - { - - - @foreach (var group in Groups) - { - - @group.DisplayName - - } - - - @foreach (var group in Groups) - { - -

@group.DisplayName

- - @foreach (var feature in group.Features) + @if (Groups == null) + { + @L["NoFeatureFoundMessage"] + } + else + { + + + @foreach (var group in Groups) + { + + @group.DisplayName + + } + + + @foreach (var group in Groups) + { + +

@group.DisplayName

+ + @foreach (var feature in group.Features) + { + var disabled = IsDisabled(feature.Provider.Name); + + if (feature.ValueType is FreeTextStringValueType) { - var disabled = IsDisabled(feature.Provider.Name); - - if (feature.ValueType is FreeTextStringValueType) - { - - @feature.DisplayName - - @if (feature.Description != null) + + @feature.DisplayName + + @if (feature.Description != null) + { + @feature.Description + } + + } + + if (feature.ValueType is SelectionStringValueType) + { + var items = ((SelectionStringValueType)feature.ValueType).ItemSource.Items; + + + @feature.DisplayName + - @foreach (var item in items) - { - - @CreateStringLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) - - } - - - } - - if (feature.ValueType is ToggleStringValueType) - { - - @feature.DisplayName - - } + + + } + + if (feature.ValueType is ToggleStringValueType) + { + + @feature.DisplayName + } - -
- } -
-
- } -
+ } + + + } + +
+ } - + \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs index aed44df8bc..c91b7f3892 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs @@ -20,8 +20,6 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components [Inject] protected IUiMessageService UiMessageService { get; set; } - [Inject] protected IStringLocalizer L { get; set; } - [Inject] protected IStringLocalizerFactory HtmlLocalizerFactory { get; set; } [Inject] protected IOptions LocalizationOptions { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSignInManager.cs b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSignInManager.cs index 8e4b435b48..8de9014cbe 100644 --- a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSignInManager.cs +++ b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo/Abp/Identity/AspNetCore/AbpSignInManager.cs @@ -33,7 +33,7 @@ namespace Volo.Abp.Identity.AspNetCore AbpOptions = options.Value; } - public override async Task PasswordSignInAsync( + public async override Task PasswordSignInAsync( string userName, string password, bool isPersistent, diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMessageLocalizerHelper.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMessageLocalizerHelper.cs new file mode 100644 index 0000000000..5d858843b8 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMessageLocalizerHelper.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; +using System.Linq; +using JetBrains.Annotations; +using Microsoft.Extensions.Localization; + +namespace Volo.Abp.Identity.Blazor +{ + public class AbpIdentityBlazorMessageLocalizerHelper + { + private readonly IStringLocalizer stringLocalizer; + + public AbpIdentityBlazorMessageLocalizerHelper(IStringLocalizer stringLocalizer) + { + this.stringLocalizer = stringLocalizer; + } + + public string Localize(string message, [CanBeNull] IEnumerable arguments) + { + try + { + return arguments?.Count() > 0 + ? stringLocalizer[message, LocalizeMessageArguments(arguments)?.ToArray()] + : stringLocalizer[message]; + } + catch + { + return stringLocalizer[message]; + } + } + + private IEnumerable LocalizeMessageArguments(IEnumerable arguments) + { + foreach (var argument in arguments) + { + yield return stringLocalizer[$"DisplayName:{argument}"] + ?? stringLocalizer[argument] + ?? argument; + } + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs index cebde068c3..7f11267132 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs @@ -32,6 +32,8 @@ namespace Volo.Abp.Identity.Blazor { options.AdditionalAssemblies.Add(typeof(AbpIdentityBlazorModule).Assembly); }); + + context.Services.AddSingleton(typeof(AbpIdentityBlazorMessageLocalizerHelper<>)); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor index 67e7e9290c..946fae64c3 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor @@ -2,13 +2,18 @@ @attribute [Authorize(IdentityPermissions.Roles.Default)] @using Volo.Abp.Identity @using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Forms @using Volo.Abp.PermissionManagement.Blazor.Components -@inherits RoleManagementBase +@using Microsoft.Extensions.Localization +@using Volo.Abp.Identity.Localization +@inject AbpIdentityBlazorMessageLocalizerHelper LH + +@inherits AbpCrudPageBase @* ************************* PAGE HEADER ************************* *@ -

@L["Roles"]

+ @L["Roles"]
@if (HasCreatePermission) @@ -28,40 +33,33 @@ ShowPager="true" PageSize="PageSize"> - @if (ShouldShowEntityActions) - { - - - - - @L["Actions"] - - - @if (HasUpdatePermission) - { - @L["Edit"] - } - @if (HasManagePermissionsPermission) - { - @L["Permissions"] - } - @if (HasDeletePermission) - { - @L["Delete"] - } - - - - - } + + + + + + + + + - @(context.As().Name) - @if (context.As().IsDefault) + @(context.Name) + @if (context.IsDefault) { @L["DisplayName:IsDefault"] } - @if (context.As().IsPublic) + @if (context.IsPublic) { @L["DisplayName:IsPublic"] } @@ -73,54 +71,66 @@ @* ************************* CREATE MODAL ************************* *@ @if (HasCreatePermission) { - - - - - @L["NewRole"] - - - - + + + + + @L["NewRole"] + + + + + @L["DisplayName:RoleName"] - + + + + + - - @L["DisplayName:IsDefault"] - @L["DisplayName:IsPublic"] - - - - - - - - - + + + @L["DisplayName:IsDefault"] + @L["DisplayName:IsPublic"] + + + + + + + + + } @* ************************* EDIT MODAL ************************* *@ @if (HasUpdatePermission) { - + @L["Edit"] - + + + + @L["DisplayName:RoleName"] + + + + + + + - @L["DisplayName:RoleName"] - - - - @L["DisplayName:IsDefault"] - @L["DisplayName:IsPublic"] + @L["DisplayName:IsDefault"] + @L["DisplayName:IsPublic"] - + @@ -130,4 +140,4 @@ } - + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs index 2a77f22a92..19478cff34 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs @@ -1,23 +1,24 @@ -using System; +using System; using System.Threading.Tasks; +using Blazorise; using Microsoft.AspNetCore.Authorization; -using Volo.Abp.BlazoriseUI; using Volo.Abp.Identity.Localization; using Volo.Abp.PermissionManagement.Blazor.Components; namespace Volo.Abp.Identity.Blazor.Pages.Identity { - public abstract class RoleManagementBase : AbpCrudPageBase + public partial class RoleManagement { protected const string PermissionProviderName = "R"; protected PermissionManagementModal PermissionManagementModal; + protected string ManagePermissionsPolicyName; protected bool HasManagePermissionsPermission { get; set; } protected bool ShouldShowEntityActions { get; set; } - public RoleManagementBase() + public RoleManagement() { ObjectMapperContext = typeof(AbpIdentityBlazorModule); LocalizationResource = typeof(IdentityResource); @@ -25,19 +26,12 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity CreatePolicyName = IdentityPermissions.Roles.Create; UpdatePolicyName = IdentityPermissions.Roles.Update; DeletePolicyName = IdentityPermissions.Roles.Delete; + ManagePermissionsPolicyName = IdentityPermissions.Roles.ManagePermissions; } - protected override async Task SetPermissionsAsync() + protected override string GetDeleteConfirmationMessage(IdentityRoleDto entity) { - await base.SetPermissionsAsync(); - - HasManagePermissionsPermission = await AuthorizationService.IsGrantedAsync( - IdentityPermissions.Roles.ManagePermissions - ); - - ShouldShowEntityActions = HasUpdatePermission || - HasDeletePermission || - HasManagePermissionsPermission; + return string.Format(L["RoleDeletionConfirmationMessage"], entity.Name); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor index 991b8d1606..36db98f78e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor @@ -1,9 +1,14 @@ @page "/identity/users" @attribute [Authorize(IdentityPermissions.Users.Default)] @using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Forms @using Volo.Abp.PermissionManagement.Blazor.Components -@inherits UserManagementBase +@using Microsoft.Extensions.Localization +@using Volo.Abp.Identity.Localization +@inherits AbpCrudPageBase + +@inject AbpIdentityBlazorMessageLocalizerHelper LH @* ************************* PAGE HEADER ************************* *@ @@ -27,33 +32,25 @@ ShowPager="true" PageSize="PageSize"> - @if (ShouldShowEntityActions) - { - - - - - @L["Actions"] - - - @if (HasUpdatePermission) - { - @L["Edit"] - } - @if (HasManagePermissionsPermission) - { - @L["Permissions"] - } - @if (HasDeletePermission) - { - - @L["Delete"] - } - - - - - } + + + + + + + + + @(context.As().UserName) @@ -76,14 +73,14 @@ @if (HasCreatePermission) { - - + + @L["NewUser"] - + - + @L["UserInformations"] @@ -91,32 +88,68 @@ + + + @L["DisplayName:UserName"] + + + + + + + + + + @L["DisplayName:Name"] + + + + + + + + + + @L["DisplayName:Surname"] + + + + + + + + + + @L["DisplayName:Password"] + + + + + + + + + + @L["DisplayName:Email"] + + + + + + + + + + @L["DisplayName:PhoneNumber"] + + + + + + + - @L["DisplayName:UserName"] - - - - @L["DisplayName:Name"] - - - - @L["DisplayName:Surname"] - - - - @L["DisplayName:Password"] - - - - @L["DisplayName:Email"] - - - - @L["DisplayName:PhoneNumber"] - - - - @L["DisplayName:LockoutEnabled"] + @L["DisplayName:LockoutEnabled"] @@ -125,19 +158,19 @@ @foreach (var role in NewUserRoles) { - - @role.Name + + @role.Name } } - + - + @@ -147,15 +180,15 @@ @if (HasUpdatePermission) { - - + + @L["Edit"] - + - - + + @@ -164,32 +197,68 @@ + + + @L["DisplayName:UserName"] + + + + + + + + + + @L["DisplayName:Name"] + + + + + + + + + + @L["DisplayName:Surname"] + + + + + + + + + + @L["DisplayName:Password"] + + + + + + + + + + @L["DisplayName:Email"] + + + + + + + + + + @L["DisplayName:PhoneNumber"] + + + + + + + - @L["DisplayName:UserName"] - - - - @L["DisplayName:Name"] - - - - @L["DisplayName:Surname"] - - - - @L["DisplayName:Password"] - - - - @L["DisplayName:Email"] - - - - @L["DisplayName:PhoneNumber"] - - - - @L["DisplayName:LockoutEnabled"] + @L["DisplayName:LockoutEnabled"] @@ -198,22 +267,22 @@ @foreach (var role in EditUserRoles) { - - @role.Name + + @role.Name } } - + - + } - + \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs index 423f452cd8..428376d9ef 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs @@ -2,14 +2,14 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Blazorise; using Microsoft.AspNetCore.Authorization; -using Volo.Abp.BlazoriseUI; using Volo.Abp.Identity.Localization; using Volo.Abp.PermissionManagement.Blazor.Components; namespace Volo.Abp.Identity.Blazor.Pages.Identity { - public abstract class UserManagementBase : AbpCrudPageBase + public partial class UserManagement { protected const string PermissionProviderName = "U"; @@ -23,14 +23,13 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity protected AssignedRoleViewModel[] EditUserRoles; - protected bool ShouldShowEntityActions { get; set; } - protected bool HasManagePermissionsPermission { get; set; } + protected string ManagePermissionsPolicyName; protected string CreateModalSelectedTab = DefaultSelectedTab; protected string EditModalSelectedTab = DefaultSelectedTab; - public UserManagementBase() + public UserManagement() { ObjectMapperContext = typeof(AbpIdentityBlazorModule); LocalizationResource = typeof(IdentityResource); @@ -38,68 +37,64 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity CreatePolicyName = IdentityPermissions.Users.Create; UpdatePolicyName = IdentityPermissions.Users.Update; DeletePolicyName = IdentityPermissions.Users.Delete; + ManagePermissionsPolicyName = IdentityPermissions.Users.ManagePermissions; } - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { await base.OnInitializedAsync(); Roles = (await AppService.GetAssignableRolesAsync()).Items; } - protected override async Task SetPermissionsAsync() - { - await base.SetPermissionsAsync(); - - HasManagePermissionsPermission = await AuthorizationService.IsGrantedAsync( - IdentityPermissions.Users.ManagePermissions - ); - - ShouldShowEntityActions = HasUpdatePermission || - HasDeletePermission || - HasManagePermissionsPermission; - } protected override Task OpenCreateModalAsync() { CreateModalSelectedTab = DefaultSelectedTab; NewUserRoles = Roles.Select(x => new AssignedRoleViewModel - { - Name = x.Name, - IsAssigned = x.IsDefault - }).ToArray(); + { + Name = x.Name, + IsAssigned = x.IsDefault + }).ToArray(); return base.OpenCreateModalAsync(); } - protected override Task CreateEntityAsync() + protected override Task OnCreatingEntityAsync() { + // apply roles before saving NewEntity.RoleNames = NewUserRoles.Where(x => x.IsAssigned).Select(x => x.Name).ToArray(); - return base.CreateEntityAsync(); + return base.OnCreatingEntityAsync(); } - protected override async Task OpenEditModalAsync(Guid id) + protected async override Task OpenEditModalAsync(Guid id) { EditModalSelectedTab = DefaultSelectedTab; var userRoleNames = (await AppService.GetRolesAsync(id)).Items.Select(r => r.Name).ToList(); EditUserRoles = Roles.Select(x => new AssignedRoleViewModel - { - Name = x.Name, - IsAssigned = userRoleNames.Contains(x.Name) - }).ToArray(); + { + Name = x.Name, + IsAssigned = userRoleNames.Contains(x.Name) + }).ToArray(); await base.OpenEditModalAsync(id); } - protected override Task UpdateEntityAsync() + protected override Task OnUpdatingEntityAsync() { + // apply roles before saving EditingEntity.RoleNames = EditUserRoles.Where(x => x.IsAssigned).Select(x => x.Name).ToArray(); - return base.UpdateEntityAsync(); + return base.OnUpdatingEntityAsync(); + } + + protected override string GetDeleteConfirmationMessage(IdentityUserDto entity) + { + return string.Format(L["UserDeletionConfirmationMessage"], entity.UserName); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/_Imports.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/_Imports.razor index bcb4626f1f..51955030c9 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/_Imports.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/_Imports.razor @@ -2,5 +2,6 @@ @using Volo.Abp.AspNetCore.Components.WebAssembly @using Microsoft.AspNetCore.Components.Forms @using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components @using Blazorise @using Blazorise.DataGrid diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs index e14ce5e3f4..80d039b7d7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Features; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Features; using Volo.Abp.Identity.Localization; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index 11abe2bdf3..9831b03d5d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.Identity } [UnitOfWork] - public override async Task CreateAsync(IdentityUser user) + public async override Task CreateAsync(IdentityUser user) { var principal = await base.CreateAsync(user); var identity = principal.Identities.First(); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRoleManager.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRoleManager.cs index 40c249e5c4..7522b96159 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRoleManager.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRoleManager.cs @@ -50,7 +50,7 @@ namespace Volo.Abp.Identity return role; } - public override async Task SetRoleNameAsync(IdentityRole role, string name) + public async override Task SetRoleNameAsync(IdentityRole role, string name) { if (role.IsStatic && role.Name != name) { @@ -60,7 +60,7 @@ namespace Volo.Abp.Identity return await base.SetRoleNameAsync(role, name); } - public override async Task DeleteAsync(IdentityRole role) + public async override Task DeleteAsync(IdentityRole role) { if (role.IsStatic) { diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs index 74aa138b5e..53ebe46fb2 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo/Abp/PermissionManagement/Identity/RolePermissionManagementProvider.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.PermissionManagement.Identity public RolePermissionManagementProvider( IPermissionGrantRepository permissionGrantRepository, IGuidGenerator guidGenerator, - ICurrentTenant currentTenant, + ICurrentTenant currentTenant, IUserRoleFinder userRoleFinder) : base( permissionGrantRepository, @@ -26,7 +26,7 @@ namespace Volo.Abp.PermissionManagement.Identity UserRoleFinder = userRoleFinder; } - public override async Task CheckAsync(string name, string providerName, string providerKey) + public async override Task CheckAsync(string name, string providerName, string providerKey) { if (providerName == Name) { @@ -54,4 +54,4 @@ namespace Volo.Abp.PermissionManagement.Identity return PermissionValueProviderGrantInfo.NonGranted; } } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs index 224abc6c10..3eb14131f1 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/AbpProfileService.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity } [UnitOfWork] - public override async Task GetProfileDataAsync(ProfileDataRequestContext context) + public async override Task GetProfileDataAsync(ProfileDataRequestContext context) { using (CurrentTenant.Change(context.Subject.FindTenantId())) { @@ -33,7 +33,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity } [UnitOfWork] - public override async Task IsActiveAsync(IsActiveContext context) + public async override Task IsActiveAsync(IsActiveContext context) { using (CurrentTenant.Change(context.Subject.FindTenantId())) { diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupBackgroundWorker.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupBackgroundWorker.cs index e910a3b30f..a7ad09d191 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupBackgroundWorker.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Tokens/TokenCleanupBackgroundWorker.cs @@ -22,7 +22,7 @@ namespace Volo.Abp.IdentityServer.Tokens timer.Period = Options.CleanupPeriod; } - protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) + protected async override Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) { await workerContext .ServiceProvider diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs index 17e84876af..bdfe2bbb81 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs @@ -72,7 +72,7 @@ namespace Volo.Abp.IdentityServer.ApiResources return await DbSet.AnyAsync(ar => ar.Id != expectedId && ar.Name == name, GetCancellationToken(cancellationToken)); } - public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) { var resourceClaims = DbContext.Set().Where(sc => sc.ApiResourceId == id); foreach (var scopeClaim in resourceClaims) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs index 88772bfab7..8e5d2bd09c 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiScopes/ApiScopeRepository.cs @@ -50,7 +50,7 @@ namespace Volo.Abp.IdentityServer.ApiScopes return await DbSet.AnyAsync(x => x.Id != expectedId && x.Name == name, GetCancellationToken(cancellationToken)); } - public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = new CancellationToken()) + public async override Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = new CancellationToken()) { var scopeClaims = DbContext.Set().Where(sc => sc.ApiScopeId == id); foreach (var claim in scopeClaims) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index b1ff2770bb..671d98d822 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -54,7 +54,7 @@ namespace Volo.Abp.IdentityServer.Clients return await DbSet.AnyAsync(c => c.Id != expectedId && c.ClientId == clientId, cancellationToken: cancellationToken); } - public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) + public async override Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) { foreach (var clientGrantType in DbContext.Set().Where(x => x.ClientId == id)) { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor index ce854161ef..cce73cea1f 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor @@ -1,5 +1,5 @@ @page "/setting-management" -@inherits SettingManagementBase + @* ************************* PAGE HEADER ************************* *@ diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs index 3c4775fd02..845c196519 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs @@ -10,7 +10,7 @@ using Volo.Abp.SettingManagement.Localization; namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement { - public abstract class SettingManagementBase : OwningComponentBase + public partial class SettingManagement { [Inject] protected IServiceProvider ServiceProvider { get; set; } @@ -29,7 +29,7 @@ namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement protected string SelectedGroup; protected List BreadcrumbItems = new List(); - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { SettingComponentCreationContext = new SettingComponentCreationContext(ServiceProvider); @@ -44,7 +44,7 @@ namespace Volo.Abp.SettingManagement.Blazor.Pages.SettingManagement BreadcrumbItems.Add(new BreadcrumbItem(L["Settings"])); } - protected string GetNormalizedString(string value) + protected virtual string GetNormalizedString(string value) { return value.Replace('.', '_'); } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor index 0b2f60d23b..81c61ae9fa 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor @@ -1,11 +1,10 @@ @page "/tenant-management/tenants" @attribute [Authorize(TenantManagementPermissions.Tenants.Default)] @using Microsoft.AspNetCore.Authorization -@using Microsoft.Extensions.Localization -@using Volo.Abp.TenantManagement.Localization @using Volo.Abp.FeatureManagement.Blazor.Components -@inherits TenantManagementBase -@inject IStringLocalizer L +@using Microsoft.AspNetCore.Components.Forms + +@inherits AbpCrudPageBase @* ************************* PAGE HEADER ************************* *@ @@ -30,40 +29,32 @@ ShowPager="true" PageSize="PageSize"> - @if (ShouldShowEntityActions) - { - - - - - @L["Actions"] - - - @if (HasUpdatePermission) - { - @L["Edit"] - } - @if (HasManageConnectionStringsPermission) - { - @L["ConnectionStrings"] - } - @if (HasManageFeaturesPermission) - { - @L["Features"] - } - @if (HasDeletePermission) - { - - @L["Delete"] - } - - - - - } + + + + + + + + + + - @(context.As().Name) + @(context.Name) @@ -73,25 +64,25 @@ @if (HasCreatePermission) { - + @L["NewTenant"] - + @L["TenantName"] - + @L["DisplayName:AdminEmailAddress"] - + @L["DisplayName:AdminPassword"] - + @@ -107,17 +98,17 @@ @if (HasUpdatePermission) { - + @L["Edit"] - + @L["TenantName"] - + @@ -133,11 +124,11 @@ @if (HasUpdatePermission) { - + @L["ConnectionStrings"] - + @@ -149,7 +140,7 @@ { @L["DisplayName:DefaultConnectionString"] - + } @@ -164,5 +155,5 @@ @if (HasManageFeaturesPermission) { - + } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs index f9dd57422e..e5fcc9c4a3 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs @@ -4,62 +4,61 @@ using Blazorise; using Microsoft.AspNetCore.Authorization; using Volo.Abp.BlazoriseUI; using Volo.Abp.FeatureManagement.Blazor.Components; +using Volo.Abp.TenantManagement.Localization; namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement { - public abstract class TenantManagementBase - : AbpCrudPageBase + public partial class TenantManagement { protected const string FeatureProviderName = "T"; - - protected bool ShouldShowEntityActions; + protected bool HasManageConnectionStringsPermission; protected bool HasManageFeaturesPermission; + protected string ManageConnectionStringsPolicyName; + protected string ManageFeaturesPolicyName; protected FeatureManagementModal FeatureManagementModal; - + protected Modal ManageConnectionStringModal; protected TenantInfoModel TenantInfo; - public TenantManagementBase() + public TenantManagement() { + LocalizationResource = typeof(AbpTenantManagementResource); ObjectMapperContext = typeof(AbpTenantManagementBlazorModule); CreatePolicyName = TenantManagementPermissions.Tenants.Create; UpdatePolicyName = TenantManagementPermissions.Tenants.Update; DeletePolicyName = TenantManagementPermissions.Tenants.Delete; - + ManageConnectionStringsPolicyName = TenantManagementPermissions.Tenants.ManageConnectionStrings; + ManageFeaturesPolicyName = TenantManagementPermissions.Tenants.ManageFeatures; + TenantInfo = new TenantInfoModel(); } - protected override async Task SetPermissionsAsync() + protected async override Task SetPermissionsAsync() { await base.SetPermissionsAsync(); - HasManageConnectionStringsPermission = await AuthorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.ManageConnectionStrings); - HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.ManageFeatures); - - ShouldShowEntityActions = HasUpdatePermission || - HasDeletePermission || - HasManageConnectionStringsPermission || - HasManageFeaturesPermission; + HasManageConnectionStringsPermission = await AuthorizationService.IsGrantedAsync(ManageConnectionStringsPolicyName); + HasManageFeaturesPermission = await AuthorizationService.IsGrantedAsync(ManageFeaturesPolicyName); } protected virtual async Task OpenEditConnectionStringModalAsync(Guid id) { var tenantConnectionString = await AppService.GetDefaultConnectionStringAsync(id); - + TenantInfo = new TenantInfoModel { Id = id, DefaultConnectionString = tenantConnectionString, UseSharedDatabase = tenantConnectionString.IsNullOrWhiteSpace() }; - + ManageConnectionStringModal.Show(); } - + protected virtual Task CloseEditConnectionStringModal() { ManageConnectionStringModal.Hide(); @@ -68,7 +67,7 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement protected virtual async Task UpdateConnectionStringAsync() { - await CheckPolicyAsync(TenantManagementPermissions.Tenants.ManageConnectionStrings); + await CheckPolicyAsync(ManageConnectionStringsPolicyName); if (TenantInfo.UseSharedDatabase || TenantInfo.DefaultConnectionString.IsNullOrWhiteSpace()) { @@ -78,9 +77,14 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement { await AppService.UpdateDefaultConnectionStringAsync(TenantInfo.Id, TenantInfo.DefaultConnectionString); } - + ManageConnectionStringModal.Hide(); } + + protected override string GetDeleteConfirmationMessage(TenantDto entity) + { + return string.Format(L["TenantDeletionConfirmationMessage"], entity.Name); + } } public class TenantInfoModel @@ -88,7 +92,7 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement public Guid Id { get; set; } public bool UseSharedDatabase { get; set; } - + public string DefaultConnectionString { get; set; } } } \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor index bcb4626f1f..51955030c9 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/_Imports.razor @@ -2,5 +2,6 @@ @using Volo.Abp.AspNetCore.Components.WebAssembly @using Microsoft.AspNetCore.Components.Forms @using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components @using Blazorise @using Blazorise.DataGrid diff --git a/npm/lerna.json b/npm/lerna.json index 3e94d9ced7..4dee7eb715 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index 13dbd74158..fb789685b7 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index f0feef1671..9ce382c01f 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -25,17 +25,17 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.account": "~3.3.0", - "@abp/ng.core": "~3.3.0", - "@abp/ng.feature-management": "~3.3.0", - "@abp/ng.identity": "~3.3.0", - "@abp/ng.permission-management": "~3.3.0", - "@abp/ng.schematics": "~3.3.0", - "@abp/ng.setting-management": "~3.3.0", - "@abp/ng.tenant-management": "~3.3.0", - "@abp/ng.theme.basic": "~3.3.0", - "@abp/ng.theme.shared": "~3.3.0", - "@abp/utils": "^3.3.0", + "@abp/ng.account": "~3.3.1", + "@abp/ng.core": "~3.3.1", + "@abp/ng.feature-management": "~3.3.1", + "@abp/ng.identity": "~3.3.1", + "@abp/ng.permission-management": "~3.3.1", + "@abp/ng.schematics": "~3.3.1", + "@abp/ng.setting-management": "~3.3.1", + "@abp/ng.tenant-management": "~3.3.1", + "@abp/ng.theme.basic": "~3.3.1", + "@abp/ng.theme.shared": "~3.3.1", + "@abp/utils": "^3.3.1", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1001.2", "@angular-devkit/build-ng-packagr": "~0.1001.2", diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 06c6edef4f..91471e4b28 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.account", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 58abc39e2e..0cb84a20e9 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=3.3.0", + "@abp/ng.core": ">=3.3.1", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 761d596cae..3c2a3381ac 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^3.3.0", + "@abp/utils": "^3.3.1", "@angular/localize": "~10.0.10", "@ngxs/router-plugin": "^3.7.0", "@ngxs/storage-plugin": "^3.7.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 84f86ca7e4..4326ed16cd 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index ec563b1534..df13e1b3ac 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~3.3.0", - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.permission-management": "~3.3.1", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 4da96e3464..a349b47284 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 27255df267..1773cbd756 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "3.3.0", + "version": "3.3.1", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 1a73f5055b..6748909cf9 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 976a47b64f..09d283df2d 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~3.3.0", - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.feature-management": "~3.3.1", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 07e7782c04..4293784f58 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.3.0", + "@abp/ng.theme.shared": "~3.3.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 138c22371f..dc21a17793 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "3.3.0", + "version": "3.3.1", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~3.3.0", + "@abp/ng.core": "~3.3.1", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.12", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index 6c687e6c64..c23b6f2c88 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,20 +2,20 @@ # yarn lockfile v1 -"@abp/ng.account@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.3.0-rc.2.tgz#dbc2892f28476c0a7412c790268b81eb00af41a9" - integrity sha512-LRpOOOLqT5BXvlgG1Zwxi9j3Odk9AnSK/aKxM1wB34kjdBssuIakN2RVs0Xgz1gmrvQV9RBNe7+yQJuS86WuWw== +"@abp/ng.account@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.3.0.tgz#db36a62b9b3106096a95844c5f8c8df664dc68f0" + integrity sha512-jJuGUIsQL4rBgpr8TqnEKp9PKtrl4KooeizeQIQWrm4JwC0ZQRyo1PB+D3mDI6sPXQo4Uc2YA14nRSGJ9OSdXA== dependencies: - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.core@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.3.0-rc.2.tgz#ad313a8cf9e01527b4af086fdd0906ec88c3694a" - integrity sha512-HpAX8HpC+Z/eOQpNKcLVhEylyCYSEVLSz0WHsuae9dQk7yfJikZJAPpQSS6VrNl1vpYwARtJoiWfK0jrjvwhMA== +"@abp/ng.core@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.3.0.tgz#dd013e171c18a66eede4b8404211d69f09a60533" + integrity sha512-ERH1XyAY1tviWctyYKL8w/9stGogcN5g2ty/6OdZf3dUPcN2MrjXt8o8nRdvA7yUfP4VFKH8xl7qAnSMO+5iCQ== dependencies: - "@abp/utils" "^3.3.0-rc.1" + "@abp/utils" "^3.3.0-rc.2" "@angular/localize" "~10.0.10" "@ngxs/router-plugin" "^3.7.0" "@ngxs/storage-plugin" "^3.7.0" @@ -27,35 +27,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.3.0-rc.2.tgz#9d2c3d02504a64f2196e2ae588a81e6d72d31172" - integrity sha512-d/M5t6rEy5k2hO8tjHdYgnT9AgBAb82JruxplyLM4kOti9Kox7W6thBokDfVpiCQQh+WMtZX/DK1wNZPyFjZ5Q== +"@abp/ng.feature-management@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.3.0.tgz#6f83895acd8cf2bb163cc5260404eab86d6d7a4d" + integrity sha512-XjCEDw1aiQ9zt8McEazqx+lgbtMicQn2KAq/Z45G3Pp138twvT7nDYKwEy3Zo/kzeaQcZYya9/xNP6r7aSnI4A== dependencies: - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.identity@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.3.0-rc.2.tgz#18ec5dcb187fd5d8302e45fc40b5f937fb55e47b" - integrity sha512-ckN9gHvWQDuzhdP2xAgGmXNQo/16yulhQSFWgAFmNTbubPNyz/D41SvbaL1tGWDXGT20tl+CjpZXzDJH4R51Tw== +"@abp/ng.identity@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.3.0.tgz#587b81e806d35185bee0a72cc400969c0992a8bc" + integrity sha512-AzIMkWpiHSVdq4E8n6LNl/QXZHn0KNB3Ok6cfOVIPWWUl1NuTmdG3UdGOZAXGOm9bQmflbTKbBZcdhLOzHlLGw== dependencies: - "@abp/ng.permission-management" "~3.3.0-rc.2" - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.permission-management" "~3.3.0" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.permission-management@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.3.0-rc.2.tgz#f867a2f57c855594001cc8a5446cbb843339c7da" - integrity sha512-KOODyYlKdknVMDcpfjL1cKQQw4ZrcKiNs0WhNgIujt+J9CCsSCDl9yGcVGMlgqo+8PgKkVltRbW+bLlzKlMx9w== +"@abp/ng.permission-management@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.3.0.tgz#c686dca6d80fa5dafe9d940accf4b91853743ec1" + integrity sha512-jHVmgsZ06umNuMp9Uj1SWXm9dz7UNKMyDZjYrbWuG0S8ciwCCmykfOar0C+BK1kvycJXXJw2VKd0Kj36/57FxQ== dependencies: - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.schematics@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-3.3.0-rc.2.tgz#911d6a55581f5afa7577de4d86dd4f53cdf04269" - integrity sha512-8ZpOrU+lCswB/o40K6eK9m38wkTWPOheE1mUn1sNxbsFs1y2WNV0BUTtkSt5QlrgSoHFkhGBgDZAZFxdVL9EFQ== +"@abp/ng.schematics@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-3.3.0.tgz#b2e05826e19fa8096ca11f2117ff81061fbde24f" + integrity sha512-WSIDGoxX2HGtIpLY6uMpX0r/vOClilN478sHKdzX4OL3yXetdvrRp8evB87EOteP4r5DbRIjpWk3GEbknlyeEg== dependencies: "@angular-devkit/core" "~10.0.3" "@angular-devkit/schematics" "~10.0.3" @@ -63,37 +63,37 @@ jsonc-parser "^2.3.0" typescript "~3.9.2" -"@abp/ng.setting-management@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.3.0-rc.2.tgz#661e009d9edf6c5f1db7a3f93c79c863465650be" - integrity sha512-77Eza9dgnP6XsQYGsd3TQ8eZgvZYty9oOeQ+O2Sc9xP9gWn/8jdD8npjgfTDIQxOLpqOS1mHslaiF92BaAU4IA== +"@abp/ng.setting-management@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.3.0.tgz#a53a370e201760570945e9130c7e85bdfcb48ac8" + integrity sha512-54EhudWaXrN0e7bFXNBVkK3bwEM6A/y8OF79Q9//YCD7eB56KvNdP4XXdSRKUfH7P9bvxJn/bmSAZcRQ1uk9Ww== dependencies: - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.tenant-management@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.3.0-rc.2.tgz#a4d7f017c3ee86a39b1783557eb346dad2476fc1" - integrity sha512-AycKXMwJmERThiKOU+ZX29vrifuc1WSE0+djKNd7xKzdu0PSKFYLsrHUeh4mTsjGJml/CsAUBsMV53HDywBjZg== +"@abp/ng.tenant-management@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.3.0.tgz#c5479c3d2b17a96308f8e2e87907dd405003fb5d" + integrity sha512-NPqTP2vU40IxZ0sQ8QNEgl5okptwf6J99Vkl1ELYwa8ztEnfBBo94gK/1q+I8CiQHp3fr//3ycrimPRszW/CCQ== dependencies: - "@abp/ng.feature-management" "~3.3.0-rc.2" - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.feature-management" "~3.3.0" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.theme.basic@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.3.0-rc.2.tgz#b1700d240f798b1687be6ba4b8f6693ce3e2bd15" - integrity sha512-ibrj49MkUHTqs321JXB4Mcuc0kJlk932bbcvzvXpa8nHW9DDH9/TKLttqOqTTeyN+6pnSWcnN5upW6n0bPusaQ== +"@abp/ng.theme.basic@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.3.0.tgz#c216c344273a2f816fa723ddcb3840e416dc5a5d" + integrity sha512-BiwpYd8C5ZL0ew8eVwtpC+nXoSNaP64tJkw1CJScvgJ0fPRiVPddFzgEd3PDFPjqeWtupN1Q8pyp5ng7vqOOpA== dependencies: - "@abp/ng.theme.shared" "~3.3.0-rc.2" + "@abp/ng.theme.shared" "~3.3.0" tslib "^2.0.0" -"@abp/ng.theme.shared@~3.3.0-rc.2": - version "3.3.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.3.0-rc.2.tgz#f676e10bbdde2a08cea1bb34211e7df9d63d795f" - integrity sha512-gGYDeea6LcorB2pXWB7uqQnE0+gefslWF3bErDSllPx0t4QLJiuNNiP/keQBU3H4uF8LPCmBIsQgcQFPjRz/yA== +"@abp/ng.theme.shared@~3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.3.0.tgz#08c6af4ca5877d5cad0a49e002889938b7904c70" + integrity sha512-2X1O+JAUQWlFmuTWm/bHypHEVN084g6w4cVWUuum7+X2Fk01LVRjnJPwCEIRklS3teFoTX/IbKZXG24wVC6liA== dependencies: - "@abp/ng.core" "~3.3.0-rc.2" + "@abp/ng.core" "~3.3.0" "@fortawesome/fontawesome-free" "^5.14.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.12" @@ -102,10 +102,10 @@ chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^3.3.0-rc.1": - version "3.3.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" - integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== +"@abp/utils@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" + integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== dependencies: just-compare "^1.3.0" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index b3807b082c..47a8db589e 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index ed0314a0c2..1cb05b41fb 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index ffbd1306a5..8c2deeb003 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~3.3.0", - "@abp/bootstrap": "~3.3.0", - "@abp/bootstrap-datepicker": "~3.3.0", - "@abp/datatables.net-bs4": "~3.3.0", - "@abp/font-awesome": "~3.3.0", - "@abp/jquery-form": "~3.3.0", - "@abp/jquery-validation-unobtrusive": "~3.3.0", - "@abp/lodash": "~3.3.0", - "@abp/luxon": "~3.3.0", - "@abp/malihu-custom-scrollbar-plugin": "~3.3.0", - "@abp/select2": "~3.3.0", - "@abp/sweetalert": "~3.3.0", - "@abp/timeago": "~3.3.0", - "@abp/toastr": "~3.3.0" + "@abp/aspnetcore.mvc.ui": "~3.3.1", + "@abp/bootstrap": "~3.3.1", + "@abp/bootstrap-datepicker": "~3.3.1", + "@abp/datatables.net-bs4": "~3.3.1", + "@abp/font-awesome": "~3.3.1", + "@abp/jquery-form": "~3.3.1", + "@abp/jquery-validation-unobtrusive": "~3.3.1", + "@abp/lodash": "~3.3.1", + "@abp/luxon": "~3.3.1", + "@abp/malihu-custom-scrollbar-plugin": "~3.3.1", + "@abp/select2": "~3.3.1", + "@abp/sweetalert": "~3.3.1", + "@abp/timeago": "~3.3.1", + "@abp/toastr": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index b3870a1e1a..bc9a15759b 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index ac83158b94..56b77abd10 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.3.0", - "@abp/owl.carousel": "~3.3.0", - "@abp/prismjs": "~3.3.0", - "@abp/tui-editor": "~3.3.0" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.3.1", + "@abp/owl.carousel": "~3.3.1", + "@abp/prismjs": "~3.3.1", + "@abp/tui-editor": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 713b82e1a0..b5cce6c658 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 117b72ec0e..8046c8bb3d 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index a8c076f8b2..6b85e144a5 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 289c8a93d9..f71085d432 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index c12ab0cb09..486d134030 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index b0dc7695ac..26df88e58c 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^3.3.0" + "@abp/utils": "^3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 552d783f3b..f4b72db405 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 611fe61fb7..4385637bd1 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~3.3.0", + "@abp/datatables.net": "~3.3.1", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index c7f30d2c8a..ae42612012 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index a947c9e66b..a396c7d86e 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~3.3.0", - "@abp/clipboard": "~3.3.0", - "@abp/malihu-custom-scrollbar-plugin": "~3.3.0", - "@abp/popper.js": "~3.3.0", - "@abp/prismjs": "~3.3.0" + "@abp/anchor-js": "~3.3.1", + "@abp/clipboard": "~3.3.1", + "@abp/malihu-custom-scrollbar-plugin": "~3.3.1", + "@abp/popper.js": "~3.3.1", + "@abp/prismjs": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 5da86806bc..3992c51894 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index f8e1391d3a..3a31752a73 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index a7d7843dbb..501faa4cf8 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0" + "@abp/core": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 037d82195e..3f3cc96851 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 1663506ed6..f193d7e53e 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~3.3.0", + "@abp/jquery-validation": "~3.3.1", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index f3634601ef..bbb272c5c9 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index e3b1031903..4c1c45ed95 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 1d63bd6e1a..f1915651a4 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index ce3947a300..d89dadde72 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index fcd0100e2a..6bd509732f 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/luxon", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 2e82cf3cad..66c7aa4d48 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index b9019a5cac..efc287cc21 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 8f9c60ad59..41137d1b99 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index bf98ca9f0f..751d96936e 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 807604e6ee..205be331e3 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.3.0", - "@abp/core": "~3.3.0", + "@abp/clipboard": "~3.3.1", + "@abp/core": "~3.3.1", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index af04bb4151..2b8ba0c241 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 11167db4b7..f3affef301 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index f2151ff820..47240f860e 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index d748e1fc14..fee77631d3 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index ba8775428f..91fe6246e8 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 2dd6daa133..f4881faa83 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.3.0", + "@abp/jquery": "~3.3.1", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 9b3a70d266..6c00d28c8b 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~3.3.0", - "@abp/highlight.js": "~3.3.0", - "@abp/jquery": "~3.3.0", - "@abp/markdown-it": "~3.3.0", + "@abp/codemirror": "~3.3.1", + "@abp/highlight.js": "~3.3.1", + "@abp/jquery": "~3.3.1", + "@abp/markdown-it": "~3.3.1", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 997ad1df57..94a1a4496c 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.3.0", + "@abp/core": "~3.3.1", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index e167dea0c2..ae17ada535 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "3.3.0", + "version": "3.3.1", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 5baeaa1874..bf9da1dd8e 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "3.3.0", + "version": "3.3.1", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.3.0", - "@abp/prismjs": "~3.3.0" + "@abp/clipboard": "~3.3.1", + "@abp/prismjs": "~3.3.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 7dce9897d1..d9bc893c2d 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,11 +12,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.3.0", - "@abp/ng.identity": "~3.3.0", - "@abp/ng.setting-management": "~3.3.0", - "@abp/ng.tenant-management": "~3.3.0", - "@abp/ng.theme.basic": "~3.3.0", + "@abp/ng.account": "~3.3.1", + "@abp/ng.identity": "~3.3.1", + "@abp/ng.setting-management": "~3.3.1", + "@abp/ng.tenant-management": "~3.3.1", + "@abp/ng.theme.basic": "~3.3.1", "@angular/animations": "~10.1.2", "@angular/common": "~10.1.2", "@angular/compiler": "~10.1.2", @@ -30,7 +30,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.3.0", + "@abp/ng.schematics": "~3.3.1", "@angular-devkit/build-angular": "~0.1001.2", "@angular-devkit/build-ng-packagr": "~0.1001.2", "@angular/cli": "~10.1.2", diff --git a/templates/app/aspnet-core/NuGet.Config b/templates/app/aspnet-core/NuGet.Config new file mode 100644 index 0000000000..be8a1ece10 --- /dev/null +++ b/templates/app/aspnet-core/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index cfaf51eee7..6a3f216d47 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs index 9a0a915d60..dec205bdae 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs @@ -55,7 +55,7 @@ namespace MyCompanyName.MyProjectName.Blazor { Configure(options => { - options.MenuContributors.Add(new MyProjectNameMenuContributor()); + options.MenuContributors.Add(new MyProjectNameMenuContributor(context.Services.GetConfiguration())); }); } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameMenuContributor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameMenuContributor.cs index 9dda814d93..003d882da6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameMenuContributor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameMenuContributor.cs @@ -1,18 +1,37 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using MyCompanyName.MyProjectName.Localization; +using Volo.Abp.Account.Localization; using Volo.Abp.UI.Navigation; +using Volo.Abp.Users; namespace MyCompanyName.MyProjectName.Blazor { public class MyProjectNameMenuContributor : IMenuContributor { - public Task ConfigureMenuAsync(MenuConfigurationContext context) + private readonly IConfiguration _configuration; + + public MyProjectNameMenuContributor(IConfiguration configuration) { - if(context.Menu.DisplayName != StandardMenus.Main) + _configuration = configuration; + } + + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) { - return Task.CompletedTask; + await ConfigureMainMenuAsync(context); } + else if (context.Menu.Name == StandardMenus.User) + { + await ConfigureUserMenuAsync(context); + } + } + private Task ConfigureMainMenuAsync(MenuConfigurationContext context) + { var l = context.GetLocalizer(); context.Menu.Items.Insert( @@ -27,5 +46,27 @@ namespace MyCompanyName.MyProjectName.Blazor return Task.CompletedTask; } + + private Task ConfigureUserMenuAsync(MenuConfigurationContext context) + { + var accountStringLocalizer = context.GetLocalizer(); + var currentUser = context.ServiceProvider.GetRequiredService(); + + var identityServerUrl = _configuration["AuthServer:Authority"] ?? ""; + + if (currentUser.IsAuthenticated) + { + context.Menu.AddItem(new ApplicationMenuItem( + "Account.Manage", + accountStringLocalizer["ManageYourProfile"], + $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage", + icon: "fa fa-cog", + order: 1000, + null, + "_blank")); + } + + return Task.CompletedTask; + } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html index c9a25182e4..bf8c9d7902 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/wwwroot/index.html @@ -12,6 +12,7 @@ + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameBrandingProvider.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameBrandingProvider.cs new file mode 100644 index 0000000000..5680cd733d --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameBrandingProvider.cs @@ -0,0 +1,11 @@ +using Volo.Abp.DependencyInjection; +using Volo.Abp.Ui.Branding; + +namespace MyCompanyName.MyProjectName +{ + [Dependency(ReplaceServices = true)] + public class MyProjectNameBrandingProvider : DefaultBrandingProvider + { + public override string AppName => "MyProjectName"; + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index 873f97d96a..2bc5c64d21 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -16,6 +16,8 @@ using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Authentication.JwtBearer; using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; @@ -46,6 +48,7 @@ namespace MyCompanyName.MyProjectName var configuration = context.Services.GetConfiguration(); var hostingEnvironment = context.Services.GetHostingEnvironment(); + ConfigureBundles(); ConfigureUrls(configuration); ConfigureConventionalControllers(); ConfigureAuthentication(context, configuration); @@ -55,6 +58,20 @@ namespace MyCompanyName.MyProjectName ConfigureSwaggerServices(context); } + private void ConfigureBundles() + { + Configure(options => + { + options.StyleBundles.Configure( + BasicThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + }); + } + private void ConfigureUrls(IConfiguration configuration) { Configure(options => @@ -200,4 +217,4 @@ namespace MyCompanyName.MyProjectName app.UseConfiguredEndpoints(); } } -} \ No newline at end of file +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 34ca938f87..e415c0b911 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/wwwroot/global-styles.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/wwwroot/global-styles.css new file mode 100644 index 0000000000..e5d20ea346 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/wwwroot/global-styles.css @@ -0,0 +1 @@ +/* Your Global Styles */ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index f5e0422d9f..04166e32f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index ee0d6d7473..e67b25769f 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -16,7 +16,9 @@ using Volo.Abp.Account; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Mvc.UI; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Auditing; @@ -70,6 +72,17 @@ namespace MyCompanyName.MyProjectName options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中文")); }); + Configure(options => + { + options.StyleBundles.Configure( + BasicThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + }); + Configure(options => { //options.IsEnabledForGetRequests = true; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 8e9f71b33b..8718ef2557 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/global-styles.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/global-styles.css new file mode 100644 index 0000000000..e5d20ea346 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/global-styles.css @@ -0,0 +1 @@ +/* Your Global Styles */ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 7478ec439a..b6fb3e1d1e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 958f39ea0e..bbff4ef4a7 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -18,7 +18,9 @@ using Volo.Abp.AspNetCore.Mvc.Client; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars; using Volo.Abp.AspNetCore.Serilog; @@ -76,6 +78,7 @@ namespace MyCompanyName.MyProjectName.Web var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); + ConfigureBundles(); ConfigureCache(configuration); ConfigureRedis(context, configuration, hostingEnvironment); ConfigureUrls(configuration); @@ -87,6 +90,20 @@ namespace MyCompanyName.MyProjectName.Web ConfigureSwaggerServices(context.Services); } + private void ConfigureBundles() + { + Configure(options => + { + options.StyleBundles.Configure( + BasicThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + }); + } + private void ConfigureCache(IConfiguration configuration) { Configure(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 34ca938f87..e415c0b911 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/global-styles.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/global-styles.css new file mode 100644 index 0000000000..e5d20ea346 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/global-styles.css @@ -0,0 +1 @@ +/* Your Global Styles */ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 7478ec439a..b6fb3e1d1e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 5b7a147345..1483e94a57 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -17,8 +17,10 @@ using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; @@ -73,6 +75,7 @@ namespace MyCompanyName.MyProjectName.Web var configuration = context.Services.GetConfiguration(); ConfigureUrls(configuration); + ConfigureBundles(); ConfigureAuthentication(context, configuration); ConfigureAutoMapper(); ConfigureVirtualFileSystem(hostingEnvironment); @@ -90,6 +93,20 @@ namespace MyCompanyName.MyProjectName.Web }); } + private void ConfigureBundles() + { + Configure(options => + { + options.StyleBundles.Configure( + BasicThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + }); + } + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) { context.Services.AddAuthentication() diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 34ca938f87..e415c0b911 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/global-styles.css b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/global-styles.css new file mode 100644 index 0000000000..e5d20ea346 --- /dev/null +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/global-styles.css @@ -0,0 +1 @@ +/* Your Global Styles */ diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index f5e0422d9f..04166e32f1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 2403fba4b8..4f4cd9722a 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.3.0", - "@abp/ng.identity": "~3.3.0", - "@abp/ng.setting-management": "~3.3.0", - "@abp/ng.tenant-management": "~3.3.0", - "@abp/ng.theme.basic": "~3.3.0", + "@abp/ng.account": "~3.3.1", + "@abp/ng.identity": "~3.3.1", + "@abp/ng.setting-management": "~3.3.1", + "@abp/ng.tenant-management": "~3.3.1", + "@abp/ng.theme.basic": "~3.3.1", "@angular/animations": "~10.1.2", "@angular/common": "~10.1.2", "@angular/compiler": "~10.1.2", @@ -33,7 +33,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.3.0", + "@abp/ng.schematics": "~3.3.1", "@angular-devkit/build-angular": "~0.1001.2", "@angular-devkit/build-ng-packagr": "~0.1001.2", "@angular/cli": "~10.1.2", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 41586bcf5b..3627232e44 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.3.0", - "@abp/ng.theme.shared": ">=3.3.0" + "@abp/ng.core": ">=3.3.1", + "@abp/ng.theme.shared": ">=3.3.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/NuGet.Config b/templates/module/aspnet-core/NuGet.Config new file mode 100644 index 0000000000..be8a1ece10 --- /dev/null +++ b/templates/module/aspnet-core/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index 9d0ce4f54d..a72215c320 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Pages/Index.razor b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Pages/Index.razor index 66c4949ac9..1140cddeff 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Pages/Index.razor +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/Pages/Index.razor @@ -49,7 +49,7 @@ { private IEnumerable _claims; - protected override async Task OnInitializedAsync() + protected async override Task OnInitializedAsync() { var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); if (authState.User.Identity.IsAuthenticated) diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 8e9f71b33b..8718ef2557 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index 7478ec439a..b6fb3e1d1e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 34ca938f87..e415c0b911 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index 7478ec439a..b6fb3e1d1e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 34ca938f87..e415c0b911 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.1" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index 8a2cf41872..69bf261f91 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0.tgz#5a83ad1010ede0647cc4bbe225f0ebf8f3ac90d8" - integrity sha512-b0Z/CO7nLixuceC2A/rx4m6OQPwe7ELym+ZZdurUxI42ciuoC5Cnnl3FH+HCt8P3JdFjOIWl2wOXvUcc6P16oQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0.tgz#6c998bad95e46905e5a1487ab2370905cdf4376a" - integrity sha512-Tt6SK3EUj8jfZKSzeIVkRuWyAGRoDTqeoS5VVkNZLoIfLzwiimHw2o2AlPRtCMa0jqLropHtaT/kNl+EU24AZw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.3.0" - "@abp/bootstrap" "~3.3.0" - "@abp/bootstrap-datepicker" "~3.3.0" - "@abp/datatables.net-bs4" "~3.3.0" - "@abp/font-awesome" "~3.3.0" - "@abp/jquery-form" "~3.3.0" - "@abp/jquery-validation-unobtrusive" "~3.3.0" - "@abp/lodash" "~3.3.0" - "@abp/luxon" "~3.3.0" - "@abp/malihu-custom-scrollbar-plugin" "~3.3.0" - "@abp/select2" "~3.3.0" - "@abp/sweetalert" "~3.3.0" - "@abp/timeago" "~3.3.0" - "@abp/toastr" "~3.3.0" - -"@abp/aspnetcore.mvc.ui@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0.tgz#07f7d0f7f689a3ac75a69e12681ebd3d08fa0644" - integrity sha512-EbUISgnR8qHYdu/tSro8QjUWj17M6gOkugMI7N0fiPNbtLHgKG2GHWxIsVEf5ic1O2j/PWKOQ+FPBLZ4v3jFrw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.1.tgz#58ae88355b821ca72eccf1950bde544b8f0edcca" + integrity sha512-AUIJQIBb+5of0Na1cxmyacni6ToYBpmtU+NJH9/cTC3UUAPylj8TiAX9yobAPn8dbrcXTm+dh9T8i49rXTtxoA== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.1.tgz#c3123ea8f6c8428d034d9ac2782aa1bff27bd740" + integrity sha512-j2uZapDTKSjH74uZcIR4y09hr6w+OAdybQhL1bx4fb0D3XlmOdOwRrsqXieJNwAggbUn00EX2Usiey3N/wV1rA== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.1" + "@abp/bootstrap" "~3.3.1" + "@abp/bootstrap-datepicker" "~3.3.1" + "@abp/datatables.net-bs4" "~3.3.1" + "@abp/font-awesome" "~3.3.1" + "@abp/jquery-form" "~3.3.1" + "@abp/jquery-validation-unobtrusive" "~3.3.1" + "@abp/lodash" "~3.3.1" + "@abp/luxon" "~3.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.1" + "@abp/select2" "~3.3.1" + "@abp/sweetalert" "~3.3.1" + "@abp/timeago" "~3.3.1" + "@abp/toastr" "~3.3.1" + +"@abp/aspnetcore.mvc.ui@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.1.tgz#946d5fb68d73842270e2553fba475163d2ca57a5" + integrity sha512-W/Yxe20Upkha0XaHPQwQ3+LxdUZI21BiARcbBUnIUzRUrFBpvjD0A9/T8bsi+KpIqOYLAwtrE1TJoSuZGscoIw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0.tgz#d7d11e591818a6ec654127d88602cfdfddf81b1f" - integrity sha512-PUsS48o5Cwufn8O8d34UBsjLF6/HrgdhsGTUzrVIhGapiyuYD/QrvqWYWRUj1Jeeb4nrsRVem2DnM1isy+CUCA== +"@abp/bootstrap-datepicker@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.1.tgz#c0f5763e0bfb1e293ef1b22f2a14014ec345dbc3" + integrity sha512-MnX2vI75gEDtlwnKhI6ptH657dh5TuXoin1XeaEhOa5rGbLwhSu4IFqRmlLBedFBOf+1zwcvFs30vsQlNKJ6Nw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0.tgz#1314549e7a940c58fdff521a9ddf153f3414fffa" - integrity sha512-CVjSwbZPjio0VJWxdo+PRkvUYGtv51DgVrqjgHK7m7tGFwHAK38cDHAl+mqmIp7dgPG1Z+E0o41JteT3Za1Bkw== +"@abp/bootstrap@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.1.tgz#5b173918511b6ad1fb8ac570ea2e2fcb874970e0" + integrity sha512-CfnwXAV2XRK3gYpeEQjgVzEocU6pqdGZXwATwOKifHWBZNG8ubDyMgBed+oVCvJgRvLRrniR5jFK2vhm8Du+EQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0.tgz#c88c28df19f96349b9a32b7ebe402e6d267c34e5" - integrity sha512-y9P86zPAm55fAyKwDaoxv+IrApA339aaGEpN9364upeeNBsO8mYf9hoM136VovQaWNIABFHRD7R+9KskwPAuNA== +"@abp/core@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.1.tgz#b1da2160b0fc4a309dc4a65ee937c814de16b2de" + integrity sha512-6/6FHTLZrWh821O6xr4Sk1BlIt9gTAT19NnykQRV9U8S7rl4BQv2QF055R8Wg3lnVKWJ1ajiAbd3gerjH/pL6g== dependencies: - "@abp/utils" "^3.3.0" + "@abp/utils" "^3.3.1" -"@abp/datatables.net-bs4@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0.tgz#e4cc85f3c1c195d9e8b07532eb7c53619f40a787" - integrity sha512-StuwT8jGfDWGNXmYgRELuErXxSE+qjVoiSAkd27mZqDbYSTipq4OZSAHr6WNmoqMgP6QlCgjGgXcz4Pr8Pxuaw== +"@abp/datatables.net-bs4@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.1.tgz#fd0f5f5579ff94d635d19c1bf46ac0593639e3f4" + integrity sha512-C9BUlbsk9liJ+hmFpTKoearJNZISDy5TInTbnixL8WfXfIaAWdZRs+ADvhKO9+oWMxkbxhGI8ueYQ29Z1UJzMg== dependencies: - "@abp/datatables.net" "~3.3.0" + "@abp/datatables.net" "~3.3.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0.tgz#a2b2cedc06beb325e62ce6faba899c935564b9a7" - integrity sha512-y0RGrLxI7VgWFAFtHAraDnrEJ5pkUIJ3zxEScS43RUbArhxk+5pIpxQbmU0WgHpk72H7WXdqtL486Kw8PSj1Nw== +"@abp/datatables.net@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.1.tgz#2ec7406712607f08f0ae9a6ce0ee7bfd0cc73278" + integrity sha512-prsMkh//XCymCG/aYEEtzV/922RJIZ0+PcnRvhJzXvrX4DK2y3ZWM44QNR/9/rpkYUJqRcVoHqbt1DuxbHDLXQ== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0.tgz#f9307334c34309456c47cc407fbe079821ace45e" - integrity sha512-7/uZ2qXooHQZG35F6ERKsjI8m0gn8/BgE2cOB7Zhu5KRtSTOHOOXX4YWEfoHYLEMuo3xKTTJ2gHM3jiCJEpVtg== +"@abp/font-awesome@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.1.tgz#268a21685a6b810b15848169b78c3dfb11d582c6" + integrity sha512-Eg2dwtcsyLo5E6PC21vK5R8YFe32UFSN4DpNrqAP9I85daR8ZbT0US8SbfCcI5nhiZlRi3EWj/cUgz2IEJHaaQ== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0.tgz#43fc5655b4e3cac7c0558fb36dd9ef188fe64412" - integrity sha512-fH4IPf/cU3ojWtVsPZjtymzK0xWqqgmvnSk5zy4AB4MOCKyYtPrn5OAMUvq8A4uZ0mGIRAQ8Z72wPKZA1rws5A== +"@abp/jquery-form@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.1.tgz#4e8c2e50e711a7bbe4f40e74210472b21afd0ecf" + integrity sha512-HBic6SzOSprYAug/Qbgcd+MiPRwtXczS2/x9IUmPFeUhvuqJJoYPWrhI5xC6WKNcJ/5MjExiEbeEXMXp8PwJTA== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0.tgz#0840f3114626a1d6efff54f4791776ebfdf56e76" - integrity sha512-foKM9FDAY2RZGz5EQ2FcQt/FiL8sMc+uwd+2KeAdIejLyPgeSH/lLio6agd2Xun4e/xlBJB185Ga1eKcdHIGAw== +"@abp/jquery-validation-unobtrusive@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.1.tgz#e42d61a172b6ef5cbdbb305ab5d93e3dad5159a1" + integrity sha512-SH8zmrR3HshCNP0zIgi4j6PMhgCzmCKk5xXxD+8kg+LAv+bm1iP0K5srgX4WlEffRma80QIeNKPpe/lW04EgFw== dependencies: - "@abp/jquery-validation" "~3.3.0" + "@abp/jquery-validation" "~3.3.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0.tgz#2199968638d7bab9bfb6ba5e9f27d9d607c09a24" - integrity sha512-jxw274hx8i9+dkRrDz7aUpWSGESnJ2wuA6e3IAQIlubFf+7q0o4vosXD5bubinn4qaRGcSiYC15armfefgmFCw== +"@abp/jquery-validation@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.1.tgz#05164e342fdb83f40a17f000b40c27df2604c394" + integrity sha512-oKN3wQUY1PB7IhelFIJVjRqAZx/AVlpUF0GV6k/9eNBK+ZoLpW1ebE1q9tsLhXf7QS1N7S45aEHB8OpjRopDew== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0.tgz#b99a9436bf3c2394917e761a2dcdfe4f1af9ff3d" - integrity sha512-WrjDQCBOi83kjtMYjXCJVWSbnFxKLW/KtDADkjTF7TxIGccsNWx6E8npzdCEnDnlOJ5Rk9+1QIu07pWedOjBSg== +"@abp/jquery@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.1.tgz#2e8431a52641ab85d1372a32518307bbf8fba1a0" + integrity sha512-mSAUYLzhJSvq8ixhAFkU5Q2LRDTkJAGHq47alb2nNEodZNr1q1i+875nP3dE/4MLT/foG0H+j+r4RGuYx4fGAA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" jquery "~3.5.1" -"@abp/lodash@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0.tgz#5402a779ef1e8ecd585644a68607425587560305" - integrity sha512-QFm9hpWs0/J5TFFiE7vO5oxTsLgMcibmgg/CxYvmQZXhHGZpx3mdoAzC48CvRu8quxr6Xo8pIxlCyYXniR6/Dw== +"@abp/lodash@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.1.tgz#5c2602f03bde7fbf7841c01bb7178b3ca3429d87" + integrity sha512-5fitYkotzaXGaEbwctVYT4HcfKZ1ghAnvrQLYI+2MYgIQmtipBhXFEG030zIXWThEoIGKOBuwVzmOYtwiX7+8w== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" lodash "^4.17.15" -"@abp/luxon@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0.tgz#2d669786308df997c6738dd205363edaae670d15" - integrity sha512-1oSUuzgehSBxaxJLfD06ktXK4jisILPKFnEaKCBuPiKiQSDFvdQbepHAYJcpU1Jye6sVrheUKDUyJhnSwDb+0w== +"@abp/luxon@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.1.tgz#2e477be6a9f76394331399a762552bf610168e8e" + integrity sha512-bp74vBmObbqUXsOc4VRWml5ivEyIzwHLR4oycLvWG0bQZn65yt7db7DVYTQL1PCWbEAKf6eULlnF6JvZpSVgeg== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0.tgz#3bb48e0d68c0b76f3460eb19706927af2168a6c3" - integrity sha512-44JvJOfxJ5ihfNCPyc5U8D8N8CmLh8UBMkzjH7YJQZJO+7PGgjx+uEqbQhTtBDftUz5C5oFkGoQ7i2pil7YSYQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.1.tgz#df833f2b8421f4dce681c13d2d5976680a27e4c8" + integrity sha512-bJRQTevunQulXo+EC1HWqYgV30RVmFcS218DtdZLm2x/xWFBhvr+2DLzLS2Gq8JJXNGQMFbHnCWixn5si4V/KA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0.tgz#207460dd128a1620c332af5eea2df88bfdfd0520" - integrity sha512-dbOnzQVARBQp/ynJvNyJqE1ArtsWCV8nGMUablB1ILPonsJy+0ADJ+GXWa1nIsHdj3zPW0MLi8pdqpepRCTAFg== +"@abp/select2@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.1.tgz#65ac0ae3ac8783d4e0422717ce743d573bf559e4" + integrity sha512-efxhM/QxAmnyfGNcokZIK7vD6wYJkFGSnZEDj9QSrZ6DyUYf8H+jlK38JViDGe0RCMqts0R4B6IaKT0RbbIGmw== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" select2 "^4.0.13" -"@abp/sweetalert@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0.tgz#457a05af37819fc54082254022551ed0233c471e" - integrity sha512-6KXwPVC1zwNwlZBS9x0uPLTmieu3nmBp0G+ZH1aP+GTMphSa0ejI7nuPFqUeqfEMg+an1yj51SKKUfKtmlx6Zg== +"@abp/sweetalert@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.1.tgz#b6a41f8459d4407c4aee04e2f200b84e3fa8d534" + integrity sha512-olDU9Lh5o0sNCxRXROwt8QhHpuB5+fjojVWVUOiag0UMLVA9k/fp38diyn64qddSHWCafpqjeO32IXDKEQckZA== dependencies: - "@abp/core" "~3.3.0" + "@abp/core" "~3.3.1" sweetalert "^2.1.2" -"@abp/timeago@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0.tgz#f0da23577630cec21255fc9c71dd2f7a3a3a3388" - integrity sha512-f5sb4vxgGPyIzTj6lxDzUx/qJiC8pAqWPasdxHDMzhKlkRuFWO+GfblR5DC/sj9fQPcyV8+yX/VQPY3JW8i62Q== +"@abp/timeago@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.1.tgz#9759e09728fea082d28cd430cdc1af5b93f14720" + integrity sha512-sIgSj3hZBl+oyO6rHc55YrIfqb4d2d2RlT6HU+OIsa2/BUAjTcW6WdPVUjXTreth2jyxEjXkfOKA3Sv5DvraGg== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" timeago "^1.6.7" -"@abp/toastr@~3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0.tgz#c4f7d761eb4d93e993cb8e8cb54a0d670b20bdd3" - integrity sha512-GGqtVUCX8WalpkCnhiYUs+XxxBnhxGOLe87qFe/2tr0XNDJ3BSHXxiKynDetjlNAq/Qnf4U5P4Eg9FnHWFdWZg== +"@abp/toastr@~3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.1.tgz#06cf0b46e6430fae516aaff8707a5f5b16d6ed1d" + integrity sha512-LTf2NGwcG9ke571HMO7N4syhJijagnw/eIDl6ezflIQI/BnQqBKpXJ8xckCCqgryxfraBu4APMuSkPoDs2Ce5g== dependencies: - "@abp/jquery" "~3.3.0" + "@abp/jquery" "~3.3.1" toastr "^2.1.4" -"@abp/utils@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0.tgz#44ccacf4c415227e94981d907017de1c6f7225bb" - integrity sha512-/JIcygVJu/Ob1G5IicL2XgOVjIIePC2t3QzgEbwaq6NDGMHiOm2quyS8Lj7TfjBeUFTJhCFEbXJMq0lGQ+KMww== +"@abp/utils@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.1.tgz#f1759161ac8af10e57b50ac90538a24a51b64ebd" + integrity sha512-XEYJYp94zDdln48P7X51wa4v1yg3Q+p0o2DdZxQbZxXChRkCwVC/B0uyMGPs75wkft6xiz965Xr7vcNvMo0nOA== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/MyProjectName/Index.razor b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/MyProjectName/Index.razor index d54a229594..2d155b021c 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/MyProjectName/Index.razor +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/MyProjectName/Index.razor @@ -1,6 +1,6 @@ -@page "/MyProjectName" +@page "/MyProjectName" @using Microsoft.Extensions.Localization -@using MyCompanyName.MyProjectName.Localization +@using global::MyCompanyName.MyProjectName.Localization @inject IStringLocalizer L @{ } diff --git a/templates/wpf/src/MyCompanyName.MyProjectName/App.xaml.cs b/templates/wpf/src/MyCompanyName.MyProjectName/App.xaml.cs index b76f8832e4..6ab1bd8c86 100644 --- a/templates/wpf/src/MyCompanyName.MyProjectName/App.xaml.cs +++ b/templates/wpf/src/MyCompanyName.MyProjectName/App.xaml.cs @@ -34,7 +34,7 @@ namespace MyCompanyName.MyProjectName _application = _host.Services.GetService(); } - protected override async void OnStartup(StartupEventArgs e) + protected async override void OnStartup(StartupEventArgs e) { Log.Logger = new LoggerConfiguration() #if DEBUG @@ -66,7 +66,7 @@ namespace MyCompanyName.MyProjectName } } - protected override async void OnExit(ExitEventArgs e) + protected async override void OnExit(ExitEventArgs e) { _application.Shutdown(); await _host.StopAsync();