diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 366972c165..062bf71d89 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-dotnet@master with: - dotnet-version: 3.1.102 + dotnet-version: 5.0.100-rc.2.20479.15 - name: Build All run: .\build-all.ps1 diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000000..a0572030a2 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/build/common.ps1 b/build/common.ps1 index 18019a154e..830b6ce270 100644 --- a/build/common.ps1 +++ b/build/common.ps1 @@ -16,7 +16,9 @@ $solutionPaths = @( "../modules/tenant-management", "../modules/audit-logging", "../modules/background-jobs", - "../modules/account" + "../modules/account", + "../modules/cms-kit", + "../modules/blob-storing-database" ) if ($full -eq "-f") diff --git a/common.props b/common.props index 5671a3fc31..fb54e50baf 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.3.0 + 4.0.0 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ diff --git a/docs/en/Application-Services.md b/docs/en/Application-Services.md index 9cfec614cb..f48ff9cb5b 100644 --- a/docs/en/Application-Services.md +++ b/docs/en/Application-Services.md @@ -445,6 +445,68 @@ These methods are used to convert Entities to DTOs and vice verse. They uses the * `MapToEntityAsync(TCreateInput)` is used to create an entity from `TCreateInput`. * `MapToEntityAsync(TUpdateInput, TEntity)` is used to update an existing entity from `TUpdateInput`. +## Miscellaneous + +### Working with Streams + +`Stream` object itself is not serializable. So, you may have problems if you directly use `Stream` as the parameter or the return value for your application service. ABP Framework provides a special type, `IRemoteStreamContent` to be used to get or return streams in the application services. + +**Example: Application Service Interface that can be used to get and return streams** + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public interface ITestAppService : IApplicationService + { + Task Upload(Guid id, IRemoteStreamContent streamContent); + Task Download(Guid id); + } +} +```` + +**Example: Application Service Implementation that can be used to get and return streams** + +````csharp +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public class TestAppService : ApplicationService, ITestAppService + { + public Task Download(Guid id) + { + var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.OpenOrCreate); + return Task.FromResult( + (IRemoteStreamContent) new RemoteStreamContent(fs) { + ContentType = "application/octet-stream" + } + ); + } + + public async Task Upload(Guid id, IRemoteStreamContent streamContent) + { + using (var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.Create)) + { + await streamContent.GetStream().CopyToAsync(fs); + await fs.FlushAsync(); + } + } + } +} +```` + +`IRemoteStreamContent` is compatible with the [Auto API Controller](API/Auto-API-Controllers.md) and [Dynamic C# HTTP Proxy](API/Dynamic-CSharp-API-Clients.md) systems. + ## Lifetime Lifetime of application services are [transient](Dependency-Injection.md) and they are automatically registered to the dependency injection system. diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md new file mode 100644 index 0000000000..4e19a294c1 --- /dev/null +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -0,0 +1,271 @@ +# ABP Framework 3.3 RC Has Been Published + +We have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial](https://commercial.abp.io/)) `3.3.0-rc.1` today. This blog post introduces the new features and important changes in the new version. + +## Get Started with the 3.3 RC.1 + +If you want to try the version `3.3.0-rc.1` today, follow the steps below; + +1) **Upgrade** the ABP CLI to the version `3.3.0-rc.1` using a command line terminal: + +````bash +dotnet tool update Volo.Abp.Cli -g --version 3.3.0-rc.1 +```` + +**or install** if you haven't installed before: + +````bash +dotnet tool install Volo.Abp.Cli -g --version 3.3.0-rc.1 +```` + +2) Create a **new application** with the `--preview` option: + +````bash +abp new BookStore --preview +```` + +See the [ABP CLI documentation](https://docs.abp.io/en/abp/3.3/CLI) for all the available options. + +> You can also use the *Direct Download* tab on the [Get Started](https://abp.io/get-started) page by selecting the Preview checkbox. + +## What's new with the ABP Framework 3.3 + +### The Blazor UI + +We had released an experimental early preview version of the Blazor UI with the [previous version](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-3.2-RC-With-The-New-Blazor-UI). In this version, we've completed most of the fundamental infrastructure features and the application modules (like identity and tenant management). + +It currently has almost the same functionalities as the other UI types (Angular & MVC / Razor Pages). + +**Example screenshot**: User management page of the Blazor UI + +![abp-blazor-ui](abp-blazor-ui.png) + +> We've adapted the [Lepton Theme](https://commercial.abp.io/themes) for the ABP Commercial, see the related section below. + +We are still working on the fundamentals. So, the next version may introduce breaking changes of the Blazor UI. We will work hard to keep them with the minimal effect on your application code. + +#### Breaking Changes on the Blazor UI + +There are some breaking changes with the Blazor UI. If you've built an application and upgrade it, your application might not properly work. See [the migration guide](https://docs.abp.io/en/abp/3.3/Migration-Guides/BlazorUI-3_3) for the changes you need to do after upgrading your application. + +### Automatic Validation for AntiForgery Token for HTTP APIs + +Starting with the version 3.3, all your HTTP API endpoints are **automatically protected** against CSRF attacks, unless you disable it for your application. So, no configuration needed, just upgrade the ABP Framework. + +[See the documentation](https://docs.abp.io/en/abp/3.3/CSRF-Anti-Forgery) to if you want to understand why you need it and how ABP Framework solves the problem. + +### Rebus Integration Package for the Distributed Event Bus + +[Rebus](https://github.com/rebus-org/Rebus) describes itself as "Simple and lean service bus implementation for .NET". There are a lot of integration packages like RabbitMQ and Azure Service Bus for the Rebus. The new [Volo.Abp.EventBus.Rebus](https://www.nuget.org/packages/Volo.Abp.EventBus.Rebus) package allows you to use the Rebus as the [distributed event bus](https://docs.abp.io/en/abp/latest/Distributed-Event-Bus) for the ABP Framework. + +See [the documentation](https://docs.abp.io/en/abp/3.3/Distributed-Event-Bus-Rebus-Integration) to learn how to use Rebus with the ABP Framework. + +### Async Repository LINQ Extension Methods + +You have a problem when you want to use **Async LINQ Extension Methods** (e.g. `FirstOrDefaultAsync(...)`) in your **domain** and **application** layers. These async methods are **not included in the standard LINQ extension methods**. Those are defined by the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package (see [the code](https://github.com/dotnet/efcore/blob/main/src/EFCore/Extensions/EntityFrameworkQueryableExtensions.cs)). To be able to use these `async` methods, you need to reference to the `Microsoft.EntityFrameworkCore` package. + +If you don't want to depend on the EF Core in your business layer, then ABP Framework provides the `IAsyncQueryableExecuter` service to execute your queries asynchronously without depending on the EF Core package. You can see [the documentation](https://docs.abp.io/en/abp/latest/Repositories#option-3-iasyncqueryableexecuter) to get more information about this service. + +ABP Framework version 3.3 takes this one step further and allows you to directly execute the async LINQ extension methods on the `IRepository` interface. + +**Example: Use `CountAsync` and `FirstOrDefaultAsync` methods on the repositories** + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace MyCompanyName.MyProjectName +{ + public class BookAppService : ApplicationService, IBookAppService + { + private readonly IRepository _bookRepository; + + public BookAppService(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task DemoAsync() + { + var countAll = await _bookRepository + .CountAsync(); + + var count = await _bookRepository + .CountAsync(x => x.Name.Contains("A")); + + var book1984 = await _bookRepository + .FirstOrDefaultAsync(x => x.Name == "1984"); + } + } +} +```` + +All the standard LINQ methods are supported: *AllAsync, AnyAsync, AverageAsync, ContainsAsync, CountAsync, FirstAsync, FirstOrDefaultAsync, LastAsync, LastOrDefaultAsync, LongCountAsync, MaxAsync, MinAsync, SingleAsync, SingleOrDefaultAsync, SumAsync, ToArrayAsync, ToListAsync*. + +This approach still has a limitation. You need to execute the extension method directly on the repository object. For example, the below usage is **not supported**: + +````csharp +var count = await _bookRepository.Where(x => x.Name.Contains("A")).CountAsync(); +```` + +This is because the object returned from the `Where` method is not a repository object, it is a standard `IQueryable`. In such cases, you can still use the `IAsyncQueryableExecuter`: + +````csharp +var count = await AsyncExecuter.CountAsync( + _bookRepository.Where(x => x.Name.Contains("A")) +); +```` + +`AsyncExecuter` has all the standard extension methods, so you don't have any restriction here. See [the repository documentation](https://docs.abp.io/en/abp/latest/Repositories#iqueryable-async-operations) for all the options you have. + +> ABP Framework does its best to not depend on the EF Core and still be able to use the async LINQ extension methods. However, there is no problem to depend on the EF Core for your application, you can add the `Microsoft.EntityFrameworkCore` NuGet package and use the native methods. + +### Stream Support for the Application Service Methods + +[Application services](https://docs.abp.io/en/abp/latest/Application-Services) are consumed by clients and the parameters and return values (typically [Data Transfer Objects](https://docs.abp.io/en/abp/latest/Data-Transfer-Objects)). In case of the client is a remote application, then these objects should be serialized & deserialized. + +Until the version 3.3, we hadn't suggest to use the `Stream` in the application service contracts, since it is not serializable/deserializable. However, with the version 3.3, ABP Framework properly supports this scenario by introducing the new `IRemoteStreamContent` interface. + +Example: An application service that can get or return streams + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public interface ITestAppService : IApplicationService + { + Task Upload(Guid id, IRemoteStreamContent streamContent); + Task Download(Guid id); + } +} +```` + +The implementation can be as shown below: + +````csharp +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public class TestAppService : ApplicationService, ITestAppService + { + public Task Download(Guid id) + { + var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.OpenOrCreate); + return Task.FromResult( + (IRemoteStreamContent) new RemoteStreamContent(fs) { + ContentType = "application/octet-stream" + } + ); + } + + public async Task Upload(Guid id, IRemoteStreamContent streamContent) + { + using (var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.Create)) + { + await streamContent.GetStream().CopyToAsync(fs); + await fs.FlushAsync(); + } + } + } +} +```` + +> This is just a demo code. Do it better in your production code :) + +Thanks to [@alexandru-bagu](https://github.com/alexandru-bagu) for the great contribution! + +### Other Changes + +* Upgraded all the .NET Core / ASP.NET Core related packages to the version 3.1.8. If you have additional dependencies to the .NET Core / ASP.NET Core related packages, we suggest you to updates your packages to the version 3.1.8 to have the latest bug and security fixes published by Microsoft. +* The blogging module now uses the [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing) system to store images & files of the blog posts. If you are using this module, then you need to manually migrate the local files to the BLOB Storing system after the upgrade. +* The Angular UI is now redirecting to the profile management page of the MVC UI instead of using its own UI, if you've configured the authorization code flow (which is default since the version 3.2.0). + +## What's new with the ABP Commercial 3.3 + +### The Blazor UI + +We have good news for the ABP Commercial Blazor UI too. We have implemented the [Lepton Theme](https://commercial.abp.io/themes) integration, so it is now available with the Blazor UI. Also, implemented most of the fundamental [modules](https://commercial.abp.io/modules). + +**A screenshot from the ABP Commercial startup template with the Blazor UI** + +![abp-commercial-blazor-ui](abp-commercial-blazor-ui.png) + +There are still missing features and modules. However, we are working on it to have a more complete version in the next release. + +#### Breaking Changes on the Blazor UI + +There are some breaking changes with the Blazor UI. If you've built an application and upgrade it, your application might not properly work. See the [ABP Commercial Blazor UI v 3.3 Migration Guide](https://docs.abp.io/en/commercial/3.3/migration-guides/blazor-ui-3_3) for the changes you need to do after upgrading your application. + +#### Known Issues + +When you create a new project, profile management doesn't work, you get an exception because it can't find the `/libs/cropperjs/css/cropper.min.css` file. To fix the issue; + +* Add `"@volo/account": "^3.3.0-rc.1"` to the `package.json` in the `.Host` project. +* Run `yarn` (or `npm install`), then `gulp` on a command line terminal in the root folder of the `.Host` project. + +### Multi-Tenant Social Logins + +[Account module](https://commercial.abp.io/modules/Volo.Account.Pro) now supports to manage the social/external logins in the UI. You can **enable/disable** and **set options** in the settings page. It also supports to use **different credentials for the tenants** and it is also **configured on the runtime**. + +![abp-commercial-setting-account-external-logins](abp-commercial-setting-account-external-logins.png) + +### Linked Accounts + +Linked user system allows you to link other accounts (including account in a different tenant) with your account, so you can switch between different accounts with a single-click. It is practical since you no longer need to logout and login again with entering the credentials of the target account. + +To manage the linked accounts, go to the profile management page from the user menu; + +![abp-commercial-linked-users](abp-commercial-linked-users.png) + +### Paypal & Stripe Integrations + +The [Payment Module](https://commercial.abp.io/modules/Volo.Payment) was supporting PayU and 2Checkout providers until the version 3.3. It's now integrated to PayPal and Stripe. See the [technical documentation](https://docs.abp.io/en/commercial/latest/modules/payment) to learn how to use it. + +### ABP Suite Improvements + +We've done a lot of small improvements for the [ABP Suite](https://commercial.abp.io/tools/suite). Some of the enhancements are; + +* Show the previously installed modules as *installed* on the module list. +* Switch between the latest stable, the latest [preview](https://docs.abp.io/en/abp/latest/Previews) and the latest [nightly build](https://docs.abp.io/en/abp/latest/Nightly-Builds) versions of the ABP related packages. +* Moved the file that stores the *previously created entities* into the solution folder to allow you to store it in your source control system. + +### Others + +* Added an option to the Account Module to show reCAPTCHA on the login & the registration forms. + +Besides the new features introduced in this post, we've done a lot of small other enhancements and bug fixes to provide a better development experience and increase the developer productivity. + +## New Articles + +The core ABP Framework team & the community continue to publish new articles on the [ABP Community](https://community.abp.io/) web site. The recently published articles are; + +* [Replacing Email Templates and Sending Emails](https://community.abp.io/articles/replacing-email-templates-and-sending-emails-jkeb8zzh) (by [@EngincanV](https://community.abp.io/members/EngincanV)) +* [How to Add Custom Properties to the User Entity](https://community.abp.io/articles/how-to-add-custom-property-to-the-user-entity-6ggxiddr) (by [@berkansasmaz](https://community.abp.io/members/berkansasmaz)) +* [Using the AdminLTE Theme with the ABP Framework MVC / Razor Pages UI](https://community.abp.io/articles/using-the-adminlte-theme-with-the-abp-framework-mvc-razor-pages-ui-gssbhb7m) (by [@mucahiddanis](https://community.abp.io/members/mucahiddanis)) +* [Using DevExtreme Angular Components With the ABP Framework](https://community.abp.io/articles/using-devextreme-angular-components-with-the-abp-framework-x5nyvj3i) (by [@bunyamin](https://community.abp.io/members/bunyamin)) + +It is appreciated if you want to [submit an article](https://community.abp.io/articles/submit) related to the ABP Framework. + +## About the Next Release + +The next version will be `4.0.0`. We are releasing a major version, since we will move the ABP Framework to .NET 5.0. We see that for most of the applications this will not be a breaking change and we hope you easily upgrade to it. + +The planned 4.0.0-rc.1 (Release Candidate) version date is **November 11**, just after the Microsoft releases the .NET 5.0 final. The planned 4.0.0 final release date is **November 26**. + +Follow the [GitHub milestones](https://github.com/abpframework/abp/milestones) for all the planned ABP Framework version release dates. + +## Feedback + +Please check out the ABP Framework 3.3.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. The planned release date for the [3.3.0 final](https://github.com/abpframework/abp/milestone/44) version is October 27th. diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png new file mode 100644 index 0000000000..ea61f2a488 Binary files /dev/null and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png new file mode 100644 index 0000000000..8da48af76e Binary files /dev/null and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png new file mode 100644 index 0000000000..ef957aecd5 Binary files /dev/null and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png differ diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png new file mode 100644 index 0000000000..8be08af686 Binary files /dev/null and b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png differ diff --git a/docs/en/Migration-Guides/BlazorUI-3_3.md b/docs/en/Migration-Guides/BlazorUI-3_3.md new file mode 100644 index 0000000000..8a14481912 --- /dev/null +++ b/docs/en/Migration-Guides/BlazorUI-3_3.md @@ -0,0 +1,13 @@ +# Migration Guide for the Blazor UI from the v3.2 to the v3.3 + +## Startup Template Changes + +* Remove `Volo.Abp.Account.Blazor` NuGet package from your `.Blazor.csproj` and add `Volo.Abp.TenantManagement.Blazor` NuGet package. +* Remove the ``typeof(AbpAccountBlazorModule)`` from the dependency list of *YourProjectBlazorModule* class and add the `typeof(AbpTenantManagementBlazorModule)`. +* Add `@using Volo.Abp.BlazoriseUI` and `@using Volo.Abp.BlazoriseUI.Components` into the `_Imports.razor` file. +* Remove the `div` with `id="blazor-error-ui"` (with its contents) from the `wwwroot/index.html ` file, since the ABP Framework now shows error messages as a better message box. + +## BlazoriseCrudPageBase to AbpCrudPageBase + +Renamed `BlazoriseCrudPageBase` to `AbpCrudPageBase`. Just update the usages. It also has some changes, you may need to update method calls/usages manually. + diff --git a/docs/en/Repositories.md b/docs/en/Repositories.md index a222b9d803..0fc80984e7 100644 --- a/docs/en/Repositories.md +++ b/docs/en/Repositories.md @@ -142,7 +142,7 @@ var people = _personRepository You normally want to use `.ToListAsync()`, `.CountAsync()`... instead, to be able to write a **truly async code**. -However, you see that you can't use these async extension methods in your application or domain layer when you create a new project using the standard [application startup template](Startup-Templates/Application.md), because; +However, you see that you can't use all the async extension methods in your application or domain layer when you create a new project using the standard [application startup template](Startup-Templates/Application.md), because; * These async methods **are not standard LINQ methods** and they are defined in the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package. * The standard template **doesn't have a reference** to the EF Core package from the domain and application layers, to be independent from the database provider. @@ -151,9 +151,9 @@ Based on your requirements and development model, you have the following options > Using async methods is strongly suggested! Don't use sync LINQ methods while executing database queries to be able to develop a scalable application. -### Option-1: Reference to the EF Core +### Option-1: Reference to the Database Provider Package -The easiest solution is to directly add the EF Core package from the project you want to use these async methods. +**The easiest solution** is to directly add the EF Core package from the project you want to use these async methods. > Add the [Volo.Abp.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore) NuGet package to your project, which indirectly reference to the EF Core package. This ensures that you use the correct version of the EF Core compatible to the rest of your application. @@ -183,14 +183,34 @@ var people = ((IMongoQueryable)_personRepository .ToListAsync(); ```` -### Option-2: Custom Repository Methods +### Option-2: Use the IRepository Async Extension Methods -You can always create custom repository methods and use the database provider specific APIs, like async extension methods here. See [EF Core](Entity-Framework-Core.md) or [MongoDb](MongoDB.md) document for more info about the custom repositories. +ABP Framework provides async extension methods for the repositories, just similar to async LINQ extension methods. -This method is suggested; +**Example: Use `CountAsync` and `FirstOrDefaultAsync` methods on the repositories** -* If you want to **completely isolate** your domain & application layers from the database provider. -* If you develop a **reusable [application module](Modules/Index.md)** and don't want to force to a specific database provider, which should be done as a [best practice](Best-Practices/Index.md). +````csharp +var countAll = await _personRepository + .CountAsync(); + +var count = await _personRepository + .CountAsync(x => x.Name.StartsWith("A")); + +var book1984 = await _bookRepository + .FirstOrDefaultAsync(x => x.Name == "John"); +```` + +The standard LINQ extension methods are supported: *AllAsync, AnyAsync, AverageAsync, ContainsAsync, CountAsync, FirstAsync, FirstOrDefaultAsync, LastAsync, LastOrDefaultAsync, LongCountAsync, MaxAsync, MinAsync, SingleAsync, SingleOrDefaultAsync, SumAsync, ToArrayAsync, ToListAsync*. + +This approach still **has a limitation**. You need to call the extension method directly on the repository object. For example, the below usage is **not supported**: + +```csharp +var count = await _bookRepository.Where(x => x.Name.Contains("A")).CountAsync(); +``` + +This is because the object returned from the `Where` method is not a repository object, it is a standard `IQueryable` interface. See the other options for such cases. + +This method is suggested **wherever possible**. ### Option-3: IAsyncQueryableExecuter @@ -245,6 +265,17 @@ ABP Framework executes the query asynchronously using the actual database provid This method is suggested; +* If you want to develop your application code **without depending** on the database provider. * If you are building a **reusable library** that doesn't have a database provider integration package, but needs to execute an `IQueryable` object in some case. -For example, ABP Framework uses the `IAsyncQueryableExecuter` in the `CrudAppService` base class (see the [application services](Application-Services.md) document). \ No newline at end of file +For example, ABP Framework uses the `IAsyncQueryableExecuter` in the `CrudAppService` base class (see the [application services](Application-Services.md) document). + +### Option-4: Custom Repository Methods + +You can always create custom repository methods and use the database provider specific APIs, like async extension methods here. See [EF Core](Entity-Framework-Core.md) or [MongoDb](MongoDB.md) document for more info about the custom repositories. + +This method is suggested; + +* If you want to **completely isolate** your domain & application layers from the database provider. +* If you develop a **reusable [application module](Modules/Index.md)** and don't want to force to a specific database provider, which should be done as a [best practice](Best-Practices/Index.md). + diff --git a/docs/en/Tutorials/Part-10.md b/docs/en/Tutorials/Part-10.md index 2e0b1c4939..53f19d93dd 100644 --- a/docs/en/Tutorials/Part-10.md +++ b/docs/en/Tutorials/Part-10.md @@ -38,7 +38,7 @@ This tutorial has multiple versions based on your **UI** and **Database** prefer We have created `Book` and `Author` functionalities for the book store application. However, currently there is no relation between these entities. -In this tutorial, we will establish a **1 to N** relation between the `Book` and the `Author`. +In this tutorial, we will establish a **1 to N** relation between the `Author` and the `Book` entities. ## Add Relation to The Book Entity diff --git a/docs/en/Tutorials/Part-2.md b/docs/en/Tutorials/Part-2.md index e52fe7a46d..f4fcf61e25 100644 --- a/docs/en/Tutorials/Part-2.md +++ b/docs/en/Tutorials/Part-2.md @@ -583,7 +583,7 @@ When you click to the Books menu item under the Book Store parent, you are being We will use the [Blazorise library](https://blazorise.com/) as the UI component kit. It is a very powerful library that supports major HTML/CSS frameworks, including the Bootstrap. -ABP Framework provides a generic base class, `BlazoriseCrudPageBase<...>`, to create CRUD style pages. This base class is compatible to the `ICrudAppService` that was used to build the `IBookAppService`. So, we can inherit from the `BlazoriseCrudPageBase` to automate the standard CRUD stuff. +ABP Framework provides a generic base class, `AbpCrudPageBase<...>`, to create CRUD style pages. This base class is compatible to the `ICrudAppService` that was used to build the `IBookAppService`. So, we can inherit from the `AbpCrudPageBase` to automate the code behind for the standard CRUD stuff. Open the `Books.razor` and replace the content as the following: @@ -595,7 +595,7 @@ Open the `Books.razor` and replace the content as the following: @using Acme.BookStore.Localization @using Microsoft.Extensions.Localization @inject IStringLocalizer L -@inherits BlazoriseCrudPageBase +@inherits AbpCrudPageBase @@ -645,15 +645,15 @@ Open the `Books.razor` and replace the content as the following: > If you see some syntax errors, you can ignore them if your application properly built and run. Visual Studio still has some bugs with Blazor. -* Inherited from the `BlazoriseCrudPageBase` which implements all the CRUD details for us. +* Inherited from the `AbpCrudPageBase` which implements all the CRUD details for us. * `Entities`, `TotalCount`, `PageSize`, `OnDataGridReadAsync` are defined in the base blass. * Injected `IStringLocalizer` (as `L` object) and used for localization. While the code above pretty easy to understand, you can check the Blazorise [Card](https://blazorise.com/docs/components/card/) and [DataGrid](https://blazorise.com/docs/extensions/datagrid/) documents to understand them better. -#### About the BlazoriseCrudPageBase +#### About the AbpCrudPageBase -We will continue to benefit from the `BlazoriseCrudPageBase` for the books page. You could just inject the `IBookAppService` and perform all the server side calls yourself (thanks to the [Dynamic C# HTTP API Client Proxy](../API/Dynamic-CSharp-API-Clients.md) system of the ABP Framework). We will do it manually for the authors page to demonstrate how to call server side HTTP APIs in your Blazor applications. +We will continue to benefit from the `AbpCrudPageBase` for the books page. You could just inject the `IBookAppService` and perform all the server side calls yourself (thanks to the [Dynamic C# HTTP API Client Proxy](../API/Dynamic-CSharp-API-Clients.md) system of the ABP Framework). We will do it manually for the authors page to demonstrate how to call server side HTTP APIs in your Blazor applications. ## Run the Final Application diff --git a/docs/en/Tutorials/Part-3.md b/docs/en/Tutorials/Part-3.md index 079b9e7cf8..dae7e4bfdb 100644 --- a/docs/en/Tutorials/Part-3.md +++ b/docs/en/Tutorials/Part-3.md @@ -1163,7 +1163,7 @@ Clicking the "Delete" action calls the `delete` method which then shows a confir ## Creating a New Book -In this section, you will learn how to create a new modal dialog form to create a new book. Since we've inherited from the `BlazoriseCrudPage`, we only need to develop the view part. +In this section, you will learn how to create a new modal dialog form to create a new book. Since we've inherited from the `AbpCrudPageBase`, we only need to develop the view part. ### Add "New Button" Button @@ -1328,7 +1328,7 @@ We can now define a modal to edit the book. Add the following code to the end of ### AutoMapper Configuration -The base `BlazoriseCrudPage` uses the [object to object mapping](../Object-To-Object-Mapping.md) system to convert an incoming `BookDto` object to a `CreateUpdateBookDto` object. So, we need to define the mapping. +The base `AbpCrudPageBase` uses the [object to object mapping](../Object-To-Object-Mapping.md) system to convert an incoming `BookDto` object to a `CreateUpdateBookDto` object. So, we need to define the mapping. Open the `BookStoreBlazorAutoMapperProfile` inside the `Acme.BookStore.Blazor` project and change the content as the following: @@ -1382,7 +1382,7 @@ Here the complete code to create the book management CRUD page, that has been de @using Acme.BookStore.Localization @using Microsoft.Extensions.Localization @inject IStringLocalizer L -@inherits BlazoriseCrudPageBase +@inherits AbpCrudPageBase @@ -1392,8 +1392,10 @@ Here the complete code to create the book management CRUD page, that has been de - + @@ -1406,10 +1408,10 @@ Here the complete code to create the book management CRUD page, that has been de ShowPager="true" PageSize="PageSize"> - @@ -1434,7 +1436,7 @@ Here the complete code to create the book management CRUD page, that has been de Field="@nameof(BookDto.Type)" Caption="@L["Type"]"> - @L[$"Enum:BookType:{(int) context.Type}"] + @L[$"Enum:BookType:{(int)context.Type}"] @L["NewBook"] + Clicked="OpenCreateModalAsync"> + @L["NewBook"] + } ```` @@ -545,7 +547,7 @@ As similar to the *New Book* button, we can use `if` blocks to conditionally sho You can run and test the permissions. Remove a book related permission from the admin role to see the related button/action disappears from the UI. -However, ABP Framework caches the permissions of the current user in the client side. So, when you change a permission for yourself, you need to manually **refresh the page** to take the effect. If you don't refresh and try to use the prohibited action you get an HTTP 403 (forbidden) response from the server. +**ABP Framework caches the permissions** of the current user in the client side. So, when you change a permission for yourself, you need to manually **refresh the page** to take the effect. If you don't refresh and try to use the prohibited action you get an HTTP 403 (forbidden) response from the server. > Changing a permission for a role or user immediately available on the server side. So, this cache system doesn't cause any security problem. diff --git a/docs/en/Tutorials/Part-7.md b/docs/en/Tutorials/Part-7.md index 32c9f6b9a4..5cae52a4b1 100644 --- a/docs/en/Tutorials/Part-7.md +++ b/docs/en/Tutorials/Part-7.md @@ -74,6 +74,10 @@ Open the **Package Manager Console** on Visual Studio and ensure that the **Defa Run the following command to create a new database migration: +````bash +Add-Migration "Added_Authors" +```` + ![bookstore-add-migration-authors](images/bookstore-add-migration-authors.png) This will create a new migration class. Then run the `Update-Database` command to create the table on the database. diff --git a/docs/en/Tutorials/Part-9.md b/docs/en/Tutorials/Part-9.md index 841d2fb3cb..374efff2b4 100644 --- a/docs/en/Tutorials/Part-9.md +++ b/docs/en/Tutorials/Part-9.md @@ -1177,6 +1177,20 @@ We should complete the localizations we've used above. Open the `en.json` file u "NewAuthor": "New author" ```` +### Run the Application + +Run and login to the application. **If you don't see the Authors menu item under the Book Store menu, that means you don't have the permission yet.** Go to the `identity/roles` page, click to the *Actions* button and select the *Permissions* action for the **admin role**: + +![bookstore-author-permissions](images/bookstore-author-permissions.png) + +As you see, the admin role has no *Author Management* permissions yet. Click to the checkboxes and save the modal to grant the necessary permissions. You will see the *Authors* menu item under the *Book Store* in the main menu, after **refreshing the page**: + +![bookstore-authors-page](images/bookstore-authors-blazor-ui.png) + +That's all! This is a fully working CRUD page, you can create, edit and delete the authors. + +> **Tip**: If you run the `.DbMigrator` console application after defining a new permission, it automatically grants these new permissions to the admin role and you don't need to manually grant the permissions yourself. + {{end}} ## The Next Part diff --git a/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png b/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png new file mode 100644 index 0000000000..5b9480957d Binary files /dev/null and b/docs/en/Tutorials/images/bookstore-authors-blazor-ui.png differ diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Auth.md b/docs/en/UI/AspNetCore/JavaScript-API/Auth.md new file mode 100644 index 0000000000..45af8c4b3e --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/Auth.md @@ -0,0 +1,24 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript Auth API + +Auth API allows you to check permissions (policies) for the current user in the client side. In this way, you can conditionally show/hide UI parts or perform your client side logic based on the current permissions. + +> This document only explains the JavaScript API. See the [authorization document](../../../Authorization.md) to understand the ABP authorization & permission system. + +## Basic Usage + +`abp.auth.isGranted(...)` function is used to check if a permission/policy has granted or not: + +````js +if (abp.auth.isGranted('DeleteUsers')) { + //TODO: Delete the user +} else { + alert("You don't have permission to delete a user!"); +} +```` + +## Other Fields & Functions + +* ` abp.auth.isAnyGranted(...)`: Gets one or more permission/policy names and returns `true` if at least one of them has granted. +* `abp.auth.areAllGranted(...)`: Gets one or more permission/policy names and returns `true` if all of them of them have granted. +* `abp.auth.policies`: This is an object where its keys are the permission/policy names. You can find all permission/policy names here. +* `abp.auth.grantedPolicies`: This is an object where its keys are the permission/policy names. You can find the granted permission/policy names here. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Block-Busy.md b/docs/en/UI/AspNetCore/JavaScript-API/Block-Busy.md new file mode 100644 index 0000000000..943a651432 --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/Block-Busy.md @@ -0,0 +1,56 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript UI Block/Busy API + +UI Block API disables (blocks) the page or a part of the page. + +## Basic Usage + +**Example: Block (disable) the complete page** + +````js +abp.ui.block(); +```` + +**Example: Block (disable) an HTML element** + +````js +abp.ui.block('#MyContainer'); +```` + +**Example: Enables the previously blocked element or page:** + +````js +abp.ui.unblock(); +```` + +## Options + +`abp.ui.block()` method can get an options object which may contain the following fields: + +* `elm`: An optional selector to find the element to be blocked (e.g. `#MyContainerId`). If not provided, the entire page is blocked. The selector can also be directly passed to the `block()` method as shown above. +* `busy`: Set to `true` to show a progress indicator on the blocked area. +* `promise`: A promise object with `always` or `finally` callbacks. This can be helpful if you want to automatically unblock the blocked area when a deferred operation completes. + +**Example: Block an element with busy indicator** + +````js +abp.ui.block({ + elm: '#MySection', + busy: true +}); +```` + +The resulting UI will look like below: + +![ui-busy](../../../images/ui-busy.png) + +## setBusy + +`abp.ui.setBusy(...)` and `abp.ui.clearBusy()` are shortcut functions if you want to use the block with `busy` option. + +**Example: Block with busy** + +````js +abp.ui.setBusy('#MySection'); +```` + +Then you can use `abp.ui.clearBusy();` to re-enable the busy area/page. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/CurrentUser.md b/docs/en/UI/AspNetCore/JavaScript-API/CurrentUser.md new file mode 100644 index 0000000000..038bb9dff1 --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/CurrentUser.md @@ -0,0 +1,49 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript CurrentUser API + +`abp.currentUser` is an object that contains information about the current user of the application. + +> This document only explains the JavaScript API. See the [CurrentUser document](../../../CurrentUser.md) to get information about the current user in the server side. + +## Authenticated User + +If the user was authenticated, this object will be something like below: + +````js +{ + isAuthenticated: true, + id: "34f1f4a7-13cc-4b91-84d1-b91c87afa95f", + tenantId: null, + userName: "john", + name: "John", + surName: "Nash", + email: "john.nash@abp.io", + emailVerified: true, + phoneNumber: null, + phoneNumberVerified: false, + roles: ["moderator","supporter"] +} +```` + +So, `abp.currentUser.userName` returns `john` in this case. + +## Anonymous User + +If the user was not authenticated, this object will be something like below: + +````js +{ + isAuthenticated: false, + id: null, + tenantId: null, + userName: null, + name: null, + surName: null, + email: null, + emailVerified: false, + phoneNumber: null, + phoneNumberVerified: false, + roles: [] +} +```` + +You can check `abp.currentUser.isAuthenticated` to understand if the use was authenticated or not. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/DOM.md b/docs/en/UI/AspNetCore/JavaScript-API/DOM.md new file mode 100644 index 0000000000..cdd4cef9db --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/DOM.md @@ -0,0 +1,117 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript DOM API + +`abp.dom` (Document Object Model) provides events that you can subscribe to get notified when elements dynamically added to and removed from the page (DOM). + +It is especially helpful if you want to initialize the new loaded elements. This is generally needed when you dynamically add elements to DOM (for example, get some HTML elements via AJAX) after page initialization. + +> ABP uses the [MutationObserver](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) to observe the changes made on the DOM. + +## Node Events + +### onNodeAdded + +This event is triggered when an element is added to the DOM. Example: + +````js +abp.dom.onNodeAdded(function(args){ + console.log(args.$el); +}); +```` + +`args` object has the following fields; + +* `$el`: The JQuery selection to get the new element inserted to the DOM. + +### onNodeRemoved + +This event is triggered when an element is removed from the DOM. Example: + +````js +abp.dom.onNodeRemoved(function(args){ + console.log(args.$el); +}); +```` + +`args` object has the following fields; + +* `$el`: The JQuery selection to get the element removed from the DOM. + +## Pre-Build Initializers + +ABP Framework is using the DOM events to initialize some kind of HTML elements when they are added to the DOM after than the page was already initialized. + +> Note that the same initializers also work if these elements were already included in the initial DOM. So, whether they are initially or lazy loaded, they work as expected. + +### Form Initializer + +The Form initializer (defined as `abp.dom.initializers.initializeForms`) initializes the lazy loaded forms; + +* Automatically enabled the `unobtrusive` validation on the form. +* Can automatically show a confirmation message when you submit the form. To enable this feature, just add `data-confirm` attribute with a message (like `data-confirm="Are you sure?"`) to the `form` element. +* If the `form` element has `data-ajaxForm="true"` attribute, then automatically calls the `.abpAjaxForm()` on the `form` element, to make the form posted via AJAX. + +See the [Forms & Validation](../Forms-Validation.md) document for more. + +### Script Initializer + +Script initializer (`abp.dom.initializers.initializeScript`) can execute a JavaScript code for a DOM element. + +**Example: Lazy load a component and execute some code when the element has loaded** + +Assume that you've a container to load the element inside: + +````html +
+```` + +And this is the component that will be loaded via AJAX from the server and inserted into the container: + +````html +
+

