diff --git a/Directory.Packages.props b/Directory.Packages.props index 778c511..f014056 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,12 +1,12 @@ - 10.0.0 - 5.0.0 - 2.1.4 - 1.5.1 - 10.0.0 - 10.0.0 - 10.0.0 + 10.3.0 + 5.3.0 + 2.2.7 + 1.6.1 + 10.0.7 + 10.0.7 + 10.0.7 true @@ -134,30 +134,30 @@ - + - - - - - + + + + + - - - - - - + + + + + + - - + + @@ -165,7 +165,7 @@ - + diff --git a/README.BlazorServer.md b/README.BlazorServer.md index c0449d7..24a3a78 100644 --- a/README.BlazorServer.md +++ b/README.BlazorServer.md @@ -1,70 +1,106 @@ -The first step is to use ABP CLI to create a new project. +## ABP Blazor Server - AntDesign Theme -`abp new BookStore -u blazor-server -t app` +Use this guide for an ABP `blazor-server` application. The matching working sample is `samples/WebAppBlazorServer`. -> See the [ABP official documentation](https://docs.abp.io) to learn [ABP framework](https://github.com/abpframework/abp). +![Advanced theme settings panel](img/theme-settings-panel.png) -**Replace LeptonXLiteTheme with AntBlazorTheme packages** - -* Replace `Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme` with `Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme` -* Replace `Volo.Abp.Identity.Blazor.Server` with `Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.SettingManagement.Blazor.Server` with `Lsw.Abp.SettingManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.TenantManagement.Blazor.Server` with `Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.FeatureManagement.Blazor.Server` with `Lsw.Abp.FeatureManagement.Blazor.Server.AntDesignUI` +## 1. Create The App +```bash +abp new BookStore -u blazor-server -t app ``` -**Open `_Imports.razor` and add with the following:** +The paths below use the generated `BookStore` solution layout. -```csharp -@using AntDesign -@using Lsw.Abp.AntDesignUI -@using Lsw.Abp.AntDesignUI.Components -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling -``` +## 2. Add References + +Add these references to `src/BookStore.Blazor/BookStore.Blazor.csproj`: -**Open `BookStoreBlazorModule` make the following changes:** +- `Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme` +- `Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.SettingManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.FeatureManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.AntDesignThemeManagement.Blazor.Server` -* Remove the `ConfigureBlazorise` method -* Fix wrong using namespace -* Update module dependencies - * For example, replace `AbpIdentityBlazorServerModule` with `AbpIdentityBlazorServerAntDesignModule` +Use `ProjectReference` inside this repository, or the same package names when consuming NuGet packages. -**Open `BookStoreMenuContributor` to update icon:** +Remove the old Blazorise-based Blazor packages from `BookStore.Blazor.csproj` if they exist: -* `"fas fa-home"` to `IconType.Outline.Home` -* `"fa fa-cog"` to `IconType.Outline.Setting` +- `Blazorise.Bootstrap5` +- `Blazorise.Icons.FontAwesome` +- `Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme` +- `Volo.Abp.Identity.Blazor.Server` +- `Volo.Abp.TenantManagement.Blazor.Server` +- `Volo.Abp.SettingManagement.Blazor.Server` +- `Volo.Abp.FeatureManagement.Blazor.Server` -**Remove all Blazorise packages.** +Do not remove `Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite` unless you also replace the MVC/account-page theme. -**Replace `BlazorLeptonXLiteThemeBundles` with `BlazorAntDesignThemeBundles`** +## 3. Update `BookStoreBlazorModule` -**Open `Index.razor` and replace with the following:** +Open `src/BookStore.Blazor/BookStoreBlazorModule.cs`. + +In the existing `[DependsOn]`, replace the generated Blazor UI module entries with these AntDesign entries: + +```csharp +typeof(AbpIdentityBlazorServerAntDesignModule), +typeof(AbpTenantManagementBlazorServerAntDesignModule), +typeof(AbpAspNetCoreComponentsServerAntDesignThemeModule), +typeof(AbpFeatureManagementBlazorServerAntDesignModule), +typeof(AbpAntDesignThemeManagementBlazorServerModule), +typeof(AbpSettingManagementBlazorServerAntDesignModule) +``` + +Configure the AntDesign bundle, router, and theme management API: ```csharp -@page "/" -@inherits BookStoreComponentBase +private void ConfigureBundles() +{ + Configure(options => + { + options.StyleBundles.Configure( + BlazorAntDesignThemeBundles.Styles.Global, + bundle => { bundle.AddFiles("/global-styles.css"); } + ); + }); +} + +private void ConfigureRouter(ServiceConfigurationContext context) +{ + Configure(options => + { + options.AppAssembly = typeof(BookStoreBlazorModule).Assembly; + }); +} + +private void ConfigureAutoApiControllers() +{ + Configure(options => + { + options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); + }); +} +``` - +Call these methods from `ConfigureServices`. Remove the old Blazorise provider setup if it exists. -
-
- - +## 4. Update Razor Files - +Add these imports to `src/BookStore.Blazor/_Imports.razor`: -
-
+```razor +@using AntDesign +@using Lsw.Abp.AntDesignUI +@using Lsw.Abp.AntDesignUI.Components +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling ``` -**Open `Routes.razor` and replace with the following:** +Use the AntDesign layout in `src/BookStore.Blazor/Components/Routes.razor`: -```csharp +```razor @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme @using Microsoft.Extensions.Options @@ -81,8 +117,34 @@ The first step is to use ABP CLI to create a new project. ``` -Run the `dotnet build` & `abp bundle` command in the `BookStore.Blazor` folder. +Use the AntDesign bundles in `src/BookStore.Blazor/Components/App.razor`: + +```razor +@using Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme.Bundling + + + + + + +``` + +## 5. Build And Run + +From the solution root: + +```bash +dotnet build +``` + +To run this repository sample: + +```bash +cd samples/WebAppBlazorServer +dotnet run --project .\src\BookStore.DbMigrator\ +dotnet run --project .\src\BookStore.Blazor\ +``` -That's all, enjoy your code :). +Open `https://localhost:44322`. -![3](img/3.png) \ No newline at end of file +Log in with `admin` / `1q2w3E*`, then verify that the AntDesign layout and right-side theme settings panel are visible. diff --git a/README.BlazorWebAssembly.md b/README.BlazorWebAssembly.md index 3b63d66..576145a 100644 --- a/README.BlazorWebAssembly.md +++ b/README.BlazorWebAssembly.md @@ -1,70 +1,131 @@ -The first step is to use ABP CLI to create a new project. +## ABP Blazor WebAssembly - AntDesign Theme -`abp new BookStore -u blazor -t app` +Use this guide for an ABP `blazor` WebAssembly application. The matching working sample is `samples/WebAppBlazorWebAssembly`. -> See the [ABP official documentation](https://docs.abp.io) to learn [ABP framework](https://github.com/abpframework/abp). +![Advanced theme settings panel](img/theme-settings-panel.png) -**Replace LeptonXLiteTheme with AntBlazorTheme packages** +## 1. Create The App -* Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme` -* Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme.Bundling` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling` -* Replace `Volo.Abp.Identity.Blazor.WebAssembly` with `Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.SettingManagement.Blazor.WebAssembly` with `Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.TenantManagement.Blazor.WebAssembly` with `Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.FeatureManagement.Blazor.WebAssembly` with `Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI` +```bash +abp new BookStore -u blazor -t app +``` + +The paths below use the generated `BookStore` solution layout. + +## 2. Add References + +Add these references to `src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj`: + +- `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme` +- `Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly` + +Add this reference to `src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj`: + +- `Lsw.Abp.AntDesignThemeManagement.Application` + +Add this reference to `src/BookStore.Blazor/BookStore.Blazor.csproj`: + +- `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling` + +Use `ProjectReference` inside this repository, or the same package names when consuming NuGet packages. + +Remove the old Blazorise-based Blazor packages from the same projects if they exist: +- `Blazorise.Bootstrap5` +- `Blazorise.Icons.FontAwesome` +- `Blazorise.Components` +- `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme` +- `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme.Bundling` +- `Volo.Abp.Identity.Blazor.WebAssembly` +- `Volo.Abp.TenantManagement.Blazor.WebAssembly` +- `Volo.Abp.SettingManagement.Blazor.WebAssembly` +- `Volo.Abp.FeatureManagement.Blazor.WebAssembly` + +Do not remove `Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite` from the HTTP API host unless you also replace the MVC/account-page theme. + +## 3. Update The WebAssembly Client + +Open `src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs`. + +In the existing `[DependsOn]`, use these AntDesign entries: + +```csharp +typeof(AbpIdentityBlazorWebAssemblyAntDesignModule), +typeof(AbpSettingManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpFeatureManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpTenantManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), +typeof(AbpAntDesignThemeManagementBlazorWebAssemblyModule) ``` -**Open `_Imports.razor` and add with the following:** +Configure the client router: ```csharp -@using AntDesign -@using Lsw.Abp.AntDesignUI -@using Lsw.Abp.AntDesignUI.Components -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling +private void ConfigureRouter(ServiceConfigurationContext context) +{ + Configure(options => + { + options.AppAssembly = typeof(BookStoreBlazorClientModule).Assembly; + }); +} ``` -**Open `BookStoreBlazorClientModule` make the following changes:** +Remove the old Blazorise provider setup if it exists. -* Remove the `ConfigureBlazorise` method -* Fix wrong using namespace -* Update module dependencies - * For example, replace `AbpIdentityBlazorWebAssemblyModule` with `AbpIdentityBlazorWebAssemblyAntDesignModule` +## 4. Update The HTTP API Host -**Open `BookStoreMenuContributor` to update icon:** +Open `src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs`. -* `"fas fa-home"` to `IconType.Outline.Home` -* `"fa fa-cog"` to `IconType.Outline.Setting` +Add the theme management application module to `[DependsOn]`: -**Open `Index.razor` and replace with the following:** +```csharp +typeof(AbpAntDesignThemeManagementApplicationModule) +``` + +Expose the theme management application service: ```csharp -@page "/" -@inherits BookStoreComponentBase +private void ConfigureConventionalControllers() +{ + Configure(options => + { + options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); + }); +} +``` - +## 5. Update The Blazor Host -
-
- - +Open `src/BookStore.Blazor/BookStoreBlazorModule.cs`. - +Add the WebAssembly AntDesign bundling module to `[DependsOn]`: -
-
+```csharp +typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeBundlingModule) ``` -**Open `Routes.razor` and replace with the following:** +## 6. Update Razor Files -```csharp +Add these imports to `src/BookStore.Blazor.Client/_Imports.razor`: + +```razor +@using AntDesign +@using Lsw.Abp.AntDesignUI +@using Lsw.Abp.AntDesignUI.Components +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling +``` + +Use the AntDesign layout in `src/BookStore.Blazor.Client/Routes.razor`: + +```razor @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme -@using Microsoft.Extensions.Options @using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp @@ -78,8 +139,23 @@ The first step is to use ABP CLI to create a new project. ``` -Run the `dotnet build` & `abp bundle` command in the `BookStore.Blazor` folder. +## 7. Build And Run + +From the solution root: + +```bash +dotnet build +``` + +To run this repository sample, start all three projects: + +```bash +cd samples/WebAppBlazorWebAssembly +dotnet run --project .\src\BookStore.DbMigrator\ +dotnet run --project .\src\BookStore.HttpApi.Host\ +dotnet run --project .\src\BookStore.Blazor\ +``` -That's all, enjoy your code :). +Open `https://localhost:44376`. -![3](img/3.png) \ No newline at end of file +Log in with `admin` / `1q2w3E*`, then verify that the AntDesign layout and right-side theme settings panel are visible. diff --git a/README.WebApp.md b/README.WebApp.md index 9795222..9e6bc6d 100644 --- a/README.WebApp.md +++ b/README.WebApp.md @@ -1,69 +1,162 @@ +## ABP Blazor WebApp - AntDesign Theme -The first step is to use ABP CLI to create a new project. +Use this guide for an ABP `blazor-webapp` application. The matching working sample is `samples/WebApp`. -`abp new BookStore -u blazor-webapp -t app` +![Advanced theme settings panel](img/theme-settings-panel.png) -> See the [ABP official documentation](https://docs.abp.io) to learn [ABP framework](https://github.com/abpframework/abp). +## 1. Create The App -**Replace LeptonXLiteTheme with AntBlazorTheme packages** +```bash +abp new BookStore -u blazor-webapp -t app +``` + +The paths below use the generated `BookStore` solution layout. + +## 2. Add References + +Add these references to `src/BookStore.Blazor/BookStore.Blazor.csproj`: + +- `Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme` +- `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling` +- `Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI` +- `Lsw.Abp.AntDesignThemeManagement.Blazor.Server` -* Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme` -* Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme.Bundling` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling` -* Replace `Volo.Abp.Identity.Blazor.WebAssembly` with `Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.SettingManagement.Blazor.WebAssembly` with `Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.TenantManagement.Blazor.WebAssembly` with `Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI` -* Replace `Volo.Abp.FeatureManagement.Blazor.WebAssembly` with `Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI` +Add these references to `src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj`: +- `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme` +- `Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI` +- `Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly` -* Replace `Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme` with `Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme` -* Replace `Volo.Abp.Identity.Blazor.Server` with `Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.SettingManagement.Blazor.Server` with `Lsw.Abp.SettingManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.TenantManagement.Blazor.Server` with `Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI` -* Replace `Volo.Abp.FeatureManagement.Blazor.Server` with `Lsw.Abp.FeatureManagement.Blazor.Server.AntDesignUI` +Use `ProjectReference` inside this repository, or the same package names when consuming NuGet packages. -**Remove all Blazorise packages.** +Remove the old Blazorise-based Blazor packages from the same projects if they exist: -**Replace `BlazorLeptonXLiteThemeBundles` with `BlazorAntDesignThemeBundles`** +- `Blazorise.Bootstrap5` +- `Blazorise.Icons.FontAwesome` +- `Blazorise.Components` +- `Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme` +- `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme` +- `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme.Bundling` +- `Volo.Abp.Identity.Blazor.Server` +- `Volo.Abp.Identity.Blazor.WebAssembly` +- `Volo.Abp.TenantManagement.Blazor.Server` +- `Volo.Abp.TenantManagement.Blazor.WebAssembly` +- `Volo.Abp.SettingManagement.Blazor.Server` +- `Volo.Abp.SettingManagement.Blazor.WebAssembly` +- `Volo.Abp.FeatureManagement.Blazor.Server` +- `Volo.Abp.FeatureManagement.Blazor.WebAssembly` -**Open `_Imports.razor` and add with the following:** +Do not remove `Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite` unless you also replace the MVC/account-page theme. + +## 3. Update The WebApp Host Module + +Open `src/BookStore.Blazor/BookStoreBlazorModule.cs`. + +In the existing `[DependsOn]`, replace the generated Blazor UI module entries with these AntDesign entries: ```csharp -@using AntDesign -@using Lsw.Abp.AntDesignUI -@using Lsw.Abp.AntDesignUI.Components -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling +typeof(AbpIdentityBlazorServerAntDesignModule), +typeof(AbpTenantManagementBlazorServerAntDesignModule), +typeof(AbpAntDesignThemeManagementBlazorServerModule), +typeof(AbpAspNetCoreComponentsServerAntDesignThemeModule), +typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeBundlingModule) ``` -**Open `BookStoreBlazorModule` make the following changes:** +Configure the AntDesign bundle, router, and theme management API: + +```csharp +private void ConfigureBundles() +{ + Configure(options => + { + options.Parameters.InteractiveAuto = true; + + options.StyleBundles.Configure( + BlazorAntDesignThemeBundles.Styles.Global, + bundle => { bundle.AddFiles("/global-styles.css"); } + ); + }); +} + +private void ConfigureRouter(ServiceConfigurationContext context) +{ + Configure(options => + { + options.AppAssembly = typeof(BookStoreBlazorModule).Assembly; + options.AdditionalAssemblies.Add(typeof(BookStoreBlazorClientModule).Assembly); + }); +} + +private void ConfigureAutoApiControllers() +{ + Configure(options => + { + options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); + }); +} +``` -* Remove the `ConfigureBlazorise` method -* Fix wrong using namespace -* Update module dependencies - * For example: replace `AbpIdentityBlazorServerModule` with `AbpIdentityBlazorServerAntDesignModule` - * For example: replace `AbpAspNetCoreComponentsServerLeptonXLiteThemeModule` with `AbpAspNetCoreComponentsServerAntDesignThemeModule` +Call these methods from `ConfigureServices`. Remove the old Blazorise provider setup if it exists. -**Open `BookStoreBlazorClientModule` make the following changes:** +## 4. Update The WebAssembly Client Module -* Remove the `ConfigureBlazorise` method -* Fix wrong using namespace -* Update module dependencies - * For example: replace `AbpIdentityBlazorWebAssemblyModule` with `AbpIdentityBlazorWebAssemblyAntDesignModule` - * For example: replace `AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule` with `AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule` +Open `src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs`. -**Open `BookStoreMenuContributor` to update icon:** +In the existing `[DependsOn]`, use these AntDesign entries: -* `"fas fa-home"` to `IconType.Outline.Home` -* `"fa fa-cog"` to `IconType.Outline.Setting` +```csharp +typeof(AbpSettingManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpFeatureManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpIdentityBlazorWebAssemblyAntDesignModule), +typeof(AbpTenantManagementBlazorWebAssemblyAntDesignModule), +typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), +typeof(AbpAntDesignThemeManagementBlazorWebAssemblyModule) +``` -**Open `Routes.razor` and replace with the following:** +Configure the client router: ```csharp +private void ConfigureRouter(ServiceConfigurationContext context) +{ + Configure(options => + { + options.AppAssembly = typeof(BookStoreBlazorClientModule).Assembly; + options.AdditionalAssemblies.Add(typeof(BookStoreBlazorClientModule).Assembly); + }); +} +``` + +Remove the old Blazorise provider setup if it exists. + +## 5. Update Razor Files + +Add these imports to both `_Imports.razor` files: + +- `src/BookStore.Blazor/_Imports.razor` +- `src/BookStore.Blazor.Client/_Imports.razor` + +```razor +@using AntDesign +@using Lsw.Abp.AntDesignUI +@using Lsw.Abp.AntDesignUI.Components +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling +``` + +Use the AntDesign layout in `src/BookStore.Blazor.Client/Routes.razor`: + +```razor @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme @using Microsoft.Extensions.Options @inject IOptions RouterOptions + @@ -75,30 +168,38 @@ The first step is to use ABP CLI to create a new project. ``` -**Open `Index.razor` and replace with the following:** +Use the AntDesign bundles in `src/BookStore.Blazor/Components/App.razor`: -```csharp -@page "/" -@inherits BookStoreComponentBase +```razor +@using Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme.Bundling + + - + -
-
+ +``` - +## 6. Build And Run - +From the solution root: -
-
+```bash +dotnet build ``` -Run the `dotnet build` & `abp bundle` command in the `BookStore.Blazor.Client` folder. +To run this repository sample: + +```bash +cd samples/WebApp +dotnet run --project .\src\BookStore.DbMigrator\ +dotnet run --project .\src\BookStore.Blazor\ +``` -That's all, enjoy your code :). +Open `https://localhost:44320`. -![3](img/3.png) \ No newline at end of file +Log in with `admin` / `1q2w3E*`, then verify that the AntDesign layout and right-side theme settings panel are visible. diff --git a/README.md b/README.md index 657bba9..7e7cf7d 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,55 @@ # Lsw.Abp.AntDesignUI -**An Abp Blazor Theme based [Ant-Design-Blazor](https://github.com/ant-design-blazor/ant-design-blazor) !** +ABP Blazor UI theme and module set based on [Ant Design Blazor](https://github.com/ant-design-blazor/ant-design-blazor). [![NuGet](https://img.shields.io/nuget/v/Lsw.Abp.AntDesignUI.svg)](https://www.nuget.org/packages/Lsw.Abp.AntDesignUI/) [![NuGet](https://img.shields.io/nuget/dt/Lsw.Abp.AntDesignUI.svg)](https://www.nuget.org/packages/Lsw.Abp.AntDesignUI/) -## Samples +## Features + +Lsw.Abp.AntDesignUI provides an Ant Design Pro-style application shell for ABP Blazor applications. + +- Refactored application layout with side and top navigation. +- Responsive sidebar behavior for desktop and mobile screens. +- Light, menu-dark, and real-dark visual styles. +- Runtime controls for content width, fixed header, fixed sidebar, split menus, and page regions. +- Floating theme settings panel for authenticated users. +- Admin-managed theme setting availability through ABP Setting Management. +- AntDesign UI implementations for common ABP management modules. + +## Theme Settings + +Authenticated users can open the settings panel from the right side of the application and change the layout without restarting the app. + +The panel includes: -* [Blazor WebApp(Auto mode) sample](/samples/WebApp/) -* [Blazor WebApp(Server mode) sample](/samples/WebAppBlazorServer/) -* [Blazor WebApp(WebAssembly mode) sample](/samples/WebAppBlazorWebAssembly/) +- Page style selection. +- Navigation mode selection. +- Content width and fixed layout switches. +- Header, footer, menu, and menu header visibility. +- Weak color mode. + +Administrators can choose which groups are visible from `Administration -> Settings -> Theme settings management`. + +## Screenshots + +![AntDesign theme home page](img/theme-home.png) + +![Advanced theme settings panel](img/theme-settings-panel.png) + +## Samples -![1](img/1.png) -![2](img/2.png) +- [WebApp (Auto mode)](./samples/WebApp/) +- [WebApp Blazor Server](./samples/WebAppBlazorServer/) +- [WebApp Blazor WebAssembly](./samples/WebAppBlazorWebAssembly/) -## Quick Start +Sample login: -* [Change the theme of the ABP project to AntBlazorTheme for Blazor WebApp.](./README.WebApp.md) -* [Change the theme of the ABP project to AntBlazorTheme for Blazor Server.](./README.BlazorServer.md) -* [Change the theme of the ABP project to AntBlazorTheme for Blazor WebAssembly.](./README.BlazorWebAssembly.md) +- Username: `admin` +- Password: `1q2w3E*` -## Road map +## Usage Guides -Updating... +- [Use AntDesign theme in ABP Blazor WebApp](./README.WebApp.md) +- [Use AntDesign theme in ABP Blazor Server](./README.BlazorServer.md) +- [Use AntDesign theme in ABP Blazor WebAssembly](./README.BlazorWebAssembly.md) diff --git a/img/theme-home.png b/img/theme-home.png new file mode 100644 index 0000000..0edfd81 Binary files /dev/null and b/img/theme-home.png differ diff --git a/img/theme-settings-panel.png b/img/theme-settings-panel.png new file mode 100644 index 0000000..c50fccb Binary files /dev/null and b/img/theme-settings-panel.png differ diff --git a/lsw.Abp.AntDesignUI.sln b/lsw.Abp.AntDesignUI.sln index a49e84f..a3c4041 100644 --- a/lsw.Abp.AntDesignUI.sln +++ b/lsw.Abp.AntDesignUI.sln @@ -67,92 +67,328 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling", "modules\AntDesignTheme\Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling\Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling.csproj", "{9FE3143F-08A8-444F-B6B9-D4533FB57674}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AntDesignThemeManagement", "AntDesignThemeManagement", "{C071317A-33DD-81B8-DE1C-2EFAA26D6A66}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AntDesignThemeManagement.Application.Contracts", "modules\AntDesignThemeManagement\Lsw.Abp.AntDesignThemeManagement.Application.Contracts\Lsw.Abp.AntDesignThemeManagement.Application.Contracts.csproj", "{26EB7F51-1239-4C81-A840-91AB48C30111}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AntDesignThemeManagement.Application", "modules\AntDesignThemeManagement\Lsw.Abp.AntDesignThemeManagement.Application\Lsw.Abp.AntDesignThemeManagement.Application.csproj", "{3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AntDesignThemeManagement.Blazor", "modules\AntDesignThemeManagement\Lsw.Abp.AntDesignThemeManagement.Blazor\Lsw.Abp.AntDesignThemeManagement.Blazor.csproj", "{C18F5B9D-6171-456B-A972-2EF091C6FB15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AntDesignThemeManagement.Blazor.Server", "modules\AntDesignThemeManagement\Lsw.Abp.AntDesignThemeManagement.Blazor.Server\Lsw.Abp.AntDesignThemeManagement.Blazor.Server.csproj", "{4E47F110-D37D-4C48-86CB-457295976000}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly", "modules\AntDesignThemeManagement\Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly\Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly.csproj", "{3A3C7948-3D00-416D-842C-030F3EEA91C0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|x64.ActiveCfg = Debug|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|x64.Build.0 = Debug|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|x86.ActiveCfg = Debug|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Debug|x86.Build.0 = Debug|Any CPU {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|Any CPU.ActiveCfg = Release|Any CPU {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|Any CPU.Build.0 = Release|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|x64.ActiveCfg = Release|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|x64.Build.0 = Release|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|x86.ActiveCfg = Release|Any CPU + {9EA4AA35-DEFC-4C25-8333-78137853EC5D}.Release|x86.Build.0 = Release|Any CPU {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|x64.ActiveCfg = Debug|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|x64.Build.0 = Debug|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|x86.ActiveCfg = Debug|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Debug|x86.Build.0 = Debug|Any CPU {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|Any CPU.ActiveCfg = Release|Any CPU {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|Any CPU.Build.0 = Release|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|x64.ActiveCfg = Release|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|x64.Build.0 = Release|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|x86.ActiveCfg = Release|Any CPU + {FD90132E-3B0E-4677-A7CE-8783FCC5E427}.Release|x86.Build.0 = Release|Any CPU {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|x64.ActiveCfg = Debug|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|x64.Build.0 = Debug|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|x86.ActiveCfg = Debug|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Debug|x86.Build.0 = Debug|Any CPU {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|Any CPU.ActiveCfg = Release|Any CPU {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|Any CPU.Build.0 = Release|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|x64.ActiveCfg = Release|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|x64.Build.0 = Release|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|x86.ActiveCfg = Release|Any CPU + {EF106F75-3B60-4C72-902D-DDE46EEF7D84}.Release|x86.Build.0 = Release|Any CPU {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|x64.Build.0 = Debug|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|x86.ActiveCfg = Debug|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Debug|x86.Build.0 = Debug|Any CPU {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|Any CPU.ActiveCfg = Release|Any CPU {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|Any CPU.Build.0 = Release|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|x64.ActiveCfg = Release|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|x64.Build.0 = Release|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|x86.ActiveCfg = Release|Any CPU + {B5CBA610-B248-489F-9840-05DF0C1AAC69}.Release|x86.Build.0 = Release|Any CPU {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|x64.ActiveCfg = Debug|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|x64.Build.0 = Debug|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|x86.ActiveCfg = Debug|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Debug|x86.Build.0 = Debug|Any CPU {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|Any CPU.ActiveCfg = Release|Any CPU {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|Any CPU.Build.0 = Release|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|x64.ActiveCfg = Release|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|x64.Build.0 = Release|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|x86.ActiveCfg = Release|Any CPU + {62606EC9-E888-47C0-BBAC-E7E40652DFD3}.Release|x86.Build.0 = Release|Any CPU {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|x64.ActiveCfg = Debug|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|x64.Build.0 = Debug|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|x86.ActiveCfg = Debug|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Debug|x86.Build.0 = Debug|Any CPU {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|Any CPU.ActiveCfg = Release|Any CPU {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|Any CPU.Build.0 = Release|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|x64.ActiveCfg = Release|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|x64.Build.0 = Release|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|x86.ActiveCfg = Release|Any CPU + {E59DA556-0472-4409-BDCE-C992F73531F5}.Release|x86.Build.0 = Release|Any CPU {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|x64.ActiveCfg = Debug|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|x64.Build.0 = Debug|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|x86.ActiveCfg = Debug|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Debug|x86.Build.0 = Debug|Any CPU {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|Any CPU.ActiveCfg = Release|Any CPU {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|Any CPU.Build.0 = Release|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|x64.ActiveCfg = Release|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|x64.Build.0 = Release|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|x86.ActiveCfg = Release|Any CPU + {782E3414-6807-49A6-A7C4-9239BBACE0AE}.Release|x86.Build.0 = Release|Any CPU {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|x64.ActiveCfg = Debug|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|x64.Build.0 = Debug|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|x86.ActiveCfg = Debug|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Debug|x86.Build.0 = Debug|Any CPU {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|Any CPU.ActiveCfg = Release|Any CPU {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|Any CPU.Build.0 = Release|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|x64.ActiveCfg = Release|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|x64.Build.0 = Release|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|x86.ActiveCfg = Release|Any CPU + {995DD783-AAA5-450A-AF5C-6DFA513343F8}.Release|x86.Build.0 = Release|Any CPU {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|x64.ActiveCfg = Debug|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|x64.Build.0 = Debug|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|x86.ActiveCfg = Debug|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Debug|x86.Build.0 = Debug|Any CPU {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|Any CPU.ActiveCfg = Release|Any CPU {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|Any CPU.Build.0 = Release|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|x64.ActiveCfg = Release|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|x64.Build.0 = Release|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|x86.ActiveCfg = Release|Any CPU + {496912B1-C4E3-477E-8AF8-D95DFC604B7C}.Release|x86.Build.0 = Release|Any CPU {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|x64.ActiveCfg = Debug|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|x64.Build.0 = Debug|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Debug|x86.Build.0 = Debug|Any CPU {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|Any CPU.Build.0 = Release|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|x64.ActiveCfg = Release|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|x64.Build.0 = Release|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|x86.ActiveCfg = Release|Any CPU + {C8437CD7-37CB-40B7-8862-96A1533C1818}.Release|x86.Build.0 = Release|Any CPU {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|x64.Build.0 = Debug|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Debug|x86.Build.0 = Debug|Any CPU {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|Any CPU.ActiveCfg = Release|Any CPU {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|Any CPU.Build.0 = Release|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|x64.ActiveCfg = Release|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|x64.Build.0 = Release|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|x86.ActiveCfg = Release|Any CPU + {C404A7B8-8271-417D-B02C-20EDC7FB48B7}.Release|x86.Build.0 = Release|Any CPU {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|x64.ActiveCfg = Debug|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|x64.Build.0 = Debug|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|x86.ActiveCfg = Debug|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Debug|x86.Build.0 = Debug|Any CPU {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|Any CPU.ActiveCfg = Release|Any CPU {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|Any CPU.Build.0 = Release|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|x64.ActiveCfg = Release|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|x64.Build.0 = Release|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|x86.ActiveCfg = Release|Any CPU + {268E0BF9-A6A4-4255-835C-0995CE4B3F2E}.Release|x86.Build.0 = Release|Any CPU {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|Any CPU.Build.0 = Debug|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|x64.ActiveCfg = Debug|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|x64.Build.0 = Debug|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|x86.ActiveCfg = Debug|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Debug|x86.Build.0 = Debug|Any CPU {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|Any CPU.ActiveCfg = Release|Any CPU {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|Any CPU.Build.0 = Release|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|x64.ActiveCfg = Release|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|x64.Build.0 = Release|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|x86.ActiveCfg = Release|Any CPU + {55BB2D05-7DCF-4BA4-B9E4-823A98C2B626}.Release|x86.Build.0 = Release|Any CPU {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|x64.ActiveCfg = Debug|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|x64.Build.0 = Debug|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|x86.ActiveCfg = Debug|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Debug|x86.Build.0 = Debug|Any CPU {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|Any CPU.ActiveCfg = Release|Any CPU {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|Any CPU.Build.0 = Release|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|x64.ActiveCfg = Release|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|x64.Build.0 = Release|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|x86.ActiveCfg = Release|Any CPU + {2E033BD6-16C2-4F3A-ADD5-C08D6FB8482B}.Release|x86.Build.0 = Release|Any CPU {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|x64.ActiveCfg = Debug|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|x64.Build.0 = Debug|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Debug|x86.Build.0 = Debug|Any CPU {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|Any CPU.Build.0 = Release|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|x64.ActiveCfg = Release|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|x64.Build.0 = Release|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|x86.ActiveCfg = Release|Any CPU + {3D8714C4-B78B-4B5E-8675-F6531C21AE2C}.Release|x86.Build.0 = Release|Any CPU {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|x64.ActiveCfg = Debug|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|x64.Build.0 = Debug|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|x86.ActiveCfg = Debug|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Debug|x86.Build.0 = Debug|Any CPU {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|Any CPU.Build.0 = Release|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|x64.ActiveCfg = Release|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|x64.Build.0 = Release|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|x86.ActiveCfg = Release|Any CPU + {F3ADEF50-755E-4FCB-9746-C946CB0306B3}.Release|x86.Build.0 = Release|Any CPU {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|x64.ActiveCfg = Debug|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|x64.Build.0 = Debug|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Debug|x86.Build.0 = Debug|Any CPU {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|Any CPU.ActiveCfg = Release|Any CPU {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|Any CPU.Build.0 = Release|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|x64.ActiveCfg = Release|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|x64.Build.0 = Release|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|x86.ActiveCfg = Release|Any CPU + {BBA243C1-EEAD-42EE-ABA3-6912BE5F41D8}.Release|x86.Build.0 = Release|Any CPU {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|x64.ActiveCfg = Debug|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|x64.Build.0 = Debug|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|x86.ActiveCfg = Debug|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Debug|x86.Build.0 = Debug|Any CPU {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|Any CPU.ActiveCfg = Release|Any CPU {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|Any CPU.Build.0 = Release|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|x64.ActiveCfg = Release|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|x64.Build.0 = Release|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|x86.ActiveCfg = Release|Any CPU + {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71}.Release|x86.Build.0 = Release|Any CPU {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|x64.ActiveCfg = Debug|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|x64.Build.0 = Debug|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|x86.ActiveCfg = Debug|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Debug|x86.Build.0 = Debug|Any CPU {90DBF0A4-253D-4E75-8221-17455B404551}.Release|Any CPU.ActiveCfg = Release|Any CPU {90DBF0A4-253D-4E75-8221-17455B404551}.Release|Any CPU.Build.0 = Release|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Release|x64.ActiveCfg = Release|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Release|x64.Build.0 = Release|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Release|x86.ActiveCfg = Release|Any CPU + {90DBF0A4-253D-4E75-8221-17455B404551}.Release|x86.Build.0 = Release|Any CPU {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|x64.ActiveCfg = Debug|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|x64.Build.0 = Debug|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|x86.ActiveCfg = Debug|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Debug|x86.Build.0 = Debug|Any CPU {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|Any CPU.ActiveCfg = Release|Any CPU {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|Any CPU.Build.0 = Release|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|x64.ActiveCfg = Release|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|x64.Build.0 = Release|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|x86.ActiveCfg = Release|Any CPU + {9FE3143F-08A8-444F-B6B9-D4533FB57674}.Release|x86.Build.0 = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|x64.ActiveCfg = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|x64.Build.0 = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|x86.ActiveCfg = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Debug|x86.Build.0 = Debug|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|Any CPU.Build.0 = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|x64.ActiveCfg = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|x64.Build.0 = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|x86.ActiveCfg = Release|Any CPU + {26EB7F51-1239-4C81-A840-91AB48C30111}.Release|x86.Build.0 = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|x64.ActiveCfg = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|x64.Build.0 = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|x86.ActiveCfg = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Debug|x86.Build.0 = Debug|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|Any CPU.Build.0 = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|x64.ActiveCfg = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|x64.Build.0 = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|x86.ActiveCfg = Release|Any CPU + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C}.Release|x86.Build.0 = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|x64.ActiveCfg = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|x64.Build.0 = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|x86.ActiveCfg = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Debug|x86.Build.0 = Debug|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|Any CPU.Build.0 = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|x64.ActiveCfg = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|x64.Build.0 = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|x86.ActiveCfg = Release|Any CPU + {C18F5B9D-6171-456B-A972-2EF091C6FB15}.Release|x86.Build.0 = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|x64.ActiveCfg = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|x64.Build.0 = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|x86.ActiveCfg = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Debug|x86.Build.0 = Debug|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|Any CPU.Build.0 = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|x64.ActiveCfg = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|x64.Build.0 = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|x86.ActiveCfg = Release|Any CPU + {4E47F110-D37D-4C48-86CB-457295976000}.Release|x86.Build.0 = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|x64.ActiveCfg = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|x64.Build.0 = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|x86.ActiveCfg = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Debug|x86.Build.0 = Debug|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|Any CPU.Build.0 = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|x64.ActiveCfg = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|x64.Build.0 = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|x86.ActiveCfg = Release|Any CPU + {3A3C7948-3D00-416D-842C-030F3EEA91C0}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -184,6 +420,12 @@ Global {2DCCFE7C-4BC5-46F8-8493-82352CE0EE71} = {9F013513-EC16-46DF-BDEF-C9B5F0DA6C12} {90DBF0A4-253D-4E75-8221-17455B404551} = {9F013513-EC16-46DF-BDEF-C9B5F0DA6C12} {9FE3143F-08A8-444F-B6B9-D4533FB57674} = {9F013513-EC16-46DF-BDEF-C9B5F0DA6C12} + {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} = {0C432416-770F-4331-84E6-5835408A9BD8} + {26EB7F51-1239-4C81-A840-91AB48C30111} = {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} + {3AEE1B0F-D26D-4156-A9A2-90FEAE7F111C} = {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} + {C18F5B9D-6171-456B-A972-2EF091C6FB15} = {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} + {4E47F110-D37D-4C48-86CB-457295976000} = {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} + {3A3C7948-3D00-416D-842C-030F3EEA91C0} = {C071317A-33DD-81B8-DE1C-2EFAA26D6A66} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {783A95E2-ACD4-4E6D-B0FC-1D05ADEB9244} diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Bundling/BlazorAntDesignThemeScriptContributor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Bundling/BlazorAntDesignThemeScriptContributor.cs index 4187271..79285df 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Bundling/BlazorAntDesignThemeScriptContributor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Bundling/BlazorAntDesignThemeScriptContributor.cs @@ -8,5 +8,6 @@ public class BlazorAntDesignThemeScriptContributor: BundleContributor public override void ConfigureBundle(BundleConfigurationContext context) { context.Files.AddIfNotContains("/_content/AntDesign/js/ant-design-blazor.js"); + context.Files.AddIfNotContains("/_content/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/libs/abp/js/theme-settings.js"); } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor index 4bcbff5..46a12fc 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor @@ -21,7 +21,7 @@ - @_currentLanguage.DisplayName + @_currentLanguage.DisplayName diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAspNetCoreComponentsWebAntDesignThemeModule.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAspNetCoreComponentsWebAntDesignThemeModule.cs index ce90bd8..b9e874c 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAspNetCoreComponentsWebAntDesignThemeModule.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/AbpAspNetCoreComponentsWebAntDesignThemeModule.cs @@ -1,4 +1,5 @@ -using Lsw.Abp.AntDesignUI; +using Lsw.Abp.AntDesignThemeManagement; +using Lsw.Abp.AntDesignUI; using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; @@ -7,6 +8,7 @@ namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme; [DependsOn( typeof(AbpAntDesignUIModule), + typeof(AbpAntDesignThemeManagementApplicationContractsModule), typeof(AbpUiNavigationModule) )] public class AbpAspNetCoreComponentsWebAntDesignThemeModule : AbpModule diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Layout/AbpPageHeader.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Layout/AbpPageHeader.razor index 73c3d15..9f58d6e 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Layout/AbpPageHeader.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Layout/AbpPageHeader.razor @@ -2,7 +2,7 @@ @inject IOptions Options - + @if (Options.Value.RenderBreadcrumbs && BreadcrumbItems.Any()) { @@ -26,17 +26,17 @@ - + @if (Options.Value.RenderToolbar) { - + @if (Toolbar == null) { @ChildContent } @foreach (var toolbarItemRender in ToolbarItemRenders) { -
+
@toolbarItemRender
} diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.csproj b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.csproj index 4bb3a75..30506eb 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.csproj +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.csproj @@ -14,6 +14,7 @@ + diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/AntDesignSettingsProvider.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/AntDesignSettingsProvider.cs index 2fcca29..0c470b7 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/AntDesignSettingsProvider.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/AntDesignSettingsProvider.cs @@ -1,40 +1,96 @@ -using System; -using System.Security.AccessControl; +using System; using System.Threading.Tasks; using AntDesign; -using AntDesign.Core.Helpers.MemberPath; -using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Options; +using Lsw.Abp.AntDesignThemeManagement; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Lsw.Abp.AntDesignThemeManagement.Settings; using Volo.Abp.DependencyInjection; -using Volo.Abp.Settings; +using Volo.Abp.Users; namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; public class AntDesignSettingsProvider : IAntDesignSettingsProvider, IScopedDependency { - //TODO use SettingProvider instead of AbpAntDesignThemeOptions - // [Inject] - // protected ISettingProvider SettingProvider { get; set; } - - [Inject] - public IOptions Options { get; set; } - - public delegate Task AntDesignSettingChangedHandler(); - - public event AntDesignSettingChangedHandler SettingChanged; - - public Task GetMenuPlacementAsync() + protected IAntDesignThemePreferenceAppService ThemePreferenceAppService { get; } + + protected ICurrentUser CurrentUser { get; } + + public AntDesignSettingsProvider( + IAntDesignThemePreferenceAppService themePreferenceAppService, + ICurrentUser currentUser) + { + ThemePreferenceAppService = themePreferenceAppService; + CurrentUser = currentUser; + } + + public event Func? SettingChanged; + + public async Task GetPreferenceAsync() + { + if (!CurrentUser.IsAuthenticated) + { + return BuildDefaultPreference(); + } + + try + { + return await ThemePreferenceAppService.GetAsync(); + } + catch + { + return BuildDefaultPreference(); + } + } + + public async Task GetMenuPlacementAsync() + { + var setting = await GetPreferenceAsync(); + + return setting.NavigationMode == NavigationModes.Top + ? MenuPlacement.Top + : MenuPlacement.Left; + } + + public async Task GetMenuThemeAsync() + { + var setting = await GetPreferenceAsync(); + + return setting.ThemeStyle == ThemeStyles.Light + ? MenuTheme.Light + : MenuTheme.Dark; + } + + public async Task ApplyPreferenceAsync(UpdateAntDesignThemePreferenceDto input) { - return Task.FromResult(Options.Value.Menu.Placement); + await ThemePreferenceAppService.UpdateAsync(input); + await TriggerSettingChangedAsync(); } - public Task GetMenuThemeAsync() + public Task TriggerSettingChangedAsync() { - return Task.FromResult(Options.Value.Menu.Theme); + return SettingChanged?.Invoke() ?? Task.CompletedTask; } - public Task TriggerSettingChanged() + protected virtual AntDesignThemePreferenceDto BuildDefaultPreference() { - return SettingChanged?.Invoke(); + return new AntDesignThemePreferenceDto + { + ThemeSettingsEnabled = AntDesignThemeSettingDefaults.EnableThemeSettings, + PageStyleSettingEnabled = AntDesignThemeSettingDefaults.EnablePageStyleSetting, + NavigationModeSettingEnabled = AntDesignThemeSettingDefaults.EnableNavigationModeSetting, + RegionalSettingsEnabled = AntDesignThemeSettingDefaults.EnableRegionalSettings, + OtherSettingsEnabled = AntDesignThemeSettingDefaults.EnableOtherSettings, + ThemeStyle = AntDesignThemeSettingDefaults.ThemeStyle, + NavigationMode = AntDesignThemeSettingDefaults.NavigationMode, + ContentWidth = AntDesignThemeSettingDefaults.ContentWidth, + FixedHeader = AntDesignThemeSettingDefaults.FixedHeader, + FixSiderbar = AntDesignThemeSettingDefaults.FixSiderbar, + SplitMenus = AntDesignThemeSettingDefaults.SplitMenus, + ShowHeader = AntDesignThemeSettingDefaults.ShowHeader, + ShowFooter = AntDesignThemeSettingDefaults.ShowFooter, + ShowMenu = AntDesignThemeSettingDefaults.ShowMenu, + ShowMenuHeader = AntDesignThemeSettingDefaults.ShowMenuHeader, + ColorWeak = AntDesignThemeSettingDefaults.ColorWeak + }; } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/IAntDesignSettingsProvider.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/IAntDesignSettingsProvider.cs index 580c713..dfd3663 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/IAntDesignSettingsProvider.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Settings/IAntDesignSettingsProvider.cs @@ -1,16 +1,21 @@ -using System; +using System; using System.Threading.Tasks; using AntDesign; +using Lsw.Abp.AntDesignThemeManagement.Dtos; namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; public interface IAntDesignSettingsProvider { + Task GetPreferenceAsync(); + Task GetMenuPlacementAsync(); Task GetMenuThemeAsync(); - Task TriggerSettingChanged(); - - public event AntDesignSettingsProvider.AntDesignSettingChangedHandler SettingChanged; + Task ApplyPreferenceAsync(UpdateAntDesignThemePreferenceDto input); + + Task TriggerSettingChangedAsync(); + + event Func? SettingChanged; } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor index 9a1e0d5..de396af 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor @@ -1,4 +1,4 @@ -@inherits LayoutComponentBase +@inherits LayoutComponentBase @using Microsoft.Extensions.Options @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Components @@ -7,79 +7,123 @@ @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Components.LayoutHooks @inject IOptions Options - -@if (Options.Value.Menu.Placement == MenuPlacement.Top) +@if (IsTopNavigation) { - -
- - - - - -
+ + @if (ShowHeader) + { +
+ @if (ShowMenuHeader) + { + + } + @if (ShowMenu) + { + + } + + + +
+ } + - +
- - @Body - +
+ + @Body + +
- +
-
+ + @if (ShowFooter) + { +
+ }
} else { - - - - - + + @if (ShowMenu) + { + + @if (ShowMenuHeader) + { + + } + + + + @if (IsMobile && !Collapsed) + { +
+ } + } + -
-
- @if (Collapsed) - { - - } - else + @if (ShowHeader) + { +
+ @if (ShowMenu) { - +
+ @if (Collapsed) + { + + } + else + { + + } +
} -
- - - - -
+ + + + + } + - +
- - @if (!Options.Value.EnableMultipleTabs) - { - @Body - } - else - { - - } - +
+ + @if (!Options.Value.EnableMultipleTabs) + { + @Body + } + else + { + + } + +
- +
-
+ + @if (ShowFooter) + { +
+ }
} + + diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor.cs index ad78f22..6c8c519 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/DefaultLayout.razor.cs @@ -1,14 +1,23 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using AntDesign; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Lsw.Abp.AntDesignThemeManagement.Settings; using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme; -public partial class DefaultLayout +public partial class DefaultLayout : IDisposable { + protected const int MobileCollapsedSiderWidth = 64; + + [Inject] + protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; } = default!; + [Inject] - protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; } + protected IJSRuntime JsRuntime { get; set; } = default!; protected bool Collapsed { get; set; } @@ -16,37 +25,176 @@ public partial class DefaultLayout protected MenuTheme MenuTheme { get; set; } - protected string HeaderClass { get; set; } + protected AntDesignThemePreferenceDto Preference { get; set; } = new(); + + protected string HeaderClass { get; set; } = string.Empty; protected SiderTheme SiderTheme { get; set; } - protected string SiderStyle { get; set; } = "min-width:256px"; + protected string SiderStyle { get; set; } = "min-width:256px;max-width:256px;width:256px;"; + + protected string SiderClass => IsMobile ? "ant-design-side lsw-pro-side-mobile" : "ant-design-side"; + + protected string LayoutClass { get; set; } = "ant-design-layout lsw-pro-theme lsw-pro-theme-light"; + + protected string ThemeBodyClass { get; set; } = "lsw-pro-theme lsw-pro-theme-light"; + + protected bool IsMobile { get; set; } + + protected bool IsTopNavigation => MenuPlacement == MenuPlacement.Top; + + protected bool ShowHeader => Preference.ShowHeader; + + protected bool ShowFooter => Preference.ShowFooter; + + protected bool ShowMenu => Preference.ShowMenu; + + protected bool ShowMenuHeader => Preference.ShowMenu && Preference.ShowMenuHeader; + + protected bool IsFixedContentWidth => Preference.ContentWidth == ContentWidths.Fixed; protected override async Task OnInitializedAsync() { - await SetLayout(); - AntDesignSettingsProvider.SettingChanged += OnSettingChanged; + await SetLayoutAsync(); + AntDesignSettingsProvider.SettingChanged += OnSettingChangedAsync; } - protected virtual async Task OnSettingChanged() + protected virtual async Task OnSettingChangedAsync() { - await SetLayout(); + await SetLayoutAsync(); await InvokeAsync(StateHasChanged); } - private async Task SetLayout() + protected override async Task OnAfterRenderAsync(bool firstRender) { - MenuTheme = await AntDesignSettingsProvider.GetMenuThemeAsync(); - MenuPlacement = await AntDesignSettingsProvider.GetMenuPlacementAsync(); + try + { + await JsRuntime.InvokeVoidAsync("lswAntDesignThemeSettings.applyThemeClass", ThemeBodyClass); + } + catch + { + // Ignore transient script loading errors. + } + } + + protected virtual async Task SetLayoutAsync() + { + Preference = await AntDesignSettingsProvider.GetPreferenceAsync(); + + MenuPlacement = Preference.NavigationMode == NavigationModes.Top + ? MenuPlacement.Top + : MenuPlacement.Left; + + MenuTheme = Preference.ThemeStyle == ThemeStyles.Light + ? MenuTheme.Light + : MenuTheme.Dark; + + SiderTheme = MenuTheme == MenuTheme.Light ? SiderTheme.Light : SiderTheme.Dark; + + var headerBaseClass = IsTopNavigation ? "ant-design-header-top" : "ant-design-header-left"; + var headerModeClass = MenuTheme == MenuTheme.Light ? $"{headerBaseClass}-light" : $"{headerBaseClass}-dark"; + var fixedClass = Preference.FixedHeader ? "ant-design-header-fixed" : string.Empty; + HeaderClass = $"{headerBaseClass} {headerModeClass} {fixedClass}".Trim(); - SiderTheme = MenuTheme == MenuTheme.Light ? SiderTheme.Light : SiderTheme.Dark; - HeaderClass = MenuPlacement == MenuPlacement.Top ? "ant-design-header-top" : "ant-design-header-left"; - HeaderClass = MenuTheme == MenuTheme.Light ? $"{HeaderClass} {HeaderClass}-light" : HeaderClass; + LayoutClass = BuildLayoutClass(); + ThemeBodyClass = BuildThemeBodyClass(); + SiderStyle = BuildSiderStyle(); } protected virtual void OnCollapse() { Collapsed = !Collapsed; - SiderStyle = Collapsed ? "" : "min-width:256px"; + SiderStyle = BuildSiderStyle(); + } + + protected virtual Task OnSiderBreakpointChanged(bool broken) + { + IsMobile = broken; + + if (broken) + { + Collapsed = true; + } + else if (Collapsed) + { + Collapsed = false; + } + + SiderStyle = BuildSiderStyle(); + return InvokeAsync(StateHasChanged); + } + + protected virtual void CloseMobileMenu() + { + if (!IsMobile) + { + return; + } + + Collapsed = true; + SiderStyle = BuildSiderStyle(); + } + + protected virtual Task OnMainMenuItemClickAsync() + { + if (IsMobile && !Collapsed) + { + Collapsed = true; + SiderStyle = BuildSiderStyle(); + return InvokeAsync(StateHasChanged); + } + + return Task.CompletedTask; + } + + protected virtual string BuildLayoutClass() + { + var themeClass = GetThemeClass(); + var weakClass = Preference.ColorWeak ? "colorWeak" : string.Empty; + var fixedContentClass = IsFixedContentWidth ? "lsw-pro-content-fixed" : "lsw-pro-content-fluid"; + var navModeClass = IsTopNavigation ? "lsw-pro-nav-top" : "lsw-pro-nav-side"; + + return $"ant-design-layout lsw-pro-theme {themeClass} {weakClass} {fixedContentClass} {navModeClass}".Trim(); + } + + protected virtual string BuildThemeBodyClass() + { + var themeClass = GetThemeClass(); + var weakClass = Preference.ColorWeak ? "colorWeak" : string.Empty; + + return $"lsw-pro-theme {themeClass} {weakClass}".Trim(); + } + + protected virtual string GetThemeClass() + { + return Preference.ThemeStyle switch + { + ThemeStyles.Dark => "lsw-pro-theme-dark", + ThemeStyles.RealDark => "lsw-pro-theme-real-dark", + _ => "lsw-pro-theme-light" + }; + } + + protected virtual string BuildSiderStyle() + { + var width = Collapsed + ? (IsMobile ? MobileCollapsedSiderWidth : 80) + : 256; + + var mobileSiderStyle = IsMobile + ? "position:fixed;left:0;top:0;height:100vh;overflow:auto;z-index:1310;" + : string.Empty; + + var fixedSiderStyle = Preference.FixSiderbar + && !IsMobile + ? "position:sticky;top:0;height:100vh;overflow:auto;" + : string.Empty; + + return $"min-width:{width}px;max-width:{width}px;width:{width}px;{mobileSiderStyle}{fixedSiderStyle}"; + } + + public void Dispose() + { + AntDesignSettingsProvider.SettingChanged -= OnSettingChangedAsync; } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor index c5f7353..9f853c4 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor @@ -1,10 +1,16 @@ -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings - +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings +@inherits Volo.Abp.AspNetCore.Components.AbpComponentBase + @if (Menu != null) { foreach (var menu in Menu.Items) { - + } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor.cs index e1d8ee1..7e6c301 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenu.razor.cs @@ -1,38 +1,55 @@ -using System; +using System; using System.Threading.Tasks; using AntDesign; using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.Extensions.Options; +using Volo.Abp.AspNetCore.Components; using Volo.Abp.AspNetCore.Components.Web.Security; using Volo.Abp.UI.Navigation; namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme; -public partial class MainMenu : IDisposable +public partial class MainMenu : AbpComponentBase, IDisposable { - protected ApplicationMenu Menu { get; set; } - + protected ApplicationMenu Menu { get; set; } = default!; + [Inject] - protected IMenuManager MenuManager { get; set; } - + protected IMenuManager MenuManager { get; set; } = default!; + [Inject] - protected ApplicationConfigurationChangedService ApplicationConfigurationChangedService { get; set; } - + protected ApplicationConfigurationChangedService ApplicationConfigurationChangedService { get; set; } = default!; + [Parameter] public MenuPlacement Placement { get; set; } - + [Parameter] public MenuTheme Theme { get; set; } - + [Parameter] public bool Collapsed { get; set; } + [Parameter] + public EventCallback OnMenuItemClick { get; set; } + + protected string MenuRenderKey { get; set; } = $"lsw-main-menu-{Guid.NewGuid():N}"; + + protected MenuMode MenuMode => Placement == MenuPlacement.Left ? MenuMode.Inline : MenuMode.Horizontal; + + protected bool InlineCollapsedValue => Placement == MenuPlacement.Left && Collapsed; + + protected Trigger TriggerSubMenuAction => Placement == MenuPlacement.Top ? Trigger.Click : Trigger.Hover; + protected override async Task OnInitializedAsync() { - await GetMenuAsync(); - ApplicationConfigurationChangedService.Changed += ApplicationConfigurationChanged; + try + { + await GetMenuAsync(); + ApplicationConfigurationChangedService.Changed += ApplicationConfigurationChanged; + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } } private async Task GetMenuAsync() @@ -42,8 +59,29 @@ public partial class MainMenu : IDisposable private async void ApplicationConfigurationChanged() { - await GetMenuAsync(); - await InvokeAsync(StateHasChanged); + try + { + await GetMenuAsync(); + await InvokeAsync(StateHasChanged); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + protected virtual async Task OnMenuItemClickedAsync() + { + if (Placement == MenuPlacement.Top) + { + // Force-close any opened top-mode dropdowns once an item is clicked. + MenuRenderKey = $"lsw-main-menu-{Guid.NewGuid():N}"; + } + + if (OnMenuItemClick.HasDelegate) + { + await OnMenuItemClick.InvokeAsync(); + } } public void Dispose() diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor index a5d9ce5..ae1aa48 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor @@ -1,4 +1,4 @@ -@using Volo.Abp.UI.Navigation +@using Volo.Abp.UI.Navigation @if (Menu != null) { @@ -7,7 +7,10 @@ if (Menu.IsLeaf && Menu.Url != null) { - + @if (!Menu.Icon.IsNullOrWhiteSpace()) { @@ -20,14 +23,13 @@ @foreach (var menuItem in Menu.Items) { - + } } } @{ - RenderFragment GetSubMenuTemplate(ApplicationMenuItem menu) { return @ diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor.cs index be0d509..febe0e0 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/MainMenuItem.razor.cs @@ -1,4 +1,5 @@ -using AntDesign; +using System.Threading.Tasks; +using AntDesign; using Microsoft.AspNetCore.Components; using Volo.Abp.UI.Navigation; @@ -7,5 +8,15 @@ namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme public partial class MainMenuItem : ComponentBase { [Parameter] - public ApplicationMenuItem Menu { get; set; } + public ApplicationMenuItem Menu { get; set; } = default!; + + [Parameter] + public EventCallback OnItemClick { get; set; } + + protected virtual Task OnClickAsync() + { + return OnItemClick.HasDelegate + ? OnItemClick.InvokeAsync() + : Task.CompletedTask; + } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor index ffabc44..8b55534 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor @@ -1,4 +1,5 @@ -@foreach (var render in ToolbarItemRenders) +@inherits Volo.Abp.AspNetCore.Components.AbpComponentBase +@foreach (var render in ToolbarItemRenders) { @render } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor.cs index 7c99191..58a943a 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/NavToolbar.razor.cs @@ -3,11 +3,12 @@ using System.Collections.Generic; using System.Threading.Tasks; using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Toolbars; using Microsoft.AspNetCore.Components; +using Volo.Abp.AspNetCore.Components; using Volo.Abp.AspNetCore.Components.Web.Security; namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme; -public partial class NavToolbar : IDisposable +public partial class NavToolbar : AbpComponentBase, IDisposable { [Inject] private IToolbarManager ToolbarManager { get; set; } @@ -19,8 +20,15 @@ public partial class NavToolbar : IDisposable protected override async Task OnInitializedAsync() { - await GetToolbarItemRendersAsync(); - ApplicationConfigurationChangedService.Changed += ApplicationConfigurationChanged; + try + { + await GetToolbarItemRendersAsync(); + ApplicationConfigurationChangedService.Changed += ApplicationConfigurationChanged; + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } } private async Task GetToolbarItemRendersAsync() @@ -42,8 +50,15 @@ public partial class NavToolbar : IDisposable private async void ApplicationConfigurationChanged() { - await GetToolbarItemRendersAsync(); - await InvokeAsync(StateHasChanged); + try + { + await GetToolbarItemRendersAsync(); + await InvokeAsync(StateHasChanged); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } } public void Dispose() diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor new file mode 100644 index 0000000..31fbe22 --- /dev/null +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor @@ -0,0 +1,147 @@ +@using Lsw.Abp.AntDesignThemeManagement.Settings +@inherits Volo.Abp.AspNetCore.Components.AbpComponentBase +@if (IsVisible) +{ +
+ +
+ +
+ + +} diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor.cs new file mode 100644 index 0000000..d005909 --- /dev/null +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/Themes/AntDesignTheme/ThemeSettingPanel.razor.cs @@ -0,0 +1,281 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Lsw.Abp.AntDesignThemeManagement.Settings; +using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.Extensions.Localization; +using Microsoft.JSInterop; +using Volo.Abp.Users; + +namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme; + +public partial class ThemeSettingPanel : IAsyncDisposable +{ + [Inject] + protected IStringLocalizer ThemeL { get; set; } = default!; + + [Inject] + protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; } = default!; + + [Inject] + protected IJSRuntime JsRuntime { get; set; } = default!; + + protected bool PanelVisible { get; set; } + + protected bool IsVisible { get; set; } + + protected AntDesignThemePreferenceDto Preference { get; set; } = new(); + + protected string HostId { get; } = $"lsw-theme-settings-fab-{Guid.NewGuid():N}"; + + protected string FloatingButtonClass => + $"lsw-theme-setting-fab {(PanelVisible ? "lsw-theme-setting-fab-active" : string.Empty)}".Trim(); + + private bool _isSubscribedToSettingChanged; + private bool _jsInitialized; + + protected IReadOnlyList ThemeStyleOptions { get; } = new[] + { + new OptionItem(ThemeStyles.Light, "Light", "lsw-theme-preview-light"), + new OptionItem(ThemeStyles.Dark, "Dark", "lsw-theme-preview-dark"), + new OptionItem(ThemeStyles.RealDark, "RealDark", "lsw-theme-preview-real-dark") + }; + + protected IReadOnlyList NavigationOptions { get; } = new[] + { + new OptionItem(NavigationModes.Side, "Side", "lsw-theme-preview-nav-side"), + new OptionItem(NavigationModes.Top, "Top", "lsw-theme-preview-nav-top") + }; + + protected override async Task OnInitializedAsync() + { + try + { + if (!CurrentUser.IsAuthenticated) + { + IsVisible = false; + return; + } + + AntDesignSettingsProvider.SettingChanged += OnSettingChangedAsync; + _isSubscribedToSettingChanged = true; + + Preference = await AntDesignSettingsProvider.GetPreferenceAsync(); + IsVisible = Preference.ThemeSettingsEnabled; + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + IsVisible = false; + } + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (!IsVisible || _jsInitialized) + { + return; + } + + try + { + await JsRuntime.InvokeVoidAsync("lswAntDesignThemeSettings.initialize", HostId); + _jsInitialized = true; + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + protected virtual Task TogglePanel() + { + PanelVisible = !PanelVisible; + return Task.CompletedTask; + } + + protected virtual Task OnFabKeyDownAsync(KeyboardEventArgs args) + { + if (args.Key is "Enter" or " ") + { + return TogglePanel(); + } + + return Task.CompletedTask; + } + + protected virtual Task ClosePanel() + { + PanelVisible = false; + return Task.CompletedTask; + } + + protected virtual async Task SetThemeStyleAsync(string style) + { + Preference.ThemeStyle = style; + await SaveAsync(); + } + + protected virtual async Task SetNavigationModeAsync(string mode) + { + var previousMode = Preference.NavigationMode; + Preference.NavigationMode = mode; + await SaveAsync(); + + if (Preference.NavigationMode != mode) + { + Preference.NavigationMode = previousMode; + } + } + + protected virtual async Task OnContentWidthChangedAsync(ChangeEventArgs args) + { + Preference.ContentWidth = args.Value?.ToString() ?? ContentWidths.Fluid; + await SaveAsync(); + } + + protected virtual async Task OnFixedHeaderChangedAsync(ChangeEventArgs args) + { + Preference.FixedHeader = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnFixedSiderbarChangedAsync(ChangeEventArgs args) + { + Preference.FixSiderbar = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnSplitMenusChangedAsync(ChangeEventArgs args) + { + Preference.SplitMenus = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnShowHeaderChangedAsync(ChangeEventArgs args) + { + Preference.ShowHeader = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnShowFooterChangedAsync(ChangeEventArgs args) + { + Preference.ShowFooter = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnShowMenuChangedAsync(ChangeEventArgs args) + { + Preference.ShowMenu = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnShowMenuHeaderChangedAsync(ChangeEventArgs args) + { + Preference.ShowMenuHeader = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual async Task OnColorWeakChangedAsync(ChangeEventArgs args) + { + Preference.ColorWeak = ReadBoolean(args); + await SaveAsync(); + } + + protected virtual bool ReadBoolean(ChangeEventArgs args) + { + return args.Value switch + { + bool boolValue => boolValue, + string stringValue when bool.TryParse(stringValue, out var result) => result, + _ => false + }; + } + + protected virtual async Task SaveAsync() + { + try + { + await AntDesignSettingsProvider.ApplyPreferenceAsync(new UpdateAntDesignThemePreferenceDto + { + ThemeStyle = Preference.ThemeStyle, + NavigationMode = Preference.NavigationMode, + ContentWidth = Preference.ContentWidth, + FixedHeader = Preference.FixedHeader, + FixSiderbar = Preference.FixSiderbar, + SplitMenus = Preference.SplitMenus, + ShowHeader = Preference.ShowHeader, + ShowFooter = Preference.ShowFooter, + ShowMenu = Preference.ShowMenu, + ShowMenuHeader = Preference.ShowMenuHeader, + ColorWeak = Preference.ColorWeak + }); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + try + { + Preference = await AntDesignSettingsProvider.GetPreferenceAsync(); + } + catch + { + // Intentionally ignored to keep the panel responsive even if reloading fails. + } + + await InvokeAsync(StateHasChanged); + } + } + + protected virtual async Task OnSettingChangedAsync() + { + try + { + if (!CurrentUser.IsAuthenticated) + { + return; + } + + Preference = await AntDesignSettingsProvider.GetPreferenceAsync(); + IsVisible = Preference.ThemeSettingsEnabled; + if (!IsVisible) + { + PanelVisible = false; + } + else + { + _jsInitialized = false; + } + + await InvokeAsync(StateHasChanged); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + public async ValueTask DisposeAsync() + { + if (_isSubscribedToSettingChanged) + { + AntDesignSettingsProvider.SettingChanged -= OnSettingChangedAsync; + _isSubscribedToSettingChanged = false; + } + + try + { + await JsRuntime.InvokeVoidAsync("lswAntDesignThemeSettings.dispose", HostId); + } + catch + { + // Ignore disposal errors when the JS runtime is no longer available. + } + } + + protected record OptionItem(string Value, string LocalizationKey, string CssClass); +} diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/css/theme.css b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/css/theme.css index cbc0cc1..10690bd 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/css/theme.css +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/css/theme.css @@ -15,34 +15,112 @@ app { min-height: 100vh; } -.ant-design-header-top { - background-color: #001529; +.lsw-pro-theme { + --lsw-primary-color: #1677ff; + --lsw-bg: #f5f7fb; + --lsw-panel-bg: #ffffff; + --lsw-elevated-bg: #ffffff; + --lsw-input-bg: #ffffff; + --lsw-overlay-bg: #ffffff; + --lsw-text: #1f2329; + --lsw-text-secondary: #5d6773; + --lsw-border: #d9e0e7; + --lsw-nav-border: #d9e0e7; + --lsw-header-bg: #ffffff; + --lsw-header-text: #1f2329; + --lsw-sider-bg: #ffffff; + --lsw-sider-text: #1f2329; + --lsw-menu-hover-bg: #edf4ff; + --lsw-menu-active-bg: #e1eeff; + --lsw-shadow: 0 8px 24px rgba(15, 23, 42, 0.09); + --lsw-mask-bg: rgba(0, 0, 0, 0.36); + background-color: var(--lsw-bg); + color: var(--lsw-text); } -.ant-design-header-top-light { - background-color: #fff; +.lsw-pro-theme-dark { + --lsw-bg: #f5f7fb; + --lsw-panel-bg: #ffffff; + --lsw-elevated-bg: #ffffff; + --lsw-input-bg: #ffffff; + --lsw-overlay-bg: #ffffff; + --lsw-text: #1f2329; + --lsw-text-secondary: #5d6773; + --lsw-border: #d9e0e7; + --lsw-nav-border: #30343b; + --lsw-header-bg: #202124; + --lsw-header-text: #e8eaed; + --lsw-sider-bg: #202124; + --lsw-sider-text: #e8eaed; + --lsw-menu-hover-bg: rgba(255, 255, 255, 0.08); + --lsw-menu-active-bg: rgba(22, 119, 255, 0.28); + --lsw-shadow: 0 8px 24px rgba(15, 23, 42, 0.09); + --lsw-mask-bg: rgba(0, 0, 0, 0.36); } -.ant-design-header-left { - background-color: white; - box-shadow: 0 -2px 4px; +.lsw-pro-theme-real-dark { + --lsw-bg: #0e1116; + --lsw-panel-bg: #151922; + --lsw-elevated-bg: #1b202a; + --lsw-input-bg: #1b202a; + --lsw-overlay-bg: #151922; + --lsw-text: #e6edf3; + --lsw-text-secondary: #9ba5b2; + --lsw-border: #2a313b; + --lsw-nav-border: #242a34; + --lsw-header-bg: #11161d; + --lsw-header-text: #e6edf3; + --lsw-sider-bg: #11161d; + --lsw-sider-text: #e6edf3; + --lsw-menu-hover-bg: rgba(255, 255, 255, 0.08); + --lsw-menu-active-bg: rgba(22, 119, 255, 0.3); + --lsw-shadow: 0 12px 30px rgba(0, 0, 0, 0.45); + --lsw-mask-bg: rgba(0, 0, 0, 0.55); } -.ant-design-header-left-light { - background-color: #001529; +body.lsw-pro-theme { + background: var(--lsw-bg); + color: var(--lsw-text); } -.ant-design-body-content { - margin: 16px 50px; +body.lsw-pro-theme .ant-layout, +body.lsw-pro-theme .ant-layout-content, +body.lsw-pro-theme .ant-design-layout { + background: var(--lsw-bg); + color: var(--lsw-text); } -.ant-design-footer { - text-align: center; +.lsw-pro-theme .ant-design-content { + background: var(--lsw-bg); + color: var(--lsw-text); +} + +.lsw-pro-theme.ant-layout, +.lsw-pro-theme .ant-layout, +.lsw-pro-theme .ant-layout-content { + background: var(--lsw-bg); + color: var(--lsw-text); +} + +.lsw-pro-theme .ant-design-body-content { + margin: 16px 24px 0; +} + +.lsw-pro-content-fixed .lsw-pro-page-container { + max-width: 1200px; + margin: 0 auto; +} + +.lsw-pro-content-fluid .lsw-pro-page-container { + max-width: none; } .page-content { min-height: 70vh; - background: #fff; + background: var(--lsw-panel-bg); + color: var(--lsw-text); + border-radius: 10px; + box-shadow: var(--lsw-shadow); padding: 24px; margin-top: 8px; } @@ -51,54 +129,121 @@ app { font-size: 20px; font-weight: 600; margin-top: 8px; + color: var(--lsw-text); +} + +.ant-design-row-breadcrumb { + row-gap: 10px; + margin-bottom: 8px; + margin-left: 0 !important; + margin-right: 0 !important; +} + +.ant-design-page-breadcrumb-col, +.ant-design-page-toolbar-col { + min-width: 0; + padding-left: 0 !important; + padding-right: 0 !important; +} + +.ant-design-page-toolbar-row { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + gap: 10px; +} + +.ant-design-page-toolbar-item { + margin: 0; +} + +.ant-design-page-toolbar-item .ant-btn { + white-space: nowrap; + max-width: 100%; +} + +.ant-design-page-toolbar-col { + display: flex; + justify-content: flex-end; +} + +.ant-design-header-top, +.ant-design-header-left { + background: var(--lsw-header-bg); + color: var(--lsw-header-text); + border-bottom: 1px solid var(--lsw-nav-border, var(--lsw-border)); +} + +.ant-design-header-fixed { + position: sticky; + top: 0; + z-index: 1000; + box-shadow: 0 6px 16px rgba(15, 23, 42, 0.08); +} + +.ant-design-header-top-dark, +.ant-design-header-left-dark { + background: var(--lsw-header-bg); + color: var(--lsw-header-text); +} + +.ant-design-header-top-light, +.ant-design-header-left-light { + background: var(--lsw-header-bg); + color: var(--lsw-header-text); } .ant-design-header-left .trigger { font-size: 18px; line-height: 64px; cursor: pointer; - transition: color 0.3s; + color: var(--lsw-header-text); + transition: color 0.2s ease; } .ant-design-header-left .trigger:hover { - color: #1890ff; + color: var(--lsw-primary-color); } -.ant-design-header-left-light .trigger { - color: white; +.lsw-pro-header-trigger-wrapper { + float: left; +} + +.ant-design-side { + background: var(--lsw-sider-bg); + color: var(--lsw-sider-text); + border-right: 1px solid var(--lsw-nav-border, var(--lsw-border)); } .ant-design-side .ant-design-brand { font-size: 18px; font-weight: 600; display: flex; - padding: 16px 16px; + align-items: center; + padding: 16px; cursor: pointer; } .ant-design-side .ant-design-brand a { - display: flex + display: flex; + align-items: center; } - .ant-design-side .ant-design-brand img { display: inline-block; - height: 40px + height: 36px; } .ant-design-side .ant-design-brand h1 { display: inline-block; - color: white; - margin: 0 0 0 15px; + color: var(--lsw-sider-text); + margin: 0 0 0 12px; + line-height: 1.1; } .ant-layout-sider-light .ant-design-brand h1 { - color: #001529; -} - -.ant-design-header-top .ant-design-brand img { - display: inline-block; - height: 35px + color: #111827; } .ant-design-header-top .ant-design-brand { @@ -107,64 +252,842 @@ app { min-width: 170px; } +.ant-design-header-top .ant-design-brand img { + display: inline-block; + height: 34px; +} + .ant-design-header-top .ant-design-brand h1 { display: inline-block; - color: white; - margin: 0 0 0 12px; - font-weight: 400; + color: var(--lsw-header-text); + margin: 0 0 0 10px; + font-weight: 500; font-size: 15px; vertical-align: top; } -.ant-design-header-top-light .ant-design-brand h1 { - color: #001529; -} - .ant-design-header-top .ant-menu-root { - margin-left: 20px; + margin-left: 16px; float: left; } -.abp-application-layout .ant-menu-sub li { - min-width: 120px; +.lsw-pro-theme .ant-design-side .ant-menu, +.lsw-pro-theme .ant-design-header-top .ant-menu, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal { + background: var(--lsw-header-bg) !important; +} + +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal { + border-bottom: none !important; +} + +.lsw-pro-theme .ant-design-header-top, +.lsw-pro-theme .ant-design-header-left { + height: 64px; + line-height: 64px; +} + +.lsw-pro-theme .ant-design-header-top .ant-design-brand { + height: 64px; + display: flex; + align-items: center; +} + +.lsw-pro-theme .ant-design-header-top .ant-menu-root, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal { + height: 64px; + line-height: 64px; +} + +.lsw-pro-theme .ant-design-header-top .ant-row { + height: 64px; + display: flex; + align-items: center; +} + +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu { + color: var(--lsw-header-text); + border-bottom: none !important; + margin-bottom: 0 !important; + height: 64px !important; + line-height: 64px !important; + top: 0 !important; + box-sizing: border-box; + background: transparent !important; +} + +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item::after, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu::after { + display: none !important; + border-bottom: none !important; } -.ant-design-header-left .nav-link { - color: #001529; +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item:hover, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu:hover { + color: var(--lsw-primary-color); } -.ant-design-header-left-light .nav-link { - color: white; +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item-selected { + color: var(--lsw-primary-color) !important; + border-bottom: none !important; + box-shadow: inset 0 -2px 0 var(--lsw-primary-color); + background: transparent !important; } -.ant-design-header-top .nav-link { - color: white; +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu-selected { + color: var(--lsw-primary-color) !important; + border-bottom: none !important; + box-shadow: inset 0 -2px 0 var(--lsw-primary-color); + background: transparent !important; } -.ant-design-header-top-light .nav-link { - color: #001529; +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item:hover, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu:hover, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-item-active, +.lsw-pro-theme .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu-active { + background: transparent !important; + border-bottom: none !important; + box-shadow: none; +} + +.lsw-pro-theme .ant-design-header-top { + border-bottom: 1px solid var(--lsw-nav-border, var(--lsw-border)) !important; + box-shadow: inset 0 -1px 0 var(--lsw-nav-border, var(--lsw-border)); +} + +.lsw-pro-theme .ant-design-side .ant-menu-item, +.lsw-pro-theme .ant-design-side .ant-menu-submenu-title { + color: var(--lsw-sider-text) !important; +} + +.lsw-pro-theme .ant-design-side .ant-menu-item a, +.lsw-pro-theme .ant-design-header-top .ant-menu-item a, +.lsw-pro-theme .ant-design-header-top .ant-menu-submenu-title a { + color: inherit !important; +} + +.lsw-pro-theme .ant-design-side .ant-menu-item:hover, +.lsw-pro-theme .ant-design-side .ant-menu-submenu-title:hover { + background: var(--lsw-menu-hover-bg) !important; +} + +.lsw-pro-theme .ant-design-side .ant-menu-item-selected, +.lsw-pro-theme .ant-design-side .ant-menu-submenu-selected > .ant-menu-submenu-title { + background: var(--lsw-menu-active-bg) !important; + color: var(--lsw-sider-text) !important; +} + +.lsw-pro-theme .ant-menu-submenu-popup .ant-menu { + background: var(--lsw-overlay-bg); + color: var(--lsw-text); + border: 1px solid var(--lsw-border); + box-shadow: var(--lsw-shadow); +} + +.lsw-pro-theme .ant-menu-submenu-popup { + z-index: 1700 !important; +} + +.abp-application-layout .ant-menu-sub li { + min-width: 120px; +} + +.lsw-pro-theme .nav-link, +.lsw-pro-theme .ant-dropdown-link, +.lsw-pro-theme .ant-dropdown-trigger { + color: var(--lsw-header-text); +} + +.lsw-pro-theme .ant-design-header-top .anticon, +.lsw-pro-theme .ant-design-header-left .anticon { + color: var(--lsw-header-text); } .ant-dropdown-link { margin-right: 20px; } -.ant-design-header-left .ant-dropdown-link { - color: #001529; +.ant-design-footer { + text-align: center; + color: var(--lsw-text-secondary); + background: var(--lsw-bg, transparent); + margin-top: 16px; +} + +.ant-design-footer:empty { + display: none; +} + +.lsw-pro-theme .ant-layout-footer, +.lsw-pro-theme .ant-layout-footer.ant-design-footer { + background: var(--lsw-bg) !important; + color: var(--lsw-text-secondary) !important; + border-top: 1px solid var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-btn-primary { + background-color: var(--lsw-primary-color); + border-color: var(--lsw-primary-color); +} + +.lsw-pro-theme .ant-btn-primary, +.lsw-pro-theme .ant-btn-primary > span, +.lsw-pro-theme .ant-btn-primary .anticon, +.lsw-pro-theme .ant-btn-primary a { + color: #ffffff !important; +} + +.lsw-pro-theme .ant-btn-primary:hover, +.lsw-pro-theme .ant-btn-primary:focus { + filter: brightness(0.95); +} + +.lsw-pro-theme .ant-table, +.lsw-pro-theme .ant-card, +.lsw-pro-theme .ant-modal-content, +.lsw-pro-theme .ant-modal-header, +.lsw-pro-theme .ant-modal-body, +.lsw-pro-theme .ant-modal-footer, +.lsw-pro-theme .ant-dropdown-menu, +.lsw-pro-theme .ant-select-dropdown, +.lsw-pro-theme .ant-picker-dropdown .ant-picker-panel-container, +.lsw-pro-theme .ant-cascader-menus { + background: var(--lsw-panel-bg) !important; + color: var(--lsw-text) !important; + border-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-table-thead > tr > th { + background: var(--lsw-elevated-bg) !important; + color: var(--lsw-text) !important; + border-bottom-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-table-tbody > tr > td { + background: var(--lsw-panel-bg) !important; + color: var(--lsw-text) !important; + border-bottom-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-table-tbody > tr.ant-table-row:hover > td { + background: var(--lsw-elevated-bg) !important; +} + +.lsw-pro-theme .ant-modal-header, +.lsw-pro-theme .ant-modal-footer { + border-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-modal-close-x, +.lsw-pro-theme .ant-select-item, +.lsw-pro-theme .ant-picker-cell, +.lsw-pro-theme .ant-picker-header, +.lsw-pro-theme .ant-dropdown-menu-item, +.lsw-pro-theme .ant-dropdown-menu-submenu-title { + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-dropdown-menu-item:hover, +.lsw-pro-theme .ant-dropdown-menu-submenu-title:hover, +.lsw-pro-theme .ant-select-item-option-active:not(.ant-select-item-option-disabled) { + background: var(--lsw-menu-hover-bg) !important; +} + +.lsw-pro-theme .ant-dropdown-menu.ant-dropdown-menu-light, +.lsw-pro-theme .ant-dropdown-menu.ant-dropdown-menu-dark { + background: var(--lsw-overlay-bg) !important; + border: 1px solid var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-dropdown-menu-item-selected, +.lsw-pro-theme .ant-dropdown-menu-submenu-title-selected { + background: var(--lsw-menu-active-bg) !important; + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-select-item-option-selected:not(.ant-select-item-option-disabled) { + background: var(--lsw-menu-active-bg) !important; + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-select-dropdown .ant-select-item-option-content, +.lsw-pro-theme .ant-picker-header button, +.lsw-pro-theme .ant-picker-content th, +.lsw-pro-theme .ant-picker-content td, +.lsw-pro-theme .ant-picker-panel, +.lsw-pro-theme .ant-picker-cell-in-view, +.lsw-pro-theme .ant-empty-description { + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-picker-content th, +.lsw-pro-theme .ant-picker-header, +.lsw-pro-theme .ant-picker-cell, +.lsw-pro-theme .ant-picker-panel-container { + border-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-modal-title, +.lsw-pro-theme .ant-form-item-label > label, +.lsw-pro-theme .ant-typography, +.lsw-pro-theme .ant-descriptions-item-label, +.lsw-pro-theme .ant-descriptions-item-content { + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-form, +.lsw-pro-theme .ant-form label, +.lsw-pro-theme .ant-checkbox-wrapper, +.lsw-pro-theme .ant-radio-wrapper, +.lsw-pro-theme .ant-tabs-tab-btn, +.lsw-pro-theme .ant-tabs-tab, +.lsw-pro-theme .ant-list-item, +.lsw-pro-theme .ant-statistic-title, +.lsw-pro-theme .ant-statistic-content, +.lsw-pro-theme .ant-empty-description { + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-badge-status-text, +.lsw-pro-theme .ant-tag, +.lsw-pro-theme .ant-tabs-tab-btn, +.lsw-pro-theme .ant-select-selection-item, +.lsw-pro-theme .ant-select-selection-placeholder, +.lsw-pro-theme .ant-modal-confirm-title, +.lsw-pro-theme .ant-modal-confirm-content { + color: var(--lsw-text) !important; +} + +body.lsw-pro-theme-real-dark .ant-btn-default, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-btn-default { + background: #1b202a !important; + border-color: #3a4250 !important; + color: var(--lsw-text) !important; +} + +body.lsw-pro-theme-real-dark .ant-btn-default:hover, +body.lsw-pro-theme-real-dark .ant-btn-default:focus, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-btn-default:hover, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-btn-default:focus { + background: #232a36 !important; + border-color: #4a5568 !important; + color: var(--lsw-text) !important; +} + +body.lsw-pro-theme-real-dark .ant-checkbox-inner, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-checkbox-inner { + background-color: #1b202a !important; + border-color: #4a5568 !important; +} + +body.lsw-pro-theme-real-dark .ant-checkbox-checked .ant-checkbox-inner, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-checkbox-checked .ant-checkbox-inner { + background-color: var(--lsw-primary-color) !important; + border-color: var(--lsw-primary-color) !important; +} + +body.lsw-pro-theme-real-dark .ant-checkbox + span, +.lsw-pro-theme.lsw-pro-theme-real-dark .ant-checkbox + span { + color: var(--lsw-text) !important; +} + +.lsw-pro-theme .ant-input, +.lsw-pro-theme .ant-input-affix-wrapper, +.lsw-pro-theme .ant-input-number, +.lsw-pro-theme .ant-input-number-input, +.lsw-pro-theme .ant-select-selector, +.lsw-pro-theme .ant-picker, +.lsw-pro-theme textarea.ant-input { + background: var(--lsw-input-bg) !important; + color: var(--lsw-text) !important; + border-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-select-arrow, +.lsw-pro-theme .ant-picker-suffix, +.lsw-pro-theme .ant-input-password-icon { + color: var(--lsw-text-secondary) !important; +} + +.lsw-pro-theme .ant-input::placeholder, +.lsw-pro-theme textarea.ant-input::placeholder { + color: var(--lsw-text-secondary) !important; +} + +.lsw-pro-theme .ant-pagination-item, +.lsw-pro-theme .ant-pagination-prev .ant-pagination-item-link, +.lsw-pro-theme .ant-pagination-next .ant-pagination-item-link { + background: var(--lsw-elevated-bg) !important; + border-color: var(--lsw-border) !important; +} + +.lsw-pro-theme .ant-pagination-item a, +.lsw-pro-theme .ant-pagination-item-link, +.lsw-pro-theme .ant-pagination-jump-prev .ant-pagination-item-container, +.lsw-pro-theme .ant-pagination-jump-next .ant-pagination-item-container { + color: var(--lsw-text) !important; +} + +.lsw-theme-setting-fab { + position: fixed; + top: 60vh; + right: -24px; + z-index: 1510; + transition: opacity 0.25s ease, transform 0.25s ease, right 0.25s ease; + width: 52px; + height: 52px; + border: none; + border-radius: 10px 0 0 10px; + background: var(--lsw-primary-color, #1677ff); + color: #ffffff; + box-shadow: 0 8px 18px rgba(15, 23, 42, 0.22); + cursor: grab; + display: inline-flex; + align-items: center; + justify-content: flex-start; + padding: 0; + padding-left: 10px; + outline: none; + opacity: 1; + border-top: 1px solid rgba(255, 255, 255, 0.28); + border-left: 1px solid rgba(255, 255, 255, 0.28); + border-bottom: 1px solid rgba(0, 0, 0, 0.08); +} + +.lsw-theme-setting-fab-active { + opacity: 0 !important; + pointer-events: none !important; + transform: translateX(24px); +} + +.lsw-theme-setting-fab-faded:not(.lsw-theme-setting-fab-active) { + opacity: 0.78; +} + +.lsw-theme-setting-fab:active { + cursor: grabbing; +} + +.lsw-theme-setting-fab-handle { + width: 100%; + height: 100%; + display: inline-flex; + align-items: center; + justify-content: center; + pointer-events: none; +} + +.lsw-theme-setting-fab-icon .anticon { + color: #ffffff; + font-size: 19px; +} + +.lsw-theme-setting-mask { + position: fixed; + inset: 0; + background: var(--lsw-mask-bg, rgba(0, 0, 0, 0.36)); + opacity: 0; + pointer-events: none; + transition: opacity 0.2s ease; + z-index: 1490; +} + +.lsw-theme-setting-mask.is-open { + opacity: 1; + pointer-events: auto; +} + +.lsw-pro-mobile-sider-mask { + position: fixed; + inset: 0; + background: var(--lsw-mask-bg, rgba(0, 0, 0, 0.36)); + z-index: 1300; +} + +.lsw-theme-setting-panel { + position: fixed; + top: 0; + right: 0; + height: 100vh; + width: min(360px, calc(100vw - 24px)); + background-color: var(--lsw-overlay-bg, var(--lsw-panel-bg, #ffffff)); + color: var(--lsw-text, #1f2329); + border-left: 1px solid var(--lsw-border, #d9e0e7); + box-shadow: var(--lsw-shadow, 0 8px 24px rgba(15, 23, 42, 0.15)); + transform: translateX(100%); + transition: transform 0.25s ease; + opacity: 1; + z-index: 1500; + display: flex; + flex-direction: column; +} + +.lsw-theme-setting-panel.is-open { + transform: translateX(0); +} + +.lsw-theme-setting-panel-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 18px 20px; + border-bottom: 1px solid var(--lsw-border); +} + +.lsw-theme-setting-panel-header h3 { + margin: 0; + font-size: 22px; + color: var(--lsw-text); +} + +.lsw-theme-setting-close { + border: none; + background: transparent; + color: var(--lsw-text-secondary); + cursor: pointer; +} + +.lsw-theme-setting-panel-body { + overflow: auto; + padding: 18px 20px 24px; +} + +.lsw-theme-setting-section { + border-bottom: 1px solid var(--lsw-border); + padding: 16px 0; +} + +.lsw-theme-setting-section:last-child { + border-bottom: none; +} + +.lsw-theme-setting-section h4 { + margin: 0 0 14px; + font-size: 18px; + color: var(--lsw-text); +} + +.lsw-theme-style-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 10px; +} + +.lsw-theme-style-grid-nav { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.lsw-theme-style-option { + border: 1px solid var(--lsw-border); + border-radius: 8px; + background: var(--lsw-elevated-bg); + color: var(--lsw-text); + padding: 8px; + cursor: pointer; +} + +.lsw-theme-style-option.active { + border-color: var(--lsw-primary-color); + box-shadow: 0 0 0 2px rgba(22, 119, 255, 0.15); +} + +.lsw-theme-style-preview { + display: block; + width: 100%; + height: 42px; + border-radius: 6px; + margin-bottom: 8px; + border: none; + box-shadow: inset 0 0 0 1px var(--lsw-border); + overflow: hidden; + background-clip: padding-box; +} + +.lsw-theme-style-label { + font-size: 12px; + color: var(--lsw-text-secondary); +} + +.lsw-theme-preview-light { + background: linear-gradient(90deg, #ffffff 0 38%, #f3f4f6 38% 100%); +} + +.lsw-theme-preview-dark { + background: linear-gradient(90deg, #202124 0 35%, #f3f4f6 35% 100%); +} + +.lsw-theme-preview-real-dark { + background: linear-gradient(90deg, #11161d 0 38%, #151922 38% 100%); +} + +.lsw-theme-preview-nav-side { + background: linear-gradient(90deg, #202124 0 34%, #ffffff 34% 100%); } -.ant-design-header-top .ant-dropdown-trigger { - color: white; +.lsw-theme-preview-nav-top { + background: linear-gradient(180deg, #202124 0 28%, #ffffff 28% 100%); } -.ant-design-header-top-light .ant-dropdown-trigger{ - color: #001529; +.lsw-theme-setting-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 14px; + margin-bottom: 14px; + color: var(--lsw-text); +} + +.lsw-theme-setting-item:last-child { + margin-bottom: 0; +} + +.lsw-theme-setting-select { + width: 132px; + border: 1px solid var(--lsw-border); + border-radius: 6px; + padding: 6px 8px; + background: var(--lsw-elevated-bg); + color: var(--lsw-text); +} + +.lsw-theme-setting-switch { + position: relative; + display: inline-flex; + width: 44px; + height: 24px; +} + +.lsw-theme-setting-switch input { + opacity: 0; + width: 0; + height: 0; +} + +.lsw-theme-setting-switch span { + position: absolute; + inset: 0; + border-radius: 999px; + background: #bfbfbf; + transition: background 0.2s ease; +} + +.lsw-theme-setting-switch span::before { + content: ""; + position: absolute; + width: 18px; + height: 18px; + left: 3px; + top: 3px; + border-radius: 50%; + background: #ffffff; + transition: transform 0.2s ease; +} + +.lsw-theme-setting-switch input:checked + span { + background: var(--lsw-primary-color); +} + +.lsw-theme-setting-switch input:checked + span::before { + transform: translateX(20px); +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav { + flex: 0 0 280px; + max-width: 280px; + min-width: 240px; + margin-right: 18px; +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-content-holder { + min-width: 0; + overflow-x: hidden; +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav .ant-tabs-tab { + padding: 12px 16px; + margin: 0 0 8px; + border-radius: 8px; +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-btn { + white-space: normal; + line-height: 1.35; + word-break: break-word; +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active { + background: var(--lsw-menu-hover-bg); +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav .ant-tabs-tab-active .ant-tabs-tab-btn { + color: var(--lsw-primary-color) !important; + font-weight: 600; +} + +.lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav .ant-tabs-ink-bar { + width: 4px !important; + border-radius: 4px; +} + +.lsw-setting-management-page, +.lsw-setting-management-page .ant-tabs, +.lsw-setting-management-page .ant-tabs-content, +.lsw-setting-management-page .ant-tabs-tabpane { + min-width: 0; +} + +.lsw-setting-management-page { + overflow-x: hidden; } -.ant-design-header-top-light .ant-dropdown-trigger{ - color: #001529; +.lsw-setting-management-mobile-selector { + display: none; + margin-bottom: 12px; } -.ant-design-header-left-light .ant-dropdown-trigger{ - color: white; +.lsw-setting-management-mobile-selector .ant-select { + width: 100%; +} + +.lsw-pro-theme .lsw-setting-management-page h4 { + color: var(--lsw-text) !important; + font-weight: 600; +} + +.lsw-pro-theme .lsw-setting-management-page .ant-divider { + border-color: var(--lsw-border) !important; +} + +.lsw-theme-settings-management-root { + margin-bottom: 16px; +} + +.lsw-theme-settings-management-children { + margin-top: 14px; + margin-left: 28px; + display: flex; + flex-direction: column; + gap: 12px; +} + +.lsw-theme-settings-management-item { + line-height: 1.35; +} + +.lsw-theme-settings-management-actions { + margin-top: 24px; +} + +@media (max-width: 992px) { + .lsw-pro-theme .ant-design-body-content { + margin: 12px; + } + + .lsw-pro-theme.lsw-pro-nav-side > .ant-design-layout.ant-layout { + min-width: 0; + } + + .lsw-pro-side-mobile { + box-shadow: 10px 0 24px rgba(15, 23, 42, 0.26); + } + + .lsw-pro-theme.lsw-pro-nav-side > .ant-layout-sider + .ant-layout.ant-design-layout { + margin-left: 64px; + width: calc(100% - 64px); + min-width: 0; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top { + display: flex; + align-items: center; + gap: 8px; + padding: 0 10px; + overflow: hidden; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-design-brand { + float: none; + min-width: auto; + flex: 0 0 auto; + margin-right: 2px; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-menu-root { + float: none; + margin-left: 0; + flex: 1 1 auto; + min-width: 0; + overflow-x: auto; + overflow-y: visible; + -webkit-overflow-scrolling: touch; + scrollbar-width: thin; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-menu-horizontal { + display: flex; + flex-wrap: nowrap; + min-width: max-content; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-row { + flex: 0 0 auto; + margin-left: 8px; + } + + .ant-design-row-breadcrumb .ant-design-breadcrumb { + overflow-x: auto; + white-space: nowrap; + padding-bottom: 2px; + } + + .lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav { + flex: 0 0 220px; + max-width: 220px; + min-width: 200px; + margin-right: 14px; + } + + .lsw-theme-settings-management-children { + margin-left: 18px; + gap: 14px; + } + + .lsw-theme-setting-panel { + width: min(340px, calc(100vw - 12px)); + } +} + +@media (max-width: 768px) { + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-design-brand h1 { + display: none; + } + + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-menu-horizontal > .ant-menu-item, + .lsw-pro-theme.lsw-pro-nav-top .ant-design-header-top .ant-menu-horizontal > .ant-menu-submenu { + padding-left: 10px !important; + padding-right: 10px !important; + } + + .ant-design-row-breadcrumb > .ant-design-page-breadcrumb-col, + .ant-design-row-breadcrumb > .ant-design-page-toolbar-col { + flex: 0 0 100%; + max-width: 100%; + } + + .ant-design-row-breadcrumb .ant-design-page-toolbar-row { + justify-content: flex-end; + } + + .lsw-setting-management-page .ant-tabs-left { + flex-direction: row; + } + + .lsw-setting-management-page .ant-tabs-left > .ant-tabs-nav { + display: none; + } + + .lsw-setting-management-mobile-selector { + display: block; + } } diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/js/theme-settings.js b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/js/theme-settings.js new file mode 100644 index 0000000..0beb5f9 --- /dev/null +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/wwwroot/libs/abp/js/theme-settings.js @@ -0,0 +1,200 @@ +(function () { + if (!window.lswAntDesignThemeSettings) { + window.lswAntDesignThemeSettings = {}; + } + + const registry = {}; + const themeClasses = [ + "lsw-pro-theme", + "lsw-pro-theme-light", + "lsw-pro-theme-dark", + "lsw-pro-theme-real-dark", + "colorWeak" + ]; + + function clamp(value, min, max) { + return Math.min(Math.max(value, min), max); + } + + function clearFadeTimer(state) { + if (state.fadeTimer) { + window.clearTimeout(state.fadeTimer); + state.fadeTimer = null; + } + } + + function scheduleFade(state) { + clearFadeTimer(state); + state.fadeTimer = window.setTimeout(() => { + if (!state.host.classList.contains("lsw-theme-setting-fab-active")) { + state.host.classList.add("lsw-theme-setting-fab-faded"); + } + }, 1200); + } + + function snapToRight(state, keepTop) { + const host = state.host; + const rect = host.getBoundingClientRect(); + const width = rect.width || 48; + const top = keepTop ? rect.top : window.innerHeight * 0.6; + const clampedTop = clamp(top, 24, window.innerHeight - rect.height - 24); + + host.style.left = ""; + host.style.right = `${Math.round(-width / 2)}px`; + host.style.top = `${Math.round(clampedTop)}px`; + } + + function initialize(id) { + const host = document.getElementById(id); + if (!host || registry[id]) { + return; + } + + const handle = host; + + const state = { + host: host, + pointerId: null, + startX: 0, + startY: 0, + originX: 0, + originY: 0, + moved: false, + fadeTimer: null + }; + + const onPointerDown = function (evt) { + state.pointerId = evt.pointerId; + state.startX = evt.clientX; + state.startY = evt.clientY; + const rect = host.getBoundingClientRect(); + state.originX = rect.left; + state.originY = rect.top; + state.moved = false; + host.classList.remove("lsw-theme-setting-fab-faded"); + clearFadeTimer(state); + handle.setPointerCapture(evt.pointerId); + }; + + const onPointerMove = function (evt) { + if (state.pointerId !== evt.pointerId) { + return; + } + + const dx = evt.clientX - state.startX; + const dy = evt.clientY - state.startY; + if (Math.abs(dx) > 3 || Math.abs(dy) > 3) { + state.moved = true; + } + + if (!state.moved) { + return; + } + + const rect = host.getBoundingClientRect(); + const nextLeft = clamp(state.originX + dx, 0, window.innerWidth - rect.width); + const nextTop = clamp(state.originY + dy, 24, window.innerHeight - rect.height - 24); + + host.style.right = ""; + host.style.left = `${Math.round(nextLeft)}px`; + host.style.top = `${Math.round(nextTop)}px`; + }; + + const onPointerUp = function (evt) { + if (state.pointerId !== evt.pointerId) { + return; + } + + state.pointerId = null; + if (state.moved) { + snapToRight(state, true); + } + scheduleFade(state); + }; + + const onMouseEnter = function () { + host.classList.remove("lsw-theme-setting-fab-faded"); + clearFadeTimer(state); + }; + + const onMouseLeave = function () { + scheduleFade(state); + }; + + const onWindowBlur = function () { + if (!host.classList.contains("lsw-theme-setting-fab-active")) { + host.classList.add("lsw-theme-setting-fab-faded"); + } + }; + + const onWindowFocus = function () { + host.classList.remove("lsw-theme-setting-fab-faded"); + }; + + handle.addEventListener("pointerdown", onPointerDown); + handle.addEventListener("pointermove", onPointerMove); + handle.addEventListener("pointerup", onPointerUp); + handle.addEventListener("pointercancel", onPointerUp); + host.addEventListener("mouseenter", onMouseEnter); + host.addEventListener("mouseleave", onMouseLeave); + window.addEventListener("blur", onWindowBlur); + window.addEventListener("focus", onWindowFocus); + + registry[id] = { + state: state, + onPointerDown: onPointerDown, + onPointerMove: onPointerMove, + onPointerUp: onPointerUp, + onMouseEnter: onMouseEnter, + onMouseLeave: onMouseLeave, + onWindowBlur: onWindowBlur, + onWindowFocus: onWindowFocus + }; + + snapToRight(state, false); + scheduleFade(state); + } + + function dispose(id) { + const entry = registry[id]; + if (!entry) { + return; + } + + const host = entry.state.host; + const handle = host; + + if (handle) { + handle.removeEventListener("pointerdown", entry.onPointerDown); + handle.removeEventListener("pointermove", entry.onPointerMove); + handle.removeEventListener("pointerup", entry.onPointerUp); + handle.removeEventListener("pointercancel", entry.onPointerUp); + } + + host.removeEventListener("mouseenter", entry.onMouseEnter); + host.removeEventListener("mouseleave", entry.onMouseLeave); + window.removeEventListener("blur", entry.onWindowBlur); + window.removeEventListener("focus", entry.onWindowFocus); + clearFadeTimer(entry.state); + delete registry[id]; + } + + function applyThemeClass(themeClass) { + const body = document.body; + if (!body) { + return; + } + + themeClasses.forEach((name) => body.classList.remove(name)); + if (themeClass && typeof themeClass === "string") { + themeClass.split(" ") + .map((item) => item.trim()) + .filter((item) => item.length > 0) + .forEach((item) => body.classList.add(item)); + } + } + + window.lswAntDesignThemeSettings.initialize = initialize; + window.lswAntDesignThemeSettings.dispose = dispose; + window.lswAntDesignThemeSettings.applyThemeClass = applyThemeClass; +})(); diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling/BlazorWebAssemblyAntDesignThemeScriptContributor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling/BlazorWebAssemblyAntDesignThemeScriptContributor.cs index 64cd2f8..20ed97b 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling/BlazorWebAssemblyAntDesignThemeScriptContributor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling/BlazorWebAssemblyAntDesignThemeScriptContributor.cs @@ -8,5 +8,6 @@ public class BlazorWebAssemblyAntDesignThemeScriptContributor: BundleContributor public override void ConfigureBundle(BundleConfigurationContext context) { context.Files.AddIfNotContains("_content/AntDesign/js/ant-design-blazor.js"); + context.Files.AddIfNotContains("_content/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/libs/abp/js/theme-settings.js"); } -} \ No newline at end of file +} diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/ComponentsComponentsBundleContributor.cs b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/ComponentsComponentsBundleContributor.cs index fa39885..45188ac 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/ComponentsComponentsBundleContributor.cs +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/ComponentsComponentsBundleContributor.cs @@ -10,6 +10,7 @@ public class ComponentsComponentsBundleContributor : IBundleContributor context.Add("_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/abp.js"); context.Add("_content/Volo.Abp.AspNetCore.Components.Web/libs/abp/js/lang-utils.js"); context.Add("_content/AntDesign/js/ant-design-blazor.js"); + context.Add("_content/Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme/libs/abp/js/theme-settings.js"); } public void AddStyles(BundleContext context) diff --git a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor index a9a5aeb..69fc484 100644 --- a/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor +++ b/modules/AntDesignTheme/Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme/Themes/AntDesignTheme/LanguageSwitch.razor @@ -20,7 +20,7 @@ - @_currentLanguage.DisplayName + @_currentLanguage.DisplayName diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/AbpAntDesignThemeManagementApplicationContractsModule.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/AbpAntDesignThemeManagementApplicationContractsModule.cs new file mode 100644 index 0000000..0eec4e0 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/AbpAntDesignThemeManagementApplicationContractsModule.cs @@ -0,0 +1,31 @@ +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Lsw.Abp.AntDesignThemeManagement.Settings; +using Volo.Abp.Authorization; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement; +using Volo.Abp.VirtualFileSystem; + +namespace Lsw.Abp.AntDesignThemeManagement; + +[DependsOn( + typeof(AbpAuthorizationModule), + typeof(AbpSettingManagementApplicationContractsModule) +)] +public class AbpAntDesignThemeManagementApplicationContractsModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Add("en") + .AddVirtualJson("/Localization/Resources/AntDesignThemeManagement"); + }); + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/AntDesignThemePreferenceDto.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/AntDesignThemePreferenceDto.cs new file mode 100644 index 0000000..6e7f825 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/AntDesignThemePreferenceDto.cs @@ -0,0 +1,22 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Dtos; + +public class AntDesignThemePreferenceDto +{ + public bool ThemeSettingsEnabled { get; set; } + public bool PageStyleSettingEnabled { get; set; } + public bool NavigationModeSettingEnabled { get; set; } + public bool RegionalSettingsEnabled { get; set; } + public bool OtherSettingsEnabled { get; set; } + + public string ThemeStyle { get; set; } = string.Empty; + public string NavigationMode { get; set; } = string.Empty; + public string ContentWidth { get; set; } = string.Empty; + public bool FixedHeader { get; set; } + public bool FixSiderbar { get; set; } + public bool SplitMenus { get; set; } + public bool ShowHeader { get; set; } + public bool ShowFooter { get; set; } + public bool ShowMenu { get; set; } + public bool ShowMenuHeader { get; set; } + public bool ColorWeak { get; set; } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemePreferenceDto.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemePreferenceDto.cs new file mode 100644 index 0000000..a32687c --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemePreferenceDto.cs @@ -0,0 +1,16 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Dtos; + +public class UpdateAntDesignThemePreferenceDto +{ + public string ThemeStyle { get; set; } = string.Empty; + public string NavigationMode { get; set; } = string.Empty; + public string ContentWidth { get; set; } = string.Empty; + public bool FixedHeader { get; set; } + public bool FixSiderbar { get; set; } + public bool SplitMenus { get; set; } + public bool ShowHeader { get; set; } + public bool ShowFooter { get; set; } + public bool ShowMenu { get; set; } + public bool ShowMenuHeader { get; set; } + public bool ColorWeak { get; set; } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemeSettingsAvailabilityDto.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemeSettingsAvailabilityDto.cs new file mode 100644 index 0000000..652d6f9 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Dtos/UpdateAntDesignThemeSettingsAvailabilityDto.cs @@ -0,0 +1,10 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Dtos; + +public class UpdateAntDesignThemeSettingsAvailabilityDto +{ + public bool ThemeSettingsEnabled { get; set; } + public bool PageStyleSettingEnabled { get; set; } + public bool NavigationModeSettingEnabled { get; set; } + public bool RegionalSettingsEnabled { get; set; } + public bool OtherSettingsEnabled { get; set; } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/FodyWeavers.xml b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/FodyWeavers.xml new file mode 100644 index 0000000..7e9f94e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/IAntDesignThemePreferenceAppService.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/IAntDesignThemePreferenceAppService.cs new file mode 100644 index 0000000..209763b --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/IAntDesignThemePreferenceAppService.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Volo.Abp.Application.Services; + +namespace Lsw.Abp.AntDesignThemeManagement; + +public interface IAntDesignThemePreferenceAppService : IApplicationService +{ + Task GetAsync(); + + Task UpdateAsync(UpdateAntDesignThemePreferenceDto input); + + Task UpdateThemeSettingsAvailabilityAsync(UpdateAntDesignThemeSettingsAvailabilityDto input); + + Task SetThemeSettingsEnabledAsync(bool isEnabled); +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/AntDesignThemeManagementResource.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/AntDesignThemeManagementResource.cs new file mode 100644 index 0000000..cc84488 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/AntDesignThemeManagementResource.cs @@ -0,0 +1,8 @@ +using Volo.Abp.Localization; + +namespace Lsw.Abp.AntDesignThemeManagement.Localization; + +[LocalizationResourceName("AntDesignThemeManagement")] +public class AntDesignThemeManagementResource +{ +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/en.json b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/en.json new file mode 100644 index 0000000..0fdc40c --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/en.json @@ -0,0 +1,48 @@ +{ + "culture": "en", + "texts": { + "Permission:AntDesignThemeManagement": "Ant Design theme management", + "Permission:AntDesignThemeManagement.Settings": "Manage theme settings switch", + "ThemeSettings": "Theme settings", + "PageStyleSetting": "Page style setting", + "NavigationMode": "Navigation mode", + "ContentWidth": "Content width", + "FixedHeader": "Fixed header", + "WorksOnSideMenuLayout": "Works on side menu layout", + "SplitMenus": "Split menus", + "RegionalSettings": "Regional settings", + "Header": "Header", + "Footer": "Footer", + "Menu": "Menu", + "MenuHeader": "Menu header", + "OtherSettings": "Other settings", + "WeakMode": "Weak mode", + "Light": "Light", + "Dark": "Menu dark", + "RealDark": "Real dark", + "Side": "Side", + "Top": "Top", + "Mix": "Mix", + "Fluid": "Fluid", + "Fixed": "Fixed", + "Submit": "Submit", + "Menu:ThemeSettingsManagement": "Theme settings management", + "SavedSuccessfully": "Saved successfully.", + "Settings:EnableThemeSettings": "Enable theme settings", + "Settings:PageStyleSetting": "Page style setting", + "Settings:NavigationModeSetting": "Navigation mode", + "Settings:RegionalSettings": "Regional settings", + "Settings:OtherSettings": "Other settings", + "Settings:ThemeStyle": "Theme style", + "Settings:NavigationMode": "Navigation mode", + "Settings:ContentWidth": "Content width", + "Settings:FixedHeader": "Fixed header", + "Settings:FixSiderbar": "Fix siderbar", + "Settings:SplitMenus": "Split menus", + "Settings:ShowHeader": "Show header", + "Settings:ShowFooter": "Show footer", + "Settings:ShowMenu": "Show menu", + "Settings:ShowMenuHeader": "Show menu header", + "Settings:ColorWeak": "Weak mode" + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/zh-Hans.json b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/zh-Hans.json new file mode 100644 index 0000000..78254c2 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Localization/Resources/AntDesignThemeManagement/zh-Hans.json @@ -0,0 +1,48 @@ +{ + "culture": "zh-Hans", + "texts": { + "Permission:AntDesignThemeManagement": "AntDesign 主题管理", + "Permission:AntDesignThemeManagement.Settings": "管理主题设置开关", + "ThemeSettings": "主题设置", + "PageStyleSetting": "页面风格设置", + "NavigationMode": "导航模式", + "ContentWidth": "内容宽度", + "FixedHeader": "固定 Header", + "WorksOnSideMenuLayout": "侧边菜单布局生效", + "SplitMenus": "分割菜单", + "RegionalSettings": "区域设置", + "Header": "页头", + "Footer": "页脚", + "Menu": "菜单", + "MenuHeader": "菜单头", + "OtherSettings": "其他设置", + "WeakMode": "色弱模式", + "Light": "明亮", + "Dark": "菜单深色", + "RealDark": "深邃暗色", + "Side": "侧边", + "Top": "顶部", + "Mix": "混合", + "Fluid": "自适应", + "Fixed": "定宽", + "Submit": "提交", + "Menu:ThemeSettingsManagement": "主题设置管理", + "SavedSuccessfully": "保存成功。", + "Settings:EnableThemeSettings": "启用主题设置", + "Settings:PageStyleSetting": "页面风格设置", + "Settings:NavigationModeSetting": "导航模式", + "Settings:RegionalSettings": "区域设置", + "Settings:OtherSettings": "其他设置", + "Settings:ThemeStyle": "主题风格", + "Settings:NavigationMode": "导航模式", + "Settings:ContentWidth": "内容宽度", + "Settings:FixedHeader": "固定 Header", + "Settings:FixSiderbar": "固定侧边栏", + "Settings:SplitMenus": "分割菜单", + "Settings:ShowHeader": "显示页头", + "Settings:ShowFooter": "显示页脚", + "Settings:ShowMenu": "显示菜单", + "Settings:ShowMenuHeader": "显示菜单头", + "Settings:ColorWeak": "色弱模式" + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Lsw.Abp.AntDesignThemeManagement.Application.Contracts.csproj b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Lsw.Abp.AntDesignThemeManagement.Application.Contracts.csproj new file mode 100644 index 0000000..f1e9ae9 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Lsw.Abp.AntDesignThemeManagement.Application.Contracts.csproj @@ -0,0 +1,22 @@ + + + + + + + net10.0 + true + + + + + + + + + + + + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissionDefinitionProvider.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissionDefinitionProvider.cs new file mode 100644 index 0000000..0606fd2 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissionDefinitionProvider.cs @@ -0,0 +1,26 @@ +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +namespace Lsw.Abp.AntDesignThemeManagement.Permissions; + +public class AntDesignThemeManagementPermissionDefinitionProvider : PermissionDefinitionProvider +{ + public override void Define(IPermissionDefinitionContext context) + { + var group = context.AddGroup( + AntDesignThemeManagementPermissions.GroupName, + L("Permission:AntDesignThemeManagement") + ); + + group.AddPermission( + AntDesignThemeManagementPermissions.Settings, + L("Permission:AntDesignThemeManagement.Settings") + ); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissions.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissions.cs new file mode 100644 index 0000000..566ccdb --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Permissions/AntDesignThemeManagementPermissions.cs @@ -0,0 +1,8 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Permissions; + +public static class AntDesignThemeManagementPermissions +{ + public const string GroupName = "Lsw.AntDesignThemeManagement"; + + public const string Settings = GroupName + ".Settings"; +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingDefinitionProvider.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingDefinitionProvider.cs new file mode 100644 index 0000000..a710f5f --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingDefinitionProvider.cs @@ -0,0 +1,115 @@ +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Volo.Abp.Localization; +using Volo.Abp.Settings; + +namespace Lsw.Abp.AntDesignThemeManagement.Settings; + +public class AntDesignThemeManagementSettingDefinitionProvider : SettingDefinitionProvider +{ + public override void Define(ISettingDefinitionContext context) + { + context.Add( + new SettingDefinition( + AntDesignThemeManagementSettingNames.EnableThemeSettings, + AntDesignThemeSettingDefaults.EnableThemeSettings.ToString().ToLowerInvariant(), + L("Settings:EnableThemeSettings"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.EnablePageStyleSetting, + AntDesignThemeSettingDefaults.EnablePageStyleSetting.ToString().ToLowerInvariant(), + L("Settings:PageStyleSetting"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.EnableNavigationModeSetting, + AntDesignThemeSettingDefaults.EnableNavigationModeSetting.ToString().ToLowerInvariant(), + L("Settings:NavigationModeSetting"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.EnableRegionalSettings, + AntDesignThemeSettingDefaults.EnableRegionalSettings.ToString().ToLowerInvariant(), + L("Settings:RegionalSettings"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.EnableOtherSettings, + AntDesignThemeSettingDefaults.EnableOtherSettings.ToString().ToLowerInvariant(), + L("Settings:OtherSettings"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ThemeStyle, + AntDesignThemeSettingDefaults.ThemeStyle, + L("Settings:ThemeStyle"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.NavigationMode, + AntDesignThemeSettingDefaults.NavigationMode, + L("Settings:NavigationMode"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ContentWidth, + AntDesignThemeSettingDefaults.ContentWidth, + L("Settings:ContentWidth"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.FixedHeader, + AntDesignThemeSettingDefaults.FixedHeader.ToString().ToLowerInvariant(), + L("Settings:FixedHeader"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.FixSiderbar, + AntDesignThemeSettingDefaults.FixSiderbar.ToString().ToLowerInvariant(), + L("Settings:FixSiderbar"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.SplitMenus, + AntDesignThemeSettingDefaults.SplitMenus.ToString().ToLowerInvariant(), + L("Settings:SplitMenus"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ShowHeader, + AntDesignThemeSettingDefaults.ShowHeader.ToString().ToLowerInvariant(), + L("Settings:ShowHeader"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ShowFooter, + AntDesignThemeSettingDefaults.ShowFooter.ToString().ToLowerInvariant(), + L("Settings:ShowFooter"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ShowMenu, + AntDesignThemeSettingDefaults.ShowMenu.ToString().ToLowerInvariant(), + L("Settings:ShowMenu"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ShowMenuHeader, + AntDesignThemeSettingDefaults.ShowMenuHeader.ToString().ToLowerInvariant(), + L("Settings:ShowMenuHeader"), + isVisibleToClients: true + ), + new SettingDefinition( + AntDesignThemeManagementSettingNames.ColorWeak, + AntDesignThemeSettingDefaults.ColorWeak.ToString().ToLowerInvariant(), + L("Settings:ColorWeak"), + isVisibleToClients: true + ) + ); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingNames.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingNames.cs new file mode 100644 index 0000000..3494df7 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeManagementSettingNames.cs @@ -0,0 +1,24 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Settings; + +public static class AntDesignThemeManagementSettingNames +{ + public const string GroupName = "Lsw.AntDesignTheme"; + + public const string EnableThemeSettings = GroupName + ".EnableThemeSettings"; + public const string EnablePageStyleSetting = GroupName + ".Enable.PageStyleSetting"; + public const string EnableNavigationModeSetting = GroupName + ".Enable.NavigationModeSetting"; + public const string EnableRegionalSettings = GroupName + ".Enable.RegionalSettings"; + public const string EnableOtherSettings = GroupName + ".Enable.OtherSettings"; + + public const string ThemeStyle = GroupName + ".ThemeStyle"; + public const string NavigationMode = GroupName + ".NavigationMode"; + public const string ContentWidth = GroupName + ".ContentWidth"; + public const string FixedHeader = GroupName + ".FixedHeader"; + public const string FixSiderbar = GroupName + ".FixSiderbar"; + public const string SplitMenus = GroupName + ".SplitMenus"; + public const string ShowHeader = GroupName + ".Region.Header"; + public const string ShowFooter = GroupName + ".Region.Footer"; + public const string ShowMenu = GroupName + ".Region.Menu"; + public const string ShowMenuHeader = GroupName + ".Region.MenuHeader"; + public const string ColorWeak = GroupName + ".ColorWeak"; +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeSettingDefaults.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeSettingDefaults.cs new file mode 100644 index 0000000..684baae --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application.Contracts/Settings/AntDesignThemeSettingDefaults.cs @@ -0,0 +1,42 @@ +namespace Lsw.Abp.AntDesignThemeManagement.Settings; + +public static class AntDesignThemeSettingDefaults +{ + public const bool EnableThemeSettings = true; + public const bool EnablePageStyleSetting = true; + public const bool EnableNavigationModeSetting = true; + public const bool EnableRegionalSettings = true; + public const bool EnableOtherSettings = true; + + public const string ThemeStyle = ThemeStyles.Light; + public const string NavigationMode = NavigationModes.Side; + public const string ContentWidth = ContentWidths.Fluid; + public const bool FixedHeader = true; + public const bool FixSiderbar = true; + public const bool SplitMenus = false; + public const bool ShowHeader = true; + public const bool ShowFooter = true; + public const bool ShowMenu = true; + public const bool ShowMenuHeader = true; + public const bool ColorWeak = false; +} + +public static class ThemeStyles +{ + public const string Light = "Light"; + public const string Dark = "Dark"; + public const string RealDark = "RealDark"; +} + +public static class NavigationModes +{ + public const string Side = "Side"; + public const string Top = "Top"; + public const string Mix = "Mix"; +} + +public static class ContentWidths +{ + public const string Fluid = "Fluid"; + public const string Fixed = "Fixed"; +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AbpAntDesignThemeManagementApplicationModule.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AbpAntDesignThemeManagementApplicationModule.cs new file mode 100644 index 0000000..4ebcbeb --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AbpAntDesignThemeManagementApplicationModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement; + +namespace Lsw.Abp.AntDesignThemeManagement; + +[DependsOn( + typeof(AbpAntDesignThemeManagementApplicationContractsModule), + typeof(AbpSettingManagementApplicationModule) +)] +public class AbpAntDesignThemeManagementApplicationModule : AbpModule +{ +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AntDesignThemePreferenceAppService.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AntDesignThemePreferenceAppService.cs new file mode 100644 index 0000000..1b6223e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/AntDesignThemePreferenceAppService.cs @@ -0,0 +1,284 @@ +using System; +using System.Threading.Tasks; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Lsw.Abp.AntDesignThemeManagement.Permissions; +using Lsw.Abp.AntDesignThemeManagement.Settings; +using Volo.Abp.Application.Services; +using Volo.Abp.Authorization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.SettingManagement; +using Volo.Abp.Settings; + +namespace Lsw.Abp.AntDesignThemeManagement; + +public class AntDesignThemePreferenceAppService : ApplicationService, IAntDesignThemePreferenceAppService +{ + protected ISettingProvider AbpSettingProvider { get; } + protected ISettingManager AbpSettingManager { get; } + protected IPermissionChecker PermissionChecker { get; } + + public AntDesignThemePreferenceAppService( + ISettingProvider settingProvider, + ISettingManager settingManager, + IPermissionChecker permissionChecker) + { + AbpSettingProvider = settingProvider; + AbpSettingManager = settingManager; + PermissionChecker = permissionChecker; + } + + public virtual async Task GetAsync() + { + var preference = new AntDesignThemePreferenceDto + { + ThemeSettingsEnabled = await GetBoolAsync( + AntDesignThemeManagementSettingNames.EnableThemeSettings, + AntDesignThemeSettingDefaults.EnableThemeSettings), + PageStyleSettingEnabled = await GetBoolAsync( + AntDesignThemeManagementSettingNames.EnablePageStyleSetting, + AntDesignThemeSettingDefaults.EnablePageStyleSetting), + NavigationModeSettingEnabled = await GetBoolAsync( + AntDesignThemeManagementSettingNames.EnableNavigationModeSetting, + AntDesignThemeSettingDefaults.EnableNavigationModeSetting), + RegionalSettingsEnabled = await GetBoolAsync( + AntDesignThemeManagementSettingNames.EnableRegionalSettings, + AntDesignThemeSettingDefaults.EnableRegionalSettings), + OtherSettingsEnabled = await GetBoolAsync( + AntDesignThemeManagementSettingNames.EnableOtherSettings, + AntDesignThemeSettingDefaults.EnableOtherSettings), + ThemeStyle = await GetThemeStyleAsync(), + NavigationMode = await GetNavigationModeAsync(), + ContentWidth = await GetContentWidthAsync(), + FixedHeader = await GetBoolAsync( + AntDesignThemeManagementSettingNames.FixedHeader, + AntDesignThemeSettingDefaults.FixedHeader), + FixSiderbar = await GetBoolAsync( + AntDesignThemeManagementSettingNames.FixSiderbar, + AntDesignThemeSettingDefaults.FixSiderbar), + SplitMenus = await GetBoolAsync( + AntDesignThemeManagementSettingNames.SplitMenus, + AntDesignThemeSettingDefaults.SplitMenus), + ShowHeader = await GetBoolAsync( + AntDesignThemeManagementSettingNames.ShowHeader, + AntDesignThemeSettingDefaults.ShowHeader), + ShowFooter = await GetBoolAsync( + AntDesignThemeManagementSettingNames.ShowFooter, + AntDesignThemeSettingDefaults.ShowFooter), + ShowMenu = await GetBoolAsync( + AntDesignThemeManagementSettingNames.ShowMenu, + AntDesignThemeSettingDefaults.ShowMenu), + ShowMenuHeader = await GetBoolAsync( + AntDesignThemeManagementSettingNames.ShowMenuHeader, + AntDesignThemeSettingDefaults.ShowMenuHeader), + ColorWeak = await GetBoolAsync( + AntDesignThemeManagementSettingNames.ColorWeak, + AntDesignThemeSettingDefaults.ColorWeak) + }; + + NormalizeThemeSettingsAvailability(preference); + return preference; + } + + public virtual async Task UpdateAsync(UpdateAntDesignThemePreferenceDto input) + { + if (!CurrentUser.IsAuthenticated) + { + throw new AbpAuthorizationException("Current user must be authenticated."); + } + + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ThemeStyle, + NormalizeThemeStyle(input.ThemeStyle)); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.NavigationMode, + NormalizeNavigationMode(input.NavigationMode)); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ContentWidth, + NormalizeContentWidth(input.ContentWidth)); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.FixedHeader, + input.FixedHeader.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.FixSiderbar, + input.FixSiderbar.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.SplitMenus, + input.SplitMenus.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ShowHeader, + input.ShowHeader.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ShowFooter, + input.ShowFooter.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ShowMenu, + input.ShowMenu.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ShowMenuHeader, + input.ShowMenuHeader.ToString().ToLowerInvariant()); + await AbpSettingManager.SetForCurrentUserAsync( + AntDesignThemeManagementSettingNames.ColorWeak, + input.ColorWeak.ToString().ToLowerInvariant()); + } + + public virtual async Task UpdateThemeSettingsAvailabilityAsync(UpdateAntDesignThemeSettingsAvailabilityDto input) + { + if (!await PermissionChecker.IsGrantedAsync(AntDesignThemeManagementPermissions.Settings)) + { + throw new AbpAuthorizationException("Missing permission to update global theme settings."); + } + + var normalized = NormalizeThemeSettingsAvailability(input); + await SetThemeSettingsAvailabilityAsync(normalized); + } + + public virtual async Task SetThemeSettingsEnabledAsync(bool isEnabled) + { + if (!await PermissionChecker.IsGrantedAsync(AntDesignThemeManagementPermissions.Settings)) + { + throw new AbpAuthorizationException("Missing permission to update global theme settings."); + } + + var normalized = isEnabled + ? new ThemeSettingsAvailability(true, true, true, true, true) + : new ThemeSettingsAvailability(false, false, false, false, false); + + await SetThemeSettingsAvailabilityAsync(normalized); + } + + protected virtual async Task GetThemeStyleAsync() + { + var value = await GetStringAsync( + AntDesignThemeManagementSettingNames.ThemeStyle, + AntDesignThemeSettingDefaults.ThemeStyle); + + return NormalizeThemeStyle(value); + } + + protected virtual async Task GetNavigationModeAsync() + { + var value = await GetStringAsync( + AntDesignThemeManagementSettingNames.NavigationMode, + AntDesignThemeSettingDefaults.NavigationMode); + + return NormalizeNavigationMode(value); + } + + protected virtual async Task GetContentWidthAsync() + { + var value = await GetStringAsync( + AntDesignThemeManagementSettingNames.ContentWidth, + AntDesignThemeSettingDefaults.ContentWidth); + + return NormalizeContentWidth(value); + } + + protected virtual async Task GetStringAsync(string name, string defaultValue) + { + var value = await AbpSettingProvider.GetOrNullAsync(name); + return string.IsNullOrWhiteSpace(value) ? defaultValue : value; + } + + protected virtual async Task GetBoolAsync(string name, bool defaultValue) + { + var value = await AbpSettingProvider.GetOrNullAsync(name); + return bool.TryParse(value, out var parsed) ? parsed : defaultValue; + } + + protected virtual void NormalizeThemeSettingsAvailability(AntDesignThemePreferenceDto preference) + { + var hasAnyEnabledSection = preference.PageStyleSettingEnabled + || preference.NavigationModeSettingEnabled + || preference.RegionalSettingsEnabled + || preference.OtherSettingsEnabled; + + preference.ThemeSettingsEnabled = hasAnyEnabledSection; + } + + protected virtual ThemeSettingsAvailability NormalizeThemeSettingsAvailability( + UpdateAntDesignThemeSettingsAvailabilityDto input) + { + if (!input.ThemeSettingsEnabled) + { + return new ThemeSettingsAvailability(false, false, false, false, false); + } + + var hasAnyEnabledSection = input.PageStyleSettingEnabled + || input.NavigationModeSettingEnabled + || input.RegionalSettingsEnabled + || input.OtherSettingsEnabled; + + if (!hasAnyEnabledSection) + { + // Enabling the root switch should turn on all sub-items by default. + return new ThemeSettingsAvailability(true, true, true, true, true); + } + + return new ThemeSettingsAvailability( + true, + input.PageStyleSettingEnabled, + input.NavigationModeSettingEnabled, + input.RegionalSettingsEnabled, + input.OtherSettingsEnabled + ); + } + + protected virtual async Task SetThemeSettingsAvailabilityAsync(ThemeSettingsAvailability availability) + { + await AbpSettingManager.SetGlobalAsync( + AntDesignThemeManagementSettingNames.EnableThemeSettings, + availability.ThemeSettingsEnabled.ToString().ToLowerInvariant()); + await AbpSettingManager.SetGlobalAsync( + AntDesignThemeManagementSettingNames.EnablePageStyleSetting, + availability.PageStyleSettingEnabled.ToString().ToLowerInvariant()); + await AbpSettingManager.SetGlobalAsync( + AntDesignThemeManagementSettingNames.EnableNavigationModeSetting, + availability.NavigationModeSettingEnabled.ToString().ToLowerInvariant()); + await AbpSettingManager.SetGlobalAsync( + AntDesignThemeManagementSettingNames.EnableRegionalSettings, + availability.RegionalSettingsEnabled.ToString().ToLowerInvariant()); + await AbpSettingManager.SetGlobalAsync( + AntDesignThemeManagementSettingNames.EnableOtherSettings, + availability.OtherSettingsEnabled.ToString().ToLowerInvariant()); + } + + protected virtual string NormalizeThemeStyle(string themeStyle) + { + return themeStyle switch + { + ThemeStyles.Light => ThemeStyles.Light, + ThemeStyles.Dark => ThemeStyles.Dark, + ThemeStyles.RealDark => ThemeStyles.RealDark, + _ => AntDesignThemeSettingDefaults.ThemeStyle + }; + } + + protected virtual string NormalizeNavigationMode(string navigationMode) + { + return navigationMode switch + { + NavigationModes.Side => NavigationModes.Side, + NavigationModes.Top => NavigationModes.Top, + NavigationModes.Mix => NavigationModes.Side, + _ => AntDesignThemeSettingDefaults.NavigationMode + }; + } + + protected virtual string NormalizeContentWidth(string contentWidth) + { + return contentWidth switch + { + ContentWidths.Fluid => ContentWidths.Fluid, + ContentWidths.Fixed => ContentWidths.Fixed, + _ => AntDesignThemeSettingDefaults.ContentWidth + }; + } + + protected record ThemeSettingsAvailability( + bool ThemeSettingsEnabled, + bool PageStyleSettingEnabled, + bool NavigationModeSettingEnabled, + bool RegionalSettingsEnabled, + bool OtherSettingsEnabled + ); +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/FodyWeavers.xml b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/FodyWeavers.xml new file mode 100644 index 0000000..7e9f94e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/Lsw.Abp.AntDesignThemeManagement.Application.csproj b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/Lsw.Abp.AntDesignThemeManagement.Application.csproj new file mode 100644 index 0000000..75d960a --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Application/Lsw.Abp.AntDesignThemeManagement.Application.csproj @@ -0,0 +1,18 @@ + + + + + + + net10.0 + + + + + + + + + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/AbpAntDesignThemeManagementBlazorServerModule.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/AbpAntDesignThemeManagementBlazorServerModule.cs new file mode 100644 index 0000000..0bc5bfe --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/AbpAntDesignThemeManagementBlazorServerModule.cs @@ -0,0 +1,14 @@ +using Lsw.Abp.AntDesignThemeManagement.Blazor; +using Lsw.Abp.AspnetCore.Components.Server.AntDesignTheme; +using Volo.Abp.Modularity; + +namespace Lsw.Abp.AntDesignThemeManagement.Blazor.Server; + +[DependsOn( + typeof(AbpAntDesignThemeManagementBlazorModule), + typeof(AbpAntDesignThemeManagementApplicationModule), + typeof(AbpAspNetCoreComponentsServerAntDesignThemeModule) +)] +public class AbpAntDesignThemeManagementBlazorServerModule : AbpModule +{ +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/FodyWeavers.xml b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/FodyWeavers.xml new file mode 100644 index 0000000..7e9f94e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/Lsw.Abp.AntDesignThemeManagement.Blazor.Server.csproj b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/Lsw.Abp.AntDesignThemeManagement.Blazor.Server.csproj new file mode 100644 index 0000000..51205cf --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.Server/Lsw.Abp.AntDesignThemeManagement.Blazor.Server.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/AbpAntDesignThemeManagementBlazorWebAssemblyModule.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/AbpAntDesignThemeManagementBlazorWebAssemblyModule.cs new file mode 100644 index 0000000..da8eaf5 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/AbpAntDesignThemeManagementBlazorWebAssemblyModule.cs @@ -0,0 +1,22 @@ +using Lsw.Abp.AntDesignThemeManagement.Blazor; +using Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Http.Client.IdentityModel.WebAssembly; +using Volo.Abp.Modularity; + +namespace Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly; + +[DependsOn( + typeof(AbpAntDesignThemeManagementBlazorModule), + typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), + typeof(AbpHttpClientIdentityModelWebAssemblyModule) +)] +public class AbpAntDesignThemeManagementBlazorWebAssemblyModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(AbpAntDesignThemeManagementApplicationContractsModule).Assembly); + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/FodyWeavers.xml b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/FodyWeavers.xml new file mode 100644 index 0000000..7e9f94e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly.csproj b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly.csproj new file mode 100644 index 0000000..de581d3 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly/Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly.csproj @@ -0,0 +1,19 @@ + + + + + + + net10.0 + + + + + + + + + + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/AbpAntDesignThemeManagementBlazorModule.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/AbpAntDesignThemeManagementBlazorModule.cs new file mode 100644 index 0000000..11073df --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/AbpAntDesignThemeManagementBlazorModule.cs @@ -0,0 +1,23 @@ +using Lsw.Abp.AntDesignThemeManagement.Blazor.Settings; +using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme; +using Lsw.Abp.SettingManagement.Blazor.AntDesignUI; +using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement.Blazor; + +namespace Lsw.Abp.AntDesignThemeManagement.Blazor; + +[DependsOn( + typeof(AbpAntDesignThemeManagementApplicationContractsModule), + typeof(AbpAspNetCoreComponentsWebAntDesignThemeModule), + typeof(AbpSettingManagementBlazorAntDesignModule) +)] +public class AbpAntDesignThemeManagementBlazorModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Contributors.Add(new AntDesignThemeManagementSettingContributor()); + }); + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/FodyWeavers.xml b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/FodyWeavers.xml new file mode 100644 index 0000000..7e9f94e --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Lsw.Abp.AntDesignThemeManagement.Blazor.csproj b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Lsw.Abp.AntDesignThemeManagement.Blazor.csproj new file mode 100644 index 0000000..26bc1c0 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Lsw.Abp.AntDesignThemeManagement.Blazor.csproj @@ -0,0 +1,16 @@ + + + + + + + net10.0 + + + + + + + + + diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor new file mode 100644 index 0000000..d06a3ba --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor @@ -0,0 +1,36 @@ +@inherits Volo.Abp.AspNetCore.Components.AbpComponentBase +@using AntDesign +@using Lsw.Abp.AntDesignThemeManagement.Localization + +
+ + @L["Settings:EnableThemeSettings"] + +
+
+
+ + @L["Settings:PageStyleSetting"] + +
+
+ + @L["Settings:NavigationModeSetting"] + +
+
+ + @L["Settings:RegionalSettings"] + +
+
+ + @L["Settings:OtherSettings"] + +
+
+
+ +
diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor.cs new file mode 100644 index 0000000..6854d0c --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Pages/SettingManagement/ThemeSettingsManagementGroup/ThemeSettingsManagementGroupViewComponent.razor.cs @@ -0,0 +1,120 @@ +using System; +using System.Threading.Tasks; +using Lsw.Abp.AntDesignThemeManagement.Dtos; +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings; +using Microsoft.AspNetCore.Components; + +namespace Lsw.Abp.AntDesignThemeManagement.Blazor.Pages.SettingManagement.ThemeSettingsManagementGroup; + +public partial class ThemeSettingsManagementGroupViewComponent +{ + [Inject] + protected IAntDesignThemePreferenceAppService AntDesignThemePreferenceAppService { get; set; } = default!; + + [Inject] + protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; } = default!; + + protected bool ThemeSettingsEnabled { get; set; } + protected bool PageStyleSettingEnabled { get; set; } + protected bool NavigationModeSettingEnabled { get; set; } + protected bool RegionalSettingsEnabled { get; set; } + protected bool OtherSettingsEnabled { get; set; } + + public ThemeSettingsManagementGroupViewComponent() + { + LocalizationResource = typeof(AntDesignThemeManagementResource); + } + + protected override async Task OnInitializedAsync() + { + try + { + var preference = await AntDesignThemePreferenceAppService.GetAsync(); + ThemeSettingsEnabled = preference.ThemeSettingsEnabled; + PageStyleSettingEnabled = preference.PageStyleSettingEnabled; + NavigationModeSettingEnabled = preference.NavigationModeSettingEnabled; + RegionalSettingsEnabled = preference.RegionalSettingsEnabled; + OtherSettingsEnabled = preference.OtherSettingsEnabled; + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + protected virtual void OnThemeSettingsEnabledChanged(bool value) + { + ThemeSettingsEnabled = value; + if (!value) + { + SetAllSubItems(false); + return; + } + + SetAllSubItems(true); + } + + protected virtual void OnPageStyleSettingEnabledChanged(bool value) + { + PageStyleSettingEnabled = value; + SyncRootSwitchByChildren(); + } + + protected virtual void OnNavigationModeSettingEnabledChanged(bool value) + { + NavigationModeSettingEnabled = value; + SyncRootSwitchByChildren(); + } + + protected virtual void OnRegionalSettingsEnabledChanged(bool value) + { + RegionalSettingsEnabled = value; + SyncRootSwitchByChildren(); + } + + protected virtual void OnOtherSettingsEnabledChanged(bool value) + { + OtherSettingsEnabled = value; + SyncRootSwitchByChildren(); + } + + protected virtual async Task SaveAsync() + { + try + { + await AntDesignThemePreferenceAppService.UpdateThemeSettingsAvailabilityAsync( + new UpdateAntDesignThemeSettingsAvailabilityDto + { + ThemeSettingsEnabled = ThemeSettingsEnabled, + PageStyleSettingEnabled = PageStyleSettingEnabled, + NavigationModeSettingEnabled = NavigationModeSettingEnabled, + RegionalSettingsEnabled = RegionalSettingsEnabled, + OtherSettingsEnabled = OtherSettingsEnabled + } + ); + await AntDesignSettingsProvider.TriggerSettingChangedAsync(); + await Message.Success(L["SavedSuccessfully"]); + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } + + protected virtual void SetAllSubItems(bool enabled) + { + PageStyleSettingEnabled = enabled; + NavigationModeSettingEnabled = enabled; + RegionalSettingsEnabled = enabled; + OtherSettingsEnabled = enabled; + } + + protected virtual void SyncRootSwitchByChildren() + { + ThemeSettingsEnabled = PageStyleSettingEnabled + || NavigationModeSettingEnabled + || RegionalSettingsEnabled + || OtherSettingsEnabled; + } +} diff --git a/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Settings/AntDesignThemeManagementSettingContributor.cs b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Settings/AntDesignThemeManagementSettingContributor.cs new file mode 100644 index 0000000..e5d18f2 --- /dev/null +++ b/modules/AntDesignThemeManagement/Lsw.Abp.AntDesignThemeManagement.Blazor/Settings/AntDesignThemeManagementSettingContributor.cs @@ -0,0 +1,36 @@ +using System.Threading.Tasks; +using Lsw.Abp.AntDesignThemeManagement.Blazor.Pages.SettingManagement.ThemeSettingsManagementGroup; +using Lsw.Abp.AntDesignThemeManagement.Localization; +using Lsw.Abp.AntDesignThemeManagement.Permissions; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Localization; +using Volo.Abp.SettingManagement.Blazor; + +namespace Lsw.Abp.AntDesignThemeManagement.Blazor.Settings; + +public class AntDesignThemeManagementSettingContributor : ISettingComponentContributor +{ + public virtual async Task ConfigureAsync(SettingComponentCreationContext context) + { + if (!await CheckPermissionsAsync(context)) + { + return; + } + + var l = context.ServiceProvider.GetRequiredService>(); + context.Groups.Add( + new SettingComponentGroup( + "Lsw.AntDesignThemeManagement", + l["Menu:ThemeSettingsManagement"], + typeof(ThemeSettingsManagementGroupViewComponent) + ) + ); + } + + public virtual async Task CheckPermissionsAsync(SettingComponentCreationContext context) + { + var authorizationService = context.ServiceProvider.GetRequiredService(); + return await authorizationService.IsGrantedAsync(AntDesignThemeManagementPermissions.Settings); + } +} diff --git a/modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor b/modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor index c6cc91a..f86ca9d 100644 --- a/modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor +++ b/modules/FeatureManagement/Lsw.Abp.FeatureManagement.Blazor.AntDesignUI/Components/FeatureManagementModal.razor @@ -64,7 +64,7 @@ { @feature.DisplayName diff --git a/modules/PermissionManagement/Lsw.Abp.PermissionManagement.Blazor.AntDesignUI/Components/PermissionManagementModal.razor b/modules/PermissionManagement/Lsw.Abp.PermissionManagement.Blazor.AntDesignUI/Components/PermissionManagementModal.razor index 9edcf53..33e01c2 100644 --- a/modules/PermissionManagement/Lsw.Abp.PermissionManagement.Blazor.AntDesignUI/Components/PermissionManagementModal.razor +++ b/modules/PermissionManagement/Lsw.Abp.PermissionManagement.Blazor.AntDesignUI/Components/PermissionManagementModal.razor @@ -8,7 +8,7 @@ @if (_visible) { var grantAll = _groups.All(x => x.Permissions.All(p => p.IsGranted)); - @L["SelectAllInAllTabs"] + @L["SelectAllInAllTabs"] @if (_groups != null) @@ -21,7 +21,7 @@

@group.DisplayName

@L["SelectAllInThisTab"] @@ -34,7 +34,7 @@
@GetShownName(permission) diff --git a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/AntDesignThemeGroup/AntDesignThemeGroupViewComponent.razor.cs b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/AntDesignThemeGroup/AntDesignThemeGroupViewComponent.razor.cs index 97b6187..ae93a3f 100644 --- a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/AntDesignThemeGroup/AntDesignThemeGroupViewComponent.razor.cs +++ b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/AntDesignThemeGroup/AntDesignThemeGroupViewComponent.razor.cs @@ -50,7 +50,7 @@ public partial class AntDesignThemeGroupViewComponent private async Task UpdateSettingAsync() { - await AntDesignSettingsProvider.TriggerSettingChanged(); + await AntDesignSettingsProvider.TriggerSettingChangedAsync(); await Notify.Success(L["SuccessfullySaved"]); } diff --git a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor index e57266e..59cfbb9 100644 --- a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor +++ b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor @@ -1,9 +1,10 @@ -@page "/setting-management" +@page "/setting-management" +@using AntDesign @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout @using Microsoft.AspNetCore.Authorization @using Microsoft.Extensions.Options @using Volo.Abp.Features -@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout @using Volo.Abp.SettingManagement @attribute [Authorize] @attribute [RequiresFeature(SettingManagementFeatures.Enable)] @@ -12,23 +13,26 @@ -
- +
+
+ +
+ + @foreach (var group in SettingComponentCreationContext.Groups) {

@group.DisplayName

- - @{ - SettingItemRenders.Add(b => - { - b.OpenComponent(0, group.ComponentType); - b.CloseComponent(); - }); - } - @SettingItemRenders.Last() - +
}
diff --git a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor.cs b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor.cs index 372ef6a..454c1c4 100644 --- a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor.cs +++ b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Pages/SettingManagement/SettingManagement.razor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Lsw.Abp.AntDesignUI; using Microsoft.AspNetCore.Components; @@ -25,10 +26,9 @@ public partial class SettingManagement protected SettingManagementComponentOptions Options => _options.Value; - protected List SettingItemRenders { get; set; } = new(); - protected string SelectedGroup { get; set; } protected List BreadcrumbItems = new(); + protected List GroupOptions { get; } = new(); protected override async Task OnInitializedAsync() @@ -41,11 +41,37 @@ public partial class SettingManagement await contributor.ConfigureAsync(SettingComponentCreationContext); } - SettingItemRenders.Clear(); + GroupOptions.Clear(); + foreach (var group in SettingComponentCreationContext.Groups) + { + GroupOptions.Add(new SettingGroupSelectItem + { + Text = group.DisplayName, + Value = GetNormalizedString(group.Id) + }); + } + + if (string.IsNullOrWhiteSpace(SelectedGroup)) + { + SelectedGroup = GroupOptions.FirstOrDefault()?.Value ?? string.Empty; + } } protected virtual string GetNormalizedString(string value) { return value.Replace('.', '_'); } + + protected virtual Task OnSelectedGroupChangedAsync(string value) + { + SelectedGroup = value; + return Task.CompletedTask; + } +} + +public class SettingGroupSelectItem +{ + public string Text { get; set; } = string.Empty; + + public string Value { get; set; } = string.Empty; } diff --git a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Settings/AntDesignSettingDefultPageContributor.cs b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Settings/AntDesignSettingDefultPageContributor.cs index 6d2613a..346e6d7 100644 --- a/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Settings/AntDesignSettingDefultPageContributor.cs +++ b/modules/SettingManagement/Lsw.Abp.SettingManagement.Blazor.AntDesignUI/Settings/AntDesignSettingDefultPageContributor.cs @@ -4,7 +4,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Volo.Abp.Features; using Volo.Abp.MultiTenancy; -using Lsw.Abp.SettingManagement.Blazor.AntDesignUI.Pages.SettingManagement.AntDesignThemeGroup; using Lsw.Abp.SettingManagement.Blazor.AntDesignUI.Pages.SettingManagement.EmailSettingGroup; using Volo.Abp.SettingManagement; using Volo.Abp.SettingManagement.Blazor; @@ -30,13 +29,6 @@ public class AntDesignSettingDefultPageContributor : ISettingComponentContributo ) ); - context.Groups.Add( - new SettingComponentGroup( - AntDesignThemeGroupViewComponent.Name, - "Theme", - typeof(AntDesignThemeGroupViewComponent) - ) - ); } public async Task CheckPermissionsAsync(SettingComponentCreationContext context) diff --git a/samples/WebApp/README.md b/samples/WebApp/README.md index 62e752e..bc3665b 100644 --- a/samples/WebApp/README.md +++ b/samples/WebApp/README.md @@ -1,56 +1,58 @@ -# BookStore +# BookStore WebApp Sample -## About this solution +This sample demonstrates the AntDesign theme in ABP Blazor WebApp auto mode. -This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. Check the [Application Startup Template](https://abp.io/docs/latest/solution-templates/layered-web-application) documentation for more info. +## Prerequisites -### Pre-requirements +- .NET SDK 10.0+ +- Node.js 18 or newer +- MongoDB +- ABP CLI (`dotnet tool install -g Volo.Abp.Cli` if needed) -* [.net10.0+ SDK](https://dotnet.microsoft.com/download/dotnet) -* [Node v18 or 20](https://nodejs.org/en) +## Run -### Configurations +Install front-end libraries: -The solution comes with a default configuration that works out of the box. However, you may consider to change the following configuration before running your solution: - - -### Before running the application - -* Run `abp install-libs` command on your solution folder to install client-side package dependencies. This step is automatically done when you create a new solution, if you didn't especially disabled it. However, you should run it yourself if you have first cloned this solution from your source control, or added a new client-side package dependency to your solution. -* Run `BookStore.DbMigrator` to create the initial database. This step is also automatically done when you create a new solution, if you didn't especially disabled it. This should be done in the first run. It is also needed if a new database migration is added to the solution later. - -#### Generating a Signing Certificate - -In the production environment, you need to use a production signing certificate. ABP Framework sets up signing and encryption certificates in your application and expects an `openiddict.pfx` file in your application. +```bash +abp install-libs +``` -To generate a signing certificate, you can use the following command: +Apply database migrations and seed data: ```bash -dotnet dev-certs https -v -ep openiddict.pfx -p b0859b18-d774-4576-aad2-c49c1a9dc2ef +dotnet run --project .\src\BookStore.DbMigrator\ ``` -> `b0859b18-d774-4576-aad2-c49c1a9dc2ef` is the password of the certificate, you can change it to any password you want. - -It is recommended to use **two** RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. +Start the WebApp host: -For more information, please refer to: [OpenIddict Certificate Configuration](https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios) +```bash +dotnet run --project .\src\BookStore.Blazor\ +``` -> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. +Open `https://localhost:44320`. -### Solution structure +## Default Login -This is a layered monolith application that consists of the following applications: +- Username: `admin` +- Password: `1q2w3E*` -* `BookStore.DbMigrator`: A console application which applies the migrations and also seeds the initial data. It is useful on development as well as on production environment. +## What To Verify +- The application uses the refactored AntDesign Pro-style layout. +- The sidebar is responsive and can collapse on smaller screens. +- Authenticated users can open the floating theme settings panel. +- Theme settings apply immediately without restarting the application. -## Deploying the application +## Theme Settings Management -Deploying an ABP application follows the same process as deploying any .NET or ASP.NET Core application. However, there are important considerations to keep in mind. For detailed guidance, refer to ABP's [deployment documentation](https://abp.io/docs/latest/Deployment/Index). +This sample is configured with `AntDesignThemeManagement`. -### Additional resources +Go to `Administration -> Settings -> Theme settings management` to control which sections appear in the user-facing panel: -You can see the following resources to learn more about your solution and the ABP Framework: +- `Enable theme settings` +- `Page style setting` +- `Navigation mode` +- `Regional settings` +- `Other settings` -* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-1) -* [Application Startup Template](https://abp.io/docs/latest/startup-templates/application/index) +If all child options are disabled, `Enable theme settings` is automatically disabled. diff --git a/samples/WebApp/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj b/samples/WebApp/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj index 670f54f..684c61e 100644 --- a/samples/WebApp/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj +++ b/samples/WebApp/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj @@ -22,6 +22,7 @@ + diff --git a/samples/WebApp/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs b/samples/WebApp/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs index d6f2cf7..3ff3922 100644 --- a/samples/WebApp/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs +++ b/samples/WebApp/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs @@ -14,6 +14,7 @@ using Volo.Abp.Mapperly; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme; +using Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly; using Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI; using Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI; using Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI; @@ -33,6 +34,7 @@ namespace BookStore.Blazor.Client; typeof(AbpIdentityBlazorWebAssemblyAntDesignModule), typeof(AbpTenantManagementBlazorWebAssemblyAntDesignModule), typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), + typeof(AbpAntDesignThemeManagementBlazorWebAssemblyModule), typeof(AbpAutofacWebAssemblyModule), typeof(AbpMapperlyModule), typeof(BookStoreHttpApiClientModule) diff --git a/samples/WebApp/src/BookStore.Blazor/BookStore.Blazor.csproj b/samples/WebApp/src/BookStore.Blazor/BookStore.Blazor.csproj index 2c48fa8..03673b8 100644 --- a/samples/WebApp/src/BookStore.Blazor/BookStore.Blazor.csproj +++ b/samples/WebApp/src/BookStore.Blazor/BookStore.Blazor.csproj @@ -37,6 +37,7 @@ + diff --git a/samples/WebApp/src/BookStore.Blazor/BookStoreBlazorModule.cs b/samples/WebApp/src/BookStore.Blazor/BookStoreBlazorModule.cs index a22f8d1..cdcc209 100644 --- a/samples/WebApp/src/BookStore.Blazor/BookStoreBlazorModule.cs +++ b/samples/WebApp/src/BookStore.Blazor/BookStoreBlazorModule.cs @@ -15,7 +15,7 @@ using BookStore.Blazor.Client.Navigation; using BookStore.MongoDB; using BookStore.Localization; using BookStore.MultiTenancy; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using Microsoft.Extensions.Options; using BookStore.Blazor.Client; using BookStore.Blazor.Components; @@ -45,6 +45,8 @@ using Volo.Abp.Identity; using Volo.Abp.OpenIddict; using Volo.Abp.Account.Web; using Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI; +using Lsw.Abp.AntDesignThemeManagement.Blazor.Server; +using Lsw.Abp.AntDesignThemeManagement; using Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI; namespace BookStore.Blazor; @@ -57,6 +59,7 @@ namespace BookStore.Blazor; typeof(AbpSwashbuckleModule), typeof(AbpIdentityBlazorServerAntDesignModule), typeof(AbpTenantManagementBlazorServerAntDesignModule), + typeof(AbpAntDesignThemeManagementBlazorServerModule), typeof(AbpAccountWebOpenIddictModule), //typeof(AbpAspNetCoreComponentsServerLeptonXLiteThemeModule), typeof(AbpAspNetCoreComponentsServerAntDesignThemeModule), @@ -271,6 +274,7 @@ public class BookStoreBlazorModule : AbpModule Configure(options => { options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); }); } diff --git a/samples/WebApp/src/BookStore.Blazor/package-lock.json b/samples/WebApp/src/BookStore.Blazor/package-lock.json index d671d9a..f286753 100644 --- a/samples/WebApp/src/BookStore.Blazor/package-lock.json +++ b/samples/WebApp/src/BookStore.Blazor/package-lock.json @@ -1,1733 +1,990 @@ { "name": "my-app", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz", - "integrity": "sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==", - "requires": { - "ansi-colors": "^4.1.1", - "extend-object": "^1.0.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "gulp": "^4.0.2", - "merge-stream": "^2.0.0", - "micromatch": "^4.0.2", - "path": "^0.12.7" - } - }, - "@abp/aspnetcore.mvc.ui.theme.basic": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz", - "integrity": "sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==", - "requires": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.1" + "packages": { + "": { + "name": "my-app", + "version": "1.0.0", + "dependencies": { + "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.3.0", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.3.0" } }, - "@abp/aspnetcore.mvc.ui.theme.shared": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz", - "integrity": "sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==", - "requires": { - "@abp/aspnetcore.mvc.ui": "~4.2.1", - "@abp/bootstrap": "~4.2.1", - "@abp/bootstrap-datepicker": "~4.2.1", - "@abp/datatables.net-bs4": "~4.2.1", - "@abp/font-awesome": "~4.2.1", - "@abp/jquery-form": "~4.2.1", - "@abp/jquery-validation-unobtrusive": "~4.2.1", - "@abp/lodash": "~4.2.1", - "@abp/luxon": "~4.2.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.1", - "@abp/select2": "~4.2.1", - "@abp/sweetalert": "~4.2.1", - "@abp/timeago": "~4.2.1", - "@abp/toastr": "~4.2.1" - } - }, - "@abp/bootstrap": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-4.2.1.tgz", - "integrity": "sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==", - "requires": { - "@abp/core": "~4.2.1", - "bootstrap": "^4.5.0", - "bootstrap-v4-rtl": "4.4.1-2" + "node_modules/@abp/aspnetcore.components.server.leptonxlitetheme": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz", + "integrity": "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==", + "dependencies": { + "@abp/aspnetcore.components.server.theming": "~10.3.0" } }, - "@abp/bootstrap-datepicker": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz", - "integrity": "sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==", - "requires": { - "bootstrap-datepicker": "^1.9.0" + "node_modules/@abp/aspnetcore.components.server.theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz", + "integrity": "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==", + "dependencies": { + "@abp/bootstrap": "~10.3.0", + "@abp/font-awesome": "~10.3.0" } }, - "@abp/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/core/-/core-4.2.1.tgz", - "integrity": "sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==", - "requires": { - "@abp/utils": "^4.2.1" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "dependencies": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } }, - "@abp/datatables.net": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-4.2.1.tgz", - "integrity": "sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==", - "requires": { - "@abp/jquery": "~4.2.1", - "datatables.net": "^1.10.21" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "@abp/datatables.net-bs4": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz", - "integrity": "sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==", - "requires": { - "@abp/datatables.net": "~4.2.1", - "datatables.net-bs4": "^1.10.21" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", + "dependencies": { + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "@abp/font-awesome": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-4.2.1.tgz", - "integrity": "sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==", - "requires": { - "@abp/core": "~4.2.1", - "@fortawesome/fontawesome-free": "^5.13.0" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "@abp/jquery": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-4.2.1.tgz", - "integrity": "sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==", - "requires": { - "@abp/core": "~4.2.1", - "jquery": "~3.5.1" - }, - "dependencies": { - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==", + "engines": { + "node": ">=6" } }, - "@abp/jquery-form": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-form/-/jquery-form-4.2.1.tgz", - "integrity": "sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-form": "^4.3.0" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" } }, - "@abp/jquery-validation": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz", - "integrity": "sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-validation": "^1.19.2" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz", + "integrity": "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==", + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.shared": "~10.3.0" } }, - "@abp/jquery-validation-unobtrusive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz", - "integrity": "sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==", - "requires": { - "@abp/jquery-validation": "~4.2.1", - "jquery-validation-unobtrusive": "^3.2.11" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/aspnetcore.mvc.ui": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz", + "integrity": "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==", + "dependencies": { + "ansi-colors": "^4.1.3" } }, - "@abp/lodash": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-4.2.1.tgz", - "integrity": "sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==", - "requires": { - "@abp/core": "~4.2.1", - "lodash": "^4.17.15" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/aspnetcore.mvc.ui.theme.shared": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz", + "integrity": "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==", + "dependencies": { + "@abp/aspnetcore.mvc.ui": "~10.3.0", + "@abp/bootstrap": "~10.3.0", + "@abp/bootstrap-datepicker": "~10.3.0", + "@abp/bootstrap-daterangepicker": "~10.3.0", + "@abp/datatables.net-bs5": "~10.3.0", + "@abp/font-awesome": "~10.3.0", + "@abp/jquery-validation-unobtrusive": "~10.3.0", + "@abp/lodash": "~10.3.0", + "@abp/luxon": "~10.3.0", + "@abp/malihu-custom-scrollbar-plugin": "~10.3.0", + "@abp/moment": "~10.3.0", + "@abp/select2": "~10.3.0", + "@abp/sweetalert2": "~10.3.0", + "@abp/timeago": "~10.3.0" + } + }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "dependencies": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } }, - "@abp/luxon": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-4.2.1.tgz", - "integrity": "sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==", - "requires": { - "@abp/core": "~4.2.1", - "luxon": "^1.24.1" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/bootstrap-datepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz", + "integrity": "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==", + "dependencies": { + "bootstrap-datepicker": "^1.10.1" } }, - "@abp/malihu-custom-scrollbar-plugin": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz", - "integrity": "sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==", - "requires": { - "@abp/core": "~4.2.1", - "malihu-custom-scrollbar-plugin": "^3.1.5" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "@abp/select2": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-4.2.1.tgz", - "integrity": "sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==", - "requires": { - "@abp/core": "~4.2.1", - "select2": "^4.0.13" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", + "dependencies": { + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "@abp/sweetalert": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/sweetalert/-/sweetalert-4.2.1.tgz", - "integrity": "sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==", - "requires": { - "@abp/core": "~4.2.1", - "sweetalert": "^2.1.2" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "dependencies": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "@abp/timeago": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-4.2.1.tgz", - "integrity": "sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==", - "requires": { - "@abp/jquery": "~4.2.1", - "timeago": "^1.6.7" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery-validation": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz", + "integrity": "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "jquery-validation": "^1.21.0" } }, - "@abp/toastr": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/toastr/-/toastr-4.2.1.tgz", - "integrity": "sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==", - "requires": { - "@abp/jquery": "~4.2.1", - "toastr": "^2.1.4" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery-validation-unobtrusive": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz", + "integrity": "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==", + "dependencies": { + "@abp/jquery-validation": "~10.3.0", + "jquery-validation-unobtrusive": "^4.0.0" } }, - "@abp/utils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-4.2.1.tgz", - "integrity": "sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==", - "requires": { - "just-compare": "^1.3.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/lodash": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz", + "integrity": "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==", + "dependencies": { + "@abp/core": "~10.3.0", + "lodash": "^4.17.21" } }, - "@fortawesome/fontawesome-free": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz", - "integrity": "sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA==" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/luxon": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz", + "integrity": "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==", + "dependencies": { + "@abp/core": "~10.3.0", + "luxon": "^3.7.2" + } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/malihu-custom-scrollbar-plugin": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz", + "integrity": "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==", + "dependencies": { + "@abp/core": "~10.3.0", + "malihu-custom-scrollbar-plugin": "^3.1.5" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/select2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz", + "integrity": "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==", + "dependencies": { + "@abp/core": "~10.3.0", + "select2": "^4.0.13" + } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/timeago": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz", + "integrity": "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "timeago": "^1.6.7" + } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "just-compare": "^2.3.0" } }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==", + "engines": { + "node": ">=6" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } }, - "arr-diff": { + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/jquery-validation-unobtrusive": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" + "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz", + "integrity": "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==", + "dependencies": { + "jquery": "^3.6.0", + "jquery-validation": ">=1.19" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "engines": { + "node": ">=12" } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, + "node_modules/@abp/bootstrap-daterangepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz", + "integrity": "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } + "@abp/moment": "~10.3.0", + "bootstrap-daterangepicker": "^3.1.0" } }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, + "node_modules/@abp/datatables.net-bs5": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz", + "integrity": "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } + "@abp/datatables.net": "~10.3.0", + "datatables.net-bs5": "^2.3.4" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "@abp/utils": "~10.3.0" } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/datatables.net": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz", + "integrity": "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "datatables.net": "^2.3.4" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "dependencies": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "just-compare": "^2.3.0" } }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" + "node_modules/@abp/datatables.net-bs5/node_modules/datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", + "dependencies": { + "jquery": ">=1.7" } }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" + "node_modules/@abp/datatables.net-bs5/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "bootstrap-datepicker": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz", - "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==", - "requires": { - "jquery": ">=1.7.1 <4.0.0" + "node_modules/@abp/moment": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz", + "integrity": "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==", + "dependencies": { + "moment": "^2.30.1" } }, - "bootstrap-v4-rtl": { - "version": "4.4.1-2", - "resolved": "https://registry.npmjs.org/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.4.1-2.tgz", - "integrity": "sha512-x9jZLEQzeOlkfxnR73aE/LjTD6hlqU6BbKVKdGasDByEP7dHBaxYaDGX54pfpHTom2QFqQ3t6y0WkDZW6DrQhw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@abp/popper.js": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz", + "integrity": "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==", + "dependencies": { + "@abp/core": "~10.3.0", + "@popperjs/core": "^2.11.8" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, + "node_modules/@abp/popper.js/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "@abp/utils": "~10.3.0" } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "node_modules/@abp/popper.js/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "node_modules/@abp/popper.js/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, + "node_modules/@abp/sweetalert2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz", + "integrity": "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "@abp/core": "~10.3.0", + "sweetalert2": "^11.23.0" } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "node_modules/@abp/sweetalert2/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "node_modules/@abp/sweetalert2/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "node_modules/@abp/sweetalert2/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/bootstrap-datepicker": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz", + "integrity": "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==", + "dependencies": { + "jquery": ">=3.4.0 <4.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "node_modules/bootstrap-daterangepicker": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz", + "integrity": "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==", + "dependencies": { + "jquery": ">=1.10", + "moment": "^2.9.0" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "node_modules/datatables.net-bs5": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz", + "integrity": "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==", + "dependencies": { + "datatables.net": "2.3.8", + "jquery": ">=1.7" } }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" + "node_modules/datatables.net-bs5/node_modules/datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", + "dependencies": { + "jquery": ">=1.7" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "node_modules/jquery-mousewheel": { + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", + "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "node_modules/jquery-validation": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz", + "integrity": "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==", + "peerDependencies": { + "jquery": "^1.7 || ^2.0 || ^3.1 || ^4.0" } }, - "datatables.net": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.23.tgz", - "integrity": "sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q==", - "requires": { - "jquery": ">=1.7" - } + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, - "datatables.net-bs4": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.23.tgz", - "integrity": "sha512-ChUB8t5t5uzPnJYTPXx2DOvnlm2shz8OadXrKoFavOadB308OuwHVxSldYq9+KGedCeiVxEjNqcaV4nFSXkRsw==", - "requires": { - "datatables.net": "1.10.23", - "jquery": ">=1.7" + "node_modules/malihu-custom-scrollbar-plugin": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz", + "integrity": "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=", + "dependencies": { + "jquery-mousewheel": ">=3.0.6" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "node_modules/select2": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", + "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "node_modules/sweetalert2": { + "version": "11.26.24", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz", + "integrity": "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/limonte" + } }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, + "node_modules/timeago": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", + "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "jquery": ">=1.5.0 <4.0" } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + } + }, + "dependencies": { + "@abp/aspnetcore.components.server.leptonxlitetheme": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz", + "integrity": "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==", "requires": { - "object-keys": "^1.0.12" + "@abp/aspnetcore.components.server.theming": "~10.3.0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "@abp/aspnetcore.components.server.theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz", + "integrity": "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "@abp/bootstrap": "~10.3.0", + "@abp/font-awesome": "~10.3.0" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "requires": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" + } + }, + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "requires": { - "kind-of": "^6.0.0" + "@abp/utils": "~10.3.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "just-compare": "^2.3.0" } + }, + "@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + }, + "bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "requires": {} + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz", + "integrity": "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==", "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~10.3.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "@abp/aspnetcore.mvc.ui": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz", + "integrity": "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==", "requires": { - "is-descriptor": "^0.1.0" + "ansi-colors": "^4.1.3" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "@abp/aspnetcore.mvc.ui.theme.shared": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz", + "integrity": "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/aspnetcore.mvc.ui": "~10.3.0", + "@abp/bootstrap": "~10.3.0", + "@abp/bootstrap-datepicker": "~10.3.0", + "@abp/bootstrap-daterangepicker": "~10.3.0", + "@abp/datatables.net-bs5": "~10.3.0", + "@abp/font-awesome": "~10.3.0", + "@abp/jquery-validation-unobtrusive": "~10.3.0", + "@abp/lodash": "~10.3.0", + "@abp/luxon": "~10.3.0", + "@abp/malihu-custom-scrollbar-plugin": "~10.3.0", + "@abp/moment": "~10.3.0", + "@abp/select2": "~10.3.0", + "@abp/sweetalert2": "~10.3.0", + "@abp/timeago": "~10.3.0" } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz", - "integrity": "sha1-QlFPhAFdE1bK9Rh5ad+yvBvaCCM=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", "requires": { - "is-plain-object": "^2.0.4" + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + }, + "@abp/bootstrap-datepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz", + "integrity": "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==", "requires": { - "is-descriptor": "^1.0.0" + "bootstrap-datepicker": "^1.10.1" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/utils": "~10.3.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "@abp/jquery-validation": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz", + "integrity": "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "@abp/jquery": "~10.3.0", + "jquery-validation": "^1.21.0" } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + }, + "@abp/jquery-validation-unobtrusive": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz", + "integrity": "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/jquery-validation": "~10.3.0", + "jquery-validation-unobtrusive": "^4.0.0" } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + }, + "@abp/lodash": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz", + "integrity": "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "@abp/core": "~10.3.0", + "lodash": "^4.17.21" } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + }, + "@abp/luxon": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz", + "integrity": "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==", "requires": { - "is-extglob": "^2.1.0" + "@abp/core": "~10.3.0", + "luxon": "^3.7.2" } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + }, + "@abp/malihu-custom-scrollbar-plugin": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz", + "integrity": "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==", "requires": { - "ansi-wrap": "^0.1.0" + "@abp/core": "~10.3.0", + "malihu-custom-scrollbar-plugin": "^3.1.5" } }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "@abp/select2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz", + "integrity": "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==", "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" + "@abp/core": "~10.3.0", + "select2": "^4.0.13" } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { + }, + "@abp/timeago": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz", + "integrity": "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==", + "requires": { + "@abp/jquery": "~10.3.0", + "timeago": "^1.6.7" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + }, + "bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "requires": {} + }, + "jquery-validation-unobtrusive": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz", + "integrity": "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==", "requires": { - "is-buffer": "^1.1.5" + "jquery": "^3.6.0", + "jquery-validation": ">=1.19" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==" } } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "@abp/bootstrap-daterangepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz", + "integrity": "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==", "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "@abp/moment": "~10.3.0", + "bootstrap-daterangepicker": "^3.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "@abp/datatables.net-bs5": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz", + "integrity": "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==", "requires": { - "kind-of": "^3.0.2" + "@abp/datatables.net": "~10.3.0", + "datatables.net-bs5": "^2.3.4" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/datatables.net": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz", + "integrity": "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==", + "requires": { + "@abp/jquery": "~10.3.0", + "datatables.net": "^2.3.4" + } + }, + "@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "requires": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", "requires": { - "is-buffer": "^1.1.5" + "jquery": ">=1.7" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "@abp/moment": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz", + "integrity": "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==", "requires": { - "has": "^1.0.3" + "moment": "^2.30.1" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "@abp/popper.js": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz", + "integrity": "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==", "requires": { - "kind-of": "^3.0.2" + "@abp/core": "~10.3.0", + "@popperjs/core": "^2.11.8" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "requires": { - "is-buffer": "^1.1.5" + "just-compare": "^2.3.0" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "@abp/sweetalert2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz", + "integrity": "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "@abp/core": "~10.3.0", + "sweetalert2": "^11.23.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bootstrap-datepicker": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz", + "integrity": "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==", "requires": { - "number-is-nan": "^1.0.0" + "jquery": ">=3.4.0 <4.0.0" } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "bootstrap-daterangepicker": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz", + "integrity": "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==", "requires": { - "is-extglob": "^2.1.1" + "jquery": ">=1.10", + "moment": "^2.9.0" } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "datatables.net-bs5": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz", + "integrity": "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==", "requires": { - "kind-of": "^3.0.2" + "datatables.net": "2.3.8", + "jquery": ">=1.7" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", "requires": { - "is-buffer": "^1.1.5" + "jquery": ">=1.7" } } } }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, - "jquery-form": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-4.3.0.tgz", - "integrity": "sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==", - "requires": { - "jquery": ">=1.7.2" - } + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "jquery-mousewheel": { "version": "3.1.13", @@ -1735,125 +992,15 @@ "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" }, "jquery-validation": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.3.tgz", - "integrity": "sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw==" - }, - "jquery-validation-unobtrusive": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz", - "integrity": "sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ==", - "requires": { - "jquery": "^3.5.1", - "jquery-validation": ">=1.16" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "just-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-1.3.0.tgz", - "integrity": "sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w==" - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz", + "integrity": "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==", + "requires": {} }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "luxon": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", - "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "malihu-custom-scrollbar-plugin": { "version": "3.1.5", @@ -1863,1334 +1010,28 @@ "jquery-mousewheel": ">=3.0.6" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } + "select2": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", + "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "select2": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", - "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "sweetalert": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz", - "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==", - "requires": { - "es6-object-assign": "^1.1.0", - "promise-polyfill": "^6.0.2" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "timeago": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", - "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", + "sweetalert2": { + "version": "11.26.24", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz", + "integrity": "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==" + }, + "timeago": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", + "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", "requires": { "jquery": ">=1.5.0 <4.0" } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, - "toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "requires": { - "jquery": ">=1.12.0" - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, - "yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } } } } diff --git a/samples/WebApp/src/BookStore.Blazor/package.json b/samples/WebApp/src/BookStore.Blazor/package.json index 7d42c69..0479161 100644 --- a/samples/WebApp/src/BookStore.Blazor/package.json +++ b/samples/WebApp/src/BookStore.Blazor/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.2.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.2.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.3.0" } } diff --git a/samples/WebApp/src/BookStore.Blazor/yarn.lock b/samples/WebApp/src/BookStore.Blazor/yarn.lock index 421dd0a..363a013 100644 --- a/samples/WebApp/src/BookStore.Blazor/yarn.lock +++ b/samples/WebApp/src/BookStore.Blazor/yarn.lock @@ -2,320 +2,324 @@ # yarn lockfile v1 -"@abp/aspnetcore.components.server.leptonxlitetheme@~4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-4.2.1.tgz#3fb1c687940052cc20e93a282ce8fbc61c0844e7" - integrity sha512-2DgQMU6MPAJ7WmcJUaoouk4eAXP8XhJftdcPh+BjB9rCu5FDQnWHqhT6hQOz1DR+KQ3vD3R8jbyZis1sB8InSw== - dependencies: - "@abp/aspnetcore.components.server.theming" "~9.2.1" - -"@abp/aspnetcore.components.server.theming@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-9.2.1.tgz#9e9e01f6356b4a5616fb706460b0cde53204075a" - integrity sha512-fxOJwzG7YiMYLxYHKLPL3Cv0pynfivOCLqhG+v60Hz4VTUIDqJDy4EJ2EN+LcEAkpYGglzGNmbGh5je+2anzCA== - dependencies: - "@abp/bootstrap" "~9.2.1" - "@abp/font-awesome" "~9.2.1" - -"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-4.2.1.tgz#3e3cc78b0d1d56113d459d61e01125bffada0c21" - integrity sha512-unZMV9HY13Kq00FZROVlo9po+foivENEoM7jUmZWlxOQjxBwa3/VJaxwQIXd9DZOqdpJpi5zUv/pSb6DqiZkfg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.1.tgz#35f6de6f106c80592ce70d36b6e8b20c64862803" - integrity sha512-kZz1tgUguGHxwG1MRkbkeXn9sIjbCOHJcBU+w+XuWwCqigM2yaE+KgnASDcjCrjQiPu6i73hf9OwtxXY1UbGMQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.1" - "@abp/bootstrap" "~9.2.1" - "@abp/bootstrap-datepicker" "~9.2.1" - "@abp/bootstrap-daterangepicker" "~9.2.1" - "@abp/datatables.net-bs5" "~9.2.1" - "@abp/font-awesome" "~9.2.1" - "@abp/jquery-form" "~9.2.1" - "@abp/jquery-validation-unobtrusive" "~9.2.1" - "@abp/lodash" "~9.2.1" - "@abp/luxon" "~9.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.1" - "@abp/moment" "~9.2.1" - "@abp/select2" "~9.2.1" - "@abp/sweetalert2" "~9.2.1" - "@abp/timeago" "~9.2.1" - -"@abp/aspnetcore.mvc.ui@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.1.tgz#8b30f830d85f7e1f4a386b0ef8d0444e2550bc42" - integrity sha512-0C41JpevGynbyHGeKkqLUSVNK64QETsKVyVWY4fSZkChGHlD09Fn3qIlHJInpBqJ9qNYs5VQ7RRP02PSum9mAg== - dependencies: - ansi-colors "^4.1.3" - -"@abp/bootstrap-datepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.1.tgz#373c8715d175ca23a8871bacdb5f017b070254aa" - integrity sha512-uaCpz5EDSZYDacjnYoqTiktTDFGnGJPEHYh5eG4BORlQta53Hvak7m2CkRVjdOaXtuPLi6EbWPSh2bHIfhKRyQ== - dependencies: - bootstrap-datepicker "^1.10.0" - -"@abp/bootstrap-daterangepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.1.tgz#b49e17a4753b09d49bfad6774a7f185e7e5bf71c" - integrity sha512-kd6LEACfx7CBIQOAiE/RHFp/WnthE2iz/eivl3fwuz1VgAO0CBIQ7hYoX91GaAIQgt+OAcgGbOl2G6E284EM9Q== - dependencies: - bootstrap-daterangepicker "^3.1.0" - -"@abp/bootstrap@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.1.tgz#ddf624e95f1dab4a8fce8d20b6dccd2b3d3f1679" - integrity sha512-NghAVP7M/Y2y9GYDu7IWo8oW7EyJEO+1NnPqCudpjWX4C6B27d7ghJ7I0MfrHoRq9/hBJZ07AKf3KMAZQD99ng== - dependencies: - "@abp/core" "~9.2.1" - bootstrap "^5.3.3" - -"@abp/core@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.1.tgz#f7c635f1fe88fc3fbbc4accaa6aee2dc3b5631a7" - integrity sha512-onCzS2w+U+wBv5FRDCVE176AiyZDMm1D5GaqiEnpuAwsBncFpFyZedC95dtPmykagJbpOvHVSPOLyZ2jzGjcYg== - dependencies: - "@abp/utils" "~9.2.1" - -"@abp/datatables.net-bs5@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.1.tgz#ff69059e96d5341166fa8d08390e9bb352010e5d" - integrity sha512-NEkf8xWTIYFDs9lAAPs0hOL2UD+pnVwyix/9IAtip3BIkyPFpLCniNWbu1WhuNJpfmLHrWPSqIrouR80gGL7PQ== - dependencies: - "@abp/datatables.net" "~9.2.1" - datatables.net-bs5 "^2.1.8" - -"@abp/datatables.net@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.1.tgz#0a5ab74ca44cd785efb487f0447e8acdea9d7aa1" - integrity sha512-A9TSPRNUV0eeCPnpGV9Htu9ZylUf3e03smYcbEROQHe+htwhcEV5dz8SLAI90baPi2g7VnyPav/3efaqo+ETdg== - dependencies: - "@abp/jquery" "~9.2.1" - datatables.net "^2.1.8" - -"@abp/font-awesome@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.1.tgz#a387f1cf457bdb6e3cd30bd9f4c455a41f8ca0b1" - integrity sha512-RVo3422BItdAAmafSCH/mT1Ux8q6yUz7nswGep4beP1k1VfmFExj1mgVphIpAlH3DWyzfnwUOq7lLWf/Ul2dOA== - dependencies: - "@abp/core" "~9.2.1" - "@fortawesome/fontawesome-free" "^6.6.0" - -"@abp/jquery-form@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.1.tgz#727b391c36e8ff46b62cb01be14715a05fe74b4f" - integrity sha512-n6EpUNNRzilOzP5rYTWr9K2mPQbvBQAuxPiwUZpfwf+QpJrs+NppJMaC06HFbHcSkDDy/utd+P1/sqWaJjL/tw== - dependencies: - "@abp/jquery" "~9.2.1" - jquery-form "^4.3.0" - -"@abp/jquery-validation-unobtrusive@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.1.tgz#98215811818e618d96a1dcac6419962fd39c6fef" - integrity sha512-7no3KxRW3agw4EAM5iTvQjE4+m9JrjuMAV20gAU0uVPB2+sHlluEAks0IU9wz76T+Ac7osferUZz33LgdDvIaw== - dependencies: - "@abp/jquery-validation" "~9.2.1" - jquery-validation-unobtrusive "^4.0.0" - -"@abp/jquery-validation@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.1.tgz#559c581523e4e098f2bf67627dfe6c7ef0e1c3c1" - integrity sha512-AEGm3agbwr1f5kmXvpBeiDmsS22P88zVr8NJDICGsgBxZofKndXsDFciNZGu6lXF5qXp8AwGRi//QPaCeQsP8g== - dependencies: - "@abp/jquery" "~9.2.1" - jquery-validation "^1.21.0" - -"@abp/jquery@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.1.tgz#bbcc9eab9cef528a8163f5062665ffcf2b87c2f0" - integrity sha512-gdDIKMNEpeUdzUu5C/g6j568ytJ7ifaDxBr1NYf2kJ34p7y6rrBmyY+sL+xR3ZlcGgyPGXyFhTLRD7qTjXlkPg== - dependencies: - "@abp/core" "~9.2.1" - jquery "~3.7.1" - -"@abp/lodash@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.1.tgz#a80ab7a908a0332b721277b1193209187fab57d8" - integrity sha512-I2+XYqwMi3+FXCv4xp5hBoJmOszg2WR1gnGc+Qd0zwb2VAbG4MvKVFgM/GUAFD8EKlquGyPf3f+4l5FkaPFkrQ== - dependencies: - "@abp/core" "~9.2.1" - lodash "^4.17.21" - -"@abp/luxon@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.1.tgz#7e3d197425813cfc6932cd3f9f09f97ecd2f4fc7" - integrity sha512-2tyOZRmq9jQN0Uhg8WaHfEzL0Xeew04sbA8O9bqw28psRbXaWXEVdElRMBNt50sZkFPhHFoxxFN7PR8obs0Qug== - dependencies: - "@abp/core" "~9.2.1" - luxon "^3.5.0" - -"@abp/malihu-custom-scrollbar-plugin@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.1.tgz#b0fa249885d442ba84657c7705df73851cb56db1" - integrity sha512-fzgQZsbN0xLMxEWh7znKAI4j0CPb8ciT/3x+QguGZDJf7OFw0YnEWctfEYJnnGG28HpHs1mh64gjqoeceHy0HQ== - dependencies: - "@abp/core" "~9.2.1" - malihu-custom-scrollbar-plugin "^3.1.5" - -"@abp/moment@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.1.tgz#9982c65d63171962091b08fc4e0d1ea98cc1f0eb" - integrity sha512-V4KH1WmahP0BoaQGLEY4a0AQyfk1cLeNMk3qCPtuqIUbOFwimJY3oQgpelilEwjI3oD/upMzGphjLGrfQLRM2A== - dependencies: - moment "^2.30.1" - -"@abp/select2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.1.tgz#5c3c6a4b0018b533491d6a46540069782559c57a" - integrity sha512-p743cnoohNLKX11ptnBcN5z9+ZyC11M9mwRR6SWbW5f1Eqvbkq03bf2mDFUfukCNis4RefeURZunPlsBOmRn/A== +"@abp/aspnetcore.components.server.leptonxlitetheme@~5.3.0": + "integrity" "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "@abp/aspnetcore.components.server.theming" "~10.3.0" + +"@abp/aspnetcore.components.server.theming@~10.3.0": + "integrity" "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/bootstrap" "~10.3.0" + "@abp/font-awesome" "~10.3.0" + +"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~5.3.0": + "integrity" "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~10.3.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~10.3.0": + "integrity" "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/aspnetcore.mvc.ui" "~10.3.0" + "@abp/bootstrap" "~10.3.0" + "@abp/bootstrap-datepicker" "~10.3.0" + "@abp/bootstrap-daterangepicker" "~10.3.0" + "@abp/datatables.net-bs5" "~10.3.0" + "@abp/font-awesome" "~10.3.0" + "@abp/jquery-validation-unobtrusive" "~10.3.0" + "@abp/lodash" "~10.3.0" + "@abp/luxon" "~10.3.0" + "@abp/malihu-custom-scrollbar-plugin" "~10.3.0" + "@abp/moment" "~10.3.0" + "@abp/select2" "~10.3.0" + "@abp/sweetalert2" "~10.3.0" + "@abp/timeago" "~10.3.0" + +"@abp/aspnetcore.mvc.ui@~10.3.0": + "integrity" "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "ansi-colors" "^4.1.3" + +"@abp/bootstrap-datepicker@~10.3.0": + "integrity" "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "bootstrap-datepicker" "^1.10.1" + +"@abp/bootstrap-daterangepicker@~10.3.0": + "integrity" "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/moment" "~10.3.0" + "bootstrap-daterangepicker" "^3.1.0" + +"@abp/bootstrap@~10.3.0": + "integrity" "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "@abp/popper.js" "~10.3.0" + "bootstrap" "^5.3.8" + +"@abp/core@~10.3.0": + "integrity" "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==" + "resolved" "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/utils" "~10.3.0" + +"@abp/datatables.net-bs5@~10.3.0": + "integrity" "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==" + "resolved" "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/datatables.net" "~10.3.0" + "datatables.net-bs5" "^2.3.4" + +"@abp/datatables.net@~10.3.0": + "integrity" "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==" + "resolved" "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery" "~10.3.0" + "datatables.net" "^2.3.4" + +"@abp/font-awesome@~10.3.0": + "integrity" "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==" + "resolved" "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "@fortawesome/fontawesome-free" "^7.0.1" + +"@abp/jquery-validation-unobtrusive@~10.3.0": + "integrity" "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==" + "resolved" "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery-validation" "~10.3.0" + "jquery-validation-unobtrusive" "^4.0.0" + +"@abp/jquery-validation@~10.3.0": + "integrity" "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==" + "resolved" "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery" "~10.3.0" + "jquery-validation" "^1.21.0" + +"@abp/jquery@~10.3.0": + "integrity" "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==" + "resolved" "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "jquery" "~3.7.1" + +"@abp/lodash@~10.3.0": + "integrity" "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==" + "resolved" "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "lodash" "^4.17.21" + +"@abp/luxon@~10.3.0": + "integrity" "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==" + "resolved" "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/core" "~9.2.1" - select2 "^4.0.13" + "@abp/core" "~10.3.0" + "luxon" "^3.7.2" -"@abp/sweetalert2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.1.tgz#3db7e33855614460d2fdc5e3f8b65530902fcd9a" - integrity sha512-fJYLVxc5pAJoSLIcQYf5xRkPVnVQi/5+xwTgOePy3QeygOrAMpGS7vy+MIq7Mn+tBoEFlQ/Jn+NoB04AIYYPFw== +"@abp/malihu-custom-scrollbar-plugin@~10.3.0": + "integrity" "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==" + "resolved" "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/core" "~9.2.1" - sweetalert2 "^11.14.1" + "@abp/core" "~10.3.0" + "malihu-custom-scrollbar-plugin" "^3.1.5" -"@abp/timeago@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.1.tgz#6904e2d7bda57b436e3385c5fd1899b9cd806dd8" - integrity sha512-fmsPuBouWR/BvhXN53yJpg1Se06uIL7ox8XOgx1MHCe+1vxbXnFCtM2VujfowWtOSTJOzbL1DHcDpFE7JlkOag== +"@abp/moment@~10.3.0": + "integrity" "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==" + "resolved" "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/jquery" "~9.2.1" - timeago "^1.6.7" + "moment" "^2.30.1" -"@abp/utils@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.1.tgz#803fd48927ae332309f8a7005806c6aa6e499750" - integrity sha512-+j0SNB/K2j2xTTijy/qCL3ds2c/7OW4nrJ8Ccq17WtEqP+jk2TtJi0EnLqhNTDih0A++XV+pcftUC+cQ0h1cUw== +"@abp/popper.js@~10.3.0": + "integrity" "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==" + "resolved" "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz" + "version" "10.3.0" dependencies: - just-compare "^2.3.0" - -"@fortawesome/fontawesome-free@^6.6.0": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" - integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== + "@abp/core" "~10.3.0" + "@popperjs/core" "^2.11.8" -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -bootstrap-datepicker@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a" - integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg== - dependencies: - jquery ">=3.4.0 <4.0.0" - -bootstrap-daterangepicker@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz#632e6fb2de4b6360c5c0a9d5f6adb9aace051fe8" - integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g== +"@abp/select2@~10.3.0": + "integrity" "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==" + "resolved" "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz" + "version" "10.3.0" dependencies: - jquery ">=1.10" - moment "^2.9.0" - -bootstrap@^5.3.3: - version "5.3.7" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90" - integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw== + "@abp/core" "~10.3.0" + "select2" "^4.0.13" -datatables.net-bs5@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.2.tgz#cffb8007a9f752a997bc70c0dbe9f545edfd18eb" - integrity sha512-1rh0ZTLoiziIQ4oAtgr+IOYVgJfAIceDnbDe535u8kv191pBAdTrKF6ovQO98Xy9mDXLdLNB7QCrLiV/sgPoQw== +"@abp/sweetalert2@~10.3.0": + "integrity" "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==" + "resolved" "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz" + "version" "10.3.0" dependencies: - datatables.net "2.3.2" - jquery ">=1.7" + "@abp/core" "~10.3.0" + "sweetalert2" "^11.23.0" -datatables.net@2.3.2, datatables.net@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.2.tgz#6821f6288e6ad3cb6879c33e0e7e11d4091d330b" - integrity sha512-31TzwIQM0+pr2ZOEOEH6dsHd/WSAl5GDDGPezOHPI3mM2NK4lcDyOoG8xXeWmSbVfbi852LNK5C84fpp4Q+qxg== - dependencies: - jquery ">=1.7" - -jquery-form@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6" - integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ== +"@abp/timeago@~10.3.0": + "integrity" "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==" + "resolved" "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz" + "version" "10.3.0" dependencies: - jquery ">=1.7.2" - -jquery-mousewheel@>=3.0.6: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b" - integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ== - dependencies: - jquery ">=1.2.6" - -jquery-validation-unobtrusive@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz#dfcf25a558496a2c883db6021d10f5398d15f99d" - integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ== - dependencies: - jquery "^3.6.0" - jquery-validation ">=1.19" - -jquery-validation@>=1.19, jquery-validation@^1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93" - integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w== - -jquery@>=1.10, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" - integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== - -just-compare@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7" - integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -luxon@^3.5.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0" - integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ== - -malihu-custom-scrollbar-plugin@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz#310cecc5e59415a1c29e9dfb5d2b6e01d66a29ef" - integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ== - dependencies: - jquery-mousewheel ">=3.0.6" - -moment@^2.30.1, moment@^2.9.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - -select2@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" - integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== - -sweetalert2@^11.14.1: - version "11.22.2" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.22.2.tgz#d4d82a2edd4e97024306fe37f1bc64fa576e9bc9" - integrity sha512-GFQGzw8ZXF23PO79WMAYXLl4zYmLiaKqYJwcp5eBF07wiI5BYPbZtKi2pcvVmfUQK+FqL1risJAMxugcPbGIyg== - -timeago@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.7.tgz#afd467c29a911e697fc22a81888c7c3022783cb5" - integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ== - dependencies: - jquery ">=1.5.0 <4.0" + "@abp/jquery" "~10.3.0" + "timeago" "^1.6.7" + +"@abp/utils@~10.3.0": + "integrity" "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==" + "resolved" "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "just-compare" "^2.3.0" + +"@fortawesome/fontawesome-free@^7.0.1": + "integrity" "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + "resolved" "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz" + "version" "7.2.0" + +"@popperjs/core@^2.11.8": + "integrity" "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" + "version" "2.11.8" + +"ansi-colors@^4.1.3": + "integrity" "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + "version" "4.1.3" + +"bootstrap-datepicker@^1.10.1": + "integrity" "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==" + "resolved" "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz" + "version" "1.10.1" + dependencies: + "jquery" ">=3.4.0 <4.0.0" + +"bootstrap-daterangepicker@^3.1.0": + "integrity" "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==" + "resolved" "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "jquery" ">=1.10" + "moment" "^2.9.0" + +"bootstrap@^5.3.8": + "integrity" "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==" + "resolved" "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz" + "version" "5.3.8" + +"datatables.net-bs5@^2.3.4": + "integrity" "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==" + "resolved" "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "datatables.net" "2.3.8" + "jquery" ">=1.7" + +"datatables.net@^2.3.4": + "integrity" "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==" + "resolved" "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "jquery" ">=1.7" + +"datatables.net@2.3.8": + "integrity" "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==" + "resolved" "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "jquery" ">=1.7" + +"jquery-mousewheel@>=3.0.6": + "integrity" "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" + "resolved" "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz" + "version" "3.1.13" + +"jquery-validation-unobtrusive@^4.0.0": + "integrity" "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==" + "resolved" "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "jquery" "^3.6.0" + "jquery-validation" ">=1.19" + +"jquery-validation@^1.21.0", "jquery-validation@>=1.19": + "integrity" "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==" + "resolved" "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz" + "version" "1.22.1" + +"jquery@^1.7 || ^2.0 || ^3.1 || ^4.0", "jquery@^3.6.0", "jquery@>=1.10", "jquery@>=1.5.0 <4.0", "jquery@>=1.7", "jquery@>=3.4.0 <4.0.0", "jquery@~3.7.1": + "integrity" "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" + "version" "3.7.1" + +"just-compare@^2.3.0": + "integrity" "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + "resolved" "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz" + "version" "2.3.0" + +"lodash@^4.17.21": + "integrity" "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz" + "version" "4.18.1" + +"luxon@^3.7.2": + "integrity" "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==" + "resolved" "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz" + "version" "3.7.2" + +"malihu-custom-scrollbar-plugin@^3.1.5": + "integrity" "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=" + "resolved" "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "jquery-mousewheel" ">=3.0.6" + +"moment@^2.30.1", "moment@^2.9.0": + "integrity" "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + "resolved" "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" + "version" "2.30.1" + +"select2@^4.0.13": + "integrity" "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" + "resolved" "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz" + "version" "4.0.13" + +"sweetalert2@^11.23.0": + "integrity" "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==" + "resolved" "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz" + "version" "11.26.24" + +"timeago@^1.6.7": + "integrity" "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==" + "resolved" "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz" + "version" "1.6.7" + dependencies: + "jquery" ">=1.5.0 <4.0" diff --git a/samples/WebApp/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs b/samples/WebApp/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs index 3ad09fd..01b67d6 100644 --- a/samples/WebApp/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs +++ b/samples/WebApp/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MongoDB.Driver; using BookStore.Data; @@ -26,6 +27,7 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra { var dbContexts = _serviceProvider.GetServices(); var connectionStringResolver = _serviceProvider.GetRequiredService(); + var configuration = _serviceProvider.GetRequiredService(); if (_serviceProvider.GetRequiredService().IsAvailable) { @@ -34,9 +36,22 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra foreach (var dbContext in dbContexts) { - var connectionString = - await connectionStringResolver.ResolveAsync( - ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType())); + var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()); + var connectionString = await connectionStringResolver.ResolveAsync(connectionStringName); + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = await connectionStringResolver.ResolveAsync(); + } + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = configuration.GetConnectionString("Default"); + } + if (connectionString.IsNullOrWhiteSpace()) + { + throw new InvalidOperationException( + $"Could not find a MongoDB connection string for '{connectionStringName}' or 'Default'."); + } + var mongoUrl = new MongoUrl(connectionString); var databaseName = mongoUrl.DatabaseName; var client = new MongoClient(mongoUrl); diff --git a/samples/WebAppBlazorServer/README.md b/samples/WebAppBlazorServer/README.md index 43e1161..afae9dc 100644 --- a/samples/WebAppBlazorServer/README.md +++ b/samples/WebAppBlazorServer/README.md @@ -1,58 +1,58 @@ -# BookStore +# BookStore Blazor Server Sample -## About this solution +This sample demonstrates the AntDesign theme in an ABP Blazor Server application. -This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. Check the [Application Startup Template](https://abp.io/docs/latest/solution-templates/layered-web-application) documentation for more info. +## Prerequisites -### Pre-requirements +- .NET SDK 10.0+ +- Node.js 18 or newer +- MongoDB +- ABP CLI (`dotnet tool install -g Volo.Abp.Cli` if needed) -* [.net10.0+ SDK](https://dotnet.microsoft.com/download/dotnet) -* [Node v18 or 20](https://nodejs.org/en) +## Run -### Configurations +Install front-end libraries: -The solution comes with a default configuration that works out of the box. However, you may consider to change the following configuration before running your solution: - -* Check the `ConnectionStrings` in `appsettings.json` files under the `BookStore.Blazor` and `BookStore.DbMigrator` projects and change it if you need. - -### Before running the application - -* Run `abp install-libs` command on your solution folder to install client-side package dependencies. This step is automatically done when you create a new solution, if you didn't especially disabled it. However, you should run it yourself if you have first cloned this solution from your source control, or added a new client-side package dependency to your solution. -* Run `BookStore.DbMigrator` to create the initial database. This step is also automatically done when you create a new solution, if you didn't especially disabled it. This should be done in the first run. It is also needed if a new database migration is added to the solution later. - -#### Generating a Signing Certificate - -In the production environment, you need to use a production signing certificate. ABP Framework sets up signing and encryption certificates in your application and expects an `openiddict.pfx` file in your application. +```bash +abp install-libs +``` -To generate a signing certificate, you can use the following command: +Apply database migrations and seed data: ```bash -dotnet dev-certs https -v -ep openiddict.pfx -p d6d09f80-360d-4bc1-b9c5-f9cbfc2cb8f3 +dotnet run --project .\src\BookStore.DbMigrator\ ``` -> `d6d09f80-360d-4bc1-b9c5-f9cbfc2cb8f3` is the password of the certificate, you can change it to any password you want. - -It is recommended to use **two** RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. +Start the Blazor Server app: -For more information, please refer to: [OpenIddict Certificate Configuration](https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios) +```bash +dotnet run --project .\src\BookStore.Blazor\ +``` -> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. +Open `https://localhost:44322`. -### Solution structure +## Default Login -This is a layered monolith application that consists of the following applications: +- Username: `admin` +- Password: `1q2w3E*` -* `BookStore.DbMigrator`: A console application which applies the migrations and also seeds the initial data. It is useful on development as well as on production environment. -* `BookStore.Blazor`: ASP.NET Core Blazor Server application that is the essential web application of the solution. +## What To Verify +- The application uses the refactored AntDesign Pro-style layout. +- The sidebar is responsive and can collapse on smaller screens. +- Authenticated users can open the floating theme settings panel. +- Theme settings apply immediately without restarting the application. -## Deploying the application +## Theme Settings Management -Deploying an ABP application follows the same process as deploying any .NET or ASP.NET Core application. However, there are important considerations to keep in mind. For detailed guidance, refer to ABP's [deployment documentation](https://abp.io/docs/latest/Deployment/Index). +This sample is configured with `AntDesignThemeManagement`. -### Additional resources +Go to `Administration -> Settings -> Theme settings management` to control which sections appear in the user-facing panel: -You can see the following resources to learn more about your solution and the ABP Framework: +- `Enable theme settings` +- `Page style setting` +- `Navigation mode` +- `Regional settings` +- `Other settings` -* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-1) -* [Application Startup Template](https://abp.io/docs/latest/startup-templates/application/index) +If all child options are disabled, `Enable theme settings` is automatically disabled. diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.abppkg b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.abppkg index a3ceaf2..a36e903 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.abppkg +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.abppkg @@ -1,3 +1,4 @@ { - "role": "host.blazor-server" + "role": "host.blazor-server", + "projectId": "97bca713-f461-4f87-92d0-fb96867f0a10" } \ No newline at end of file diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.csproj b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.csproj index 4ee7da9..92b8ed3 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.csproj +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStore.Blazor.csproj @@ -34,6 +34,7 @@ + diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStoreBlazorModule.cs b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStoreBlazorModule.cs index 1492a18..6b44153 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStoreBlazorModule.cs +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/BookStoreBlazorModule.cs @@ -17,7 +17,7 @@ using BookStore.Blazor.Menus; using BookStore.MongoDB; using BookStore.Localization; using BookStore.MultiTenancy; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using Volo.Abp; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Components.Web; @@ -35,6 +35,8 @@ using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; using Volo.Abp.Identity; using Volo.Abp.Autofac; using Lsw.Abp.IdentityManagement.Blazor.Server.AntDesignUI; +using Lsw.Abp.AntDesignThemeManagement.Blazor.Server; +using Lsw.Abp.AntDesignThemeManagement; using Lsw.Abp.TenantManagement.Blazor.Server.AntDesignUI; using Lsw.Abp.SettingManagement.Blazor.Server.AntDesignUI; using Lsw.Abp.FeatureManagement.Blazor.Server.AntDesignUI; @@ -65,6 +67,7 @@ namespace BookStore.Blazor; typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), typeof(AbpAspNetCoreSerilogModule), typeof(AbpFeatureManagementBlazorServerAntDesignModule), + typeof(AbpAntDesignThemeManagementBlazorServerModule), typeof(AbpSettingManagementBlazorServerAntDesignModule), typeof(AbpMapperlyModule) )] @@ -264,6 +267,7 @@ public class BookStoreBlazorModule : AbpModule Configure(options => { options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); }); } diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/package-lock.json b/samples/WebAppBlazorServer/src/BookStore.Blazor/package-lock.json index d671d9a..f286753 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/package-lock.json +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/package-lock.json @@ -1,1733 +1,990 @@ { "name": "my-app", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@abp/aspnetcore.mvc.ui": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.2.1.tgz", - "integrity": "sha512-/a/KDVQ3EuETSSe+KqmsR24w6RWHvaokvmmOjL+tCpFQyeaYAZ88E9pvM5hC9HVR24FCHTiARiXwgMTw2eZFyQ==", - "requires": { - "ansi-colors": "^4.1.1", - "extend-object": "^1.0.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "gulp": "^4.0.2", - "merge-stream": "^2.0.0", - "micromatch": "^4.0.2", - "path": "^0.12.7" - } - }, - "@abp/aspnetcore.mvc.ui.theme.basic": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.2.1.tgz", - "integrity": "sha512-Tb0g4mtdSsjQkadvnjjRjObEhweUvigto0BTv5SzRNi0oQLW8ZVUcFmuMWB09nJAIPrbuA3QuPUlXzFcv2gsdg==", - "requires": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~4.2.1" + "packages": { + "": { + "name": "my-app", + "version": "1.0.0", + "dependencies": { + "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.3.0", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.3.0" } }, - "@abp/aspnetcore.mvc.ui.theme.shared": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.2.1.tgz", - "integrity": "sha512-+f54CysWpEKfxjIIjhnTKW0jJ0Rg+wS6yxb9Rg3qxA5iEUkxp3B+NB5wA9rT5YcY9APrwVpiw1miNRmq5ZvFXg==", - "requires": { - "@abp/aspnetcore.mvc.ui": "~4.2.1", - "@abp/bootstrap": "~4.2.1", - "@abp/bootstrap-datepicker": "~4.2.1", - "@abp/datatables.net-bs4": "~4.2.1", - "@abp/font-awesome": "~4.2.1", - "@abp/jquery-form": "~4.2.1", - "@abp/jquery-validation-unobtrusive": "~4.2.1", - "@abp/lodash": "~4.2.1", - "@abp/luxon": "~4.2.1", - "@abp/malihu-custom-scrollbar-plugin": "~4.2.1", - "@abp/select2": "~4.2.1", - "@abp/sweetalert": "~4.2.1", - "@abp/timeago": "~4.2.1", - "@abp/toastr": "~4.2.1" - } - }, - "@abp/bootstrap": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-4.2.1.tgz", - "integrity": "sha512-1Z4atDgHDxesjBh5uPb442NALcUucS2Lt56CaN5UPBXQvAPr72cw4hfKbW08KJ0ab7WME0uCi1vYZFM28/zqTg==", - "requires": { - "@abp/core": "~4.2.1", - "bootstrap": "^4.5.0", - "bootstrap-v4-rtl": "4.4.1-2" + "node_modules/@abp/aspnetcore.components.server.leptonxlitetheme": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz", + "integrity": "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==", + "dependencies": { + "@abp/aspnetcore.components.server.theming": "~10.3.0" } }, - "@abp/bootstrap-datepicker": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.2.1.tgz", - "integrity": "sha512-35uaM+OBUqsBBIF08NUu7XBVIgwVQIjJard92Px7eR0EJ2AW6f5hNlJQYfPkYVdmkPIpG16qWctICB+L2W3ZKA==", - "requires": { - "bootstrap-datepicker": "^1.9.0" + "node_modules/@abp/aspnetcore.components.server.theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz", + "integrity": "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==", + "dependencies": { + "@abp/bootstrap": "~10.3.0", + "@abp/font-awesome": "~10.3.0" } }, - "@abp/core": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/core/-/core-4.2.1.tgz", - "integrity": "sha512-EiJSgUytS9Mrv8GZr9pwIzxwlrP82hEcS67cAgDxBc4QOhtMXhGZBMjDBHoIkOt6Db/ua0iPC700w0Utt5kWZQ==", - "requires": { - "@abp/utils": "^4.2.1" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "dependencies": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } }, - "@abp/datatables.net": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-4.2.1.tgz", - "integrity": "sha512-ZxpSW6PhJupjecTC25MEKTdjePvg2xNouqioL9L7V3lPJ6S3fsqNs9QFjFjpv0vltzXMaZgJTSuxilmR6s6piw==", - "requires": { - "@abp/jquery": "~4.2.1", - "datatables.net": "^1.10.21" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "@abp/datatables.net-bs4": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs4/-/datatables.net-bs4-4.2.1.tgz", - "integrity": "sha512-T66P74F58n4P5xwfhekriSr66A35okrXw61mlMXqeet8ACtxiM55MhXw89qvsL0qo5qG/a9d9MWPYNmZgXvKSQ==", - "requires": { - "@abp/datatables.net": "~4.2.1", - "datatables.net-bs4": "^1.10.21" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", + "dependencies": { + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "@abp/font-awesome": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-4.2.1.tgz", - "integrity": "sha512-kWAOqN7OtiBA7gd3VLH7pft1A5KYnJGJCn56xoqWIqLyHrSapwI5IMOojRDr+WhQJXk5EGE+rnmqRP51MYo4NQ==", - "requires": { - "@abp/core": "~4.2.1", - "@fortawesome/fontawesome-free": "^5.13.0" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "@abp/jquery": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-4.2.1.tgz", - "integrity": "sha512-xcoSu/2qc2AEF+dCTNHTCWjAo1dIcohHVPM3Yh36bb+JEcnruYYRokqZc4pzkh0GQamE1eMVGi3QOAmuURtbCg==", - "requires": { - "@abp/core": "~4.2.1", - "jquery": "~3.5.1" - }, - "dependencies": { - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - } + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==", + "engines": { + "node": ">=6" } }, - "@abp/jquery-form": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-form/-/jquery-form-4.2.1.tgz", - "integrity": "sha512-xnxaaOExhz7/8/P6XGvQuKitpuVjzoZz+r1Kr+W9gVy0dWZcCOfeVi4kdpxDFpqUmQJQJi0tvdVkFHx/hAkB7g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-form": "^4.3.0" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" } }, - "@abp/jquery-validation": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-4.2.1.tgz", - "integrity": "sha512-g87I0nO7Jk2d4Jt7PlLk/bHu5xQFH4+mbHwH4oRLAzflDhRNtNB+uVF35HK/1shprmSlZt6X+bHz652SEqD81g==", - "requires": { - "@abp/jquery": "~4.2.1", - "jquery-validation": "^1.19.2" + "node_modules/@abp/aspnetcore.components.server.theming/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz", + "integrity": "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==", + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.shared": "~10.3.0" } }, - "@abp/jquery-validation-unobtrusive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.2.1.tgz", - "integrity": "sha512-STuVKdSUNjrW3q30GcszgzecHDdPmL3aA0jPsRJr0S2Wp5CQOe0dB7d5xyAnADIL68cPXjZWlz1OyXSQ2LixeQ==", - "requires": { - "@abp/jquery-validation": "~4.2.1", - "jquery-validation-unobtrusive": "^3.2.11" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/aspnetcore.mvc.ui": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz", + "integrity": "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==", + "dependencies": { + "ansi-colors": "^4.1.3" } }, - "@abp/lodash": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-4.2.1.tgz", - "integrity": "sha512-hDwzR/Q9GqXPdQaijQ3B4GIWZ8z9clCW9vU59qbELD8xBZIJalTSrUGnIT8YNB9O5tNFb2FWJJbw5Nh8K7lu1A==", - "requires": { - "@abp/core": "~4.2.1", - "lodash": "^4.17.15" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/aspnetcore.mvc.ui.theme.shared": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz", + "integrity": "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==", + "dependencies": { + "@abp/aspnetcore.mvc.ui": "~10.3.0", + "@abp/bootstrap": "~10.3.0", + "@abp/bootstrap-datepicker": "~10.3.0", + "@abp/bootstrap-daterangepicker": "~10.3.0", + "@abp/datatables.net-bs5": "~10.3.0", + "@abp/font-awesome": "~10.3.0", + "@abp/jquery-validation-unobtrusive": "~10.3.0", + "@abp/lodash": "~10.3.0", + "@abp/luxon": "~10.3.0", + "@abp/malihu-custom-scrollbar-plugin": "~10.3.0", + "@abp/moment": "~10.3.0", + "@abp/select2": "~10.3.0", + "@abp/sweetalert2": "~10.3.0", + "@abp/timeago": "~10.3.0" + } + }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "dependencies": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } }, - "@abp/luxon": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-4.2.1.tgz", - "integrity": "sha512-Sussnocvw75EbJ1j0Ohn7F+SBQy9xPbiG6RJExdDFzxhUNsVp5wJF2Jm8hOZB3DYkeGAOskY5RoIG0abfE/j3w==", - "requires": { - "@abp/core": "~4.2.1", - "luxon": "^1.24.1" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/bootstrap-datepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz", + "integrity": "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==", + "dependencies": { + "bootstrap-datepicker": "^1.10.1" } }, - "@abp/malihu-custom-scrollbar-plugin": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.2.1.tgz", - "integrity": "sha512-qBnBMzj4G/dAMShmF4EXr55hkMehC1+cB6Jjl1wPHgMV8QPafznBKGyM6KWxGhrl8K6nCErBbidgQKpYqtWhNA==", - "requires": { - "@abp/core": "~4.2.1", - "malihu-custom-scrollbar-plugin": "^3.1.5" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "@abp/select2": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-4.2.1.tgz", - "integrity": "sha512-g1AUGof5daULbVFCokR9JS1/4gIpEWKB5/+rRJBmnje2hUgBA3llD5PCOh5WRHA7urJJOD/5BjWlFdozluUAyg==", - "requires": { - "@abp/core": "~4.2.1", - "select2": "^4.0.13" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", + "dependencies": { + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "@abp/sweetalert": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/sweetalert/-/sweetalert-4.2.1.tgz", - "integrity": "sha512-xTi0oSjAkFMIDHgF8YB+oqFCl4gNfnt7mGHvEjJwpCEQSkuML9QsiGvw1TpXyHP7npOWSjjVpoyEBS2HXC778Q==", - "requires": { - "@abp/core": "~4.2.1", - "sweetalert": "^2.1.2" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "dependencies": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "@abp/timeago": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-4.2.1.tgz", - "integrity": "sha512-46+2plKizUcRn2VWN5WPWvwEVz+xoKOmsH1tEJ8WKKNxjeNRAsfeOslbfIEks89hTXLQemP3txAbq9V3E8pwQw==", - "requires": { - "@abp/jquery": "~4.2.1", - "timeago": "^1.6.7" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery-validation": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz", + "integrity": "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "jquery-validation": "^1.21.0" } }, - "@abp/toastr": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/toastr/-/toastr-4.2.1.tgz", - "integrity": "sha512-fdlMZjffEO/05aeG8BjTspARKGtUu2SpoFViTeHGhSPsCW55BvuehIgRhyOEQNfMqJz8m0cVR0R2q+WPFWf1XA==", - "requires": { - "@abp/jquery": "~4.2.1", - "toastr": "^2.1.4" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/jquery-validation-unobtrusive": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz", + "integrity": "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==", + "dependencies": { + "@abp/jquery-validation": "~10.3.0", + "jquery-validation-unobtrusive": "^4.0.0" } }, - "@abp/utils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-4.2.1.tgz", - "integrity": "sha512-V7XYC38u4C+UpXQr28KA1KHL5nNgDsFHfZULPnkwPxV8DuhzemmPYN3qmSXi5hfSfp+psNCX3GYZRMCI57kHgQ==", - "requires": { - "just-compare": "^1.3.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/lodash": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz", + "integrity": "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==", + "dependencies": { + "@abp/core": "~10.3.0", + "lodash": "^4.17.21" } }, - "@fortawesome/fontawesome-free": { - "version": "5.15.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz", - "integrity": "sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA==" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/luxon": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz", + "integrity": "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==", + "dependencies": { + "@abp/core": "~10.3.0", + "luxon": "^3.7.2" + } }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/malihu-custom-scrollbar-plugin": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz", + "integrity": "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==", + "dependencies": { + "@abp/core": "~10.3.0", + "malihu-custom-scrollbar-plugin": "^3.1.5" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/select2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz", + "integrity": "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==", + "dependencies": { + "@abp/core": "~10.3.0", + "select2": "^4.0.13" + } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/timeago": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz", + "integrity": "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "timeago": "^1.6.7" + } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "just-compare": "^2.3.0" } }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==", + "engines": { + "node": ">=6" } }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } }, - "arr-diff": { + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/jquery-validation-unobtrusive": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" + "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz", + "integrity": "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==", + "dependencies": { + "jquery": "^3.6.0", + "jquery-validation": ">=1.19" } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" + "node_modules/@abp/aspnetcore.mvc.ui.theme.leptonxlite/node_modules/luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", + "engines": { + "node": ">=12" } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, + "node_modules/@abp/bootstrap-daterangepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz", + "integrity": "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } + "@abp/moment": "~10.3.0", + "bootstrap-daterangepicker": "^3.1.0" } }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, + "node_modules/@abp/datatables.net-bs5": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz", + "integrity": "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } + "@abp/datatables.net": "~10.3.0", + "datatables.net-bs5": "^2.3.4" } }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "@abp/utils": "~10.3.0" } }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/datatables.net": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz", + "integrity": "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==", + "dependencies": { + "@abp/jquery": "~10.3.0", + "datatables.net": "^2.3.4" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "dependencies": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, + "node_modules/@abp/datatables.net-bs5/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "just-compare": "^2.3.0" } }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" + "node_modules/@abp/datatables.net-bs5/node_modules/datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", + "dependencies": { + "jquery": ">=1.7" } }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" + "node_modules/@abp/datatables.net-bs5/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "bootstrap-datepicker": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz", - "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==", - "requires": { - "jquery": ">=1.7.1 <4.0.0" + "node_modules/@abp/moment": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz", + "integrity": "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==", + "dependencies": { + "moment": "^2.30.1" } }, - "bootstrap-v4-rtl": { - "version": "4.4.1-2", - "resolved": "https://registry.npmjs.org/bootstrap-v4-rtl/-/bootstrap-v4-rtl-4.4.1-2.tgz", - "integrity": "sha512-x9jZLEQzeOlkfxnR73aE/LjTD6hlqU6BbKVKdGasDByEP7dHBaxYaDGX54pfpHTom2QFqQ3t6y0WkDZW6DrQhw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@abp/popper.js": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz", + "integrity": "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==", + "dependencies": { + "@abp/core": "~10.3.0", + "@popperjs/core": "^2.11.8" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, + "node_modules/@abp/popper.js/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } + "@abp/utils": "~10.3.0" } }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "node_modules/@abp/popper.js/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "node_modules/@abp/popper.js/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, + "node_modules/@abp/sweetalert2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz", + "integrity": "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } + "@abp/core": "~10.3.0", + "sweetalert2": "^11.23.0" } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "node_modules/@abp/sweetalert2/node_modules/@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "dependencies": { + "@abp/utils": "~10.3.0" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" + "node_modules/@abp/sweetalert2/node_modules/@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "dependencies": { + "just-compare": "^2.3.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" + "node_modules/@abp/sweetalert2/node_modules/just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/bootstrap-datepicker": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz", + "integrity": "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==", + "dependencies": { + "jquery": ">=3.4.0 <4.0.0" } }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "node_modules/bootstrap-daterangepicker": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz", + "integrity": "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==", + "dependencies": { + "jquery": ">=1.10", + "moment": "^2.9.0" } }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "node_modules/datatables.net-bs5": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz", + "integrity": "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==", + "dependencies": { + "datatables.net": "2.3.8", + "jquery": ">=1.7" } }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" + "node_modules/datatables.net-bs5/node_modules/datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", + "dependencies": { + "jquery": ">=1.7" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "node_modules/jquery-mousewheel": { + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", + "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "node_modules/jquery-validation": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz", + "integrity": "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==", + "peerDependencies": { + "jquery": "^1.7 || ^2.0 || ^3.1 || ^4.0" } }, - "datatables.net": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.23.tgz", - "integrity": "sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q==", - "requires": { - "jquery": ">=1.7" - } + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, - "datatables.net-bs4": { - "version": "1.10.23", - "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.23.tgz", - "integrity": "sha512-ChUB8t5t5uzPnJYTPXx2DOvnlm2shz8OadXrKoFavOadB308OuwHVxSldYq9+KGedCeiVxEjNqcaV4nFSXkRsw==", - "requires": { - "datatables.net": "1.10.23", - "jquery": ">=1.7" + "node_modules/malihu-custom-scrollbar-plugin": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz", + "integrity": "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=", + "dependencies": { + "jquery-mousewheel": ">=3.0.6" } }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "node_modules/select2": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", + "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + "node_modules/sweetalert2": { + "version": "11.26.24", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz", + "integrity": "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/limonte" + } }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, + "node_modules/timeago": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", + "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } + "jquery": ">=1.5.0 <4.0" } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + } + }, + "dependencies": { + "@abp/aspnetcore.components.server.leptonxlitetheme": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz", + "integrity": "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==", "requires": { - "object-keys": "^1.0.12" + "@abp/aspnetcore.components.server.theming": "~10.3.0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "@abp/aspnetcore.components.server.theming": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz", + "integrity": "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==", "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "@abp/bootstrap": "~10.3.0", + "@abp/font-awesome": "~10.3.0" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", + "requires": { + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" + } + }, + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "requires": { - "kind-of": "^6.0.0" + "@abp/utils": "~10.3.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "just-compare": "^2.3.0" } + }, + "@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + }, + "bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "requires": {} + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz", + "integrity": "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==", "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~10.3.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "@abp/aspnetcore.mvc.ui": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz", + "integrity": "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==", "requires": { - "is-descriptor": "^0.1.0" + "ansi-colors": "^4.1.3" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "@abp/aspnetcore.mvc.ui.theme.shared": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz", + "integrity": "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/aspnetcore.mvc.ui": "~10.3.0", + "@abp/bootstrap": "~10.3.0", + "@abp/bootstrap-datepicker": "~10.3.0", + "@abp/bootstrap-daterangepicker": "~10.3.0", + "@abp/datatables.net-bs5": "~10.3.0", + "@abp/font-awesome": "~10.3.0", + "@abp/jquery-validation-unobtrusive": "~10.3.0", + "@abp/lodash": "~10.3.0", + "@abp/luxon": "~10.3.0", + "@abp/malihu-custom-scrollbar-plugin": "~10.3.0", + "@abp/moment": "~10.3.0", + "@abp/select2": "~10.3.0", + "@abp/sweetalert2": "~10.3.0", + "@abp/timeago": "~10.3.0" } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.3.0.tgz", - "integrity": "sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz", - "integrity": "sha1-QlFPhAFdE1bK9Rh5ad+yvBvaCCM=" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + }, + "@abp/bootstrap": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz", + "integrity": "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==", "requires": { - "is-plain-object": "^2.0.4" + "@abp/core": "~10.3.0", + "@abp/popper.js": "~10.3.0", + "bootstrap": "^5.3.8" } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + }, + "@abp/bootstrap-datepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz", + "integrity": "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==", "requires": { - "is-descriptor": "^1.0.0" + "bootstrap-datepicker": "^1.10.1" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/utils": "~10.3.0" } }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "@abp/font-awesome": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz", + "integrity": "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "@fortawesome/fontawesome-free": "^7.0.1" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", "requires": { - "kind-of": "^6.0.0" + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "@abp/jquery-validation": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz", + "integrity": "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==", "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "@abp/jquery": "~10.3.0", + "jquery-validation": "^1.21.0" } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + }, + "@abp/jquery-validation-unobtrusive": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz", + "integrity": "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==", "requires": { - "is-extendable": "^0.1.0" + "@abp/jquery-validation": "~10.3.0", + "jquery-validation-unobtrusive": "^4.0.0" } - } - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + }, + "@abp/lodash": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz", + "integrity": "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==", "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "@abp/core": "~10.3.0", + "lodash": "^4.17.21" } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + }, + "@abp/luxon": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz", + "integrity": "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==", "requires": { - "is-extglob": "^2.1.0" + "@abp/core": "~10.3.0", + "luxon": "^3.7.2" } - } - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + }, + "@abp/malihu-custom-scrollbar-plugin": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz", + "integrity": "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==", "requires": { - "ansi-wrap": "^0.1.0" + "@abp/core": "~10.3.0", + "malihu-custom-scrollbar-plugin": "^3.1.5" } }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "@abp/select2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz", + "integrity": "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==", "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" + "@abp/core": "~10.3.0", + "select2": "^4.0.13" } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { + }, + "@abp/timeago": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz", + "integrity": "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==", + "requires": { + "@abp/jquery": "~10.3.0", + "timeago": "^1.6.7" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "@fortawesome/fontawesome-free": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz", + "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + }, + "bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "requires": {} + }, + "jquery-validation-unobtrusive": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz", + "integrity": "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==", "requires": { - "is-buffer": "^1.1.5" + "jquery": "^3.6.0", + "jquery-validation": ">=1.19" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + }, + "luxon": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==" } } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "@abp/bootstrap-daterangepicker": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz", + "integrity": "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==", "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" + "@abp/moment": "~10.3.0", + "bootstrap-daterangepicker": "^3.1.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "@abp/datatables.net-bs5": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz", + "integrity": "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==", "requires": { - "kind-of": "^3.0.2" + "@abp/datatables.net": "~10.3.0", + "datatables.net-bs5": "^2.3.4" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/datatables.net": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz", + "integrity": "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==", + "requires": { + "@abp/jquery": "~10.3.0", + "datatables.net": "^2.3.4" + } + }, + "@abp/jquery": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz", + "integrity": "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==", + "requires": { + "@abp/core": "~10.3.0", + "jquery": "~3.7.1" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", "requires": { - "is-buffer": "^1.1.5" + "jquery": ">=1.7" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "@abp/moment": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz", + "integrity": "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==", "requires": { - "has": "^1.0.3" + "moment": "^2.30.1" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "@abp/popper.js": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz", + "integrity": "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==", "requires": { - "kind-of": "^3.0.2" + "@abp/core": "~10.3.0", + "@popperjs/core": "^2.11.8" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", "requires": { - "is-buffer": "^1.1.5" + "just-compare": "^2.3.0" } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "@abp/sweetalert2": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz", + "integrity": "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==", "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "@abp/core": "~10.3.0", + "sweetalert2": "^11.23.0" }, "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "@abp/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz", + "integrity": "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==", + "requires": { + "@abp/utils": "~10.3.0" + } + }, + "@abp/utils": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz", + "integrity": "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==", + "requires": { + "just-compare": "^2.3.0" + } + }, + "just-compare": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz", + "integrity": "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" } } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "bootstrap-datepicker": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz", + "integrity": "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==", "requires": { - "number-is-nan": "^1.0.0" + "jquery": ">=3.4.0 <4.0.0" } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "bootstrap-daterangepicker": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz", + "integrity": "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==", "requires": { - "is-extglob": "^2.1.1" + "jquery": ">=1.10", + "moment": "^2.9.0" } }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "datatables.net-bs5": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz", + "integrity": "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==", "requires": { - "kind-of": "^3.0.2" + "datatables.net": "2.3.8", + "jquery": ">=1.7" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "datatables.net": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz", + "integrity": "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==", "requires": { - "is-buffer": "^1.1.5" + "jquery": ">=1.7" } } } }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, - "jquery-form": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-4.3.0.tgz", - "integrity": "sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ==", - "requires": { - "jquery": ">=1.7.2" - } + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "jquery-mousewheel": { "version": "3.1.13", @@ -1735,125 +992,15 @@ "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" }, "jquery-validation": { - "version": "1.19.3", - "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.3.tgz", - "integrity": "sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw==" - }, - "jquery-validation-unobtrusive": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz", - "integrity": "sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ==", - "requires": { - "jquery": "^3.5.1", - "jquery-validation": ">=1.16" - } - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "just-compare": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/just-compare/-/just-compare-1.3.0.tgz", - "integrity": "sha512-i4QNo3mPYubDmAwPbCKQl5C2b5s0yudP5V5GDp6lGR1PM22Em4Idf7mcaIzXYcL6/RLdZtuGrAqkBe9RYM/t4w==" - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz", + "integrity": "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==", + "requires": {} }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "luxon": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-1.26.0.tgz", - "integrity": "sha512-+V5QIQ5f6CDXQpWNICELwjwuHdqeJM1UenlZWx5ujcRMc9venvluCjFb4t5NYLhb6IhkbMVOxzVuOqkgMxee2A==" - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" }, "malihu-custom-scrollbar-plugin": { "version": "3.1.5", @@ -1863,1334 +1010,28 @@ "jquery-mousewheel": ">=3.0.6" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } + "select2": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", + "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-polyfill": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz", - "integrity": "sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc=" - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "select2": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", - "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "sweetalert": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz", - "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==", - "requires": { - "es6-object-assign": "^1.1.0", - "promise-polyfill": "^6.0.2" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, - "timeago": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", - "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", + "sweetalert2": { + "version": "11.26.24", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz", + "integrity": "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==" + }, + "timeago": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz", + "integrity": "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==", "requires": { "jquery": ">=1.5.0 <4.0" } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, - "toastr": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", - "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", - "requires": { - "jquery": ">=1.12.0" - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" - }, - "yargs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", - "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "5.0.0-security.0" - } - }, - "yargs-parser": { - "version": "5.0.0-security.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", - "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } } } } diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/package.json b/samples/WebAppBlazorServer/src/BookStore.Blazor/package.json index 7d42c69..0479161 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/package.json +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.2.0", - "@abp/aspnetcore.components.server.leptonxlitetheme": "~4.2.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.3.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "~5.3.0" } } diff --git a/samples/WebAppBlazorServer/src/BookStore.Blazor/yarn.lock b/samples/WebAppBlazorServer/src/BookStore.Blazor/yarn.lock index 421dd0a..363a013 100644 --- a/samples/WebAppBlazorServer/src/BookStore.Blazor/yarn.lock +++ b/samples/WebAppBlazorServer/src/BookStore.Blazor/yarn.lock @@ -2,320 +2,324 @@ # yarn lockfile v1 -"@abp/aspnetcore.components.server.leptonxlitetheme@~4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-4.2.1.tgz#3fb1c687940052cc20e93a282ce8fbc61c0844e7" - integrity sha512-2DgQMU6MPAJ7WmcJUaoouk4eAXP8XhJftdcPh+BjB9rCu5FDQnWHqhT6hQOz1DR+KQ3vD3R8jbyZis1sB8InSw== - dependencies: - "@abp/aspnetcore.components.server.theming" "~9.2.1" - -"@abp/aspnetcore.components.server.theming@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-9.2.1.tgz#9e9e01f6356b4a5616fb706460b0cde53204075a" - integrity sha512-fxOJwzG7YiMYLxYHKLPL3Cv0pynfivOCLqhG+v60Hz4VTUIDqJDy4EJ2EN+LcEAkpYGglzGNmbGh5je+2anzCA== - dependencies: - "@abp/bootstrap" "~9.2.1" - "@abp/font-awesome" "~9.2.1" - -"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-4.2.1.tgz#3e3cc78b0d1d56113d459d61e01125bffada0c21" - integrity sha512-unZMV9HY13Kq00FZROVlo9po+foivENEoM7jUmZWlxOQjxBwa3/VJaxwQIXd9DZOqdpJpi5zUv/pSb6DqiZkfg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.1.tgz#35f6de6f106c80592ce70d36b6e8b20c64862803" - integrity sha512-kZz1tgUguGHxwG1MRkbkeXn9sIjbCOHJcBU+w+XuWwCqigM2yaE+KgnASDcjCrjQiPu6i73hf9OwtxXY1UbGMQ== - dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.1" - "@abp/bootstrap" "~9.2.1" - "@abp/bootstrap-datepicker" "~9.2.1" - "@abp/bootstrap-daterangepicker" "~9.2.1" - "@abp/datatables.net-bs5" "~9.2.1" - "@abp/font-awesome" "~9.2.1" - "@abp/jquery-form" "~9.2.1" - "@abp/jquery-validation-unobtrusive" "~9.2.1" - "@abp/lodash" "~9.2.1" - "@abp/luxon" "~9.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.1" - "@abp/moment" "~9.2.1" - "@abp/select2" "~9.2.1" - "@abp/sweetalert2" "~9.2.1" - "@abp/timeago" "~9.2.1" - -"@abp/aspnetcore.mvc.ui@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.1.tgz#8b30f830d85f7e1f4a386b0ef8d0444e2550bc42" - integrity sha512-0C41JpevGynbyHGeKkqLUSVNK64QETsKVyVWY4fSZkChGHlD09Fn3qIlHJInpBqJ9qNYs5VQ7RRP02PSum9mAg== - dependencies: - ansi-colors "^4.1.3" - -"@abp/bootstrap-datepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.1.tgz#373c8715d175ca23a8871bacdb5f017b070254aa" - integrity sha512-uaCpz5EDSZYDacjnYoqTiktTDFGnGJPEHYh5eG4BORlQta53Hvak7m2CkRVjdOaXtuPLi6EbWPSh2bHIfhKRyQ== - dependencies: - bootstrap-datepicker "^1.10.0" - -"@abp/bootstrap-daterangepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.1.tgz#b49e17a4753b09d49bfad6774a7f185e7e5bf71c" - integrity sha512-kd6LEACfx7CBIQOAiE/RHFp/WnthE2iz/eivl3fwuz1VgAO0CBIQ7hYoX91GaAIQgt+OAcgGbOl2G6E284EM9Q== - dependencies: - bootstrap-daterangepicker "^3.1.0" - -"@abp/bootstrap@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.1.tgz#ddf624e95f1dab4a8fce8d20b6dccd2b3d3f1679" - integrity sha512-NghAVP7M/Y2y9GYDu7IWo8oW7EyJEO+1NnPqCudpjWX4C6B27d7ghJ7I0MfrHoRq9/hBJZ07AKf3KMAZQD99ng== - dependencies: - "@abp/core" "~9.2.1" - bootstrap "^5.3.3" - -"@abp/core@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.1.tgz#f7c635f1fe88fc3fbbc4accaa6aee2dc3b5631a7" - integrity sha512-onCzS2w+U+wBv5FRDCVE176AiyZDMm1D5GaqiEnpuAwsBncFpFyZedC95dtPmykagJbpOvHVSPOLyZ2jzGjcYg== - dependencies: - "@abp/utils" "~9.2.1" - -"@abp/datatables.net-bs5@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.1.tgz#ff69059e96d5341166fa8d08390e9bb352010e5d" - integrity sha512-NEkf8xWTIYFDs9lAAPs0hOL2UD+pnVwyix/9IAtip3BIkyPFpLCniNWbu1WhuNJpfmLHrWPSqIrouR80gGL7PQ== - dependencies: - "@abp/datatables.net" "~9.2.1" - datatables.net-bs5 "^2.1.8" - -"@abp/datatables.net@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.1.tgz#0a5ab74ca44cd785efb487f0447e8acdea9d7aa1" - integrity sha512-A9TSPRNUV0eeCPnpGV9Htu9ZylUf3e03smYcbEROQHe+htwhcEV5dz8SLAI90baPi2g7VnyPav/3efaqo+ETdg== - dependencies: - "@abp/jquery" "~9.2.1" - datatables.net "^2.1.8" - -"@abp/font-awesome@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.1.tgz#a387f1cf457bdb6e3cd30bd9f4c455a41f8ca0b1" - integrity sha512-RVo3422BItdAAmafSCH/mT1Ux8q6yUz7nswGep4beP1k1VfmFExj1mgVphIpAlH3DWyzfnwUOq7lLWf/Ul2dOA== - dependencies: - "@abp/core" "~9.2.1" - "@fortawesome/fontawesome-free" "^6.6.0" - -"@abp/jquery-form@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.1.tgz#727b391c36e8ff46b62cb01be14715a05fe74b4f" - integrity sha512-n6EpUNNRzilOzP5rYTWr9K2mPQbvBQAuxPiwUZpfwf+QpJrs+NppJMaC06HFbHcSkDDy/utd+P1/sqWaJjL/tw== - dependencies: - "@abp/jquery" "~9.2.1" - jquery-form "^4.3.0" - -"@abp/jquery-validation-unobtrusive@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.1.tgz#98215811818e618d96a1dcac6419962fd39c6fef" - integrity sha512-7no3KxRW3agw4EAM5iTvQjE4+m9JrjuMAV20gAU0uVPB2+sHlluEAks0IU9wz76T+Ac7osferUZz33LgdDvIaw== - dependencies: - "@abp/jquery-validation" "~9.2.1" - jquery-validation-unobtrusive "^4.0.0" - -"@abp/jquery-validation@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.1.tgz#559c581523e4e098f2bf67627dfe6c7ef0e1c3c1" - integrity sha512-AEGm3agbwr1f5kmXvpBeiDmsS22P88zVr8NJDICGsgBxZofKndXsDFciNZGu6lXF5qXp8AwGRi//QPaCeQsP8g== - dependencies: - "@abp/jquery" "~9.2.1" - jquery-validation "^1.21.0" - -"@abp/jquery@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.1.tgz#bbcc9eab9cef528a8163f5062665ffcf2b87c2f0" - integrity sha512-gdDIKMNEpeUdzUu5C/g6j568ytJ7ifaDxBr1NYf2kJ34p7y6rrBmyY+sL+xR3ZlcGgyPGXyFhTLRD7qTjXlkPg== - dependencies: - "@abp/core" "~9.2.1" - jquery "~3.7.1" - -"@abp/lodash@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.1.tgz#a80ab7a908a0332b721277b1193209187fab57d8" - integrity sha512-I2+XYqwMi3+FXCv4xp5hBoJmOszg2WR1gnGc+Qd0zwb2VAbG4MvKVFgM/GUAFD8EKlquGyPf3f+4l5FkaPFkrQ== - dependencies: - "@abp/core" "~9.2.1" - lodash "^4.17.21" - -"@abp/luxon@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.1.tgz#7e3d197425813cfc6932cd3f9f09f97ecd2f4fc7" - integrity sha512-2tyOZRmq9jQN0Uhg8WaHfEzL0Xeew04sbA8O9bqw28psRbXaWXEVdElRMBNt50sZkFPhHFoxxFN7PR8obs0Qug== - dependencies: - "@abp/core" "~9.2.1" - luxon "^3.5.0" - -"@abp/malihu-custom-scrollbar-plugin@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.1.tgz#b0fa249885d442ba84657c7705df73851cb56db1" - integrity sha512-fzgQZsbN0xLMxEWh7znKAI4j0CPb8ciT/3x+QguGZDJf7OFw0YnEWctfEYJnnGG28HpHs1mh64gjqoeceHy0HQ== - dependencies: - "@abp/core" "~9.2.1" - malihu-custom-scrollbar-plugin "^3.1.5" - -"@abp/moment@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.1.tgz#9982c65d63171962091b08fc4e0d1ea98cc1f0eb" - integrity sha512-V4KH1WmahP0BoaQGLEY4a0AQyfk1cLeNMk3qCPtuqIUbOFwimJY3oQgpelilEwjI3oD/upMzGphjLGrfQLRM2A== - dependencies: - moment "^2.30.1" - -"@abp/select2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.1.tgz#5c3c6a4b0018b533491d6a46540069782559c57a" - integrity sha512-p743cnoohNLKX11ptnBcN5z9+ZyC11M9mwRR6SWbW5f1Eqvbkq03bf2mDFUfukCNis4RefeURZunPlsBOmRn/A== +"@abp/aspnetcore.components.server.leptonxlitetheme@~5.3.0": + "integrity" "sha512-rSkFUgDJiZQ/cKs20AVwyb1YS9KtUwP+OiG4Mr+zIst+GMsLOfK7ZBMd6qlGFN+0dQWVt89EfYckOJimsNE9xg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.components.server.leptonxlitetheme/-/aspnetcore.components.server.leptonxlitetheme-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "@abp/aspnetcore.components.server.theming" "~10.3.0" + +"@abp/aspnetcore.components.server.theming@~10.3.0": + "integrity" "sha512-s9MtBQHL5GQAHrZCRczgd0HOWM1++ImeEytT6/znaQRf4iEsR91+MxZdsfuuW4apBJwNO2QqCGefKTmzpxUBzg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/bootstrap" "~10.3.0" + "@abp/font-awesome" "~10.3.0" + +"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~5.3.0": + "integrity" "sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~10.3.0" + +"@abp/aspnetcore.mvc.ui.theme.shared@~10.3.0": + "integrity" "sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/aspnetcore.mvc.ui" "~10.3.0" + "@abp/bootstrap" "~10.3.0" + "@abp/bootstrap-datepicker" "~10.3.0" + "@abp/bootstrap-daterangepicker" "~10.3.0" + "@abp/datatables.net-bs5" "~10.3.0" + "@abp/font-awesome" "~10.3.0" + "@abp/jquery-validation-unobtrusive" "~10.3.0" + "@abp/lodash" "~10.3.0" + "@abp/luxon" "~10.3.0" + "@abp/malihu-custom-scrollbar-plugin" "~10.3.0" + "@abp/moment" "~10.3.0" + "@abp/select2" "~10.3.0" + "@abp/sweetalert2" "~10.3.0" + "@abp/timeago" "~10.3.0" + +"@abp/aspnetcore.mvc.ui@~10.3.0": + "integrity" "sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg==" + "resolved" "https://registry.npmjs.org/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "ansi-colors" "^4.1.3" + +"@abp/bootstrap-datepicker@~10.3.0": + "integrity" "sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "bootstrap-datepicker" "^1.10.1" + +"@abp/bootstrap-daterangepicker@~10.3.0": + "integrity" "sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/moment" "~10.3.0" + "bootstrap-daterangepicker" "^3.1.0" + +"@abp/bootstrap@~10.3.0": + "integrity" "sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg==" + "resolved" "https://registry.npmjs.org/@abp/bootstrap/-/bootstrap-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "@abp/popper.js" "~10.3.0" + "bootstrap" "^5.3.8" + +"@abp/core@~10.3.0": + "integrity" "sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA==" + "resolved" "https://registry.npmjs.org/@abp/core/-/core-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/utils" "~10.3.0" + +"@abp/datatables.net-bs5@~10.3.0": + "integrity" "sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ==" + "resolved" "https://registry.npmjs.org/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/datatables.net" "~10.3.0" + "datatables.net-bs5" "^2.3.4" + +"@abp/datatables.net@~10.3.0": + "integrity" "sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw==" + "resolved" "https://registry.npmjs.org/@abp/datatables.net/-/datatables.net-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery" "~10.3.0" + "datatables.net" "^2.3.4" + +"@abp/font-awesome@~10.3.0": + "integrity" "sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A==" + "resolved" "https://registry.npmjs.org/@abp/font-awesome/-/font-awesome-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "@fortawesome/fontawesome-free" "^7.0.1" + +"@abp/jquery-validation-unobtrusive@~10.3.0": + "integrity" "sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA==" + "resolved" "https://registry.npmjs.org/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery-validation" "~10.3.0" + "jquery-validation-unobtrusive" "^4.0.0" + +"@abp/jquery-validation@~10.3.0": + "integrity" "sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g==" + "resolved" "https://registry.npmjs.org/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/jquery" "~10.3.0" + "jquery-validation" "^1.21.0" + +"@abp/jquery@~10.3.0": + "integrity" "sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg==" + "resolved" "https://registry.npmjs.org/@abp/jquery/-/jquery-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "jquery" "~3.7.1" + +"@abp/lodash@~10.3.0": + "integrity" "sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ==" + "resolved" "https://registry.npmjs.org/@abp/lodash/-/lodash-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "@abp/core" "~10.3.0" + "lodash" "^4.17.21" + +"@abp/luxon@~10.3.0": + "integrity" "sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw==" + "resolved" "https://registry.npmjs.org/@abp/luxon/-/luxon-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/core" "~9.2.1" - select2 "^4.0.13" + "@abp/core" "~10.3.0" + "luxon" "^3.7.2" -"@abp/sweetalert2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.1.tgz#3db7e33855614460d2fdc5e3f8b65530902fcd9a" - integrity sha512-fJYLVxc5pAJoSLIcQYf5xRkPVnVQi/5+xwTgOePy3QeygOrAMpGS7vy+MIq7Mn+tBoEFlQ/Jn+NoB04AIYYPFw== +"@abp/malihu-custom-scrollbar-plugin@~10.3.0": + "integrity" "sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA==" + "resolved" "https://registry.npmjs.org/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/core" "~9.2.1" - sweetalert2 "^11.14.1" + "@abp/core" "~10.3.0" + "malihu-custom-scrollbar-plugin" "^3.1.5" -"@abp/timeago@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.1.tgz#6904e2d7bda57b436e3385c5fd1899b9cd806dd8" - integrity sha512-fmsPuBouWR/BvhXN53yJpg1Se06uIL7ox8XOgx1MHCe+1vxbXnFCtM2VujfowWtOSTJOzbL1DHcDpFE7JlkOag== +"@abp/moment@~10.3.0": + "integrity" "sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ==" + "resolved" "https://registry.npmjs.org/@abp/moment/-/moment-10.3.0.tgz" + "version" "10.3.0" dependencies: - "@abp/jquery" "~9.2.1" - timeago "^1.6.7" + "moment" "^2.30.1" -"@abp/utils@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.1.tgz#803fd48927ae332309f8a7005806c6aa6e499750" - integrity sha512-+j0SNB/K2j2xTTijy/qCL3ds2c/7OW4nrJ8Ccq17WtEqP+jk2TtJi0EnLqhNTDih0A++XV+pcftUC+cQ0h1cUw== +"@abp/popper.js@~10.3.0": + "integrity" "sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g==" + "resolved" "https://registry.npmjs.org/@abp/popper.js/-/popper.js-10.3.0.tgz" + "version" "10.3.0" dependencies: - just-compare "^2.3.0" - -"@fortawesome/fontawesome-free@^6.6.0": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" - integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== + "@abp/core" "~10.3.0" + "@popperjs/core" "^2.11.8" -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - -bootstrap-datepicker@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a" - integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg== - dependencies: - jquery ">=3.4.0 <4.0.0" - -bootstrap-daterangepicker@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz#632e6fb2de4b6360c5c0a9d5f6adb9aace051fe8" - integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g== +"@abp/select2@~10.3.0": + "integrity" "sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA==" + "resolved" "https://registry.npmjs.org/@abp/select2/-/select2-10.3.0.tgz" + "version" "10.3.0" dependencies: - jquery ">=1.10" - moment "^2.9.0" - -bootstrap@^5.3.3: - version "5.3.7" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90" - integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw== + "@abp/core" "~10.3.0" + "select2" "^4.0.13" -datatables.net-bs5@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.2.tgz#cffb8007a9f752a997bc70c0dbe9f545edfd18eb" - integrity sha512-1rh0ZTLoiziIQ4oAtgr+IOYVgJfAIceDnbDe535u8kv191pBAdTrKF6ovQO98Xy9mDXLdLNB7QCrLiV/sgPoQw== +"@abp/sweetalert2@~10.3.0": + "integrity" "sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg==" + "resolved" "https://registry.npmjs.org/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz" + "version" "10.3.0" dependencies: - datatables.net "2.3.2" - jquery ">=1.7" + "@abp/core" "~10.3.0" + "sweetalert2" "^11.23.0" -datatables.net@2.3.2, datatables.net@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.2.tgz#6821f6288e6ad3cb6879c33e0e7e11d4091d330b" - integrity sha512-31TzwIQM0+pr2ZOEOEH6dsHd/WSAl5GDDGPezOHPI3mM2NK4lcDyOoG8xXeWmSbVfbi852LNK5C84fpp4Q+qxg== - dependencies: - jquery ">=1.7" - -jquery-form@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6" - integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ== +"@abp/timeago@~10.3.0": + "integrity" "sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg==" + "resolved" "https://registry.npmjs.org/@abp/timeago/-/timeago-10.3.0.tgz" + "version" "10.3.0" dependencies: - jquery ">=1.7.2" - -jquery-mousewheel@>=3.0.6: - version "3.2.2" - resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b" - integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ== - dependencies: - jquery ">=1.2.6" - -jquery-validation-unobtrusive@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz#dfcf25a558496a2c883db6021d10f5398d15f99d" - integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ== - dependencies: - jquery "^3.6.0" - jquery-validation ">=1.19" - -jquery-validation@>=1.19, jquery-validation@^1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93" - integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w== - -jquery@>=1.10, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" - integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== - -just-compare@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7" - integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -luxon@^3.5.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0" - integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ== - -malihu-custom-scrollbar-plugin@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz#310cecc5e59415a1c29e9dfb5d2b6e01d66a29ef" - integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ== - dependencies: - jquery-mousewheel ">=3.0.6" - -moment@^2.30.1, moment@^2.9.0: - version "2.30.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" - integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== - -select2@^4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" - integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== - -sweetalert2@^11.14.1: - version "11.22.2" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.22.2.tgz#d4d82a2edd4e97024306fe37f1bc64fa576e9bc9" - integrity sha512-GFQGzw8ZXF23PO79WMAYXLl4zYmLiaKqYJwcp5eBF07wiI5BYPbZtKi2pcvVmfUQK+FqL1risJAMxugcPbGIyg== - -timeago@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.7.tgz#afd467c29a911e697fc22a81888c7c3022783cb5" - integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ== - dependencies: - jquery ">=1.5.0 <4.0" + "@abp/jquery" "~10.3.0" + "timeago" "^1.6.7" + +"@abp/utils@~10.3.0": + "integrity" "sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA==" + "resolved" "https://registry.npmjs.org/@abp/utils/-/utils-10.3.0.tgz" + "version" "10.3.0" + dependencies: + "just-compare" "^2.3.0" + +"@fortawesome/fontawesome-free@^7.0.1": + "integrity" "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==" + "resolved" "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz" + "version" "7.2.0" + +"@popperjs/core@^2.11.8": + "integrity" "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" + "version" "2.11.8" + +"ansi-colors@^4.1.3": + "integrity" "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==" + "resolved" "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" + "version" "4.1.3" + +"bootstrap-datepicker@^1.10.1": + "integrity" "sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ==" + "resolved" "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz" + "version" "1.10.1" + dependencies: + "jquery" ">=3.4.0 <4.0.0" + +"bootstrap-daterangepicker@^3.1.0": + "integrity" "sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g==" + "resolved" "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "jquery" ">=1.10" + "moment" "^2.9.0" + +"bootstrap@^5.3.8": + "integrity" "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==" + "resolved" "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz" + "version" "5.3.8" + +"datatables.net-bs5@^2.3.4": + "integrity" "sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw==" + "resolved" "https://registry.npmjs.org/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "datatables.net" "2.3.8" + "jquery" ">=1.7" + +"datatables.net@^2.3.4": + "integrity" "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==" + "resolved" "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "jquery" ">=1.7" + +"datatables.net@2.3.8": + "integrity" "sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg==" + "resolved" "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.8.tgz" + "version" "2.3.8" + dependencies: + "jquery" ">=1.7" + +"jquery-mousewheel@>=3.0.6": + "integrity" "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=" + "resolved" "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz" + "version" "3.1.13" + +"jquery-validation-unobtrusive@^4.0.0": + "integrity" "sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ==" + "resolved" "https://registry.npmjs.org/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "jquery" "^3.6.0" + "jquery-validation" ">=1.19" + +"jquery-validation@^1.21.0", "jquery-validation@>=1.19": + "integrity" "sha512-ePLXLWK7Rh5eR652YsuIu7YPeGlCXrsJUteVw5iZopiU17yaMd3FaDggs6yyNMl56p8TYVeDRmKGK3fPZrMeQw==" + "resolved" "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.22.1.tgz" + "version" "1.22.1" + +"jquery@^1.7 || ^2.0 || ^3.1 || ^4.0", "jquery@^3.6.0", "jquery@>=1.10", "jquery@>=1.5.0 <4.0", "jquery@>=1.7", "jquery@>=3.4.0 <4.0.0", "jquery@~3.7.1": + "integrity" "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz" + "version" "3.7.1" + +"just-compare@^2.3.0": + "integrity" "sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg==" + "resolved" "https://registry.npmjs.org/just-compare/-/just-compare-2.3.0.tgz" + "version" "2.3.0" + +"lodash@^4.17.21": + "integrity" "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz" + "version" "4.18.1" + +"luxon@^3.7.2": + "integrity" "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==" + "resolved" "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz" + "version" "3.7.2" + +"malihu-custom-scrollbar-plugin@^3.1.5": + "integrity" "sha1-MQzsxeWUFaHCnp37XStuAdZqKe8=" + "resolved" "https://registry.npmjs.org/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "jquery-mousewheel" ">=3.0.6" + +"moment@^2.30.1", "moment@^2.9.0": + "integrity" "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + "resolved" "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz" + "version" "2.30.1" + +"select2@^4.0.13": + "integrity" "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==" + "resolved" "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz" + "version" "4.0.13" + +"sweetalert2@^11.23.0": + "integrity" "sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg==" + "resolved" "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.26.24.tgz" + "version" "11.26.24" + +"timeago@^1.6.7": + "integrity" "sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ==" + "resolved" "https://registry.npmjs.org/timeago/-/timeago-1.6.7.tgz" + "version" "1.6.7" + dependencies: + "jquery" ">=1.5.0 <4.0" diff --git a/samples/WebAppBlazorServer/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs b/samples/WebAppBlazorServer/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs index 3ad09fd..01b67d6 100644 --- a/samples/WebAppBlazorServer/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs +++ b/samples/WebAppBlazorServer/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MongoDB.Driver; using BookStore.Data; @@ -26,6 +27,7 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra { var dbContexts = _serviceProvider.GetServices(); var connectionStringResolver = _serviceProvider.GetRequiredService(); + var configuration = _serviceProvider.GetRequiredService(); if (_serviceProvider.GetRequiredService().IsAvailable) { @@ -34,9 +36,22 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra foreach (var dbContext in dbContexts) { - var connectionString = - await connectionStringResolver.ResolveAsync( - ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType())); + var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()); + var connectionString = await connectionStringResolver.ResolveAsync(connectionStringName); + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = await connectionStringResolver.ResolveAsync(); + } + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = configuration.GetConnectionString("Default"); + } + if (connectionString.IsNullOrWhiteSpace()) + { + throw new InvalidOperationException( + $"Could not find a MongoDB connection string for '{connectionStringName}' or 'Default'."); + } + var mongoUrl = new MongoUrl(connectionString); var databaseName = mongoUrl.DatabaseName; var client = new MongoClient(mongoUrl); diff --git a/samples/WebAppBlazorWebAssembly/README.md b/samples/WebAppBlazorWebAssembly/README.md index d07e56c..94d1042 100644 --- a/samples/WebAppBlazorWebAssembly/README.md +++ b/samples/WebAppBlazorWebAssembly/README.md @@ -1,59 +1,64 @@ -# BookStore +# BookStore Blazor WebAssembly Sample -## About this solution +This sample demonstrates the AntDesign theme in an ABP Blazor WebAssembly application. -This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. Check the [Application Startup Template](https://abp.io/docs/latest/solution-templates/layered-web-application) documentation for more info. +## Prerequisites -### Pre-requirements +- .NET SDK 10.0+ +- Node.js 18 or newer +- MongoDB +- ABP CLI (`dotnet tool install -g Volo.Abp.Cli` if needed) -* [.net10.0+ SDK](https://dotnet.microsoft.com/download/dotnet) -* [Node v18 or 20](https://nodejs.org/en) +## Run -### Configurations +Install front-end libraries: -The solution comes with a default configuration that works out of the box. However, you may consider to change the following configuration before running your solution: - -* Check the `ConnectionStrings` in `appsettings.json` files under the `BookStore.HttpApi.Host` and `BookStore.DbMigrator` projects and change it if you need. - -### Before running the application - -* Run `abp install-libs` command on your solution folder to install client-side package dependencies. This step is automatically done when you create a new solution, if you didn't especially disabled it. However, you should run it yourself if you have first cloned this solution from your source control, or added a new client-side package dependency to your solution. -* Run `BookStore.DbMigrator` to create the initial database. This step is also automatically done when you create a new solution, if you didn't especially disabled it. This should be done in the first run. It is also needed if a new database migration is added to the solution later. +```bash +abp install-libs +``` -#### Generating a Signing Certificate +Apply database migrations and seed data: -In the production environment, you need to use a production signing certificate. ABP Framework sets up signing and encryption certificates in your application and expects an `openiddict.pfx` file in your application. +```bash +dotnet run --project .\src\BookStore.DbMigrator\ +``` -To generate a signing certificate, you can use the following command: +Start the HTTP API host: ```bash -dotnet dev-certs https -v -ep openiddict.pfx -p 2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3 +dotnet run --project .\src\BookStore.HttpApi.Host\ ``` -> `2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3` is the password of the certificate, you can change it to any password you want. - -It is recommended to use **two** RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. +Start the Blazor WebAssembly host in another terminal: -For more information, please refer to: [OpenIddict Certificate Configuration](https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios) +```bash +dotnet run --project .\src\BookStore.Blazor\ +``` -> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. +Open `https://localhost:44376`. -### Solution structure +## Default Login -This is a layered monolith application that consists of the following applications: +- Username: `admin` +- Password: `1q2w3E*` -* `BookStore.DbMigrator`: A console application which applies the migrations and also seeds the initial data. It is useful on development as well as on production environment. -* `BookStore.HttpApi.Host`: ASP.NET Core API application that is used to expose the APIs to the clients. -* `BookStore.Blazor`: ASP.NET Core Blazor Server application that is the essential web application of the solution. +## What To Verify +- The application uses the refactored AntDesign Pro-style layout. +- The sidebar is responsive and can collapse on smaller screens. +- Authenticated users can open the floating theme settings panel. +- Theme settings apply immediately through the host application service. -## Deploying the application +## Theme Settings Management -Deploying an ABP application follows the same process as deploying any .NET or ASP.NET Core application. However, there are important considerations to keep in mind. For detailed guidance, refer to ABP's [deployment documentation](https://abp.io/docs/latest/Deployment/Index). +This sample is configured with `AntDesignThemeManagement`. -### Additional resources +Go to `Administration -> Settings -> Theme settings management` to control which sections appear in the user-facing panel: -You can see the following resources to learn more about your solution and the ABP Framework: +- `Enable theme settings` +- `Page style setting` +- `Navigation mode` +- `Regional settings` +- `Other settings` -* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-1) -* [Application Startup Template](https://abp.io/docs/latest/startup-templates/application/index) +If all child options are disabled, `Enable theme settings` is automatically disabled. diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj index 670f54f..684c61e 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj @@ -22,6 +22,7 @@ + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs index f4add7b..039ca45 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs @@ -9,6 +9,7 @@ using Volo.Abp.Localization; using BookStore.Localization; using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing; using Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme; +using Lsw.Abp.AntDesignThemeManagement.Blazor.WebAssembly; using Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI; using Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI; using Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI; @@ -28,6 +29,7 @@ namespace BookStore.Blazor.Client; typeof(AbpFeatureManagementBlazorWebAssemblyAntDesignModule), typeof(AbpTenantManagementBlazorWebAssemblyAntDesignModule), typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), + typeof(AbpAntDesignThemeManagementBlazorWebAssemblyModule), typeof(AbpMapperlyModule), typeof(BookStoreHttpApiClientModule) )] diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json index a3a6440..4de0c90 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "mongodb://localhost:27017/BookStore" + "Default": "mongodb://localhost:27017/BookStore_WebAssembly" }, "OpenIddict": { "Applications": { diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg index d5b2efb..3a09936 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg @@ -1,3 +1,4 @@ { - "role": "host.http-api" -} + "role": "host.http-api", + "projectId": "7c286d0e-2950-4f31-a8bf-5c462e6459bb" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj index 9fe6eab..be4d553 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj @@ -36,6 +36,7 @@ + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs index 07c1b4c..4d1ffd3 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs @@ -15,7 +15,7 @@ using OpenIddict.Validation.AspNetCore; using OpenIddict.Server.AspNetCore; using BookStore.MongoDB; using BookStore.MultiTenancy; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using Volo.Abp; using Volo.Abp.Studio; using Volo.Abp.Account; @@ -38,6 +38,7 @@ using Volo.Abp.OpenIddict; using Volo.Abp.Swashbuckle; using Volo.Abp.Studio.Client.AspNetCore; using Volo.Abp.Security.Claims; +using Lsw.Abp.AntDesignThemeManagement; namespace BookStore; @@ -48,6 +49,7 @@ namespace BookStore; typeof(AbpAutofacModule), typeof(AbpAspNetCoreMultiTenancyModule), typeof(BookStoreApplicationModule), + typeof(AbpAntDesignThemeManagementApplicationModule), typeof(BookStoreMongoDbModule), typeof(AbpAccountWebOpenIddictModule), typeof(AbpSwashbuckleModule), @@ -180,6 +182,7 @@ public class BookStoreHttpApiHostModule : AbpModule Configure(options => { options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + options.ConventionalControllers.Create(typeof(AbpAntDesignThemeManagementApplicationModule).Assembly); }); } diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json index 45afff3..c4c00d8 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json @@ -7,7 +7,7 @@ "HealthCheckUrl": "/health-status" }, "ConnectionStrings": { - "Default": "mongodb://localhost:27017/BookStore" + "Default": "mongodb://localhost:27017/BookStore_WebAssembly" }, "AuthServer": { "Authority": "https://localhost:44318", diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json index 5caead1..066b3d8 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.2.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~5.3.0" } } diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock index ab84339..7bb1a77 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock @@ -2,202 +2,208 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-4.2.1.tgz#3e3cc78b0d1d56113d459d61e01125bffada0c21" - integrity sha512-unZMV9HY13Kq00FZROVlo9po+foivENEoM7jUmZWlxOQjxBwa3/VJaxwQIXd9DZOqdpJpi5zUv/pSb6DqiZkfg== +"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-5.3.0.tgz#8d7834ddd21f35f4429688617767ae584dffb076" + integrity sha512-gB+Vczz5ZY7wOUjGWgJdcFbhbFRG4nOH/5HMpXWtBxuigapjoofubrgDqVVsOzVtremDRy/uUZomYlEdWiTpQg== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~10.3.0" -"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.1.tgz#35f6de6f106c80592ce70d36b6e8b20c64862803" - integrity sha512-kZz1tgUguGHxwG1MRkbkeXn9sIjbCOHJcBU+w+XuWwCqigM2yaE+KgnASDcjCrjQiPu6i73hf9OwtxXY1UbGMQ== +"@abp/aspnetcore.mvc.ui.theme.shared@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-10.3.0.tgz#bcf72b5dd1dea285c3fa7cb1b6ce27c29b985ff7" + integrity sha512-X5xmMSxnIzNJPexvKR9y6jyn0v5n2wscN1SECG/bMI1YdKugMlkfkSuyUmLn+RX9/YdcK0jOsdMhfuzs5mgAOA== dependencies: - "@abp/aspnetcore.mvc.ui" "~9.2.1" - "@abp/bootstrap" "~9.2.1" - "@abp/bootstrap-datepicker" "~9.2.1" - "@abp/bootstrap-daterangepicker" "~9.2.1" - "@abp/datatables.net-bs5" "~9.2.1" - "@abp/font-awesome" "~9.2.1" - "@abp/jquery-form" "~9.2.1" - "@abp/jquery-validation-unobtrusive" "~9.2.1" - "@abp/lodash" "~9.2.1" - "@abp/luxon" "~9.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~9.2.1" - "@abp/moment" "~9.2.1" - "@abp/select2" "~9.2.1" - "@abp/sweetalert2" "~9.2.1" - "@abp/timeago" "~9.2.1" - -"@abp/aspnetcore.mvc.ui@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.1.tgz#8b30f830d85f7e1f4a386b0ef8d0444e2550bc42" - integrity sha512-0C41JpevGynbyHGeKkqLUSVNK64QETsKVyVWY4fSZkChGHlD09Fn3qIlHJInpBqJ9qNYs5VQ7RRP02PSum9mAg== + "@abp/aspnetcore.mvc.ui" "~10.3.0" + "@abp/bootstrap" "~10.3.0" + "@abp/bootstrap-datepicker" "~10.3.0" + "@abp/bootstrap-daterangepicker" "~10.3.0" + "@abp/datatables.net-bs5" "~10.3.0" + "@abp/font-awesome" "~10.3.0" + "@abp/jquery-validation-unobtrusive" "~10.3.0" + "@abp/lodash" "~10.3.0" + "@abp/luxon" "~10.3.0" + "@abp/malihu-custom-scrollbar-plugin" "~10.3.0" + "@abp/moment" "~10.3.0" + "@abp/select2" "~10.3.0" + "@abp/sweetalert2" "~10.3.0" + "@abp/timeago" "~10.3.0" + +"@abp/aspnetcore.mvc.ui@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-10.3.0.tgz#0d125efd172b6772c516eae82cfe35f144da73fc" + integrity sha512-kp0XdwrlNz+NeLdxSJ6xdUaB5PM7xdbiLsIyTUcwa7AUKBtcVU6yq6qttbk9VyO0KqDgLywSuEL+9PkFhthuPg== dependencies: ansi-colors "^4.1.3" -"@abp/bootstrap-datepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.1.tgz#373c8715d175ca23a8871bacdb5f017b070254aa" - integrity sha512-uaCpz5EDSZYDacjnYoqTiktTDFGnGJPEHYh5eG4BORlQta53Hvak7m2CkRVjdOaXtuPLi6EbWPSh2bHIfhKRyQ== +"@abp/bootstrap-datepicker@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-10.3.0.tgz#032aaf0e474f971b9f90ca7fb83ff7ca4d7be933" + integrity sha512-7mRuRRIE4R0yw1cZuoIskgrqZPUa5/SJzse0K6u+/QDqvyLjjOsyE51WuqAXxlVfKpLp/fBvXZwnCDeCRU9iZQ== dependencies: - bootstrap-datepicker "^1.10.0" + bootstrap-datepicker "^1.10.1" -"@abp/bootstrap-daterangepicker@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.1.tgz#b49e17a4753b09d49bfad6774a7f185e7e5bf71c" - integrity sha512-kd6LEACfx7CBIQOAiE/RHFp/WnthE2iz/eivl3fwuz1VgAO0CBIQ7hYoX91GaAIQgt+OAcgGbOl2G6E284EM9Q== +"@abp/bootstrap-daterangepicker@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-10.3.0.tgz#b2a9171595ee311c32f57460013870cde67c6b7f" + integrity sha512-ejLu3sWhfNDlsXeUXAQudZvPv0xM4McxIK65vuVEZiKIwFSnrLYil8jBi12EJJmAw5yYA/KC0EdyG82E+AWpmA== dependencies: + "@abp/moment" "~10.3.0" bootstrap-daterangepicker "^3.1.0" -"@abp/bootstrap@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.1.tgz#ddf624e95f1dab4a8fce8d20b6dccd2b3d3f1679" - integrity sha512-NghAVP7M/Y2y9GYDu7IWo8oW7EyJEO+1NnPqCudpjWX4C6B27d7ghJ7I0MfrHoRq9/hBJZ07AKf3KMAZQD99ng== +"@abp/bootstrap@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-10.3.0.tgz#23535c90613271b02fdad3eae1556b67844729e6" + integrity sha512-JnVOeJUyR78oo+QURvaNqa9xGZaVux0PRIpFpd4Qsqiiz9FvJrbCuSoBkkZoj/0eH23WoZ3bJxy0K9LDE19qvg== dependencies: - "@abp/core" "~9.2.1" - bootstrap "^5.3.3" - -"@abp/core@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.1.tgz#f7c635f1fe88fc3fbbc4accaa6aee2dc3b5631a7" - integrity sha512-onCzS2w+U+wBv5FRDCVE176AiyZDMm1D5GaqiEnpuAwsBncFpFyZedC95dtPmykagJbpOvHVSPOLyZ2jzGjcYg== - dependencies: - "@abp/utils" "~9.2.1" - -"@abp/datatables.net-bs5@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.1.tgz#ff69059e96d5341166fa8d08390e9bb352010e5d" - integrity sha512-NEkf8xWTIYFDs9lAAPs0hOL2UD+pnVwyix/9IAtip3BIkyPFpLCniNWbu1WhuNJpfmLHrWPSqIrouR80gGL7PQ== + "@abp/core" "~10.3.0" + "@abp/popper.js" "~10.3.0" + bootstrap "^5.3.8" + +"@abp/core@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-10.3.0.tgz#9960f8179d1fdc42250d0bbba60e379590c8199c" + integrity sha512-DpL4qrsyCUolypUwxKVDDK8bPVhNbYKx6l2ytUjoOu73CwgPoCSGkvHWrmKIsEsmTfOC9J7+GDErh8jWR/5pVA== dependencies: - "@abp/datatables.net" "~9.2.1" - datatables.net-bs5 "^2.1.8" + "@abp/utils" "~10.3.0" -"@abp/datatables.net@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.1.tgz#0a5ab74ca44cd785efb487f0447e8acdea9d7aa1" - integrity sha512-A9TSPRNUV0eeCPnpGV9Htu9ZylUf3e03smYcbEROQHe+htwhcEV5dz8SLAI90baPi2g7VnyPav/3efaqo+ETdg== +"@abp/datatables.net-bs5@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-10.3.0.tgz#d8711c52f7c03df51d14d1a5f0e6b00f6d9551fc" + integrity sha512-I8rEU98kEhsNZjVdpPvOcG6F4xr1CgIRb0bTf5bfd8ufzxEUKB+xF9bguJIB5kYwjme8QbMlcJ0V/c+N4iewtQ== dependencies: - "@abp/jquery" "~9.2.1" - datatables.net "^2.1.8" + "@abp/datatables.net" "~10.3.0" + datatables.net-bs5 "^2.3.4" -"@abp/font-awesome@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.1.tgz#a387f1cf457bdb6e3cd30bd9f4c455a41f8ca0b1" - integrity sha512-RVo3422BItdAAmafSCH/mT1Ux8q6yUz7nswGep4beP1k1VfmFExj1mgVphIpAlH3DWyzfnwUOq7lLWf/Ul2dOA== +"@abp/datatables.net@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-10.3.0.tgz#f98319d8e226da5aced4d1d94d3ababb11327074" + integrity sha512-imM25WmO1V0hqeG5iPeLvYMID2HX7SG9drz47qilr74MhpY2i2J7HlsvZDonNkjpxzhK4DHpGeQd6mE2QzG7Hw== dependencies: - "@abp/core" "~9.2.1" - "@fortawesome/fontawesome-free" "^6.6.0" + "@abp/jquery" "~10.3.0" + datatables.net "^2.3.4" -"@abp/jquery-form@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.1.tgz#727b391c36e8ff46b62cb01be14715a05fe74b4f" - integrity sha512-n6EpUNNRzilOzP5rYTWr9K2mPQbvBQAuxPiwUZpfwf+QpJrs+NppJMaC06HFbHcSkDDy/utd+P1/sqWaJjL/tw== +"@abp/font-awesome@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-10.3.0.tgz#43602605f5633132cc6fe21b6ce5ab19b86bdf27" + integrity sha512-RUOVHxDyT81hp01DhUuSshKvLM+NiTt9VP+O4/rSj+SOaSJAm3wX7eziCKrDi6H41FwhoZL75CifLhcZVyVO4A== dependencies: - "@abp/jquery" "~9.2.1" - jquery-form "^4.3.0" + "@abp/core" "~10.3.0" + "@fortawesome/fontawesome-free" "^7.0.1" -"@abp/jquery-validation-unobtrusive@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.1.tgz#98215811818e618d96a1dcac6419962fd39c6fef" - integrity sha512-7no3KxRW3agw4EAM5iTvQjE4+m9JrjuMAV20gAU0uVPB2+sHlluEAks0IU9wz76T+Ac7osferUZz33LgdDvIaw== +"@abp/jquery-validation-unobtrusive@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-10.3.0.tgz#5bc14ed642d48f9eae54761ad39bd9f51beeb005" + integrity sha512-j/9fA7tAs1/t3P2U1kKUiDlHAImmseul6KzvV77sNpnms7g4+x6Fgsa+sMzicSRGOLz7lK5RHdBFyvfKxt7/nA== dependencies: - "@abp/jquery-validation" "~9.2.1" + "@abp/jquery-validation" "~10.3.0" jquery-validation-unobtrusive "^4.0.0" -"@abp/jquery-validation@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.1.tgz#559c581523e4e098f2bf67627dfe6c7ef0e1c3c1" - integrity sha512-AEGm3agbwr1f5kmXvpBeiDmsS22P88zVr8NJDICGsgBxZofKndXsDFciNZGu6lXF5qXp8AwGRi//QPaCeQsP8g== +"@abp/jquery-validation@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-10.3.0.tgz#e669a54d28f6c0b863a284322e527a5c65cb7dbf" + integrity sha512-Wo95ZJLS1ScKm7dm3zFlEFUKqXrqo3m9+82DX5mFJUVCHHuBPrhxvDjxNJ18z4gpoOUu08uqxX7LFbphtkRM3g== dependencies: - "@abp/jquery" "~9.2.1" + "@abp/jquery" "~10.3.0" jquery-validation "^1.21.0" -"@abp/jquery@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.1.tgz#bbcc9eab9cef528a8163f5062665ffcf2b87c2f0" - integrity sha512-gdDIKMNEpeUdzUu5C/g6j568ytJ7ifaDxBr1NYf2kJ34p7y6rrBmyY+sL+xR3ZlcGgyPGXyFhTLRD7qTjXlkPg== +"@abp/jquery@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-10.3.0.tgz#3b60bcdfe8f9a33be79db1bea2500837fe09c67d" + integrity sha512-TndX/8bJx5vGAAwIykx2CJUZIFFDkwpD+cUjE45WO2dSrY2M5vNfWiuw95OcLGngO8RaT/gTkFGzPuZqKn9ggg== dependencies: - "@abp/core" "~9.2.1" + "@abp/core" "~10.3.0" jquery "~3.7.1" -"@abp/lodash@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.1.tgz#a80ab7a908a0332b721277b1193209187fab57d8" - integrity sha512-I2+XYqwMi3+FXCv4xp5hBoJmOszg2WR1gnGc+Qd0zwb2VAbG4MvKVFgM/GUAFD8EKlquGyPf3f+4l5FkaPFkrQ== +"@abp/lodash@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-10.3.0.tgz#bd091fc811d85d2f535802631af6165ac1c8a198" + integrity sha512-7JDU9UlbD+9odhFQjolvyJZ6EQKG5kiL2Pt9T1RMVchNh47iEuZwfi8c+CIxa3YxA3n6lAsZ+8Pmxq4yOku+RQ== dependencies: - "@abp/core" "~9.2.1" + "@abp/core" "~10.3.0" lodash "^4.17.21" -"@abp/luxon@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.1.tgz#7e3d197425813cfc6932cd3f9f09f97ecd2f4fc7" - integrity sha512-2tyOZRmq9jQN0Uhg8WaHfEzL0Xeew04sbA8O9bqw28psRbXaWXEVdElRMBNt50sZkFPhHFoxxFN7PR8obs0Qug== +"@abp/luxon@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-10.3.0.tgz#acbd92289456a546607ed4506dc36f71e6da53c9" + integrity sha512-IIi2+odQzuFK4qV1KJ2HtlTewSPby2F9CJFNNtNRMzX/P30dQkAGWpNV5/FZzJwFIihR+zSei5wlu11WpPugsw== dependencies: - "@abp/core" "~9.2.1" - luxon "^3.5.0" + "@abp/core" "~10.3.0" + luxon "^3.7.2" -"@abp/malihu-custom-scrollbar-plugin@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.1.tgz#b0fa249885d442ba84657c7705df73851cb56db1" - integrity sha512-fzgQZsbN0xLMxEWh7znKAI4j0CPb8ciT/3x+QguGZDJf7OFw0YnEWctfEYJnnGG28HpHs1mh64gjqoeceHy0HQ== +"@abp/malihu-custom-scrollbar-plugin@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-10.3.0.tgz#209931d02a994ef448371d6203e9ec74c72b61e6" + integrity sha512-hJjwEExP3hKE1MNDG+pcvoHRFUihh3t/0wCPNaoePFd8+QnJuyQ9U0VA+vdtykTxm8uFNE2uaCgyHffoHmzeZA== dependencies: - "@abp/core" "~9.2.1" + "@abp/core" "~10.3.0" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/moment@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.1.tgz#9982c65d63171962091b08fc4e0d1ea98cc1f0eb" - integrity sha512-V4KH1WmahP0BoaQGLEY4a0AQyfk1cLeNMk3qCPtuqIUbOFwimJY3oQgpelilEwjI3oD/upMzGphjLGrfQLRM2A== +"@abp/moment@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-10.3.0.tgz#5a5c4ece14d1bc4dd33134f85d1d085733d3c975" + integrity sha512-8DKw2jgC/28nLrB/CR9BiyUSt0pUmWF+bEgAsduln6VrSCHn0aRLqgs+wi/9Ol+1bl7pO2wbJOYg1qbnkDhrAQ== dependencies: moment "^2.30.1" -"@abp/select2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.1.tgz#5c3c6a4b0018b533491d6a46540069782559c57a" - integrity sha512-p743cnoohNLKX11ptnBcN5z9+ZyC11M9mwRR6SWbW5f1Eqvbkq03bf2mDFUfukCNis4RefeURZunPlsBOmRn/A== +"@abp/popper.js@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-10.3.0.tgz#cb2415e45a905854980f4e864c00c8fe1156a6f9" + integrity sha512-Yfafs50t7DKnShxAl9WPpihZxG5cLAt99rJmIyXBYUQIpkHkxDyUIA5b4gCoVCqKgjFDOxG7i6L+Ovd/2N8k7g== + dependencies: + "@abp/core" "~10.3.0" + "@popperjs/core" "^2.11.8" + +"@abp/select2@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-10.3.0.tgz#199777173ca3e43a5448f8b51b30c3aafe4a3333" + integrity sha512-6sEIYIakVI1DM3eOqOaxwdG8vkyVFBWvVZhoChPZkgIIQ0EH2JLerHv0pePJEl6mQSxOUrikPA8++B2y+sBnQA== dependencies: - "@abp/core" "~9.2.1" + "@abp/core" "~10.3.0" select2 "^4.0.13" -"@abp/sweetalert2@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.1.tgz#3db7e33855614460d2fdc5e3f8b65530902fcd9a" - integrity sha512-fJYLVxc5pAJoSLIcQYf5xRkPVnVQi/5+xwTgOePy3QeygOrAMpGS7vy+MIq7Mn+tBoEFlQ/Jn+NoB04AIYYPFw== +"@abp/sweetalert2@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-10.3.0.tgz#515e0477574b54bc6650b9f5ee193bfc648c715a" + integrity sha512-bY5MXEiKja+vk71ujSn8rpzRC45Ge8zvcca1k1vBJs+oKyRCii//JBxa3H0lagZo5r/QwIqv5ihdyLE1xsuLSg== dependencies: - "@abp/core" "~9.2.1" - sweetalert2 "^11.14.1" + "@abp/core" "~10.3.0" + sweetalert2 "^11.23.0" -"@abp/timeago@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.1.tgz#6904e2d7bda57b436e3385c5fd1899b9cd806dd8" - integrity sha512-fmsPuBouWR/BvhXN53yJpg1Se06uIL7ox8XOgx1MHCe+1vxbXnFCtM2VujfowWtOSTJOzbL1DHcDpFE7JlkOag== +"@abp/timeago@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-10.3.0.tgz#3214a6d000c79504c9fa7cb4e004a967fe46459b" + integrity sha512-Rgcex+jvM9Z9/E0I5Q3wlC2bY5550/+6xRX407k5ho4gxCccYo3c0Gkpiy5pJRFhTwtBgcNzYxArh6NCez+tDg== dependencies: - "@abp/jquery" "~9.2.1" + "@abp/jquery" "~10.3.0" timeago "^1.6.7" -"@abp/utils@~9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.1.tgz#803fd48927ae332309f8a7005806c6aa6e499750" - integrity sha512-+j0SNB/K2j2xTTijy/qCL3ds2c/7OW4nrJ8Ccq17WtEqP+jk2TtJi0EnLqhNTDih0A++XV+pcftUC+cQ0h1cUw== +"@abp/utils@~10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-10.3.0.tgz#d88c0d639d69d6210c3070892aac61d5e945c124" + integrity sha512-iNehxiqWJQl2wwE9EbsQANPv/ITMh0yUcPATUlG/McoLWdpPcqobx75NxXcHDqW8ZarecqSktjJDZPvaUaD+jA== dependencies: just-compare "^2.3.0" -"@fortawesome/fontawesome-free@^6.6.0": - version "6.7.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" - integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== +"@fortawesome/fontawesome-free@^7.0.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz#188c1053ce422ad1f934d7df242a973fcb89636d" + integrity sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg== + +"@popperjs/core@^2.11.8": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== ansi-colors@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -bootstrap-datepicker@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a" - integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg== +bootstrap-datepicker@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.1.tgz#0a8bec42957ea1ce1272b91bcf2b53696629fb86" + integrity sha512-GIe+fsLp9Hi30oW7L2v2Q9/a4+aojrIA2p4ZagtLuKw2lpfQgjJjM0L6vl/lYQydGXWUbpoKbEC/O5tzWIkEKQ== dependencies: jquery ">=3.4.0 <4.0.0" @@ -209,33 +215,26 @@ bootstrap-daterangepicker@^3.1.0: jquery ">=1.10" moment "^2.9.0" -bootstrap@^5.3.3: - version "5.3.7" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90" - integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw== +bootstrap@^5.3.8: + version "5.3.8" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.8.tgz#6401a10057a22752d21f4e19055508980656aeed" + integrity sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg== -datatables.net-bs5@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.2.tgz#cffb8007a9f752a997bc70c0dbe9f545edfd18eb" - integrity sha512-1rh0ZTLoiziIQ4oAtgr+IOYVgJfAIceDnbDe535u8kv191pBAdTrKF6ovQO98Xy9mDXLdLNB7QCrLiV/sgPoQw== +datatables.net-bs5@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.8.tgz#7266636ff488429988ca664bc8cb0b7c5e48c563" + integrity sha512-TbFH99QSWm93Kn3teHLFKeyOqYbaiddlHvRFdXUwAvh/fjTMhACWmHG+I43ss8d23OEFHV0WIbN4lpPusZm5zw== dependencies: - datatables.net "2.3.2" + datatables.net "2.3.8" jquery ">=1.7" -datatables.net@2.3.2, datatables.net@^2.1.8: - version "2.3.2" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.2.tgz#6821f6288e6ad3cb6879c33e0e7e11d4091d330b" - integrity sha512-31TzwIQM0+pr2ZOEOEH6dsHd/WSAl5GDDGPezOHPI3mM2NK4lcDyOoG8xXeWmSbVfbi852LNK5C84fpp4Q+qxg== +datatables.net@2.3.8, datatables.net@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.8.tgz#55a8dbe3bd2196951c498ab79bf44602a2bf3229" + integrity sha512-uhViowhlDlheAuo5a8TrkQqADsjrtGeOyvrigvr4t0+K3MyAWqClORXWAYIcN9VLX6iIX0C8O9gwJNd01hITRg== dependencies: jquery ">=1.7" -jquery-form@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6" - integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ== - dependencies: - jquery ">=1.7.2" - jquery-mousewheel@>=3.0.6: version "3.2.2" resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b" @@ -256,7 +255,7 @@ jquery-validation@>=1.19, jquery-validation@^1.21.0: resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93" integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w== -jquery@>=1.10, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1: +jquery@>=1.10, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== @@ -271,10 +270,10 @@ lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^3.5.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0" - integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ== +luxon@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.7.2.tgz#d697e48f478553cca187a0f8436aff468e3ba0ba" + integrity sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew== malihu-custom-scrollbar-plugin@^3.1.5: version "3.1.5" @@ -293,10 +292,10 @@ select2@^4.0.13: resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== -sweetalert2@^11.14.1: - version "11.22.2" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.22.2.tgz#d4d82a2edd4e97024306fe37f1bc64fa576e9bc9" - integrity sha512-GFQGzw8ZXF23PO79WMAYXLl4zYmLiaKqYJwcp5eBF07wiI5BYPbZtKi2pcvVmfUQK+FqL1risJAMxugcPbGIyg== +sweetalert2@^11.23.0: + version "11.26.24" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.26.24.tgz#25e5ba2b3e6725cec71acddd31832cefe61c8263" + integrity sha512-SLgukW4wicewpW5VOukSXY5Z6DL/z7HCOK2ODSjmQPiSphCN8gJAmh9npoceXOtBRNoDN0xIz+zHYthtfiHmjg== timeago@^1.6.7: version "1.6.7" diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs index 3ad09fd..01b67d6 100644 --- a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs @@ -2,6 +2,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using MongoDB.Driver; using BookStore.Data; @@ -26,6 +27,7 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra { var dbContexts = _serviceProvider.GetServices(); var connectionStringResolver = _serviceProvider.GetRequiredService(); + var configuration = _serviceProvider.GetRequiredService(); if (_serviceProvider.GetRequiredService().IsAvailable) { @@ -34,9 +36,22 @@ public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITra foreach (var dbContext in dbContexts) { - var connectionString = - await connectionStringResolver.ResolveAsync( - ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType())); + var connectionStringName = ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()); + var connectionString = await connectionStringResolver.ResolveAsync(connectionStringName); + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = await connectionStringResolver.ResolveAsync(); + } + if (connectionString.IsNullOrWhiteSpace()) + { + connectionString = configuration.GetConnectionString("Default"); + } + if (connectionString.IsNullOrWhiteSpace()) + { + throw new InvalidOperationException( + $"Could not find a MongoDB connection string for '{connectionStringName}' or 'Default'."); + } + var mongoUrl = new MongoUrl(connectionString); var databaseName = mongoUrl.DatabaseName; var client = new MongoClient(mongoUrl); diff --git a/src/Lsw.Abp.AntDesignUI/AbpCrudPageBase.cs b/src/Lsw.Abp.AntDesignUI/AbpCrudPageBase.cs index d2ddaf1..2f555ac 100644 --- a/src/Lsw.Abp.AntDesignUI/AbpCrudPageBase.cs +++ b/src/Lsw.Abp.AntDesignUI/AbpCrudPageBase.cs @@ -306,7 +306,7 @@ public abstract class AbpCrudPageBase< protected virtual async Task OnDataGridReadAsync(QueryModel e) { CurrentSorting = e.SortModel - .Select(c => c.FieldName + (c.Sort == "descend" ? " DESC" : "")) + .Select(c => c.FieldName + (c.SortDirection == SortDirection.Descending ? " DESC" : "")) .JoinAsString(","); CurrentPage = e.PageIndex;