Sample message

+
+```` + +`data-script-class="MyCustomClass"` indicates the JavaScript class that will be used to perform some logic on this element: + +`MyCustomClass` is a global object defined as shown below: + +````js +MyCustomClass = function(){ + + function initDom($el){ + $el.css('color', 'red'); + } + + return { + initDom: initDom + } +}; +```` + +`initDom` is the function that is called by the ABP Framework. The `$el` argument is the loaded HTML element as a JQuery selection. + +Finally, you can load the component inside the container after an AJAX call: + +````js +$(function () { + setTimeout(function(){ + $.get('/get-my-element').then(function(response){ + $('#LazyComponent').html(response); + }); + }, 2000); +}); +```` + +Script Initialization system is especially helpful if you don't know how and when the component will be loaded into the DOM. This can be possible if you've developed a reusable UI component in a library and you want the application developer shouldn't care how to initialize the component in different use cases. + +> Script initialization doesn't work if the component was loaded in the initial DOM. In this case, you are responsible to initialize it. + +### Other Initializers + +The following Bootstrap components and libraries are automatically initialized when they are added to the DOM: + +* Tooltip +* Popover +* Timeage + diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Events.md b/docs/en/UI/AspNetCore/JavaScript-API/Events.md new file mode 100644 index 0000000000..3425355f44 --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/Events.md @@ -0,0 +1,88 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript Events API + +`abp.event` object is a simple service that is used to publish and subscribe to global events **in the browser**. + +> This API is not related to server side local or distributed events. It works in the browser boundaries to make the UI components (code parts) communicate in a loosely coupled way. + +## Basic Usage + +### Publishing Events + +Use `abp.event.trigger` to publish events. + +**Example: Publish a *Basket Updated* event** + +````js +abp.event.trigger('basketUpdated'); +```` + +This will trigger all the subscribed callbacks. + +### Subscribing to the Events + +Use `abp.event.on` to subscribe to events. + +**Example: Consume the *Basket Updated* event** + +````js +abp.event.on('basketUpdated', function() { + console.log('Handled the basketUpdated event...'); +}); +```` + +You start to get events after you subscribe to the event. + +### Unsubscribing from the Events + +If you need to unsubscribe from a pre-subscribed event, you can use the `abp.event.off(eventName, callback)` function. In this case, you have the callback as a separate function declaration. + +**Example: Subscribe & Unsubscribe** + +````js +function onBasketUpdated() { + console.log('Handled the basketUpdated event...'); +} + +//Subscribe +abp.event.on('basketUpdated', onBasketUpdated); + +//Unsubscribe +abp.event.off('basketUpdated', onBasketUpdated); +```` + +You don't get events after you unsubscribe from the event. + +## Event Arguments + +You can pass arguments (of any count) to the `trigger` method and get them in the subscription callback. + +**Example: Add the basket as the event argument** + +````js +//Subscribe to the event +abp.event.on('basketUpdated', function(basket) { + console.log('The new basket object: '); + console.log(basket); +}); + +//Trigger the event +abp.event.trigger('basketUpdated', { + items: [ + { + "productId": "123", + "count": 2 + }, + { + "productId": "832", + "count": 1 + } + ] +}); +```` + +### Multiple Arguments + +If you want to pass multiple arguments, you can pass like `abp.event.on('basketUpdated', arg0, arg1, agr2)`. Then you can add the same argument list to the callback function on the subscriber side. + +> **Tip:** Alternatively, you can send a single object that has a separate field for each argument. This makes easier to extend/change the event arguments in the future without breaking the subscribers. + diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Features.md b/docs/en/UI/AspNetCore/JavaScript-API/Features.md new file mode 100644 index 0000000000..e3cd2be445 --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/Features.md @@ -0,0 +1,15 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript Features API + +`abp.features` API allows you to check features or get the values of the features on the client side. You can read the current value of a feature in the client side only if it is allowed by the feature definition (on the server side). + +> This document only explains the JavaScript API. See the [Features](../../../Features.md) document to understand the ABP Features system. + +## Basic Usage + +`abp.features.values` can be used to access to the all feature values. + +````js +var excelExportFeatureValue = abp.features.values["ExportingToExcel"]; +```` + +Then you can check the value of the feature to perform your logic. \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Index.md b/docs/en/UI/AspNetCore/JavaScript-API/Index.md index 9e960ba240..3473140392 100644 --- a/docs/en/UI/AspNetCore/JavaScript-API/Index.md +++ b/docs/en/UI/AspNetCore/JavaScript-API/Index.md @@ -4,18 +4,16 @@ ABP provides a set of JavaScript APIs for ASP.NET Core MVC / Razor Pages applica ## APIs -* [abp.ajax](Ajax.md) -* abp.auth -* abp.currentUser -* abp.dom -* abp.event -* abp.features -* [abp.localization](Localization.md) -* abp.log -* [abp.message](Message.md) -* [abp.notify](Notify.md) -* abp.security -* [abp.setting](Settings.md) -* abp.ui -* abp.utils -* abp.ResourceLoader \ No newline at end of file +* [AJAX](Ajax.md) +* [Auth](Auth.md) +* [CurrentUser](CurrentUser.md) +* [DOM](DOM.md) +* [Events](Events.md) +* [Features](Features.md) +* [Localization](Localization.md) +* [Logging](Logging.md) +* [ResourceLoader](ResourceLoader.md) +* [Settings](Settings.md) +* [UI Block/Busy](Block-Busy.md) +* [UI Message](Message.md) +* [UI Notification](Notify.md) \ No newline at end of file diff --git a/docs/en/UI/AspNetCore/JavaScript-API/Logging.md b/docs/en/UI/AspNetCore/JavaScript-API/Logging.md index 9fe48f22da..a46203b019 100644 --- a/docs/en/UI/AspNetCore/JavaScript-API/Logging.md +++ b/docs/en/UI/AspNetCore/JavaScript-API/Logging.md @@ -1,3 +1,50 @@ # ASP.NET Core MVC / Razor Pages UI: JavaScript Logging API -TODO \ No newline at end of file +`abp.log` API is used to write simple logs in the client side. + +> The logs are written to console, using the `console.log`, by default. + +> This document is for simple client side logging. See the [Logging](../../../Logging.md) document for server side logging system. + +## Basic Usage + +Use one of the `abp.log.xxx(...)` methods based on the severity of your log message. + +````js +abp.log.debug("Some debug log here..."); //Logging a simple debug message +abp.log.info({ name: "john", age: 42 }); //Logging an object as an information log +abp.log.warn("A warning message"); //Logging a warning message +abp.log.error('An error happens...'); //Error message +abp.log.fatal('Network connection has gone away!'); //Fatal error +```` + +## Log Levels + +There are 5 levels for a log message: + +* DEBUG = 1 +* INFO = 2 +* WARN = 3 +* ERROR = 4 +* FATAL = 5 + +These are defined in the `abp.log.levels` object (like `abp.log.levels.WARN`). + +### Changing the Current Log Level + +You can control the log level as shown below: + +````js +abp.log.level = abp.log.levels.WARN; +```` + +Default log level is `DEBUG`. + +### Logging with Specifying the Level + +Instead of calling `abp.log.info(...)` function, you can use the `abp.log.log` by specifying the log level as a parameter: + +````js +abp.log.log("log message...", abp.log.levels.INFO); +```` + diff --git a/docs/en/UI/AspNetCore/JavaScript-API/ResourceLoader.md b/docs/en/UI/AspNetCore/JavaScript-API/ResourceLoader.md new file mode 100644 index 0000000000..10b8c36f59 --- /dev/null +++ b/docs/en/UI/AspNetCore/JavaScript-API/ResourceLoader.md @@ -0,0 +1,40 @@ +# ASP.NET Core MVC / Razor Pages UI: JavaScript Resource Loader API + +`abp.ResourceLoader` is a service that can load a JavaScript or CSS file on demand. It guarantees to load the file only once even if you request multiple times. + +## Loading Script Files + +`abp.ResourceLoader.loadScript(...)` function **loads** a JavaScript file from the server and **executes** it. + +**Example: Load a JavaScript file** + +````js +abp.ResourceLoader.loadScript('/Pages/my-script.js'); +```` + +### Parameters + +`loadScript` function can get three parameters; + +* `url` (required, `string`): The URL of the script file to be loaded. +* `loadCallback` (optional, `function`): A callback function that is called once the script is loaded & executed. In this callback you can safely use the code in the script file. This callback is called even if the file was loaded before. +* `failCallback` (optional, `function`): A callback function that is called if loading the script fails. + +**Example: Provide the `loadCallback` argument** + +````js +abp.ResourceLoader.loadScript('/Pages/my-script.js', function() { + console.log('successfully loaded :)'); +}); +```` + +## Loading Style Files + +`abp.ResourceLoader.loadStyle(...)` function adds a `link` element to the `head` of the document for the given URL, so the CSS file is automatically loaded by the browser. + +**Example: Load a CSS file** + +````js +abp.ResourceLoader.loadStyle('/Pages/my-styles.css'); +```` + diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 6780896520..2409bbc4fc 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -463,10 +463,22 @@ "text": "Localization", "path": "UI/AspNetCore/JavaScript-API/Localization.md" }, + { + "text": "Auth", + "path": "UI/AspNetCore/JavaScript-API/Auth.md" + }, + { + "text": "Current User", + "path": "UI/AspNetCore/JavaScript-API/CurrentUser.md" + }, { "text": "Settings", "path": "UI/AspNetCore/JavaScript-API/Settings.md" }, + { + "text": "Features", + "path": "UI/AspNetCore/JavaScript-API/Features.md" + }, { "text": "AJAX", "path": "UI/AspNetCore/JavaScript-API/Ajax.md" @@ -478,6 +490,26 @@ { "text": "Notify", "path": "UI/AspNetCore/JavaScript-API/Notify.md" + }, + { + "text": "Block/Busy", + "path": "UI/AspNetCore/JavaScript-API/Block-Busy.md" + }, + { + "text": "Events", + "path": "UI/AspNetCore/JavaScript-API/Events.md" + }, + { + "text": "DOM", + "path": "UI/AspNetCore/JavaScript-API/DOM.md" + }, + { + "text": "Logging", + "path": "UI/AspNetCore/JavaScript-API/Logging.md" + }, + { + "text": "Resource Loader", + "path": "UI/AspNetCore/JavaScript-API/ResourceLoader.md" } ] }, diff --git a/docs/en/images/ui-busy.png b/docs/en/images/ui-busy.png new file mode 100644 index 0000000000..63a1d7d74a Binary files /dev/null and b/docs/en/images/ui-busy.png differ diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj index ca9a9af864..97b9c6dc0a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Authentication.JwtBearer Volo.Abp.AspNetCore.Authentication.JwtBearer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - +
diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj index ae032e5b9e..18e9a271dc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Authentication.OAuth Volo.Abp.AspNetCore.Authentication.OAuth $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj index 9a09e89c5d..bac9441f00 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj @@ -4,12 +4,12 @@ - netcoreapp3.1 + net5.0 - + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj index 783af0b202..4db7f0f38f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj @@ -4,8 +4,7 @@ - netstandard2.1 - 3.0 + net5.0 Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj index 86902f7038..58e0c279ae 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj @@ -4,8 +4,7 @@ - netstandard2.1 - 3.0 + net5.0 diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs index 5622d99cfb..20999c2646 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs @@ -1,6 +1,7 @@ using System; using System.Globalization; using System.Reflection; +using System.Runtime.CompilerServices; using System.Threading.Tasks; using JetBrains.Annotations; using Microsoft.Extensions.Configuration; @@ -21,6 +22,12 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting { Check.NotNull(builder, nameof(builder)); + // Related this commit(https://github.com/dotnet/aspnetcore/commit/b99d805bc037fcac56afb79abeb7d5a43141c85e) + // Microsoft.AspNetCore.Blazor.BuildTools has been removed in net 5.0. + // This call may be removed when we find a suitable solution. + // System.Runtime.CompilerServices.AsyncStateMachineAttribute + Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(); + builder.Services.AddSingleton(builder.Configuration); builder.Services.AddSingleton(builder); diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index 9f1c48e3c3..44a816678c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.AspNetCore.Components.WebAssembly Volo.Abp.AspNetCore.Components.WebAssembly $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs index 445ccbaba0..2190489d4c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs @@ -4,10 +4,9 @@ using Microsoft.Extensions.Logging; namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { - public class AbpExceptionHandlingLogger : ILogger, IDisposable + public class AbpExceptionHandlingLogger : ILogger { private readonly IServiceCollection _serviceCollection; - private IServiceScope _serviceScope; private IUserExceptionInformer _userExceptionInformer; public AbpExceptionHandlingLogger(IServiceCollection serviceCollection) @@ -39,7 +38,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _userExceptionInformer.InformAsync(new UserExceptionInformerContext(exception)); + _userExceptionInformer.Inform(new UserExceptionInformerContext(exception)); } protected virtual void TryInitialize() @@ -50,8 +49,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _serviceScope = serviceProvider.CreateScope(); - _userExceptionInformer = _serviceScope.ServiceProvider.GetRequiredService(); + _userExceptionInformer = serviceProvider.GetRequiredService(); } public virtual bool IsEnabled(LogLevel logLevel) @@ -63,10 +61,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { return NullDisposable.Instance; } - - public virtual void Dispose() - { - _serviceScope?.Dispose(); - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs index d295559284..85eb021284 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs @@ -32,7 +32,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling public void Dispose() { - _logger.Dispose(); + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs index 4399e706ec..2abbe3667b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs @@ -1,10 +1,7 @@ -using System; -using System.Threading.Tasks; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling +namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public interface IUserExceptionInformer { - Task InformAsync(UserExceptionInformerContext context); + void Inform(UserExceptionInformerContext context); } } 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 80f80c675a..c409c38319 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,7 @@ using System; using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.AspNetCore.ExceptionHandling; using Volo.Abp.DependencyInjection; using Volo.Abp.Http; @@ -9,19 +11,32 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public class UserExceptionInformer : IUserExceptionInformer, ITransientDependency { + public ILogger Logger { get; set; } protected IUiMessageService MessageService { get; } protected IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; } - public UserExceptionInformer(IUiMessageService messageService, IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) + public UserExceptionInformer( + IUiMessageService messageService, + IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) { MessageService = messageService; ExceptionToErrorInfoConverter = exceptionToErrorInfoConverter; + Logger = NullLogger.Instance; } - public virtual async Task InformAsync(UserExceptionInformerContext context) + public void Inform(UserExceptionInformerContext context) { var errorInfo = GetErrorInfo(context); - await ShowErrorInfoAsync(errorInfo); + + if (errorInfo.Details.IsNullOrEmpty()) + { + //TODO: Should we introduce MessageService.Error (sync) method instead of such a usage (without await)..? + MessageService.ErrorAsync(errorInfo.Message); + } + else + { + MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); + } } protected virtual RemoteServiceErrorInfo GetErrorInfo(UserExceptionInformerContext context) @@ -33,17 +48,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return ExceptionToErrorInfoConverter.Convert(context.Exception, false); } - - protected virtual async Task ShowErrorInfoAsync(RemoteServiceErrorInfo errorInfo) - { - if (errorInfo.Details.IsNullOrEmpty()) - { - await MessageService.ErrorAsync(errorInfo.Message); - } - else - { - await MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); - } - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs similarity index 80% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs index eb0ee781ad..3857db2b36 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs @@ -1,7 +1,7 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.AspNetCore.Components.WebAssembly +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy { [Dependency(ReplaceServices = true)] public class WebAssemblyCurrentTenantAccessor : ICurrentTenantAccessor, ISingletonDependency diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs similarity index 54% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs index ebe170cfa8..7e132db9c9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs @@ -6,44 +6,55 @@ using Volo.Abp.Http.Client.DynamicProxying; using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; -namespace Volo.Abp.AspNetCore.Components.WebAssembly +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy { public class WebAssemblyRemoteTenantStore : ITenantStore, ITransientDependency { protected IHttpClientProxy Proxy { get; } + protected WebAssemblyRemoteTenantStoreCache Cache { get; } public WebAssemblyRemoteTenantStore( - IHttpClientProxy proxy) + IHttpClientProxy proxy, + WebAssemblyRemoteTenantStoreCache cache) { Proxy = proxy; + Cache = cache; } public async Task FindAsync(string name) { - //TODO: Cache + var cached = Cache.Find(name); + if (cached != null) + { + return cached; + } - return CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)); + var tenant = CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)); + Cache.Set(tenant); + return tenant; } public async Task FindAsync(Guid id) { - //TODO: Cache + var cached = Cache.Find(id); + if (cached != null) + { + return cached; + } - return CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)); + var tenant = CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)); + Cache.Set(tenant); + return tenant; } public TenantConfiguration Find(string name) { - //TODO: Cache - - return AsyncHelper.RunSync(async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name))); + return AsyncHelper.RunSync(() => FindAsync(name)); } public TenantConfiguration Find(Guid id) { - //TODO: Cache - - return AsyncHelper.RunSync(async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id))); + return AsyncHelper.RunSync(() => FindAsync(id)); } protected virtual TenantConfiguration CreateTenantConfiguration(FindTenantResultDto tenantResultDto) @@ -55,15 +66,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name); } - - protected virtual string CreateCacheKey(string tenantName) - { - return $"RemoteTenantStore_Name_{tenantName}"; - } - - protected virtual string CreateCacheKey(Guid tenantId) - { - return $"RemoteTenantStore_Id_{tenantId:N}"; - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs new file mode 100644 index 0000000000..e1c5112e02 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy +{ + public class WebAssemblyRemoteTenantStoreCache : IScopedDependency + { + protected readonly List CachedTenants = new List(); + + public virtual TenantConfiguration Find(string name) + { + return CachedTenants.FirstOrDefault(t => t.Name == name); + } + + public virtual TenantConfiguration Find(Guid id) + { + return CachedTenants.FirstOrDefault(t => t.Id == id); + } + + public virtual void Set(TenantConfiguration tenant) + { + var existingTenant = Find(tenant.Id); + if (existingTenant != null) + { + existingTenant.Name = tenant.Name; + return; + } + + CachedTenants.Add(tenant); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs deleted file mode 100644 index 2a00d29ec5..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly -{ - public class NullUiMessageService : IUiMessageService, ITransientDependency - { - public Task InfoAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task SuccessAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task WarnAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task ErrorAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task ConfirmAsync(string message, string title = null, Action options = null) - { - return Task.FromResult(true); - } - } -} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs similarity index 87% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs index 93970de348..8f43b3fdcd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs @@ -5,12 +5,11 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.WebAssembly { - //TODO: Implement with sweetalert in a new package - public class UiMessageService : IUiMessageService, ITransientDependency + public class SimpleUiMessageService : IUiMessageService, ITransientDependency { protected IJSRuntime JsRuntime { get; } - public UiMessageService(IJSRuntime jsRuntime) + public SimpleUiMessageService(IJSRuntime jsRuntime) { JsRuntime = jsRuntime; } diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj index e9fa75d716..5468fb91c3 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.MultiTenancy Volo.Abp.AspNetCore.MultiTenancy $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj index aa11e602a1..3657e27fef 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Mvc.Client Volo.Abp.AspNetCore.Mvc.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj index 2fb94ac218..de4be2fb8c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Bootstrap Volo.Abp.AspNetCore.Mvc.UI.Bootstrap @@ -12,7 +12,7 @@ true Library - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj index 84ea011233..ed2da41347 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Bundling Volo.Abp.AspNetCore.Mvc.UI.Bundling diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj index 437ae8c45d..54f4e62b59 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj index 6cb0a02153..2c3701953e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Packages Volo.Abp.AspNetCore.Mvc.UI.Packages diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj index 206224f918..b421036ab0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj index da8bc89bca..3d20feea08 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo @@ -26,7 +26,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj index 4b0fbc24cf..d26564d92b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj index 9d0f384611..6b4d98ec28 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Widgets Volo.Abp.AspNetCore.Mvc.UI.Widgets diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index 99a9357392..208cfa1376 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI Volo.Abp.AspNetCore.Mvc.UI diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index 77651b12c9..3e691f57f3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc Volo.Abp.AspNetCore.Mvc @@ -27,9 +27,9 @@ - + - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs index fd55e2b61a..ddda91c8a0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs @@ -6,6 +6,7 @@ using Volo.Abp.Timing; namespace Volo.Abp.AspNetCore.Mvc.ModelBinding { + public class AbpDateTimeModelBinderProvider : IModelBinderProvider { public IModelBinder GetBinder(ModelBinderProviderContext context) @@ -44,4 +45,4 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding return null; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj index 348aeb0342..0015b4e237 100644 --- a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Serilog Volo.Abp.AspNetCore.Serilog $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj index f4c833cb90..9fc69b34cc 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.SignalR Volo.Abp.AspNetCore.SignalR $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj index 2557f2031e..d571bf4d72 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.TestBase Volo.Abp.AspNetCore.TestBase $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -24,7 +24,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj index 44458218b0..b191872339 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj +++ b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore Volo.Abp.AspNetCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs index 92961971fb..102ac1b7c8 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs @@ -16,384 +16,386 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem { ContentTypeMaps = new Dictionary(StringComparer.OrdinalIgnoreCase) { - {".323", "text/h323"}, - {".3g2", "video/3gpp2"}, - {".3gp2", "video/3gpp2"}, - {".3gp", "video/3gpp"}, - {".3gpp", "video/3gpp"}, - {".aac", "audio/aac"}, - {".aaf", "application/octet-stream"}, - {".aca", "application/octet-stream"}, - {".accdb", "application/msaccess"}, - {".accde", "application/msaccess"}, - {".accdt", "application/msaccess"}, - {".acx", "application/internet-property-stream"}, - {".adt", "audio/vnd.dlna.adts"}, - {".adts", "audio/vnd.dlna.adts"}, - {".afm", "application/octet-stream"}, - {".ai", "application/postscript"}, - {".aif", "audio/x-aiff"}, - {".aifc", "audio/aiff"}, - {".aiff", "audio/aiff"}, - {".appcache", "text/cache-manifest"}, - {".application", "application/x-ms-application"}, - {".art", "image/x-jg"}, - {".asd", "application/octet-stream"}, - {".asf", "video/x-ms-asf"}, - {".asi", "application/octet-stream"}, - {".asm", "text/plain"}, - {".asr", "video/x-ms-asf"}, - {".asx", "video/x-ms-asf"}, - {".atom", "application/atom+xml"}, - {".au", "audio/basic"}, - {".avi", "video/x-msvideo"}, - {".axs", "application/olescript"}, - {".bas", "text/plain"}, - {".bcpio", "application/x-bcpio"}, - {".bin", "application/octet-stream"}, - {".bmp", "image/bmp"}, - {".c", "text/plain"}, - {".cab", "application/vnd.ms-cab-compressed"}, - {".calx", "application/vnd.ms-office.calx"}, - {".cat", "application/vnd.ms-pki.seccat"}, - {".cdf", "application/x-cdf"}, - {".chm", "application/octet-stream"}, - {".class", "application/x-java-applet"}, - {".clp", "application/x-msclip"}, - {".cmx", "image/x-cmx"}, - {".cnf", "text/plain"}, - {".cod", "image/cis-cod"}, - {".cpio", "application/x-cpio"}, - {".cpp", "text/plain"}, - {".crd", "application/x-mscardfile"}, - {".crl", "application/pkix-crl"}, - {".crt", "application/x-x509-ca-cert"}, - {".csh", "application/x-csh"}, - {".css", "text/css"}, - {".csv", "application/octet-stream"}, - {".cur", "application/octet-stream"}, - {".dcr", "application/x-director"}, - {".deploy", "application/octet-stream"}, - {".der", "application/x-x509-ca-cert"}, - {".dib", "image/bmp"}, - {".dir", "application/x-director"}, - {".disco", "text/xml"}, - {".dlm", "text/dlm"}, - {".doc", "application/msword"}, - {".docm", "application/vnd.ms-word.document.macroEnabled.12"}, - {".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, - {".dot", "application/msword"}, - {".dotm", "application/vnd.ms-word.template.macroEnabled.12"}, - {".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, - {".dsp", "application/octet-stream"}, - {".dtd", "text/xml"}, - {".dvi", "application/x-dvi"}, - {".dvr-ms", "video/x-ms-dvr"}, - {".dwf", "drawing/x-dwf"}, - {".dwp", "application/octet-stream"}, - {".dxr", "application/x-director"}, - {".eml", "message/rfc822"}, - {".emz", "application/octet-stream"}, - {".eot", "application/vnd.ms-fontobject"}, - {".eps", "application/postscript"}, - {".etx", "text/x-setext"}, - {".evy", "application/envoy"}, - {".fdf", "application/vnd.fdf"}, - {".fif", "application/fractals"}, - {".fla", "application/octet-stream"}, - {".flr", "x-world/x-vrml"}, - {".flv", "video/x-flv"}, - {".gif", "image/gif"}, - {".gtar", "application/x-gtar"}, - {".gz", "application/x-gzip"}, - {".h", "text/plain"}, - {".hdf", "application/x-hdf"}, - {".hdml", "text/x-hdml"}, - {".hhc", "application/x-oleobject"}, - {".hhk", "application/octet-stream"}, - {".hhp", "application/octet-stream"}, - {".hlp", "application/winhlp"}, - {".hqx", "application/mac-binhex40"}, - {".hta", "application/hta"}, - {".htc", "text/x-component"}, - {".htm", "text/html"}, - {".html", "text/html"}, - {".htt", "text/webviewhtml"}, - {".hxt", "text/html"}, - {".ical", "text/calendar"}, - {".icalendar", "text/calendar"}, - {".ico", "image/x-icon"}, - {".ics", "text/calendar"}, - {".ief", "image/ief"}, - {".ifb", "text/calendar"}, - {".iii", "application/x-iphone"}, - {".inf", "application/octet-stream"}, - {".ins", "application/x-internet-signup"}, - {".isp", "application/x-internet-signup"}, - {".IVF", "video/x-ivf"}, - {".jar", "application/java-archive"}, - {".java", "application/octet-stream"}, - {".jck", "application/liquidmotion"}, - {".jcz", "application/liquidmotion"}, - {".jfif", "image/pjpeg"}, - {".jpb", "application/octet-stream"}, - {".jpe", "image/jpeg"}, - {".jpeg", "image/jpeg"}, - {".jpg", "image/jpeg"}, - {".js", "application/javascript"}, - {".json", "application/json"}, - {".jsx", "text/jscript"}, - {".latex", "application/x-latex"}, - {".lit", "application/x-ms-reader"}, - {".lpk", "application/octet-stream"}, - {".lsf", "video/x-la-asf"}, - {".lsx", "video/x-la-asf"}, - {".lzh", "application/octet-stream"}, - {".m13", "application/x-msmediaview"}, - {".m14", "application/x-msmediaview"}, - {".m1v", "video/mpeg"}, - {".m2ts", "video/vnd.dlna.mpeg-tts"}, - {".m3u", "audio/x-mpegurl"}, - {".m4a", "audio/mp4"}, - {".m4v", "video/mp4"}, - {".man", "application/x-troff-man"}, - {".manifest", "application/x-ms-manifest"}, - {".map", "text/plain"}, - {".markdown", "text/markdown"}, - {".md", "text/markdown"}, - {".mdb", "application/x-msaccess"}, - {".mdp", "application/octet-stream"}, - {".me", "application/x-troff-me"}, - {".mht", "message/rfc822"}, - {".mhtml", "message/rfc822"}, - {".mid", "audio/mid"}, - {".midi", "audio/mid"}, - {".mix", "application/octet-stream"}, - {".mmf", "application/x-smaf"}, - {".mno", "text/xml"}, - {".mny", "application/x-msmoney"}, - {".mov", "video/quicktime"}, - {".movie", "video/x-sgi-movie"}, - {".mp2", "video/mpeg"}, - {".mp3", "audio/mpeg"}, - {".mp4", "video/mp4"}, - {".mp4v", "video/mp4"}, - {".mpa", "video/mpeg"}, - {".mpe", "video/mpeg"}, - {".mpeg", "video/mpeg"}, - {".mpg", "video/mpeg"}, - {".mpp", "application/vnd.ms-project"}, - {".mpv2", "video/mpeg"}, - {".ms", "application/x-troff-ms"}, - {".msi", "application/octet-stream"}, - {".mso", "application/octet-stream"}, - {".mvb", "application/x-msmediaview"}, - {".mvc", "application/x-miva-compiled"}, - {".nc", "application/x-netcdf"}, - {".nsc", "video/x-ms-asf"}, - {".nws", "message/rfc822"}, - {".ocx", "application/octet-stream"}, - {".oda", "application/oda"}, - {".odc", "text/x-ms-odc"}, - {".ods", "application/oleobject"}, - {".oga", "audio/ogg"}, - {".ogg", "video/ogg"}, - {".ogv", "video/ogg"}, - {".ogx", "application/ogg"}, - {".one", "application/onenote"}, - {".onea", "application/onenote"}, - {".onetoc", "application/onenote"}, - {".onetoc2", "application/onenote"}, - {".onetmp", "application/onenote"}, - {".onepkg", "application/onenote"}, - {".osdx", "application/opensearchdescription+xml"}, - {".otf", "font/otf"}, - {".p10", "application/pkcs10"}, - {".p12", "application/x-pkcs12"}, - {".p7b", "application/x-pkcs7-certificates"}, - {".p7c", "application/pkcs7-mime"}, - {".p7m", "application/pkcs7-mime"}, - {".p7r", "application/x-pkcs7-certreqresp"}, - {".p7s", "application/pkcs7-signature"}, - {".pbm", "image/x-portable-bitmap"}, - {".pcx", "application/octet-stream"}, - {".pcz", "application/octet-stream"}, - {".pdf", "application/pdf"}, - {".pfb", "application/octet-stream"}, - {".pfm", "application/octet-stream"}, - {".pfx", "application/x-pkcs12"}, - {".pgm", "image/x-portable-graymap"}, - {".pko", "application/vnd.ms-pki.pko"}, - {".pma", "application/x-perfmon"}, - {".pmc", "application/x-perfmon"}, - {".pml", "application/x-perfmon"}, - {".pmr", "application/x-perfmon"}, - {".pmw", "application/x-perfmon"}, - {".png", "image/png"}, - {".pnm", "image/x-portable-anymap"}, - {".pnz", "image/png"}, - {".pot", "application/vnd.ms-powerpoint"}, - {".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, - {".potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, - {".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, - {".ppm", "image/x-portable-pixmap"}, - {".pps", "application/vnd.ms-powerpoint"}, - {".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, - {".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, - {".ppt", "application/vnd.ms-powerpoint"}, - {".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, - {".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, - {".prf", "application/pics-rules"}, - {".prm", "application/octet-stream"}, - {".prx", "application/octet-stream"}, - {".ps", "application/postscript"}, - {".psd", "application/octet-stream"}, - {".psm", "application/octet-stream"}, - {".psp", "application/octet-stream"}, - {".pub", "application/x-mspublisher"}, - {".qt", "video/quicktime"}, - {".qtl", "application/x-quicktimeplayer"}, - {".qxd", "application/octet-stream"}, - {".ra", "audio/x-pn-realaudio"}, - {".ram", "audio/x-pn-realaudio"}, - {".rar", "application/octet-stream"}, - {".ras", "image/x-cmu-raster"}, - {".rf", "image/vnd.rn-realflash"}, - {".rgb", "image/x-rgb"}, - {".rm", "application/vnd.rn-realmedia"}, - {".rmi", "audio/mid"}, - {".roff", "application/x-troff"}, - {".rpm", "audio/x-pn-realaudio-plugin"}, - {".rtf", "application/rtf"}, - {".rtx", "text/richtext"}, - {".scd", "application/x-msschedule"}, - {".sct", "text/scriptlet"}, - {".sea", "application/octet-stream"}, - {".setpay", "application/set-payment-initiation"}, - {".setreg", "application/set-registration-initiation"}, - {".sgml", "text/sgml"}, - {".sh", "application/x-sh"}, - {".shar", "application/x-shar"}, - {".sit", "application/x-stuffit"}, - {".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, - {".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, - {".smd", "audio/x-smd"}, - {".smi", "application/octet-stream"}, - {".smx", "audio/x-smd"}, - {".smz", "audio/x-smd"}, - {".snd", "audio/basic"}, - {".snp", "application/octet-stream"}, - {".spc", "application/x-pkcs7-certificates"}, - {".spl", "application/futuresplash"}, - {".spx", "audio/ogg"}, - {".src", "application/x-wais-source"}, - {".ssm", "application/streamingmedia"}, - {".sst", "application/vnd.ms-pki.certstore"}, - {".stl", "application/vnd.ms-pki.stl"}, - {".sv4cpio", "application/x-sv4cpio"}, - {".sv4crc", "application/x-sv4crc"}, - {".svg", "image/svg+xml"}, - {".svgz", "image/svg+xml"}, - {".swf", "application/x-shockwave-flash"}, - {".t", "application/x-troff"}, - {".tar", "application/x-tar"}, - {".tcl", "application/x-tcl"}, - {".tex", "application/x-tex"}, - {".texi", "application/x-texinfo"}, - {".texinfo", "application/x-texinfo"}, - {".tgz", "application/x-compressed"}, - {".thmx", "application/vnd.ms-officetheme"}, - {".thn", "application/octet-stream"}, - {".tif", "image/tiff"}, - {".tiff", "image/tiff"}, - {".toc", "application/octet-stream"}, - {".tr", "application/x-troff"}, - {".trm", "application/x-msterminal"}, - {".ts", "video/vnd.dlna.mpeg-tts"}, - {".tsv", "text/tab-separated-values"}, - {".ttc", "application/x-font-ttf"}, - {".ttf", "application/x-font-ttf"}, - {".tts", "video/vnd.dlna.mpeg-tts"}, - {".txt", "text/plain"}, - {".u32", "application/octet-stream"}, - {".uls", "text/iuls"}, - {".ustar", "application/x-ustar"}, - {".vbs", "text/vbscript"}, - {".vcf", "text/x-vcard"}, - {".vcs", "text/plain"}, - {".vdx", "application/vnd.ms-visio.viewer"}, - {".vml", "text/xml"}, - {".vsd", "application/vnd.visio"}, - {".vss", "application/vnd.visio"}, - {".vst", "application/vnd.visio"}, - {".vsto", "application/x-ms-vsto"}, - {".vsw", "application/vnd.visio"}, - {".vsx", "application/vnd.visio"}, - {".vtx", "application/vnd.visio"}, - {".wasm", "application/wasm"}, - {".wav", "audio/wav"}, - {".wax", "audio/x-ms-wax"}, - {".wbmp", "image/vnd.wap.wbmp"}, - {".wcm", "application/vnd.ms-works"}, - {".wdb", "application/vnd.ms-works"}, - {".webm", "video/webm"}, - {".webp", "image/webp"}, - {".wks", "application/vnd.ms-works"}, - {".wm", "video/x-ms-wm"}, - {".wma", "audio/x-ms-wma"}, - {".wmd", "application/x-ms-wmd"}, - {".wmf", "application/x-msmetafile"}, - {".wml", "text/vnd.wap.wml"}, - {".wmlc", "application/vnd.wap.wmlc"}, - {".wmls", "text/vnd.wap.wmlscript"}, - {".wmlsc", "application/vnd.wap.wmlscriptc"}, - {".wmp", "video/x-ms-wmp"}, - {".wmv", "video/x-ms-wmv"}, - {".wmx", "video/x-ms-wmx"}, - {".wmz", "application/x-ms-wmz"}, - {".woff", "application/font-woff"}, // https://www.w3.org/TR/WOFF/#appendix-b - {".woff2", "font/woff2"}, // https://www.w3.org/TR/WOFF2/#IMT - {".wps", "application/vnd.ms-works"}, - {".wri", "application/x-mswrite"}, - {".wrl", "x-world/x-vrml"}, - {".wrz", "x-world/x-vrml"}, - {".wsdl", "text/xml"}, - {".wtv", "video/x-ms-wtv"}, - {".wvx", "video/x-ms-wvx"}, - {".x", "application/directx"}, - {".xaf", "x-world/x-vrml"}, - {".xaml", "application/xaml+xml"}, - {".xap", "application/x-silverlight-app"}, - {".xbap", "application/x-ms-xbap"}, - {".xbm", "image/x-xbitmap"}, - {".xdr", "text/plain"}, - {".xht", "application/xhtml+xml"}, - {".xhtml", "application/xhtml+xml"}, - {".xla", "application/vnd.ms-excel"}, - {".xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, - {".xlc", "application/vnd.ms-excel"}, - {".xlm", "application/vnd.ms-excel"}, - {".xls", "application/vnd.ms-excel"}, - {".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, - {".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, - {".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, - {".xlt", "application/vnd.ms-excel"}, - {".xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, - {".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, - {".xlw", "application/vnd.ms-excel"}, - {".xml", "text/xml"}, - {".xof", "x-world/x-vrml"}, - {".xpm", "image/x-xpixmap"}, - {".xps", "application/vnd.ms-xpsdocument"}, - {".xsd", "text/xml"}, - {".xsf", "text/xml"}, - {".xsl", "text/xml"}, - {".xslt", "text/xml"}, - {".xsn", "application/octet-stream"}, - {".xtp", "application/octet-stream"}, - {".xwd", "image/x-xwindowdump"}, - {".z", "application/x-compress"}, - {".zip", "application/x-zip-compressed"}, + { ".323", "text/h323" }, + { ".3g2", "video/3gpp2" }, + { ".3gp2", "video/3gpp2" }, + { ".3gp", "video/3gpp" }, + { ".3gpp", "video/3gpp" }, + { ".aac", "audio/aac" }, + { ".aaf", "application/octet-stream" }, + { ".aca", "application/octet-stream" }, + { ".accdb", "application/msaccess" }, + { ".accde", "application/msaccess" }, + { ".accdt", "application/msaccess" }, + { ".acx", "application/internet-property-stream" }, + { ".adt", "audio/vnd.dlna.adts" }, + { ".adts", "audio/vnd.dlna.adts" }, + { ".afm", "application/octet-stream" }, + { ".ai", "application/postscript" }, + { ".aif", "audio/x-aiff" }, + { ".aifc", "audio/aiff" }, + { ".aiff", "audio/aiff" }, + { ".appcache", "text/cache-manifest" }, + { ".application", "application/x-ms-application" }, + { ".art", "image/x-jg" }, + { ".asd", "application/octet-stream" }, + { ".asf", "video/x-ms-asf" }, + { ".asi", "application/octet-stream" }, + { ".asm", "text/plain" }, + { ".asr", "video/x-ms-asf" }, + { ".asx", "video/x-ms-asf" }, + { ".atom", "application/atom+xml" }, + { ".au", "audio/basic" }, + { ".avi", "video/x-msvideo" }, + { ".axs", "application/olescript" }, + { ".bas", "text/plain" }, + { ".bcpio", "application/x-bcpio" }, + { ".bin", "application/octet-stream" }, + { ".bmp", "image/bmp" }, + { ".c", "text/plain" }, + { ".cab", "application/vnd.ms-cab-compressed" }, + { ".calx", "application/vnd.ms-office.calx" }, + { ".cat", "application/vnd.ms-pki.seccat" }, + { ".cdf", "application/x-cdf" }, + { ".chm", "application/octet-stream" }, + { ".class", "application/x-java-applet" }, + { ".clp", "application/x-msclip" }, + { ".cmx", "image/x-cmx" }, + { ".cnf", "text/plain" }, + { ".cod", "image/cis-cod" }, + { ".cpio", "application/x-cpio" }, + { ".cpp", "text/plain" }, + { ".crd", "application/x-mscardfile" }, + { ".crl", "application/pkix-crl" }, + { ".crt", "application/x-x509-ca-cert" }, + { ".csh", "application/x-csh" }, + { ".css", "text/css" }, + { ".csv", "text/csv" }, // https://tools.ietf.org/html/rfc7111#section-5.1 + { ".cur", "application/octet-stream" }, + { ".dcr", "application/x-director" }, + { ".deploy", "application/octet-stream" }, + { ".der", "application/x-x509-ca-cert" }, + { ".dib", "image/bmp" }, + { ".dir", "application/x-director" }, + { ".disco", "text/xml" }, + { ".dlm", "text/dlm" }, + { ".doc", "application/msword" }, + { ".docm", "application/vnd.ms-word.document.macroEnabled.12" }, + { ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }, + { ".dot", "application/msword" }, + { ".dotm", "application/vnd.ms-word.template.macroEnabled.12" }, + { ".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" }, + { ".dsp", "application/octet-stream" }, + { ".dtd", "text/xml" }, + { ".dvi", "application/x-dvi" }, + { ".dvr-ms", "video/x-ms-dvr" }, + { ".dwf", "drawing/x-dwf" }, + { ".dwp", "application/octet-stream" }, + { ".dxr", "application/x-director" }, + { ".eml", "message/rfc822" }, + { ".emz", "application/octet-stream" }, + { ".eot", "application/vnd.ms-fontobject" }, + { ".eps", "application/postscript" }, + { ".etx", "text/x-setext" }, + { ".evy", "application/envoy" }, + { ".exe", "application/vnd.microsoft.portable-executable" }, // https://www.iana.org/assignments/media-types/application/vnd.microsoft.portable-executable + { ".fdf", "application/vnd.fdf" }, + { ".fif", "application/fractals" }, + { ".fla", "application/octet-stream" }, + { ".flr", "x-world/x-vrml" }, + { ".flv", "video/x-flv" }, + { ".gif", "image/gif" }, + { ".gtar", "application/x-gtar" }, + { ".gz", "application/x-gzip" }, + { ".h", "text/plain" }, + { ".hdf", "application/x-hdf" }, + { ".hdml", "text/x-hdml" }, + { ".hhc", "application/x-oleobject" }, + { ".hhk", "application/octet-stream" }, + { ".hhp", "application/octet-stream" }, + { ".hlp", "application/winhlp" }, + { ".hqx", "application/mac-binhex40" }, + { ".hta", "application/hta" }, + { ".htc", "text/x-component" }, + { ".htm", "text/html" }, + { ".html", "text/html" }, + { ".htt", "text/webviewhtml" }, + { ".hxt", "text/html" }, + { ".ical", "text/calendar" }, + { ".icalendar", "text/calendar" }, + { ".ico", "image/x-icon" }, + { ".ics", "text/calendar" }, + { ".ief", "image/ief" }, + { ".ifb", "text/calendar" }, + { ".iii", "application/x-iphone" }, + { ".inf", "application/octet-stream" }, + { ".ins", "application/x-internet-signup" }, + { ".isp", "application/x-internet-signup" }, + { ".IVF", "video/x-ivf" }, + { ".jar", "application/java-archive" }, + { ".java", "application/octet-stream" }, + { ".jck", "application/liquidmotion" }, + { ".jcz", "application/liquidmotion" }, + { ".jfif", "image/pjpeg" }, + { ".jpb", "application/octet-stream" }, + { ".jpe", "image/jpeg" }, + { ".jpeg", "image/jpeg" }, + { ".jpg", "image/jpeg" }, + { ".js", "application/javascript" }, + { ".json", "application/json" }, + { ".jsx", "text/jscript" }, + { ".latex", "application/x-latex" }, + { ".lit", "application/x-ms-reader" }, + { ".lpk", "application/octet-stream" }, + { ".lsf", "video/x-la-asf" }, + { ".lsx", "video/x-la-asf" }, + { ".lzh", "application/octet-stream" }, + { ".m13", "application/x-msmediaview" }, + { ".m14", "application/x-msmediaview" }, + { ".m1v", "video/mpeg" }, + { ".m2ts", "video/vnd.dlna.mpeg-tts" }, + { ".m3u", "audio/x-mpegurl" }, + { ".m4a", "audio/mp4" }, + { ".m4v", "video/mp4" }, + { ".man", "application/x-troff-man" }, + { ".manifest", "application/x-ms-manifest" }, + { ".map", "text/plain" }, + { ".markdown", "text/markdown" }, + { ".md", "text/markdown" }, + { ".mdb", "application/x-msaccess" }, + { ".mdp", "application/octet-stream" }, + { ".me", "application/x-troff-me" }, + { ".mht", "message/rfc822" }, + { ".mhtml", "message/rfc822" }, + { ".mid", "audio/mid" }, + { ".midi", "audio/mid" }, + { ".mix", "application/octet-stream" }, + { ".mmf", "application/x-smaf" }, + { ".mno", "text/xml" }, + { ".mny", "application/x-msmoney" }, + { ".mov", "video/quicktime" }, + { ".movie", "video/x-sgi-movie" }, + { ".mp2", "video/mpeg" }, + { ".mp3", "audio/mpeg" }, + { ".mp4", "video/mp4" }, + { ".mp4v", "video/mp4" }, + { ".mpa", "video/mpeg" }, + { ".mpe", "video/mpeg" }, + { ".mpeg", "video/mpeg" }, + { ".mpg", "video/mpeg" }, + { ".mpp", "application/vnd.ms-project" }, + { ".mpv2", "video/mpeg" }, + { ".ms", "application/x-troff-ms" }, + { ".msi", "application/octet-stream" }, + { ".mso", "application/octet-stream" }, + { ".mvb", "application/x-msmediaview" }, + { ".mvc", "application/x-miva-compiled" }, + { ".nc", "application/x-netcdf" }, + { ".nsc", "video/x-ms-asf" }, + { ".nws", "message/rfc822" }, + { ".ocx", "application/octet-stream" }, + { ".oda", "application/oda" }, + { ".odc", "text/x-ms-odc" }, + { ".ods", "application/oleobject" }, + { ".oga", "audio/ogg" }, + { ".ogg", "video/ogg" }, + { ".ogv", "video/ogg" }, + { ".ogx", "application/ogg" }, + { ".one", "application/onenote" }, + { ".onea", "application/onenote" }, + { ".onetoc", "application/onenote" }, + { ".onetoc2", "application/onenote" }, + { ".onetmp", "application/onenote" }, + { ".onepkg", "application/onenote" }, + { ".osdx", "application/opensearchdescription+xml" }, + { ".otf", "font/otf" }, + { ".p10", "application/pkcs10" }, + { ".p12", "application/x-pkcs12" }, + { ".p7b", "application/x-pkcs7-certificates" }, + { ".p7c", "application/pkcs7-mime" }, + { ".p7m", "application/pkcs7-mime" }, + { ".p7r", "application/x-pkcs7-certreqresp" }, + { ".p7s", "application/pkcs7-signature" }, + { ".pbm", "image/x-portable-bitmap" }, + { ".pcx", "application/octet-stream" }, + { ".pcz", "application/octet-stream" }, + { ".pdf", "application/pdf" }, + { ".pfb", "application/octet-stream" }, + { ".pfm", "application/octet-stream" }, + { ".pfx", "application/x-pkcs12" }, + { ".pgm", "image/x-portable-graymap" }, + { ".pko", "application/vnd.ms-pki.pko" }, + { ".pma", "application/x-perfmon" }, + { ".pmc", "application/x-perfmon" }, + { ".pml", "application/x-perfmon" }, + { ".pmr", "application/x-perfmon" }, + { ".pmw", "application/x-perfmon" }, + { ".png", "image/png" }, + { ".pnm", "image/x-portable-anymap" }, + { ".pnz", "image/png" }, + { ".pot", "application/vnd.ms-powerpoint" }, + { ".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12" }, + { ".potx", "application/vnd.openxmlformats-officedocument.presentationml.template" }, + { ".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12" }, + { ".ppm", "image/x-portable-pixmap" }, + { ".pps", "application/vnd.ms-powerpoint" }, + { ".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" }, + { ".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" }, + { ".ppt", "application/vnd.ms-powerpoint" }, + { ".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12" }, + { ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" }, + { ".prf", "application/pics-rules" }, + { ".prm", "application/octet-stream" }, + { ".prx", "application/octet-stream" }, + { ".ps", "application/postscript" }, + { ".psd", "application/octet-stream" }, + { ".psm", "application/octet-stream" }, + { ".psp", "application/octet-stream" }, + { ".pub", "application/x-mspublisher" }, + { ".qt", "video/quicktime" }, + { ".qtl", "application/x-quicktimeplayer" }, + { ".qxd", "application/octet-stream" }, + { ".ra", "audio/x-pn-realaudio" }, + { ".ram", "audio/x-pn-realaudio" }, + { ".rar", "application/octet-stream" }, + { ".ras", "image/x-cmu-raster" }, + { ".rf", "image/vnd.rn-realflash" }, + { ".rgb", "image/x-rgb" }, + { ".rm", "application/vnd.rn-realmedia" }, + { ".rmi", "audio/mid" }, + { ".roff", "application/x-troff" }, + { ".rpm", "audio/x-pn-realaudio-plugin" }, + { ".rtf", "application/rtf" }, + { ".rtx", "text/richtext" }, + { ".scd", "application/x-msschedule" }, + { ".sct", "text/scriptlet" }, + { ".sea", "application/octet-stream" }, + { ".setpay", "application/set-payment-initiation" }, + { ".setreg", "application/set-registration-initiation" }, + { ".sgml", "text/sgml" }, + { ".sh", "application/x-sh" }, + { ".shar", "application/x-shar" }, + { ".sit", "application/x-stuffit" }, + { ".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12" }, + { ".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" }, + { ".smd", "audio/x-smd" }, + { ".smi", "application/octet-stream" }, + { ".smx", "audio/x-smd" }, + { ".smz", "audio/x-smd" }, + { ".snd", "audio/basic" }, + { ".snp", "application/octet-stream" }, + { ".spc", "application/x-pkcs7-certificates" }, + { ".spl", "application/futuresplash" }, + { ".spx", "audio/ogg" }, + { ".src", "application/x-wais-source" }, + { ".ssm", "application/streamingmedia" }, + { ".sst", "application/vnd.ms-pki.certstore" }, + { ".stl", "application/vnd.ms-pki.stl" }, + { ".sv4cpio", "application/x-sv4cpio" }, + { ".sv4crc", "application/x-sv4crc" }, + { ".svg", "image/svg+xml" }, + { ".svgz", "image/svg+xml" }, + { ".swf", "application/x-shockwave-flash" }, + { ".t", "application/x-troff" }, + { ".tar", "application/x-tar" }, + { ".tcl", "application/x-tcl" }, + { ".tex", "application/x-tex" }, + { ".texi", "application/x-texinfo" }, + { ".texinfo", "application/x-texinfo" }, + { ".tgz", "application/x-compressed" }, + { ".thmx", "application/vnd.ms-officetheme" }, + { ".thn", "application/octet-stream" }, + { ".tif", "image/tiff" }, + { ".tiff", "image/tiff" }, + { ".toc", "application/octet-stream" }, + { ".tr", "application/x-troff" }, + { ".trm", "application/x-msterminal" }, + { ".ts", "video/vnd.dlna.mpeg-tts" }, + { ".tsv", "text/tab-separated-values" }, + { ".ttc", "application/x-font-ttf" }, + { ".ttf", "application/x-font-ttf" }, + { ".tts", "video/vnd.dlna.mpeg-tts" }, + { ".txt", "text/plain" }, + { ".u32", "application/octet-stream" }, + { ".uls", "text/iuls" }, + { ".ustar", "application/x-ustar" }, + { ".vbs", "text/vbscript" }, + { ".vcf", "text/x-vcard" }, + { ".vcs", "text/plain" }, + { ".vdx", "application/vnd.ms-visio.viewer" }, + { ".vml", "text/xml" }, + { ".vsd", "application/vnd.visio" }, + { ".vss", "application/vnd.visio" }, + { ".vst", "application/vnd.visio" }, + { ".vsto", "application/x-ms-vsto" }, + { ".vsw", "application/vnd.visio" }, + { ".vsx", "application/vnd.visio" }, + { ".vtx", "application/vnd.visio" }, + { ".wasm", "application/wasm" }, + { ".wav", "audio/wav" }, + { ".wax", "audio/x-ms-wax" }, + { ".wbmp", "image/vnd.wap.wbmp" }, + { ".wcm", "application/vnd.ms-works" }, + { ".wdb", "application/vnd.ms-works" }, + { ".webm", "video/webm" }, + { ".webmanifest", "application/manifest+json" }, // https://w3c.github.io/manifest/#media-type-registration + { ".webp", "image/webp" }, + { ".wks", "application/vnd.ms-works" }, + { ".wm", "video/x-ms-wm" }, + { ".wma", "audio/x-ms-wma" }, + { ".wmd", "application/x-ms-wmd" }, + { ".wmf", "application/x-msmetafile" }, + { ".wml", "text/vnd.wap.wml" }, + { ".wmlc", "application/vnd.wap.wmlc" }, + { ".wmls", "text/vnd.wap.wmlscript" }, + { ".wmlsc", "application/vnd.wap.wmlscriptc" }, + { ".wmp", "video/x-ms-wmp" }, + { ".wmv", "video/x-ms-wmv" }, + { ".wmx", "video/x-ms-wmx" }, + { ".wmz", "application/x-ms-wmz" }, + { ".woff", "application/font-woff" }, // https://www.w3.org/TR/WOFF/#appendix-b + { ".woff2", "font/woff2" }, // https://www.w3.org/TR/WOFF2/#IMT + { ".wps", "application/vnd.ms-works" }, + { ".wri", "application/x-mswrite" }, + { ".wrl", "x-world/x-vrml" }, + { ".wrz", "x-world/x-vrml" }, + { ".wsdl", "text/xml" }, + { ".wtv", "video/x-ms-wtv" }, + { ".wvx", "video/x-ms-wvx" }, + { ".x", "application/directx" }, + { ".xaf", "x-world/x-vrml" }, + { ".xaml", "application/xaml+xml" }, + { ".xap", "application/x-silverlight-app" }, + { ".xbap", "application/x-ms-xbap" }, + { ".xbm", "image/x-xbitmap" }, + { ".xdr", "text/plain" }, + { ".xht", "application/xhtml+xml" }, + { ".xhtml", "application/xhtml+xml" }, + { ".xla", "application/vnd.ms-excel" }, + { ".xlam", "application/vnd.ms-excel.addin.macroEnabled.12" }, + { ".xlc", "application/vnd.ms-excel" }, + { ".xlm", "application/vnd.ms-excel" }, + { ".xls", "application/vnd.ms-excel" }, + { ".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12" }, + { ".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12" }, + { ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, + { ".xlt", "application/vnd.ms-excel" }, + { ".xltm", "application/vnd.ms-excel.template.macroEnabled.12" }, + { ".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" }, + { ".xlw", "application/vnd.ms-excel" }, + { ".xml", "text/xml" }, + { ".xof", "x-world/x-vrml" }, + { ".xpm", "image/x-xpixmap" }, + { ".xps", "application/vnd.ms-xpsdocument" }, + { ".xsd", "text/xml" }, + { ".xsf", "text/xml" }, + { ".xsl", "text/xml" }, + { ".xslt", "text/xml" }, + { ".xsn", "application/octet-stream" }, + { ".xtp", "application/octet-stream" }, + { ".xwd", "image/x-xwindowdump" }, + { ".z", "application/x-compress" }, + { ".zip", "application/x-zip-compressed" } }; AllowedExtraWebContentFolders = new List diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj index 10b9023354..edfe716335 100644 --- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj +++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj index 6d03439a85..511aac6dba 100644 --- a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index 7065572694..ae61d6b870 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj index 67c07f77d6..3b235be413 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj index 1a3ca4e254..4aad05aef7 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index 091ee37717..e696a2f915 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -4,8 +4,7 @@ - netstandard2.1 - 3.0 + net5.0 @@ -13,8 +12,8 @@ - - + + diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj index c9b29dc83f..f3f8249f50 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj index d30601d1e8..796da8aa26 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj @@ -2,7 +2,7 @@ - + netstandard2.0 false diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj index 1c080067ed..822189c677 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj @@ -1,7 +1,7 @@ - + - + netstandard2.0 Volo.Abp.BlobStoring.Minio diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj index e90f18e012..48304420e6 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj index f7489d42bf..757d95d2bc 100644 --- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj +++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index d309d4858a..8846473d96 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App SwitchDatabaseProvider(context, steps); DeleteUnrelatedProjects(context, steps); RandomizeSslPorts(context, steps); + RandomizeStringEncryption(context, steps); UpdateNuGetConfig(context, steps); CleanupFolderHierarchy(context, steps); @@ -185,6 +186,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ); } + private static void RandomizeStringEncryption(ProjectBuildContext context, List steps) + { + steps.Add(new RandomizeStringEncryptionStep()); + } + private static void UpdateNuGetConfig(ProjectBuildContext context, List steps) { steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs new file mode 100644 index 0000000000..6fc2bafc95 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs @@ -0,0 +1,47 @@ +using System; +using System.Linq; +using System.Text; +using Volo.Abp.Cli.ProjectBuilding.Building; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates +{ + public class RandomizeStringEncryptionStep: ProjectBuildPipelineStep + { + public override void Execute(ProjectBuildContext context) + { + var appSettings = context.Files + .Where(x => !x.IsDirectory && x.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase)) + .Where(x => x.Content.IndexOf("StringEncryption", StringComparison.InvariantCultureIgnoreCase) >= 0) + .ToList(); + + const string defaultPassPhrase = "gsKnGZ041HLL4IM8"; + var randomPassPhrase = GetRandomString(defaultPassPhrase.Length); + foreach (var appSetting in appSettings) + { + appSetting.NormalizeLineEndings(); + + var appSettingLines = appSetting.GetLines(); + for (var i = 0; i < appSettingLines.Length; i++) + { + if (appSettingLines[i].Contains("DefaultPassPhrase") && appSettingLines[i].Contains(defaultPassPhrase)) + { + appSettingLines[i] = appSettingLines[i].Replace(defaultPassPhrase, randomPassPhrase); + } + } + + appSetting.SetLines(appSettingLines); + } + } + + private static string GetRandomString(int length) + { + const string letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + var builder = new StringBuilder(); + for (var i = 0; i < length; i++) + { + builder.Append(letters[RandomHelper.GetRandom(0, letters.Length)]); + } + return builder.ToString(); + } + } +} diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj index 4caf9cc50f..79760820d8 100644 --- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj +++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj @@ -1,11 +1,11 @@ - + Exe - netcoreapp3.1 + net5.0 true abp @@ -18,8 +18,8 @@ - - + + diff --git a/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs b/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs index 0732a63110..75849b24b6 100644 --- a/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs +++ b/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs @@ -1,5 +1,8 @@ -using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq.Expressions; +using System.Reflection.Emit; +using System.Runtime.CompilerServices; using JetBrains.Annotations; namespace System.Linq @@ -246,15 +249,6 @@ namespace System.Linq public bool TailCall => Predicate.TailCall; #endif -#if !(NET35 || WINDOWS_APP || NETSTANDARD || PORTABLE || PORTABLE40 || UAP) - /// - public void CompileToMethod(MethodBuilder method) { Predicate.CompileToMethod(method); } - - /// - public void CompileToMethod(MethodBuilder method, DebugInfoGenerator debugInfoGenerator) { Predicate.CompileToMethod(method, debugInfoGenerator); } - -#endif - #endregion #region Implement Expression methods and properties diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index c680fec39d..4414eed1c6 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -16,15 +16,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj index 4feb946600..a2fd749d0e 100644 --- a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj +++ b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.Dapper Volo.Abp.Dapper $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj index d565f6c114..7bf7b5d74f 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj @@ -2,9 +2,9 @@ - + - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.MySQL Volo.Abp.EntityFrameworkCore.MySQL $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -21,5 +21,5 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs index 8feec1715b..23943873c3 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs @@ -1,13 +1,13 @@ -using Volo.Abp.EntityFrameworkCore; - -namespace Microsoft.EntityFrameworkCore -{ - public static class AbpOracleModelBuilderExtensions - { - public static void UseOracle( - this ModelBuilder modelBuilder) - { - modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Oracle); - } - } -} \ No newline at end of file +// using Volo.Abp.EntityFrameworkCore; +// +// namespace Microsoft.EntityFrameworkCore +// { +// public static class AbpOracleModelBuilderExtensions +// { +// public static void UseOracle( +// this ModelBuilder modelBuilder) +// { +// modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Oracle); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj index 8043a1ff8e..f42981a9ae 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs index 482ee8b9a8..ba70772c9e 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs @@ -1,26 +1,26 @@ -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; -using System; -using Devart.Data.Oracle.Entity; -using Volo.Abp.EntityFrameworkCore.DependencyInjection; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextConfigurationContextOracleDevartExtensions - { - public static DbContextOptionsBuilder UseOracle( - [NotNull] this AbpDbContextConfigurationContext context, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - { - if (useExistingConnectionIfAvailable && context.ExistingConnection != null) - { - return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); - } - else - { - return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); - } - } - } -} +// using JetBrains.Annotations; +// using Microsoft.EntityFrameworkCore; +// using System; +// using Devart.Data.Oracle.Entity; +// using Volo.Abp.EntityFrameworkCore.DependencyInjection; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextConfigurationContextOracleDevartExtensions +// { +// public static DbContextOptionsBuilder UseOracle( +// [NotNull] this AbpDbContextConfigurationContext context, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// { +// if (useExistingConnectionIfAvailable && context.ExistingConnection != null) +// { +// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); +// } +// else +// { +// return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); +// } +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs index 20887ceb79..99cfc84b8e 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs @@ -1,32 +1,32 @@ -using JetBrains.Annotations; -using System; -using Devart.Data.Oracle.Entity; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextOptionsOracleDevartExtensions - { - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); - }); - } - - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - where TDbContext : AbpDbContext - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); - }); - } - } -} +// using JetBrains.Annotations; +// using System; +// using Devart.Data.Oracle.Entity; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextOptionsOracleDevartExtensions +// { +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); +// }); +// } +// +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// where TDbContext : AbpDbContext +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs index 7b5970bb59..3b1b9cc337 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs @@ -1,22 +1,22 @@ -using Volo.Abp.Guids; -using Volo.Abp.Modularity; - -namespace Volo.Abp.EntityFrameworkCore.Oracle.Devart -{ - [DependsOn( - typeof(AbpEntityFrameworkCoreModule) - )] - public class AbpEntityFrameworkCoreOracleDevartModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - if (options.DefaultSequentialGuidType == null) - { - options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; - } - }); - } - } -} \ No newline at end of file +// using Volo.Abp.Guids; +// using Volo.Abp.Modularity; +// +// namespace Volo.Abp.EntityFrameworkCore.Oracle.Devart +// { +// [DependsOn( +// typeof(AbpEntityFrameworkCoreModule) +// )] +// public class AbpEntityFrameworkCoreOracleDevartModule : AbpModule +// { +// public override void ConfigureServices(ServiceConfigurationContext context) +// { +// Configure(options => +// { +// if (options.DefaultSequentialGuidType == null) +// { +// options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; +// } +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj index be0537ae96..7611559008 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs index a5b898b286..cb3a92d2cf 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs @@ -1,25 +1,25 @@ -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; -using System; -using Oracle.EntityFrameworkCore.Infrastructure; -using Volo.Abp.EntityFrameworkCore.DependencyInjection; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextConfigurationContextOracleExtensions - { - public static DbContextOptionsBuilder UseOracle( - [NotNull] this AbpDbContextConfigurationContext context, - [CanBeNull] Action oracleOptionsAction = null) - { - if (context.ExistingConnection != null) - { - return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); - } - else - { - return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); - } - } - } -} +// using JetBrains.Annotations; +// using Microsoft.EntityFrameworkCore; +// using System; +// using Oracle.EntityFrameworkCore.Infrastructure; +// using Volo.Abp.EntityFrameworkCore.DependencyInjection; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextConfigurationContextOracleExtensions +// { +// public static DbContextOptionsBuilder UseOracle( +// [NotNull] this AbpDbContextConfigurationContext context, +// [CanBeNull] Action oracleOptionsAction = null) +// { +// if (context.ExistingConnection != null) +// { +// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); +// } +// else +// { +// return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); +// } +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs index f4817d5ab4..f5f9dc7f61 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs @@ -1,30 +1,30 @@ -using JetBrains.Annotations; -using System; -using Oracle.EntityFrameworkCore.Infrastructure; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextOptionsOracleExtensions - { - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null) - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction); - }); - } - - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null) - where TDbContext : AbpDbContext - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction); - }); - } - } -} +// using JetBrains.Annotations; +// using System; +// using Oracle.EntityFrameworkCore.Infrastructure; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextOptionsOracleExtensions +// { +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null) +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction); +// }); +// } +// +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null) +// where TDbContext : AbpDbContext +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction); +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs index 3b7c801462..21fad9375a 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs @@ -1,22 +1,22 @@ -using Volo.Abp.Guids; -using Volo.Abp.Modularity; - -namespace Volo.Abp.EntityFrameworkCore.Oracle -{ - [DependsOn( - typeof(AbpEntityFrameworkCoreModule) - )] - public class AbpEntityFrameworkCoreOracleModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - if (options.DefaultSequentialGuidType == null) - { - options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; - } - }); - } - } -} \ No newline at end of file +// using Volo.Abp.Guids; +// using Volo.Abp.Modularity; +// +// namespace Volo.Abp.EntityFrameworkCore.Oracle +// { +// [DependsOn( +// typeof(AbpEntityFrameworkCoreModule) +// )] +// public class AbpEntityFrameworkCoreOracleModule : AbpModule +// { +// public override void ConfigureServices(ServiceConfigurationContext context) +// { +// Configure(options => +// { +// if (options.DefaultSequentialGuidType == null) +// { +// options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; +// } +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj index 96de9fdd1c..8e325342d4 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.PostgreSql Volo.Abp.EntityFrameworkCore.PostgreSql $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj index bfe343509c..ff0e06ebae 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.SqlServer Volo.Abp.EntityFrameworkCore.SqlServer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj index a5f7a3474b..010f419374 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore.Sqlite Volo.Abp.EntityFrameworkCore.Sqlite $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj index 075ecbc1c1..a123570984 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Abp.EntityFrameworkCore Volo.Abp.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs deleted file mode 100644 index 55bb9428e8..0000000000 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Internal; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class DatabaseFacadeExtensions - { - public static bool IsRelational(this DatabaseFacade database) - { -#pragma warning disable EF1001 // Internal EF Core API usage. - return ((IDatabaseFacadeDependenciesAccessor)database).Dependencies is IRelationalDatabaseFacadeDependencies; -#pragma warning restore EF1001 // Internal EF Core API usage. - } - } -} diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj index 42b0293781..cbf8d78aea 100644 --- a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj @@ -2,7 +2,7 @@ - + netstandard2.0 diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj index a4d65bf4f6..d0aa06056e 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj index 1518da9045..81a3d0ab9e 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Http.Client.IdentityModel.Web Volo.Abp.Http.Client.IdentityModel.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj index 36838f5149..95270edc7c 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.Http.Client.IdentityModel.WebAssembly Volo.Abp.Http.Client.IdentityModel.WebAssembly $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,9 +15,9 @@ - + - + diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index e9d8cc69a8..a96f3afd4a 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -1,4 +1,4 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj index 8ab2bc4ae8..eb5bc35428 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj +++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj index 8af6ecc68f..4e891a687d 100644 --- a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj +++ b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj index e91f42d7b2..2a0b576f98 100644 --- a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj +++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj @@ -2,12 +2,12 @@ - + netstandard2.0 - + diff --git a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj index 849fe3ce3d..277ac1c24b 100644 --- a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj +++ b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj @@ -17,12 +17,12 @@ - + - + diff --git a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj index 88c3bf0e81..df04ab95df 100644 --- a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj +++ b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj @@ -13,12 +13,12 @@ false - + - + diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs index 7d9056ca4d..4979b87ce6 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs @@ -31,7 +31,7 @@ namespace Volo.Abp.Localization includeParentCultures ); } - + public IEnumerable GetAllStrings(bool includeParentCultures, bool includeBaseLocalizers) { return GetAllStrings( @@ -41,12 +41,6 @@ namespace Volo.Abp.Localization ); } - [Obsolete("This method is obsolete. Use `CurrentCulture` and `CurrentUICulture` instead.")] - public IStringLocalizer WithCulture(CultureInfo culture) - { - return new CultureWrapperStringLocalizer(culture.Name, this); - } - protected virtual LocalizedString GetLocalizedStringFormatted(string name, params object[] arguments) { return GetLocalizedStringFormatted(name, CultureInfo.CurrentUICulture.Name, arguments); @@ -126,7 +120,7 @@ namespace Volo.Abp.Localization } protected virtual IReadOnlyList GetAllStrings( - string cultureName, + string cultureName, bool includeParentCultures = true, bool includeBaseLocalizers = true) { @@ -177,7 +171,7 @@ namespace Volo.Abp.Localization return allStrings.Values.ToImmutableList(); } - + public class CultureWrapperStringLocalizer : IStringLocalizer, IStringLocalizerSupportsInheritance { private readonly string _cultureName; @@ -198,16 +192,10 @@ namespace Volo.Abp.Localization return _innerLocalizer.GetAllStrings(_cultureName, includeParentCultures); } - [Obsolete("This method is obsolete. Use `CurrentCulture` and `CurrentUICulture` instead.")] - public IStringLocalizer WithCulture(CultureInfo culture) - { - return new CultureWrapperStringLocalizer(culture.Name, _innerLocalizer); - } - public IEnumerable GetAllStrings(bool includeParentCultures, bool includeBaseLocalizers) { return _innerLocalizer.GetAllStrings(_cultureName, includeParentCultures, includeBaseLocalizers); } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj index 4b8542101a..19f549b36a 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj +++ b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj @@ -1,4 +1,4 @@ - + @@ -19,4 +19,4 @@ - \ No newline at end of file + diff --git a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj index 00da6b31b6..198d2479e4 100644 --- a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj +++ b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs index f62a9566c4..b1cdcb1097 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs @@ -1,9 +1,45 @@ -using Volo.Abp.Modularity; +using System; +using System.Text; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; +using Volo.Abp.Security.Encryption; namespace Volo.Abp.Security { public class AbpSecurityModule : AbpModule { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + context.Services.Configure(options => + { + var keySize = configuration["StringEncryption:KeySize"]; + if (!keySize.IsNullOrWhiteSpace()) + { + if (int.TryParse(keySize, out var intValue)) + { + options.Keysize = intValue; + } + } + var defaultPassPhrase = configuration["StringEncryption:DefaultPassPhrase"]; + if (!defaultPassPhrase.IsNullOrWhiteSpace()) + { + options.DefaultPassPhrase = defaultPassPhrase; + } + + var initVectorBytes = configuration["StringEncryption:InitVectorBytes"]; + if (!initVectorBytes.IsNullOrWhiteSpace()) + { + options.InitVectorBytes = Encoding.ASCII.GetBytes(initVectorBytes);; + } + + var defaultSalt = configuration["StringEncryption:DefaultSalt"]; + if (!defaultSalt.IsNullOrWhiteSpace()) + { + options.DefaultSalt = Encoding.ASCII.GetBytes(defaultSalt);; + } + }); + } } } diff --git a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs deleted file mode 100644 index 31a9ff280b..0000000000 --- a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/Binary/BinarySerializationHelper.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; - -namespace Volo.Abp.Serialization.Binary -{ - /// - /// This class is used to simplify serialization/deserialization operations. - /// Uses .NET binary serialization. - /// - public static class BinarySerializationHelper - { - /// - /// Serializes an object and returns as a byte array. - /// - /// object to be serialized - /// bytes of object - public static byte[] Serialize(object obj) - { - using (var memoryStream = new MemoryStream()) - { - Serialize(obj, memoryStream); - return memoryStream.ToArray(); - } - } - - /// - /// Serializes an object into a stream. - /// - /// object to be serialized - /// Stream to serialize in - /// bytes of object - public static void Serialize(object obj, Stream stream) - { - CreateBinaryFormatter().Serialize(stream, obj); - } - - /// - /// Deserializes an object from given byte array. - /// - /// The byte array that contains object - /// deserialized object - public static object Deserialize(byte[] bytes) - { - using (var memoryStream = new MemoryStream(bytes)) - { - return Deserialize(memoryStream); - } - } - - /// - /// Deserializes an object from given stream. - /// - /// The stream that contains object - /// deserialized object - public static object Deserialize(Stream stream) - { - return CreateBinaryFormatter().Deserialize(stream); - } - - /// - /// Deserializes an object from given byte array. - /// Difference from is that; this method can also deserialize - /// types that are defined in dynamically loaded assemblies (like PlugIns). - /// - /// The byte array that contains object - /// deserialized object - public static object DeserializeExtended(byte[] bytes) - { - using (var memoryStream = new MemoryStream(bytes)) - { - return CreateBinaryFormatter(true).Deserialize(memoryStream); - } - } - - /// - /// Deserializes an object from given stream. - /// Difference from is that; this method can also deserialize - /// types that are defined in dynamically loaded assemblies (like PlugIns). - /// - /// The stream that contains object - /// deserialized object - public static object DeserializeExtended(Stream stream) - { - return CreateBinaryFormatter(true).Deserialize(stream); - } - - private static BinaryFormatter CreateBinaryFormatter(bool extended = false) - { - if (extended) - { - return new BinaryFormatter - { - //TODO: AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple, - Binder = new ExtendedSerializationBinder() - }; - } - else - { - return new BinaryFormatter(); - } - } - - /// - /// This class is used in deserializing to allow deserializing objects that are defined - /// in assemlies that are load in runtime (like PlugIns). - /// - private sealed class ExtendedSerializationBinder : SerializationBinder - { - public override Type BindToType(string assemblyName, string typeName) - { - var toAssemblyName = assemblyName.Split(',')[0]; - foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) - { - if (assembly.FullName.Split(',')[0] == toAssemblyName) - { - return assembly.GetType(typeName); - } - } - - return Type.GetType(string.Format("{0}, {1}", typeName, assemblyName)); - } - } - } -} diff --git a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs index 009fab9fb2..f016fe9773 100644 --- a/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs +++ b/framework/src/Volo.Abp.Serialization/Volo/Abp/Serialization/DefaultObjectSerializer.cs @@ -1,8 +1,8 @@ using System; +using System.Text.Json; using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; -using Volo.Abp.Serialization.Binary; namespace Volo.Abp.Serialization { @@ -58,12 +58,12 @@ namespace Volo.Abp.Serialization protected virtual byte[] AutoSerialize(T obj) { - return BinarySerializationHelper.Serialize(obj); + return JsonSerializer.SerializeToUtf8Bytes(obj); } protected virtual T AutoDeserialize(byte[] bytes) { - return (T) BinarySerializationHelper.DeserializeExtended(bytes); + return JsonSerializer.Deserialize(bytes); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingDefinitionContext.cs b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingDefinitionContext.cs index 220e40fe59..59d7acda98 100644 --- a/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingDefinitionContext.cs +++ b/framework/src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingDefinitionContext.cs @@ -1,9 +1,13 @@ -namespace Volo.Abp.Settings +using System.Collections.Generic; + +namespace Volo.Abp.Settings { public interface ISettingDefinitionContext { SettingDefinition GetOrNull(string name); + + IReadOnlyList GetAll(); void Add(params SettingDefinition[] definitions); } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj index 41bba98866..7885cefbaf 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj +++ b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj index 66aa7e93ea..7cf2afccb1 100644 --- a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj +++ b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj @@ -18,7 +18,7 @@ - + diff --git a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj index 2ed6955187..32ada2ce09 100644 --- a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj +++ b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj @@ -18,4 +18,4 @@ - \ No newline at end of file + diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 958c5921f3..748524acd2 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/framework/test/AbpTestBase/AbpTestBase.csproj b/framework/test/AbpTestBase/AbpTestBase.csproj index a1b2dcd89b..10e5b5d74a 100644 --- a/framework/test/AbpTestBase/AbpTestBase.csproj +++ b/framework/test/AbpTestBase/AbpTestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 AbpTestBase AbpTestBase diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj index 26595a78a9..cbb90d7379 100644 --- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj +++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 @@ -18,7 +18,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj index 0d170148d4..0a3603d7c0 100644 --- a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 latest Volo.Abp.AspNetCore.Authentication.OAuth.Tests Volo.Abp.AspNetCore.Authentication.OAuth.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj index 9e7bf68457..e5c8f6a398 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.MultiTenancy.Tests Volo.Abp.AspNetCore.MultiTenancy.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index c6450e6df1..200e8e45a4 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Tests Volo.Abp.AspNetCore.Mvc.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs index f2ab8fd3d0..698723a34a 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs @@ -43,8 +43,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. - resultAsString.ShouldBe(DateTimeKind.Local.ToString().ToLower()); + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times + resultAsString.ShouldBe(DateTimeKind.Utc.ToString().ToLower()); } [Fact] @@ -56,8 +57,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. - resultAsString.ShouldBe(DateTimeKind.Local.ToString().ToLower()); + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times + resultAsString.ShouldBe(DateTimeKind.Utc.ToString().ToLower()); } [Fact] @@ -71,9 +73,10 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times resultAsString.ShouldBe( - $"local_{DateTimeKind.ToString().ToLower()}_{DateTimeKind.ToString().ToLower()}_local"); + $"utc_{DateTimeKind.ToString().ToLower()}_{DateTimeKind.ToString().ToLower()}_utc"); } } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj index f1fa33a3b3..f3976e2e1f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index ccbffb47f4..f4f91b2629 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -1,14 +1,14 @@ - + - netcoreapp3.1 + net5.0 true - + 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 539ede118e..7f51b3a9eb 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.2.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^3.3.0-rc.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 c4ed1c0ce8..77ebb00eb7 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj index 92e5e21867..babe8a4650 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Tests Volo.Abp.AspNetCore.Mvc.UI.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index 4c328a670f..606c1a5122 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 true @@ -15,7 +15,7 @@ - + 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 7cb63c1ea1..5282054343 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.2.1", - "@abp/prismjs": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1", + "@abp/prismjs": "^3.3.0-rc.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 1dd15e460d..75478cd6cf 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.2.1.tgz#ffb57db0e73ae7c96df78dc7b739e436c9654ae0" - integrity sha512-iLCMV8JVkvdDzWf83UlkSIuU4Tiz+/wdGjiCt7lQp538fCYO7EAqurfWwMbb1Kaz0CRFzt/+AbDrXw004AND2Q== +"@abp/clipboard@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.1.tgz#60e7e84352064c423831edb91e64abb17e56a878" + integrity sha512-7MoVQ0Vgn5UHfWVElO0NFUv4lJfiFRPgmrOfCQTKCFHwLxFWpOEnCp4aRHP2jWi5EgMP4cuSleDtwNSM4Fuqkw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" clipboard "^2.0.6" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.2.1.tgz#8f8ef367c9a10c3ec871d721055fbed4a8ec867a" - integrity sha512-+wcKmi/F66qGRmTk+oYgYmJo+b9kQvJ+BG/+vIsN+n3Dzb/sjaDmc18pMFhEKWy7P/Yq28NxZdK+qO1LgzTktg== +"@abp/prismjs@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.1.tgz#08e95a36089a9bbccf2cac9c0667e8632b59f565" + integrity sha512-myLGoT0nrLTCtqKdkqub7gv8DOo+Ccc1FjSAUlZgianoAXYKmbqDdlplS9EVE5CU0T2h5fiN0flf7reTqBn9Vg== dependencies: - "@abp/clipboard" "~3.2.1" - "@abp/core" "~3.2.1" + "@abp/clipboard" "~3.3.0-rc.1" + "@abp/core" "~3.3.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj index 0e6ffe1e62..bedbb6a4ec 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj index e519e733de..0296733111 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Versioning.Tests Volo.Abp.AspNetCore.Mvc.Versioning.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj index 77c291f0a0..09f3cf445f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Serilog.Tests Volo.Abp.AspNetCore.Serilog.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj index 3bf5a6badd..4a9e2cc67b 100644 --- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj index 5becdbc672..d04ae3f37b 100644 --- a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Tests Volo.Abp.AspNetCore.Tests true @@ -15,7 +15,7 @@ true - + diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj index 2b74dd0a58..08eb55afb4 100644 --- a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj +++ b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Auditing.Tests Volo.Abp.Auditing.Tests true diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj index 1d3e4b5dfd..8361d8b9ad 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Authorization.Tests Volo.Abp.Authorization.Tests true diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj index 1d3d553047..36d1c41371 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AutoMapper.Tests Volo.Abp.AutoMapper.Tests diff --git a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj index c8d0672d13..98ac012ef4 100644 --- a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj +++ b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Autofac.Tests Volo.Abp.Autofac.Tests true diff --git a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj index ca7f94918d..b7263e31f5 100644 --- a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj +++ b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.BackgroundJobs.Tests Volo.Abp.BackgroundJobs.Tests diff --git a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj index 36ad41e775..f400d8e552 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 @@ -12,7 +12,7 @@ - + diff --git a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj index 2a4910e32c..ef6c0bf0e3 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj index 09a4861297..de4fa933be 100644 --- a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj index 93165fa05a..d388702a02 100644 --- a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj index 388efc88a2..1d148054d5 100644 --- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj @@ -1,7 +1,7 @@ - + - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj index 130f95bb77..cbcbfd9be8 100644 --- a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj index 15f4bc8b9d..69b6fef168 100644 --- a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj +++ b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj index 1213685332..c09ea42c9f 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj +++ b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Caching.Tests Volo.Abp.Caching.Tests diff --git a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj index f16f39a6eb..f89cec35e3 100644 --- a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj index d13f50b93b..7ee53a3424 100644 --- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj index 6be0cb02ab..7e302e93d3 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj index 4402f1e9a8..8132a7c368 100644 --- a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj +++ b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj index c35edc1148..4c4f7b0531 100644 --- a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj +++ b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj index 3422dcbcf6..21bd17719f 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj index 23dd953416..81c6662cdf 100644 --- a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj +++ b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj index e60435ce25..53b43eae64 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true true @@ -15,5 +15,5 @@ - + diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj index 84fcc32477..48a2863bcf 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj index f45812c4a6..31ba019431 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj index d5ea171e35..ed4b35cb0a 100644 --- a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj +++ b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj index 2ee95269ae..1a107db3e1 100644 --- a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj +++ b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj index c0a973f8a5..aa1e5d93dd 100644 --- a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj +++ b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj index 78518bdda3..1a000b7b07 100644 --- a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj +++ b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj index 6b4e1ce4f0..e1e8308e90 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj index d2db584347..245a776adf 100644 --- a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj +++ b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj index 56abd36ebb..4cf02e61c9 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj +++ b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj index 31c7001db5..0296ddf8ef 100644 --- a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj +++ b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj index 372ebd68f4..17d31643e0 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj index 2c14d9fba4..9f91246546 100644 --- a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj +++ b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj index 97758b7880..39cff60ed5 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj index 3d95f00a8b..9bbf07d879 100644 --- a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj index 212eeb7d5b..320f3cd6bb 100644 --- a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj +++ b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj @@ -1,9 +1,9 @@ - + - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj index 23c59ef064..9d9dd5eb30 100644 --- a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj index 41d152d1cb..a64c89ac24 100644 --- a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj +++ b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj index 3efd1d9db7..d6f69ebbfa 100644 --- a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj +++ b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs b/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs index 4c09a3ca93..f99cc9e1f9 100644 --- a/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs +++ b/framework/test/Volo.Abp.Serialization.Tests/Volo/Abp/Serialization/Objects/CarSerializer.cs @@ -1,5 +1,6 @@ -using Volo.Abp.DependencyInjection; -using Volo.Abp.Serialization.Binary; +using System.Text.Json; +using Volo.Abp.DependencyInjection; + namespace Volo.Abp.Serialization.Objects { @@ -8,14 +9,14 @@ namespace Volo.Abp.Serialization.Objects public byte[] Serialize(Car obj) { obj.Name += "-serialized"; - return BinarySerializationHelper.Serialize(obj); + return JsonSerializer.SerializeToUtf8Bytes(obj); } public Car Deserialize(byte[] bytes) { - var car = (Car)BinarySerializationHelper.DeserializeExtended(bytes); + var car = JsonSerializer.Deserialize(bytes); car.Name += "-deserialized"; return car; } } -} \ No newline at end of file +} diff --git a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj index fadf2659d0..8791851953 100644 --- a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj +++ b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj index b44ee82aae..94442135e2 100644 --- a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj +++ b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj index 0ff64ec1d8..6d78929c51 100644 --- a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj +++ b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj index 35d5e3b71a..460b52ddc1 100644 --- a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj +++ b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj index 0895567843..ec9c188503 100644 --- a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj index 2ba5372364..56f9a7bb5c 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj index c6b401eec1..08221039c8 100644 --- a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj +++ b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj index 13f57717d5..a663b56646 100644 --- a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj +++ b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index db6dc9c219..cc51ad5e35 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 true @@ -16,7 +16,7 @@ - + diff --git a/global.json b/global.json index 6156170057..f87af98b74 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "3.1.102", + "version": "5.0.100-rc.2.20479.15", "rollForward": "latestFeature" } -} \ No newline at end of file +} diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj index 73caf3d29f..a15db40e48 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index e46e5fc5c7..fd7f8f2e3c 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + 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 5707bc86a4..84d4e4a7f4 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 @@ -1,11 +1,10 @@ - + - netstandard2.1 - 3.0 + net5.0 Volo.Abp.Account.Blazor diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj index 2e074722b2..51cd8f0e39 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.HttpApi Volo.Abp.Account.HttpApi 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 7ed98c0d78..df6eb0e1ae 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 @@ -76,9 +76,9 @@ namespace Volo.Abp.Account.Web.Pages.Account EnableLocalLogin = await SettingProvider.IsTrueAsync(AccountSettingNames.EnableLocalLogin); - if (context?.ClientId != null) + if (context?.Client?.ClientId != null) { - var client = await ClientStore.FindEnabledClientByIdAsync(context.ClientId); + var client = await ClientStore.FindEnabledClientByIdAsync(context?.Client?.ClientId); if (client != null) { EnableLocalLogin = client.EnableLocalLogin; @@ -108,7 +108,10 @@ namespace Volo.Abp.Account.Web.Pages.Account return Redirect("~/"); } - await Interaction.GrantConsentAsync(context, ConsentResponse.Denied); + await Interaction.GrantConsentAsync(context, new ConsentResponse() + { + Error = AuthorizationError.AccessDenied + }); return Redirect(ReturnUrl); } diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml index b61ad00152..8fb7e918e1 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml @@ -96,8 +96,8 @@ }
- - + + @if (Model.ClientInfo.ClientUrl != null) { @@ -110,4 +110,4 @@ - \ No newline at end of file + diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs index a0f0543765..a1faba16a7 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using IdentityServer4.Models; using IdentityServer4.Services; using IdentityServer4.Stores; +using IdentityServer4.Validation; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.UI; @@ -50,16 +51,16 @@ namespace Volo.Abp.Account.Web.Pages throw new ApplicationException($"No consent request matching request: {ReturnUrl}"); } - var client = await _clientStore.FindEnabledClientByIdAsync(request.ClientId); + var client = await _clientStore.FindEnabledClientByIdAsync(request.Client.ClientId); if (client == null) { - throw new ApplicationException($"Invalid client id: {request.ClientId}"); + throw new ApplicationException($"Invalid client id: {request.Client.ClientId}"); } - var resources = await _resourceStore.FindEnabledResourcesByScopeAsync(request.ScopesRequested); + var resources = await _resourceStore.FindEnabledResourcesByScopeAsync(request.ValidatedResources.RawScopeValues); if (resources == null || (!resources.IdentityResources.Any() && !resources.ApiResources.Any())) { - throw new ApplicationException($"No scopes matching: {request.ScopesRequested.Aggregate((x, y) => x + ", " + y)}"); + throw new ApplicationException($"No scopes matching: {request.ValidatedResources.RawScopeValues.Aggregate((x, y) => x + ", " + y)}"); } ClientInfo = new ClientInfoModel(client); @@ -67,14 +68,26 @@ namespace Volo.Abp.Account.Web.Pages { RememberConsent = true, IdentityScopes = resources.IdentityResources.Select(x => CreateScopeViewModel(x, true)).ToList(), - ApiScopes = resources.ApiResources.SelectMany(x => x.Scopes).Select(x => CreateScopeViewModel(x, true)).ToList() }; + var apiScopes = new List(); + foreach(var parsedScope in request.ValidatedResources.ParsedScopes) + { + var apiScope = request.ValidatedResources.Resources.FindApiScope(parsedScope.ParsedName); + if (apiScope != null) + { + var scopeVm = CreateScopeViewModel(parsedScope, apiScope, true); + apiScopes.Add(scopeVm); + } + } + if (resources.OfflineAccess) { - ConsentInput.ApiScopes.Add(GetOfflineAccessScope(true)); + apiScopes.Add(GetOfflineAccessScope(true)); } + ConsentInput.ApiScopes = apiScopes; + return Page(); } @@ -104,7 +117,10 @@ namespace Volo.Abp.Account.Web.Pages if (ConsentInput.UserDecision == "no") { - grantedConsent = ConsentResponse.Denied; + grantedConsent = new ConsentResponse + { + Error = AuthorizationError.AccessDenied + }; } else { @@ -113,7 +129,7 @@ namespace Volo.Abp.Account.Web.Pages grantedConsent = new ConsentResponse { RememberConsent = ConsentInput.RememberConsent, - ScopesConsented = ConsentInput.GetAllowedScopeNames() + ScopesValuesConsented = ConsentInput.GetAllowedScopeNames() }; } else @@ -151,16 +167,22 @@ namespace Volo.Abp.Account.Web.Pages }; } - protected virtual ConsentModel.ScopeViewModel CreateScopeViewModel(Scope scope, bool check) + protected virtual ConsentModel.ScopeViewModel CreateScopeViewModel(ParsedScopeValue parsedScopeValue, ApiScope apiScope, bool check) { - return new ConsentModel.ScopeViewModel + var displayName = apiScope.DisplayName ?? apiScope.Name; + if (!string.IsNullOrWhiteSpace(parsedScopeValue.ParsedParameter)) + { + displayName += ":" + parsedScopeValue.ParsedParameter; + } + + return new ScopeViewModel { - Name = scope.Name, - DisplayName = scope.DisplayName, - Description = scope.Description, - Emphasize = scope.Emphasize, - Required = scope.Required, - Checked = check || scope.Required + Name = parsedScopeValue.RawValue, + DisplayName = displayName, + Description = apiScope.Description, + Emphasize = apiScope.Emphasize, + Required = apiScope.Required, + Checked = check || apiScope.Required }; } @@ -241,4 +263,4 @@ namespace Volo.Abp.Account.Web.Pages } } } -} \ No newline at end of file +} diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index 4a0f6365d8..ec41402629 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.Web.IdentityServer Volo.Abp.Account.Web.IdentityServer true @@ -38,7 +38,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj index f91ea8eb36..c2053ccaff 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.Web Volo.Abp.Account.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -40,7 +40,7 @@ - + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj index a429a5a5f8..b48d633d96 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj @@ -1,13 +1,13 @@ - netcoreapp3.1 + net5.0 - + diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj index 161e952593..df43919393 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj @@ -7,7 +7,7 @@ netstandard2.0 - + diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj index d94e707ba0..01ef3be28f 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs index 6dc4bfadb8..11ba294610 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs @@ -15,6 +15,7 @@ namespace Volo.Abp.AuditLogging } return queryable + .AsSplitQuery() .Include(x => x.Actions) .Include(x => x.EntityChanges).ThenInclude(ec=>ec.PropertyChanges); } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs index 06dcf8ffed..9ce2bee070 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs @@ -143,7 +143,7 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore public Task GetEntityChange(Guid entityChangeId) { - return DbContext.Set().AsNoTracking().IncludeDetails().Where(x => x.Id == entityChangeId).FirstAsync(); + return DbContext.Set().AsNoTracking().IncludeDetails().OrderBy(x => x.Id).Where(x => x.Id == entityChangeId).FirstAsync(); } public virtual async Task> GetEntityChangeListAsync( diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj index c0793fa357..d98c6f01e2 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -15,7 +15,7 @@ - + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj index 34130bfca5..dda1379793 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj index e62925a488..fc8df70002 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj index ab703cdca3..d60a87ced6 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj index 0dede420f3..c4ea6d9eb4 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj @@ -1,17 +1,17 @@ - + Exe - netcoreapp3.1 + net5.0 - + - + Always diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj index 7bd70093ee..0f5bd720a1 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj @@ -1,8 +1,8 @@ - + Exe - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj index adcf9be1aa..3b84a73bc1 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj @@ -1,8 +1,8 @@ - + Exe - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj index b6be120a3c..e01e0f89b5 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj index 80b4645f85..00ad8439b9 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj @@ -1,12 +1,12 @@ - + Exe - netcoreapp3.1 + net5.0 - + all runtime; build; native; contentfiles; analyzers diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj index 7103c0570e..92d8c471fd 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj index 4c835cbd51..f6c16a3449 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj index 4520936bcd..33d81803df 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -15,7 +15,7 @@ - + diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj index 496f95b373..0f9f0bf566 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj index 46d6ea7b8e..58c82e4e62 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings index cb0b2c919f..b31951b037 100644 --- a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings +++ b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings @@ -1,4 +1,4 @@ - + True WARNING WARNING diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj index 9cfb4523fe..906bb08e7e 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj @@ -1,8 +1,8 @@ - + Exe - netcoreapp3.1 + net5.0 @@ -20,13 +20,13 @@ - + - - + + diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj index ad171263fc..899a964810 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj @@ -1,4 +1,4 @@ - + diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj index 09f19c0cae..c3ac872d18 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj @@ -1,4 +1,4 @@ - + diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj index ac1c336f15..3d12980c79 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj @@ -1,10 +1,10 @@ - + - netstandard2.0 + netstandard2.1 diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj index 2665bb6736..6b1f447f8a 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj @@ -1,4 +1,4 @@ - + diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj index a6ff223c3a..3f5faacea1 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj index 8ffe9cc054..42a2defd23 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj @@ -1,15 +1,15 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database - - - + + + diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj index 48196ab38f..a56030ccc6 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj index bbf0bad776..f4ddf02406 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj index e1c54c4afe..c20efb9ba9 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -16,8 +16,8 @@ - - + + diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj index dc8670d4b7..3e11d85aee 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 InProcess diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index f5b0ee5e5d..44c12f60bd 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.2.1", - "@abp/blogging": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1", + "@abp/blogging": "^3.3.0-rc.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 0bd496f67d..c72a30781d 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.2.1.tgz#edd07431dff8faa69d79b2ecd672c646de27d561" - integrity sha512-4Rt43AvAIvXDRobpji1k+b8Imf2CSpQZf8Haz9K9E+MY4QHre4rrvL8U03kwwwvO5MI/9GXUoBMIdGdxtsrqqQ== +"@abp/blogging@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.0-rc.1.tgz#ff9301a2df1fa92154720df4b06e15a9f73798a8" + integrity sha512-qiOQXN/APxch7xYVmwvqY3Uz0hsXKRAzvzBgdvSCBCxCIWjB3Idlji3T5vXHkWu+eUt8ZiofhhQeVTajdVAX+Q== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - "@abp/owl.carousel" "~3.2.1" - "@abp/prismjs" "~3.2.1" - "@abp/tui-editor" "~3.2.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + "@abp/owl.carousel" "~3.3.0-rc.1" + "@abp/prismjs" "~3.3.0-rc.1" + "@abp/tui-editor" "~3.3.0-rc.1" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.2.1.tgz#ffb57db0e73ae7c96df78dc7b739e436c9654ae0" - integrity sha512-iLCMV8JVkvdDzWf83UlkSIuU4Tiz+/wdGjiCt7lQp538fCYO7EAqurfWwMbb1Kaz0CRFzt/+AbDrXw004AND2Q== +"@abp/clipboard@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.1.tgz#60e7e84352064c423831edb91e64abb17e56a878" + integrity sha512-7MoVQ0Vgn5UHfWVElO0NFUv4lJfiFRPgmrOfCQTKCFHwLxFWpOEnCp4aRHP2jWi5EgMP4cuSleDtwNSM4Fuqkw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" clipboard "^2.0.6" -"@abp/codemirror@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.2.1.tgz#093bf88d74a4ec2111afa84d47f643fee2e210dd" - integrity sha512-4Qe2/kDqlwlIlyrUVzirYkX713qZRG0Sn1pMSnXIb6JxJYFIxrxt8IxGy0o3IsL2xU3H2mnRTXSA0rFbQvVxRQ== +"@abp/codemirror@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.0-rc.1.tgz#b87bf7fd45c80ada335cc3af4bcbb6bac80fe5ed" + integrity sha512-t/9/ogrRN0qqN3pjiYQ4ipbgcuJHZc+5JUOch9jqK7dcW5vTKnDxTdiz0jXLcVIUPCVjbmQetcgtHj1rIDln0Q== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" codemirror "^5.54.0" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.2.1.tgz#3ece76e83ab49fdf12ab0bd33c5b2cdaa93a988e" - integrity sha512-bxQnwXJifZgEqY1kOhBbUBRMih99u661FaKhM9VjZgPPjaASDbH9Af6w2n30zuUUJx+8hu0TvIE35yfnvfEPjw== +"@abp/highlight.js@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.0-rc.1.tgz#08f66a9676e64af00915df686c2817956c45f761" + integrity sha512-kVmRLeKZJ2FSuJyTBB2FkiVqYv1kAXkDn2psHKyUSisc115I+fGDOUKcqkpeQdeLWcMiU4WiWLcH38x+p8GUOg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.2.1.tgz#b62d52302d300ee00726de8e1a328192923855dd" - integrity sha512-62Q67GNkwS5iYoiBTm47esljrIrowTaThJkx0/nQy5PRh+BZlVggyWMyS2O8BfSwAN3iXO5PEWjj7aH1EV2ujg== +"@abp/markdown-it@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.0-rc.1.tgz#2c98054d88f9835ab13c7fadc4a67799ad00b1dd" + integrity sha512-+CpNxXi3heT+9okHMeTgqbPOBX+E8j23C7zf1SnDXQKudOlA8jJJl1KJ/VoQlXPXIj3ks1RTwKV2ByztGkKU6w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" markdown-it "^11.0.0" -"@abp/owl.carousel@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.2.1.tgz#97c1d353873027771f070c5aae31ec029c7b53e3" - integrity sha512-Tu/BlCGNun1sID0lIhT387vyEC7Pbyv6ZXbKjAZjgO+fRz3Je8XZ5gdyQ2Jfgr2/Nqc4uHNpJGZ38E+b4yUE6Q== +"@abp/owl.carousel@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.0-rc.1.tgz#83b34a169642ea9c33fea698953306fc8f05c173" + integrity sha512-SzKkiURZzokEqFL8mA/0xw4Erzj2ui5MsAaX5/q175N9NiWjYnjBxG+ax1/HaOXt/uxV+s/dxLCZJ5luzVl1WQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" owl.carousel "^2.3.4" -"@abp/prismjs@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.2.1.tgz#8f8ef367c9a10c3ec871d721055fbed4a8ec867a" - integrity sha512-+wcKmi/F66qGRmTk+oYgYmJo+b9kQvJ+BG/+vIsN+n3Dzb/sjaDmc18pMFhEKWy7P/Yq28NxZdK+qO1LgzTktg== +"@abp/prismjs@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.1.tgz#08e95a36089a9bbccf2cac9c0667e8632b59f565" + integrity sha512-myLGoT0nrLTCtqKdkqub7gv8DOo+Ccc1FjSAUlZgianoAXYKmbqDdlplS9EVE5CU0T2h5fiN0flf7reTqBn9Vg== dependencies: - "@abp/clipboard" "~3.2.1" - "@abp/core" "~3.2.1" + "@abp/clipboard" "~3.3.0-rc.1" + "@abp/core" "~3.3.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/tui-editor@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.2.1.tgz#4cda3bb6a6dfd6413cd5a3520d98c923f54b4b4b" - integrity sha512-KvWc5ZkXGNAPb6ek0Y91/89BD9AfDQ/lBPB3aYydRe1A2NSMgpRQ4DXsCYaQmmsyAv5aAKJAmsqN89V7v8NoUQ== +"@abp/tui-editor@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.0-rc.1.tgz#ea221a6e87f5472c0d3d12e948420c6d4eb66ea2" + integrity sha512-BkD+ce0j3KkKjSzeOrHK+mu3yym/jvhccF4n2TPSx4+HyF4IENwiWR4KNMM4GxRNssSdTUj/2h9yKxPJm2NHcA== dependencies: - "@abp/codemirror" "~3.2.1" - "@abp/highlight.js" "~3.2.1" - "@abp/jquery" "~3.2.1" - "@abp/markdown-it" "~3.2.1" + "@abp/codemirror" "~3.3.0-rc.1" + "@abp/highlight.js" "~3.3.0-rc.1" + "@abp/jquery" "~3.3.0-rc.1" + "@abp/markdown-it" "~3.3.0-rc.1" tui-editor "^1.4.10" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj index e9435610df..6cef29cffb 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.Admin.HttpApi Volo.Blogging.Admin.HttpApi diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj index 7cd2f34b64..d56298d39d 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.Admin.Web Volo.Blogging.Admin.Web 2.8 @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj index 99ee5c8dac..83ba117670 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj index e74e255466..b8808cd8c9 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + netstandard2.1 Volo.Blogging.EntityFrameworkCore Volo.Blogging.EntityFrameworkCore diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj index 94181bf3fe..636faa7238 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.HttpApi Volo.Blogging.HttpApi diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index 1c1a74c510..20341c2df5 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -1,10 +1,10 @@ - + - netcoreapp3.1 + net5.0 Volo.Blogging.Web Volo.Blogging.Web 2.8 @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj index 6776e49a9c..84b74c8765 100644 --- a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj index 776aaf3657..c7fe644a59 100644 --- a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj index 01d894de88..87c20fdc04 100644 --- a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 @@ -10,7 +10,7 @@ - + diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj index 8eaa145ee7..1301bbf1bd 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj index eae856530d..51f3e258b2 100644 --- a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj +++ b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj index 1173121c3c..cc27807686 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index ca54119683..3bdc67f5b4 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.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.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 9f74aafa41..ee05b4fef3 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj index 217b57addf..d16564c12e 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj +++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.ClientSimulation.Web Volo.ClientSimulation.Web Library diff --git a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj index 3876e7deb5..432cb2adb3 100644 --- a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj +++ b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.ClientSimulation Volo.ClientSimulation diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index b10b355025..295d02b8ed 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.2.1", - "@abp/ng.identity": "~3.2.1", - "@abp/ng.setting-management": "~3.2.1", - "@abp/ng.tenant-management": "~3.2.1", - "@abp/ng.theme.basic": "~3.2.1", + "@abp/ng.account": "~3.3.0-rc.1", + "@abp/ng.identity": "~3.3.0-rc.1", + "@abp/ng.setting-management": "~3.3.0-rc.1", + "@abp/ng.tenant-management": "~3.3.0-rc.1", + "@abp/ng.theme.basic": "~3.3.0-rc.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 28c2183e6f..783b86c93b 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.2.1", - "@abp/ng.theme.shared": ">=3.2.1" + "@abp/ng.core": ">=3.3.0-rc.1", + "@abp/ng.theme.shared": ">=3.3.0-rc.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj index e5b49c299b..a81b088c54 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -14,17 +14,18 @@ - - - - - - - - - - - + + + + + + + + + + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs index c245c663f8..da6f57f337 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs @@ -142,7 +142,7 @@ namespace Volo.CmsKit.IdentityServer string postLogoutRedirectUri = null, IEnumerable permissions = null) { - var client = await _clientRepository.FindByCliendIdAsync(name); + var client = await _clientRepository.FindByClientIdAsync(name); if (client == null) { client = await _clientRepository.InsertAsync( diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj index 7c87d00539..c62935e032 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -11,33 +11,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 3c54abaaa7..1e03efad38 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.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.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 b8e6718657..ec897ce443 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj index 2270be5006..bb7592e7b4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -13,22 +13,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + 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 64a770f40e..c035a75924 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.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.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 fb3a5a17a8..88b0ed6069 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== 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.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@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== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj index 20eabb80a5..c7a507d2b5 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -13,25 +13,27 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + 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 64a770f40e..c035a75924 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.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js index 50937333b9..9b5206bcc6 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.3.1 * https://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2018-01-20T17:24Z */ ( function( global, factory ) { @@ -47,16 +47,13 @@ var arr = []; +var document = window.document; + var getProto = Object.getPrototypeOf; var slice = arr.slice; -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - +var concat = arr.concat; var push = arr.push; @@ -89,40 +86,25 @@ var isWindow = function isWindow( obj ) { }; -var document = window.document; - var preservedScriptAttributes = { type: true, src: true, - nonce: true, noModule: true }; - function DOMEval( code, node, doc ) { + function DOMEval( code, doc, node ) { doc = doc || document; - var i, val, + var i, script = doc.createElement( "script" ); script.text = code; if ( node ) { for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); + if ( node[ i ] ) { + script[ i ] = node[ i ]; } } } @@ -147,7 +129,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.3.1", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -155,7 +137,11 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }; + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; jQuery.fn = jQuery.prototype = { @@ -221,18 +207,6 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -284,28 +258,25 @@ jQuery.extend = jQuery.fn.extend = function() { // Extend the base object for ( name in options ) { + src = target[ name ]; copy = options[ name ]; - // Prevent Object.prototype pollution // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { + if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject( copy ) || ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + } else { - clone = src; + clone = src && jQuery.isPlainObject( src ) ? src : {}; } - copyIsArray = false; // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); @@ -358,6 +329,9 @@ jQuery.extend( { }, isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 var name; for ( name in obj ) { @@ -366,10 +340,9 @@ jQuery.extend( { return true; }, - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); }, each: function( obj, callback ) { @@ -393,6 +366,13 @@ jQuery.extend( { return obj; }, + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -479,7 +459,7 @@ jQuery.extend( { } // Flatten any nested arrays - return flat( ret ); + return concat.apply( [], ret ); }, // A global GUID counter for objects @@ -496,7 +476,7 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { +function( i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); @@ -518,16 +498,17 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.3 * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license - * https://js.foundation/ + * http://jquery.org/license * - * Date: 2020-03-14 + * Date: 2016-08-08 */ -( function( window ) { +(function( window ) { + var i, support, Expr, @@ -558,7 +539,6 @@ var i, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), - nonnativeSelectorCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; @@ -567,71 +547,61 @@ var i, }, // Instance methods - hasOwn = ( {} ).hasOwnProperty, + hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, - pushNative = arr.push, + push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { + if ( list[i] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), @@ -642,19 +612,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, - rhtml = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, @@ -667,21 +634,18 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : high < 0 ? + // BMP codepoint String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -697,8 +661,7 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -713,9 +676,9 @@ var i, setDocument(); }, - inDisabledFieldset = addCombinator( + disabledAncestor = addCombinator( function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + return elem.disabled === true && ("form" in elem || "label" in elem); }, { dir: "parentNode", next: "legend" } ); @@ -723,20 +686,18 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), + (arr = slice.call( preferredDoc.childNodes )), preferredDoc.childNodes ); - // Support: Android<4.0 // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - pushNative.apply( target, slice.call( els ) ); + push_native.apply( target, slice.call(els) ); } : // Support: IE<9 @@ -744,9 +705,8 @@ try { function( target, els ) { var j = target.length, i = 0; - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} + while ( (target[j++] = els[i++]) ) {} target.length = j - 1; } }; @@ -770,21 +730,24 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - setDocument( context ); + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // ID selector - if ( ( m = match[ 1 ] ) ) { + if ( (m = match[1]) ) { // Document context if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { + if ( (elem = context.getElementById( m )) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -803,7 +766,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && + if ( newContext && (elem = newContext.getElementById( m )) && contains( context, elem ) && elem.id === m ) { @@ -813,12 +776,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[ 2 ] ) { + } else if ( match[2] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -828,62 +791,50 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); + groups[i] = "#" + nid + " " + toSelector( groups[i] ); } newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; } - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } } } } @@ -904,14 +855,12 @@ function createCache() { var keys = []; function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries delete cache[ keys.shift() ]; } - return ( cache[ key + " " ] = value ); + return (cache[ key + " " ] = value); } return cache; } @@ -930,19 +879,17 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement( "fieldset" ); + var el = document.createElement("fieldset"); try { return !!fn( el ); - } catch ( e ) { + } catch (e) { return false; } finally { - // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } - // release memory in IE el = null; } @@ -954,11 +901,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), + var arr = attrs.split("|"), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; + Expr.attrHandle[ arr[i] ] = handler; } } @@ -980,7 +927,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { + while ( (cur = cur.nextSibling) ) { if ( cur === b ) { return -1; } @@ -1008,7 +955,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; + return (name === "input" || name === "button") && elem.type === type; }; } @@ -1051,7 +998,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + disabledAncestor( elem ) === disabled; } return elem.disabled === disabled; @@ -1073,21 +1020,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { + return markFunction(function( argument ) { argument = +argument; - return markFunction( function( seed, matches ) { + return markFunction(function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); } } - } ); - } ); + }); + }); } /** @@ -1108,13 +1055,10 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; }; /** @@ -1127,11 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1140,14 +1080,10 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9 - 11+, Edge 12 - 18+ + // Support: IE 9-11, Edge // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1159,36 +1095,25 @@ setDocument = Sizzle.setDocument = function( node ) { } } - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert( function( el ) { + support.attributes = assert(function( el ) { el.className = "i"; - return !el.getAttribute( "className" ); - } ); + return !el.getAttribute("className"); + }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1197,38 +1122,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { + support.getById = assert(function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); + }); // ID filter and find if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute( "id" ) === attrId; + return elem.getAttribute("id") === attrId; }; }; - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); + elem.getAttributeNode("id"); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1236,7 +1161,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode( "id" ); + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -1244,8 +1169,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -1258,7 +1183,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? + Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1273,13 +1198,12 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1291,7 +1215,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1312,14 +1236,10 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { // Build QSA regex // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - + assert(function( el ) { // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1333,98 +1253,78 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + if ( el.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { + if ( !el.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); + rbuggyQSA.push("~="); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); + rbuggyQSA.push(".#.+[+~]"); } + }); - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { + assert(function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); + var input = document.createElement("input"); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { + if ( el.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + if ( el.querySelectorAll(":enabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + if ( el.querySelectorAll(":disabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } - // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); } - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { + docElem.msMatchesSelector) )) ) { + assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1433,11 +1333,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - } ); + }); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); /* Contains ---------------------------------------------------------------------- */ @@ -1454,11 +1354,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); + )); } : function( a, b ) { if ( b ) { - while ( ( b = b.parentNode ) ) { + while ( (b = b.parentNode) ) { if ( b === a ) { return true; } @@ -1487,11 +1387,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1499,24 +1395,13 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } @@ -1529,7 +1414,6 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { - // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1545,14 +1429,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ + return a === document ? -1 : + b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? @@ -1566,32 +1444,26 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { ap.unshift( cur ); } cur = b; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { + while ( ap[i] === bp[i] ) { i++; } return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : + siblingCheck( ap[i], bp[i] ) : // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : 0; }; @@ -1603,10 +1475,16 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && + !compilerCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { @@ -1615,46 +1493,32 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } + } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { + if ( ( context.ownerDocument || context ) !== document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { + if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1664,13 +1528,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); + return (sel + "").replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1693,7 +1557,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1721,21 +1585,17 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - + while ( (node = elem[i++]) ) { // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { - // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1744,7 +1604,6 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } - // Do not include comment or processing instruction nodes return ret; @@ -1772,21 +1631,19 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + match[1] = match[1].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1797,25 +1654,22 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + match[1] = match[1].toLowerCase(); + if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + if ( !match[3] ) { + Sizzle.error( match[0] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); } return match; @@ -1823,28 +1677,26 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[ 6 ] && match[ 2 ]; + unquoted = !match[6] && match[2]; - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - + (excess = tokenize( unquoted, true )) && // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1857,9 +1709,7 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { - return true; - } : + function() { return true; } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1869,16 +1719,10 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); }, "ATTR": function( name, operator, check ) { @@ -1894,8 +1738,6 @@ Expr = Sizzle.selectors = { result += ""; - /* eslint-disable max-len */ - return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1904,12 +1746,10 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; - /* eslint-enable max-len */ - }; }, - "CHILD": function( type, what, _argument, first, last ) { + "CHILD": function( type, what, argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1921,7 +1761,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, _context, xml ) { + function( elem, context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1935,7 +1775,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( ( node = node[ dir ] ) ) { + while ( (node = node[ dir ]) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1943,7 +1783,6 @@ Expr = Sizzle.selectors = { return false; } } - // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1959,22 +1798,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( ( node = ++nodeIndex && node && node[ dir ] || + while ( (node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + (diff = nodeIndex = 0) || start.pop()) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1984,18 +1823,16 @@ Expr = Sizzle.selectors = { } } else { - // Use previously-cached element index if available if ( useCache ) { - // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -2005,10 +1842,9 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -2017,13 +1853,12 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -2044,7 +1879,6 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -2064,15 +1898,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { + markFunction(function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); } - } ) : + }) : function( elem ) { return fn( elem, 0, args ); }; @@ -2083,10 +1917,8 @@ Expr = Sizzle.selectors = { }, pseudos: { - // Potentially complex pseudos - "not": markFunction( function( selector ) { - + "not": markFunction(function( selector ) { // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -2095,40 +1927,39 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { + markFunction(function( seed, matches, context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); } } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; + }) : + function( elem, context, xml ) { + input[0] = elem; matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[ 0 ] = null; + input[0] = null; return !results.pop(); }; - } ), + }), - "has": markFunction( function( selector ) { + "has": markFunction(function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - } ), + }), - "contains": markFunction( function( text ) { + "contains": markFunction(function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; - } ), + }), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -2138,26 +1969,25 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { + if ( !ridentifier.test(lang || "") ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( ( elemLang = documentIsHTML ? + if ( (elemLang = documentIsHTML ? elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); return false; }; - } ), + }), // Miscellaneous "target": function( elem ) { @@ -2170,9 +2000,7 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, // Boolean properties @@ -2180,20 +2008,16 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); }, "selected": function( elem ) { - // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2202,7 +2026,6 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2216,7 +2039,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); + return !Expr.pseudos["empty"]( elem ); }, // Element/input types @@ -2240,62 +2063,57 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo( function() { + "first": createPositionalPseudo(function() { return [ 0 ]; - } ), + }), - "last": createPositionalPseudo( function( _matchIndexes, length ) { + "last": createPositionalPseudo(function( matchIndexes, length ) { return [ length - 1 ]; - } ), + }), - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - } ), + }), - "even": createPositionalPseudo( function( matchIndexes, length ) { + "even": createPositionalPseudo(function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "odd": createPositionalPseudo( function( matchIndexes, length ) { + "odd": createPositionalPseudo(function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; for ( ; --i >= 0; ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - } ) + }) } }; -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; +Expr.pseudos["nth"] = Expr.pseudos["eq"]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2326,39 +2144,37 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( !matched || (match = rcomma.exec( soFar )) ) { if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; + soFar = soFar.slice( match[0].length ) || soFar; } - groups.push( ( tokens = [] ) ); + groups.push( (tokens = []) ); } matched = false; // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { + if ( (match = rcombinators.exec( soFar )) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); + type: match[0].replace( rtrim, " " ) + }); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, type: type, matches: match - } ); + }); soFar = soFar.slice( matched.length ); } } @@ -2375,7 +2191,6 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : - // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2385,7 +2200,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[ i ].value; + selector += tokens[i].value; } return selector; } @@ -2398,10 +2213,9 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? - // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2416,7 +2230,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2424,29 +2238,27 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + outerCache = elem[ expando ] || (elem[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && + } else if ( (oldCache = uniqueCache[ key ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); + return (newCache[ 2 ] = oldCache[ 2 ]); } else { - // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { return true; } } @@ -2462,20 +2274,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { + if ( !matchers[i]( elem, context, xml ) ) { return false; } } return true; } : - matchers[ 0 ]; + matchers[0]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); + Sizzle( selector, contexts[i], results ); } return results; } @@ -2488,7 +2300,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { + if ( (elem = unmatched[i]) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2508,18 +2320,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction( function( seed, results, context, xml ) { + return markFunction(function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2527,7 +2335,6 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2551,8 +2358,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); } } } @@ -2560,27 +2367,25 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - + if ( (elem = matcherOut[i]) ) { // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); + temp.push( (matcherIn[i] = elem) ); } } - postFinder( null, ( matcherOut = [] ), temp, xml ); + postFinder( null, (matcherOut = []), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - seed[ temp ] = !( results[ temp ] = elem ); + seed[temp] = !(results[temp] = elem); } } } @@ -2598,14 +2403,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - } ); + }); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2617,43 +2422,38 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? + (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { + if ( Expr.relative[ tokens[j].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), j < len && toSelector( tokens ) ); } @@ -2674,40 +2474,28 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), len = elems.length; if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; + outermostContext = context === document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { if ( byElement && elem ) { j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { + if ( !context && elem.ownerDocument !== document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { results.push( elem ); break; } @@ -2719,9 +2507,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { + if ( (elem = !matcher && elem) ) { matchedCount--; } @@ -2745,17 +2532,16 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { + while ( (matcher = setMatchers[j++]) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); } } } @@ -2796,14 +2582,13 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); + cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2812,10 +2597,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; @@ -2835,7 +2617,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + match = !seed && tokenize( (selector = compiled.selector || selector) ); results = results || []; @@ -2844,12 +2626,11 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; @@ -2862,22 +2643,20 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[ i ]; + token = tokens[i]; // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { + if ( Expr.relative[ (type = token.type) ] ) { break; } - if ( ( find = Expr.find[ type ] ) ) { - + if ( (find = Expr.find[ type ]) ) { // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2908,7 +2687,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2919,59 +2698,58 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - +support.sortDetached = assert(function( el ) { // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { +if ( !assert(function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { + return el.firstChild.getAttribute("href") === "#" ; +}) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - } ); + }); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { +if ( !support.attributes || !assert(function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { +}) ) { + addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - } ); + }); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode( name )) && val.specified ? val.value : - null; + null; } - } ); + }); } return Sizzle; -} )( window ); +})( window ); @@ -3340,7 +3118,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, _i, until ) { + parentsUntil: function( elem, i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3355,10 +3133,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, _i, until ) { + nextUntil: function( elem, i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, _i, until ) { + prevUntil: function( elem, i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3368,24 +3146,18 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } - return elem.contentDocument; - } + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); + return jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { @@ -3717,7 +3489,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { + jQuery.each( tuples, function( i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -4170,7 +3942,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, _key, value ) { + fn = function( elem, key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -4205,7 +3977,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { +function fcamelCase( all, letter ) { return letter.toUpperCase(); } @@ -4694,26 +4466,6 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } var isHiddenWithinTree = function( elem, el ) { // isHiddenWithinTree might be called from jQuery#filter function; @@ -4728,11 +4480,32 @@ var isHiddenWithinTree = function( elem, el ) { // Support: Firefox <=43 - 45 // Disconnected elements can have computed display: none, so first confirm that elem is // in the document. - isAttached( elem ) && + jQuery.contains( elem.ownerDocument, elem ) && jQuery.css( elem, "display" ) === "none"; }; +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + function adjustCSS( elem, prop, valueParts, tween ) { @@ -4749,8 +4522,7 @@ function adjustCSS( elem, prop, valueParts, tween ) { unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { @@ -4897,47 +4669,18 @@ jQuery.fn.extend( { } ); var rcheckableType = ( /^(?:checkbox|radio)$/i ); -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - // We have to close these tags to support XHTML (#13200) var wrapMap = { + // Support: IE <=9 only + option: [ 1, "" ], + // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. @@ -4949,14 +4692,12 @@ var wrapMap = { _default: [ 0, "", "" ] }; +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - function getAll( context, tag ) { @@ -5000,7 +4741,7 @@ function setGlobalEval( elems, refElements ) { var rhtml = /<|&#?\w+;/; function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, + var elem, tmp, tag, wrap, contains, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, @@ -5064,13 +4805,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) { continue; } - attached = isAttached( elem ); + contains = jQuery.contains( elem.ownerDocument, elem ); // Append to fragment tmp = getAll( fragment.appendChild( elem ), "script" ); // Preserve script evaluation history - if ( attached ) { + if ( contains ) { setGlobalEval( tmp ); } @@ -5089,6 +4830,34 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, @@ -5102,19 +4871,8 @@ function returnFalse() { return false; } -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - // Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 +// See #13393 for more info function safeActiveElement() { try { return document.activeElement; @@ -5197,8 +4955,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { return; } @@ -5222,7 +4980,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); + events = elemData.events = {}; } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5380,15 +5138,12 @@ jQuery.event = { dispatch: function( nativeEvent ) { + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5417,10 +5172,9 @@ jQuery.event = { while ( ( handleObj = matched.handlers[ j++ ] ) && !event.isImmediatePropagationStopped() ) { - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { event.handleObj = handleObj; event.data = handleObj.data; @@ -5544,51 +5298,39 @@ jQuery.event = { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, - click: { + focus: { - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; } - - // Return false to allow normal processing in the caller - return false; }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; } + }, + delegateType: "focusout" + }, + click: { - // Return non-false to allow normal event-path propagation - return true; + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } }, - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack + // For cross-browser consistency, don't fire native .click() on links _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); + return nodeName( event.target, "a" ); } }, @@ -5605,93 +5347,6 @@ jQuery.event = { } }; -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - jQuery.removeEvent = function( elem, type, handle ) { // This "if" is needed for plain objects @@ -5804,7 +5459,6 @@ jQuery.each( { shiftKey: true, view: true, "char": true, - code: true, charCode: true, key: true, keyCode: true, @@ -5851,33 +5505,6 @@ jQuery.each( { } }, jQuery.event.addProp ); -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - // Create mouseenter/leave events using mouseover/out and event-time checks // so that event delegation works in jQuery. // Do the same for pointerenter/pointerleave and pointerover/pointerout @@ -5963,6 +5590,13 @@ jQuery.fn.extend( { var + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5999,7 +5633,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -6007,11 +5641,13 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); events = pdataOld.events; if ( events ) { - dataPriv.remove( dest, "handle events" ); + delete pdataCur.handle; + pdataCur.events = {}; for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -6047,7 +5683,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = flat( args ); + args = concat.apply( [], args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -6119,13 +5755,11 @@ function domManip( collection, args, callback, ignored ) { if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); } } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); } } } @@ -6147,7 +5781,7 @@ function remove( elem, selector, keepData ) { } if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { setGlobalEval( getAll( node, "script" ) ); } node.parentNode.removeChild( node ); @@ -6159,13 +5793,13 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html; + return html.replace( rxhtmlTag, "<$1>" ); }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), - inPage = isAttached( elem ); + inPage = jQuery.contains( elem.ownerDocument, elem ); // Fix IE cloning issues if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && @@ -6421,27 +6055,6 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6482,10 +6095,8 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // Support: IE 9 only // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; documentElement.removeChild( container ); @@ -6499,7 +6110,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, + reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6534,35 +6145,6 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; } } ); } )(); @@ -6585,7 +6167,7 @@ function curCSS( elem, name, computed ) { if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; - if ( ret === "" && !isAttached( elem ) ) { + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } @@ -6641,13 +6223,30 @@ function addGetHookIf( conditionFn, hookFn ) { } -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; -// Return a vendor-prefixed property or undefined +// Return a css property mapped to a potentially vendor prefixed property function vendorPropName( name ) { + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + // Check for vendor prefixed names var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), i = cssPrefixes.length; @@ -6660,34 +6259,17 @@ function vendorPropName( name ) { } } -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; + return ret; } - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { +function setPositiveNumber( elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6758,10 +6340,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed delta - extra - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; + ) ); } return delta; @@ -6771,16 +6350,9 @@ function getWidthOrHeight( elem, dimension, extra ) { // Start with computed style var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; // Support: Firefox <=54 // Return a confounding non-pixel value or feign ignorance, as appropriate. @@ -6791,38 +6363,22 @@ function getWidthOrHeight( elem, dimension, extra ) { val = "auto"; } + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { - // Make sure the element is visible & connected - elem.getClientRects().length ) { + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; } // Normalize "" and auto @@ -6868,13 +6424,6 @@ jQuery.extend( { "flexGrow": true, "flexShrink": true, "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, "lineHeight": true, "opacity": true, "order": true, @@ -6930,9 +6479,7 @@ jQuery.extend( { } // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { + if ( type === "number" ) { value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } @@ -7006,7 +6553,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( _i, dimension ) { +jQuery.each( [ "height", "width" ], function( i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -7032,29 +6579,18 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { set: function( elem, value, extra ) { var matches, styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); // Account for unreliable border-box dimensions by comparing offset* to computed and // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { + if ( isBorderBox && support.scrollboxSize() === styles.position ) { subtract -= Math.ceil( elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - parseFloat( styles[ dimension ] ) - @@ -7222,9 +6758,9 @@ Tween.propHooks = { // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; @@ -7779,7 +7315,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue ) { + if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } @@ -7862,7 +7398,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -8083,7 +7619,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -8707,9 +8243,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8820,10 +8354,7 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8832,7 +8363,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8848,7 +8379,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = { guid: Date.now() }; +var nonce = Date.now(); var rquery = ( /\?/ ); @@ -8936,10 +8467,6 @@ jQuery.param = function( a, traditional ) { encodeURIComponent( value == null ? "" : value ); }; - if ( a == null ) { - return ""; - } - // If an array was passed in, assume that it is an array of form elements. if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { @@ -8980,7 +8507,7 @@ jQuery.fn.extend( { rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) - .map( function( _i, elem ) { + .map( function( i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9442,14 +8969,12 @@ jQuery.extend( { if ( !responseHeaders ) { responseHeaders = {}; while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; } } - match = responseHeaders[ key.toLowerCase() + " " ]; + match = responseHeaders[ key.toLowerCase() ]; } - return match == null ? null : match.join( ", " ); + return match == null ? null : match; }, // Raw string @@ -9593,8 +9118,7 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9727,11 +9251,6 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9822,7 +9341,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( _i, method ) { +jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -9843,17 +9362,8 @@ jQuery.each( [ "get", "post" ], function( _i, method ) { }; } ); -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - -jQuery._evalUrl = function( url, options, doc ) { +jQuery._evalUrl = function( url ) { return jQuery.ajax( { url: url, @@ -9863,16 +9373,7 @@ jQuery._evalUrl = function( url, options, doc ) { cache: true, async: false, global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } + "throws": true } ); }; @@ -10155,21 +9656,24 @@ jQuery.ajaxPrefilter( "script", function( s ) { // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { var script, callback; return { send: function( _, complete ) { - script = jQuery( "