Browse Source

Merge branch 'dev' into maliming/net5

pull/5700/head
maliming 6 years ago
parent
commit
32dd8220e1
  1. 84
      docs/en/UI/AspNetCore/Page-Alerts.md
  2. 4
      docs/en/docs-nav.json
  3. BIN
      docs/en/images/page-alert-account-layout.png
  4. BIN
      docs/en/images/page-alert-example.png
  5. 31
      framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs
  6. 2
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css
  7. 2
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css
  8. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot
  9. 29
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg
  10. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf
  11. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff
  12. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2
  13. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot
  14. 9
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg
  15. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf
  16. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff
  17. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2
  18. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot
  19. 9
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg
  20. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf
  21. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff
  22. BIN
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2
  23. 6
      modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock
  24. 3
      npm/ng-packs/packages/account/src/lib/account-routing.module.ts
  25. 2
      npm/ng-packs/packages/account/src/lib/account.module.ts
  26. 1
      npm/ng-packs/packages/account/src/lib/guards/index.ts
  27. 18
      npm/ng-packs/packages/account/src/lib/guards/manage-profile.guard.ts
  28. 4
      npm/ng-packs/packages/core/src/lib/services/config-state.service.ts
  29. 5
      npm/ng-packs/packages/core/src/lib/states/config.state.ts
  30. 4
      npm/ng-packs/packages/schematics/src/models/method.ts
  31. 4
      npm/ng-packs/packages/schematics/src/utils/model.ts
  32. 40
      npm/ng-packs/packages/schematics/src/utils/text.ts
  33. 111
      npm/ng-packs/yarn.lock

84
docs/en/UI/AspNetCore/Page-Alerts.md

@ -0,0 +1,84 @@
# ASP.NET Core MVC / Razor Pages: Page Alerts
It is common to show error, warning or information alerts to inform the user. An example *Service Interruption* alert is shown below:
![page-alert-example](../../images/page-alert-example.png)
## Basic Usage
If you directly or indirectly inherit from `AbpPageModel`, you can use the `Alerts` property to add alerts to be rendered after the request completes.
**Example: Show a Warning alert**
```csharp
namespace MyProject.Web.Pages
{
public class IndexModel : MyProjectPageModel //or inherit from AbpPageModel
{
public void OnGet()
{
Alerts.Warning(
text: "We will have a service interruption between 02:00 AM and 04:00 AM at October 23, 2023!",
title: "Service Interruption"
);
}
}
}
```
This usage renders an alert that was shown above. If you need to localize the messages, you can always use the standard [localization](../../Localization.md) system.
### Exceptions / Invalid Model States
It is typical to show alerts when you manually handle exceptions (with try/catch statements) or want to handle `!ModelState.IsValid` case and warn the user. For example, the Account Module shows a warning if user enters an incorrect username or password:
![page-alert-account-layout](../../images/page-alert-account-layout.png)
> Note that you generally don't need to manually handle exceptions since ABP Framework provides an automatic [exception handling](../../Exception-Handling.md) system.
### Alert Types
`Warning` is used to show a warning alert. Other common methods are `Info`, `Danger` and `Success`.
Beside the standard methods, you can use the `Alerts.Add` method by passing an `AlertType` `enum` with one of these values: `Default`, `Primary`, `Secondary`, `Success`, `Danger`, `Warning`, `Info`, `Light`, `Dark`.
### Dismissible
All alert methods gets an optional `dismissible` parameter. Default value is `true` which makes the alert box dismissible. Set it to `false` to create a sticky alert box.
## IAlertManager
If you need to add alert messages from another part of your code, you can inject the `IAlertManager` service and use its `Alerts` list.
**Example: Inject the `IAlertManager`**
```csharp
using Volo.Abp.AspNetCore.Mvc.UI.Alerts;
using Volo.Abp.DependencyInjection;
namespace MyProject.Web.Pages
{
public class MyService : ITransientDependency
{
private readonly IAlertManager _alertManager;
public MyService(IAlertManager alertManager)
{
_alertManager = alertManager;
}
public void Test()
{
_alertManager.Alerts.Add(AlertType.Danger, "Test message!");
}
}
}
```
## Notes
### AJAX Requests
Page Alert system was designed to be used in a regular full page request. It is not for AJAX/partial requests. The alerts are rendered in the page layout, so a full page refresh is needed.
For AJAX requests, it is more proper to throw exceptions (e.g. `UserFriendlyException`). See the [exception handling](../../Exception-Handling.md) document.

4
docs/en/docs-nav.json

@ -402,6 +402,10 @@
"text": "Navigation / Menus", "text": "Navigation / Menus",
"path": "UI/AspNetCore/Navigation-Menu.md" "path": "UI/AspNetCore/Navigation-Menu.md"
}, },
{
"text": "Page Alerts",
"path": "UI/AspNetCore/Page-Alerts.md"
},
{ {
"text": "Client Side Package Management", "text": "Client Side Package Management",
"path": "UI/AspNetCore/Client-Side-Package-Management.md" "path": "UI/AspNetCore/Client-Side-Package-Management.md"

BIN
docs/en/images/page-alert-account-layout.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
docs/en/images/page-alert-example.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

31
framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Microsoft/AspNetCore/Components/WebAssembly/Hosting/AbpWebAssemblyHostBuilderExtensions.cs

@ -1,4 +1,5 @@
using System; using System;
using System.Globalization;
using System.Reflection; using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
@ -6,6 +7,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.AspNetCore.Components.WebAssembly; using Volo.Abp.AspNetCore.Components.WebAssembly;
using Volo.Abp.AspNetCore.Mvc.Client;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
@ -30,7 +32,7 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
return application; return application;
} }
public static async Task InitializeAsync( public async static Task InitializeAsync(
[NotNull] this IAbpApplicationWithExternalServiceProvider application, [NotNull] this IAbpApplicationWithExternalServiceProvider application,
[NotNull] IServiceProvider serviceProvider) [NotNull] IServiceProvider serviceProvider)
{ {
@ -41,10 +43,29 @@ namespace Microsoft.AspNetCore.Components.WebAssembly.Hosting
using (var scope = serviceProvider.CreateScope()) using (var scope = serviceProvider.CreateScope())
{ {
foreach (var service in scope.ServiceProvider.GetServices<IAsyncInitialize>()) await InitializeModulesAsync(scope.ServiceProvider);
{ SetCurrentLanguage(scope);
await service.InitializeAsync(); }
} }
private async static Task InitializeModulesAsync(IServiceProvider serviceProvider)
{
foreach (var service in serviceProvider.GetServices<IAsyncInitialize>())
{
await service.InitializeAsync();
}
}
private static void SetCurrentLanguage(IServiceScope scope)
{
var configurationClient = scope.ServiceProvider.GetRequiredService<ICachedApplicationConfigurationClient>();
var configuration = configurationClient.Get();
var cultureName = configuration.Localization?.CurrentCulture?.CultureName;
if (!cultureName.IsNullOrEmpty())
{
var culture = new CultureInfo(cultureName);
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
} }
} }
} }

2
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css

@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.15.0 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.fa, .fa,

2
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css

@ -1,5 +1,5 @@
/*! /*!
* Font Awesome Free 5.15.0 by @fontawesome - https://fontawesome.com * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/ */
.fa.fa-glass:before { .fa.fa-glass:before {

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot

Binary file not shown.

29
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.svg

@ -2,11 +2,11 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata> <metadata>
Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020
By Robert Madole By Robert Madole
Copyright (c) Font Awesome Copyright (c) Font Awesome
</metadata> </metadata>
<defs> <!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
<font id="FontAwesome5Brands-Regular" horiz-adv-x="448" > <font id="FontAwesome5Brands-Regular" horiz-adv-x="448" >
<font-face <font-face
font-family="Font Awesome 5 Brands Regular" font-family="Font Awesome 5 Brands Regular"
@ -1297,15 +1297,17 @@ c-4.2998 22.5 -31.4004 20.9004 -49 20.9004h-24.6006v-127.8zM382.5 157.4v36c0 17.
c5.69922 -6.7998 11.8994 -9.7998 20.8994 -9.7998c19.7998 0 22.2002 15.2002 22.2002 30.9004zM265 218.1v-49.2998c0 -9.7002 1.90039 -18.7002 -10.2998 -18.3994v83.6992c11.8994 0 10.2998 -6.2998 10.2998 -16zM350.5 192v-32.7002 c5.69922 -6.7998 11.8994 -9.7998 20.8994 -9.7998c19.7998 0 22.2002 15.2002 22.2002 30.9004zM265 218.1v-49.2998c0 -9.7002 1.90039 -18.7002 -10.2998 -18.3994v83.6992c11.8994 0 10.2998 -6.2998 10.2998 -16zM350.5 192v-32.7002
c0 -5.39941 1.59961 -14.3994 -6.2002 -14.3994c-1.59961 0 -3 0.799805 -3.7998 2.39941c-2.2002 5.10059 -1.09961 44.1006 -1.09961 44.7002c0 3.7998 -1.10059 12.7002 4.89941 12.7002c7.2998 0 6.2002 -7.2998 6.2002 -12.7002z" /> c0 -5.39941 1.59961 -14.3994 -6.2002 -14.3994c-1.59961 0 -3 0.799805 -3.7998 2.39941c-2.2002 5.10059 -1.09961 44.1006 -1.09961 44.7002c0 3.7998 -1.10059 12.7002 4.89941 12.7002c7.2998 0 6.2002 -7.2998 6.2002 -12.7002z" />
<glyph glyph-name="ravelry" unicode="&#xf2d9;" horiz-adv-x="512" <glyph glyph-name="ravelry" unicode="&#xf2d9;" horiz-adv-x="512"
d="M407.4 386.5c72.6992 -37.9004 112 -117.2 103.3 -199.5c-1.7002 -16.7002 -4.40039 -36.2002 -9.7998 -52.2002c-22.2002 -65.7002 -52.9004 -108.6 -123.101 -147.7c-6.39941 -4.39941 -13.2998 -8.59961 -20.2002 -10.7998 d="M498.252 213.777c0.129883 -0.613281 0.322266 -1.21777 0.561523 -1.78223v-37.0557c-0.194336 -0.300781 -0.516602 -0.583008 -0.552734 -0.900391c-0.619141 -5.36426 -0.837891 -10.8076 -1.87012 -16.0869c-2.06934 -10.6074 -4.15723 -21.2393 -7.0166 -31.6523
c-12.5 -4.39941 -26.0996 -5.39941 -40.0996 -3.89941c-5.90039 -0.5 -11.7998 -0.700195 -18 -0.700195c-93.7002 0 -173 64 -196.9 151.399c-0.699219 0 -1.5 0.200195 -2.19922 0.200195c-5.60059 -44.2998 27.0996 -104.1 27.0996 -104.1s2 -3 13.2998 -20.2002 c-4.94531 -18.0205 -12.7578 -34.8809 -22.2998 -50.9258c-8.94336 -15.126 -19.4043 -28.9668 -31.4268 -41.6387c-3.74609 -3.92188 -7.54688 -7.80078 -11.5107 -11.5c-5.31152 -4.95703 -10.5146 -10.1094 -16.2998 -14.457
c-62.7998 33.2002 -64.5 131.2 -64.5 131.2c-15 5.59961 -67.2002 23.3994 -76.2998 37.8994c0 0 40.9004 -22.3994 76.2002 -27c-0.200195 0.300781 0.5 7.90039 0.5 7.90039c2.2002 30 12.5 53.4004 23.0996 71.4004c6.90039 33.7998 22.1006 64.2998 43.2998 89.8994 c-9.3418 -7.02344 -18.9883 -13.6533 -28.7373 -20.1006c-15.083 -9.81543 -31.6211 -17.9053 -48.9512 -23.8174c-15.3828 -5.38281 -31.1533 -9.38574 -47.4893 -10.7178c-2.52734 -0.206055 -5.02051 -0.753906 -7.52734 -1.14258h-32.2891
c3.7002 15.2998 9.60059 33.5 19.9004 52.7002c4.40039 8.40039 8.59961 13.7998 19.9004 19c74.8994 35 148.699 43.9004 224.5 4.5zM138.8 284.8c-7.59961 -11.2998 -13.7002 -23.5996 -18.8994 -36.3994c8.09961 8.59961 14.7998 14.1992 18.1992 16.6992 c-0.358398 0.245117 -0.762695 0.436523 -1.18945 0.55957c-6.1377 0.620117 -12.3418 0.863281 -18.4121 1.87305c-13.8301 2.22949 -27.5977 5.58398 -40.6416 9.83496c-19.5498 6.43359 -38.4463 15.0176 -55.8994 25.2773
c-0.5 7.40039 0.700195 19.7002 0.700195 19.7002zM107.6 162.9c0.700195 -9.60059 2 -18.9004 4.2002 -28.1006l41.4004 -6.89941c-14.1006 42.0996 -15.7998 90.0996 -15.7998 90.0996c-16.5 -16 -25.4004 -37.9004 -29.8008 -55.0996zM115.5 120.1 c-15.0488 8.79004 -28.9365 18.9688 -41.7871 30.5859c-9.6875 8.70605 -18.3936 18.0898 -26.3584 28.416c-9.38184 12.1963 -17.4385 25.4316 -24 39.5283c-7.5918 16.6592 -13.3467 34.7812 -16.7295 53.2998c-2.35547 13.1611 -3.85059 26.5459 -4.4248 40.2402
c21.4004 -69.6992 81 -122.8 154.1 -134.399c-1 0.299805 -1.69922 0.5 -2.69922 1c0 0 -81 47.5 -108.301 124.3c-9.09961 1.5 -28.2998 5.90039 -43.0996 9.09961zM386 3.90039c63 32 106.6 98 106.8 174c0 107.399 -86.5996 194.5 -193 194.5 c-0.136719 3.0332 -0.209961 5.74121 -0.209961 8.80859c0 9.05566 0.599609 17.9717 1.76172 26.7119c1.52637 11.874 4.15625 23.6367 7.69043 34.7588c5.05762 15.7021 12.0283 30.7871 20.4941 44.6006c9.58203 15.9961 20.7793 30.6025 33.6484 43.9502
c-49.2998 0 -94.0996 -18.7002 -128.3 -49.5c-5.2002 -10.1006 -8.59961 -22.9004 -11.0996 -39.4004c52.5 44.5996 146 33.5 146 33.5c23.3994 -1 20.5996 -21.7002 20.3994 -28.0996c-85.2002 7.19922 -127 -17.2002 -168.399 -52.4004 c9.55469 9.83496 19.7539 19.0605 29.9268 28.2676c5.70605 5.1582 11.8066 9.9082 17.9736 14.5186c12.0029 9.04004 24.6963 17.1025 38.0801 24.1572c12.5137 6.63281 25.9795 12.1963 39.7686 16.3555c10.9453 3.41016 22.5254 5.84375 34.2559 7.09961
c0 0 8.09961 -78.7998 26.7998 -110.8c107.8 -4.90039 189.8 53.7002 189.8 53.7002c10.2998 7.39941 19.4004 8.09961 21.4004 -4.7002c1.5 -10.4004 2.19922 -24.4004 -9.60059 -29.7998c-36 -16.8008 -75.5996 -27.3008 -115 -33 c2.42773 0.225586 4.82617 0.761719 7.23633 1.15039c10.7627 -0.00195312 21.5254 0 32.2881 0.00585938c0.299805 -0.195312 0.583984 -0.516602 0.899414 -0.552734c6.87793 -0.81543 13.8467 -1.16797 20.627 -2.48242
c-25.5996 -3.7002 -39.7998 -4.60059 -78 -3.90039c36.4004 -84.7002 127.5 -107.8 127.5 -107.8c28.5 -4.7002 50.2002 -1 64.7002 3.7002z" /> c11.2432 -2.18359 22.4971 -4.51465 33.5156 -7.61523c19.999 -5.78125 39.2266 -14.2031 56.7227 -24.668c17.2832 -10.0947 32.9639 -22.1357 47.1133 -36.1152c6.71973 -6.90527 12.9209 -14.0508 18.8174 -21.6895c13.4639 -16.959 24.0283 -36.4561 30.874 -57.5
c3.88867 -11.8086 7.16211 -24.2148 9.62207 -36.5996c2.0459 -10.1748 2.53809 -20.6602 3.74609 -31zM337.135 214.927l0.00488281 67.2695c-35.2686 0 -53.1152 -9.36719 -62.04 -36.1895v31.9316h-73.5176v-190.738h73.5127v93.667
c0 22.1396 6.37012 37.04 33.5703 37.04c11.8984 0 28.4697 -2.98047 28.4697 -2.98047z" />
<glyph glyph-name="sellcast" unicode="&#xf2da;" <glyph glyph-name="sellcast" unicode="&#xf2da;"
d="M353.4 416c52.0996 0 94.6992 -42.5996 94.6992 -94.5996v-258.801c0 -52 -42.5996 -94.5996 -94.6992 -94.5996h-258.7c-52.1006 0 -94.7002 42.5996 -94.7002 94.7002v258.7c0 52 42.5996 94.5996 94.7002 94.5996h258.7zM303.4 99.5996 d="M353.4 416c52.0996 0 94.6992 -42.5996 94.6992 -94.5996v-258.801c0 -52 -42.5996 -94.5996 -94.6992 -94.5996h-258.7c-52.1006 0 -94.7002 42.5996 -94.7002 94.7002v258.7c0 52 42.5996 94.5996 94.7002 94.5996h258.7zM303.4 99.5996
c27.8994 48.2002 11.1992 110.5 -37.2002 138.5c-18.6006 10.8008 0.0996094 -0.0996094 -18.5 10.7002c-25 14.4004 -46.2002 -23.2998 -21.6006 -37.5c18 -10.2002 0.800781 -0.399414 18.6006 -10.5996c27.5996 -16 37.2002 -51.7998 21.2998 -79.4004 c27.8994 48.2002 11.1992 110.5 -37.2002 138.5c-18.6006 10.8008 0.0996094 -0.0996094 -18.5 10.7002c-25 14.4004 -46.2002 -23.2998 -21.6006 -37.5c18 -10.2002 0.800781 -0.399414 18.6006 -10.5996c27.5996 -16 37.2002 -51.7998 21.2998 -79.4004
@ -3713,8 +3715,3 @@ c-1.83008 -9.41992 -3.52051 -18.6094 -5.40039 -32c-1.95898 -14.4814 -3.16406 -28
c8.57324 -16.2061 23.0801 -27.873 43.5195 -35c20.4404 -7.12695 48.9209 -10.6172 85.4414 -10.4697h4.59961c36.5605 -0.15332 65.0439 3.33691 85.4502 10.4707c20.4336 7.12012 34.9365 18.7871 43.5098 35.001s13.2402 37.8809 14 65.001z" /> c8.57324 -16.2061 23.0801 -27.873 43.5195 -35c20.4404 -7.12695 48.9209 -10.6172 85.4414 -10.4697h4.59961c36.5605 -0.15332 65.0439 3.33691 85.4502 10.4707c20.4336 7.12012 34.9365 18.7871 43.5098 35.001s13.2402 37.8809 14 65.001z" />
</font> </font>
</defs></svg> </defs></svg>
<!--
Font Awesome Free 5.15.0 by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
-->

Before

Width:  |  Height:  |  Size: 730 KiB

After

Width:  |  Height:  |  Size: 730 KiB

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot

Binary file not shown.

9
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg

@ -2,11 +2,11 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata> <metadata>
Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020
By Robert Madole By Robert Madole
Copyright (c) Font Awesome Copyright (c) Font Awesome
</metadata> </metadata>
<defs> <!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
<font id="FontAwesome5Free-Regular" horiz-adv-x="512" > <font id="FontAwesome5Free-Regular" horiz-adv-x="512" >
<font-face <font-face
font-family="Font Awesome 5 Free Regular" font-family="Font Awesome 5 Free Regular"
@ -799,8 +799,3 @@ c3.7998 4.40039 10.2998 5.5 15.2998 2.5l80 -48c3.59961 -2.2002 5.7998 -6.09961 5
s-69.5996 -5.5 -92.2998 -15.2002c-8.60059 -3.7002 -17 6.10059 -15.5 17.9004c6.89941 55 62.3994 93.2998 107.8 93.2998z" /> s-69.5996 -5.5 -92.2998 -15.2002c-8.60059 -3.7002 -17 6.10059 -15.5 17.9004c6.89941 55 62.3994 93.2998 107.8 93.2998z" />
</font> </font>
</defs></svg> </defs></svg>
<!--
Font Awesome Free 5.15.0 by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
-->

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 141 KiB

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot

Binary file not shown.

9
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg

@ -2,11 +2,11 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<metadata> <metadata>
Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 Created by FontForge 20200314 at Mon Oct 5 09:50:45 2020
By Robert Madole By Robert Madole
Copyright (c) Font Awesome Copyright (c) Font Awesome
</metadata> </metadata>
<defs> <!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><defs>
<font id="FontAwesome5Free-Solid" horiz-adv-x="512" > <font id="FontAwesome5Free-Solid" horiz-adv-x="512" >
<font-face <font-face
font-family="Font Awesome 5 Free Solid" font-family="Font Awesome 5 Free Solid"
@ -5026,8 +5026,3 @@ c-35.3223 0 -64 28.6777 -64 64v256c0 35.3223 28.6777 64 64 64h352c88.3066 0 160
c0 17.6611 -14.3389 32 -32 32h-128c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h128c17.6611 0 32 14.3389 32 32zM448 128v192c0 17.6611 -14.3389 32 -32 32h-64c-17.6611 0 -32 -14.3389 -32 -32v-192h128z" /> c0 17.6611 -14.3389 32 -32 32h-128c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h128c17.6611 0 32 14.3389 32 32zM448 128v192c0 17.6611 -14.3389 32 -32 32h-64c-17.6611 0 -32 -14.3389 -32 -32v-192h128z" />
</font> </font>
</defs></svg> </defs></svg>
<!--
Font Awesome Free 5.15.0 by @fontawesome - https://fontawesome.com
License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
-->

Before

Width:  |  Height:  |  Size: 896 KiB

After

Width:  |  Height:  |  Size: 896 KiB

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff

Binary file not shown.

BIN
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2

Binary file not shown.

6
modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock

@ -209,9 +209,9 @@
"@abp/prismjs" "~3.2.0" "@abp/prismjs" "~3.2.0"
"@fortawesome/fontawesome-free@^5.13.0": "@fortawesome/fontawesome-free@^5.13.0":
version "5.15.0" version "5.15.1"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.0.tgz#631b04d6301fee06d4bd7a9824fe7157735cbdb6" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.1.tgz#ccfef6ddbe59f8fe8f694783e1d3eb88902dc5eb"
integrity sha512-wXetjQBNMTP59MAYNR1tdahMDOLx3FYj3PKdso7PLFLDpTvmAIqhSSEqnSTmWKahRjD+Sh5I5635+5qaoib5lw== integrity sha512-OEdH7SyC1suTdhBGW91/zBfR6qaIhThbcN8PUXtXilY4GYnSBbVqOntdHbC1vXwsDnX0Qix2m2+DSU1J51ybOQ==
ansi-colors@^1.0.1: ansi-colors@^1.0.1:
version "1.1.0" version "1.1.0"

3
npm/ng-packs/packages/account/src/lib/account-routing.module.ts

@ -11,6 +11,7 @@ import { ManageProfileComponent } from './components/manage-profile/manage-profi
import { RegisterComponent } from './components/register/register.component'; import { RegisterComponent } from './components/register/register.component';
import { eAccountComponents } from './enums/components'; import { eAccountComponents } from './enums/components';
import { AuthenticationFlowGuard } from './guards/authentication-flow.guard'; import { AuthenticationFlowGuard } from './guards/authentication-flow.guard';
import { ManageProfileGuard } from './guards/manage-profile.guard';
const routes: Routes = [ const routes: Routes = [
{ path: '', pathMatch: 'full', redirectTo: 'login' }, { path: '', pathMatch: 'full', redirectTo: 'login' },
@ -43,7 +44,7 @@ const routes: Routes = [
{ {
path: 'manage-profile', path: 'manage-profile',
component: ReplaceableRouteContainerComponent, component: ReplaceableRouteContainerComponent,
canActivate: [AuthGuard], canActivate: [AuthGuard, ManageProfileGuard],
data: { data: {
replaceableComponent: { replaceableComponent: {
key: eAccountComponents.ManageProfile, key: eAccountComponents.ManageProfile,

2
npm/ng-packs/packages/account/src/lib/account.module.ts

@ -15,6 +15,7 @@ import { Options } from './models/options';
import { ACCOUNT_OPTIONS } from './tokens/options.token'; import { ACCOUNT_OPTIONS } from './tokens/options.token';
import { accountOptionsFactory } from './utils/factory-utils'; import { accountOptionsFactory } from './utils/factory-utils';
import { AuthenticationFlowGuard } from './guards/authentication-flow.guard'; import { AuthenticationFlowGuard } from './guards/authentication-flow.guard';
import { ManageProfileGuard } from './guards/manage-profile.guard';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -41,6 +42,7 @@ export class AccountModule {
ngModule: AccountModule, ngModule: AccountModule,
providers: [ providers: [
AuthenticationFlowGuard, AuthenticationFlowGuard,
ManageProfileGuard,
{ provide: ACCOUNT_OPTIONS, useValue: options }, { provide: ACCOUNT_OPTIONS, useValue: options },
{ {
provide: 'ACCOUNT_OPTIONS', provide: 'ACCOUNT_OPTIONS',

1
npm/ng-packs/packages/account/src/lib/guards/index.ts

@ -1 +1,2 @@
export * from './authentication-flow.guard'; export * from './authentication-flow.guard';
export * from './manage-profile.guard';

18
npm/ng-packs/packages/account/src/lib/guards/manage-profile.guard.ts

@ -0,0 +1,18 @@
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { ConfigStateService } from '@abp/ng.core';
@Injectable()
export class ManageProfileGuard implements CanActivate {
constructor(private configState: ConfigStateService) {}
canActivate(_: ActivatedRouteSnapshot, __: RouterStateSnapshot) {
const env = this.configState.getEnvironment();
if (env.oAuthConfig.responseType === 'code') {
window.open(`${env.oAuthConfig.issuer}/Account/Manage`, '_blank');
return false;
} else {
return true;
}
}
}

4
npm/ng-packs/packages/core/src/lib/services/config-state.service.ts

@ -17,6 +17,10 @@ export class ConfigStateService {
return this.store.selectSnapshot(ConfigState.getApplicationInfo); return this.store.selectSnapshot(ConfigState.getApplicationInfo);
} }
getEnvironment() {
return this.store.selectSnapshot(ConfigState.getEnvironment);
}
getOne(...args: Parameters<typeof ConfigState.getOne>) { getOne(...args: Parameters<typeof ConfigState.getOne>) {
return this.store.selectSnapshot(ConfigState.getOne(...args)); return this.store.selectSnapshot(ConfigState.getOne(...args));
} }

5
npm/ng-packs/packages/core/src/lib/states/config.state.ts

@ -28,6 +28,11 @@ export class ConfigState {
return state.environment.application || ({} as Config.Application); return state.environment.application || ({} as Config.Application);
} }
@Selector()
static getEnvironment(state: Config.State): Config.Environment {
return state.environment;
}
static getOne(key: string) { static getOne(key: string) {
const selector = createSelector([ConfigState], (state: Config.State) => { const selector = createSelector([ConfigState], (state: Config.State) => {
return state[key]; return state[key];

4
npm/ng-packs/packages/schematics/src/models/method.ts

@ -1,5 +1,5 @@
import { strings } from '@angular-devkit/core';
import { eBindingSourceId, eMethodModifier } from '../enums'; import { eBindingSourceId, eMethodModifier } from '../enums';
import { camel } from '../utils';
import { ParameterInBody } from './api-definition'; import { ParameterInBody } from './api-definition';
import { Property } from './model'; import { Property } from './model';
import { Omissible } from './util'; import { Omissible } from './util';
@ -42,7 +42,7 @@ export class Body {
registerActionParameter = (param: ParameterInBody) => { registerActionParameter = (param: ParameterInBody) => {
const { bindingSourceId, descriptorName, name, nameOnMethod } = param; const { bindingSourceId, descriptorName, name, nameOnMethod } = param;
const camelName = strings.camelize(name); const camelName = camel(name);
const value = descriptorName ? `${descriptorName}.${camelName}` : nameOnMethod; const value = descriptorName ? `${descriptorName}.${camelName}` : nameOnMethod;
switch (bindingSourceId) { switch (bindingSourceId) {

4
npm/ng-packs/packages/schematics/src/utils/model.ts

@ -1,8 +1,8 @@
import { strings } from '@angular-devkit/core';
import { VOLO_NAME_VALUE, VOLO_REGEX } from '../constants'; import { VOLO_NAME_VALUE, VOLO_REGEX } from '../constants';
import { Interface, Model, Property, Type, TypeWithEnum } from '../models'; import { Interface, Model, Property, Type, TypeWithEnum } from '../models';
import { parseNamespace } from './namespace'; import { parseNamespace } from './namespace';
import { relativePathToModel } from './path'; import { relativePathToModel } from './path';
import { camel } from './text';
import { parseGenerics } from './tree'; import { parseGenerics } from './tree';
import { import {
createTypeParser, createTypeParser,
@ -118,7 +118,7 @@ export function createImportRefToInterfaceReducerCreator(params: ModelGeneratorP
const _interface = new Interface({ identifier, base, namespace, ref }); const _interface = new Interface({ identifier, base, namespace, ref });
typeDef.properties?.forEach(prop => { typeDef.properties?.forEach(prop => {
const name = strings.camelize(prop.name); const name = camel(prop.name);
const optional = prop.typeSimple.endsWith('?') ? '?' : ''; const optional = prop.typeSimple.endsWith('?') ? '?' : '';
const type = simplifyType(prop.typeSimple); const type = simplifyType(prop.typeSimple);
const refs = parseType(prop.type).reduce( const refs = parseType(prop.type).reduce(

40
npm/ng-packs/packages/schematics/src/utils/text.ts

@ -2,7 +2,7 @@ import { strings } from '@angular-devkit/core';
export const lower = (text: string) => text.toLowerCase(); export const lower = (text: string) => text.toLowerCase();
export const upper = (text: string) => text.toUpperCase(); export const upper = (text: string) => text.toUpperCase();
export const camel = (text: string) => strings.camelize(_(text)); export const camel = (text: string) => toCamelCase(_(text));
export const pascal = (text: string) => strings.classify(_(text)); export const pascal = (text: string) => strings.classify(_(text));
export const kebab = (text: string) => strings.dasherize(_(text)); export const kebab = (text: string) => strings.dasherize(_(text));
export const snake = (text: string) => strings.underscore(_(text)); export const snake = (text: string) => strings.underscore(_(text));
@ -13,3 +13,41 @@ export const dir = (text: string) =>
function _(text: string): string { function _(text: string): string {
return text.replace(/\./g, '_'); return text.replace(/\./g, '_');
} }
// https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/Utilities/StringUtils.cs#L155
function toCamelCase(str: string) {
if (!str || !isUpperCase(str[0])) return str;
const chars = str.split('');
const { length } = chars;
for (let i = 0; i < length; i++) {
if (i === 1 && !isUpperCase(chars[i])) break;
const hasNext = i + 1 < length;
if (i > 0 && hasNext && !isUpperCase(chars[i + 1])) {
if (isSeparator(chars[i + 1])) {
chars[i] = toLowerCase(chars[i]);
}
break;
}
chars[i] = toLowerCase(chars[i]);
}
return chars.join('');
}
function isSeparator(str = '') {
return /[\s\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-.\/:;<=>?@\[\]^_`{|}~]+/.test(str);
}
function isUpperCase(str = '') {
return /[A-Z]+/.test(str);
}
function toLowerCase(str = '') {
return str.toLowerCase();
}

111
npm/ng-packs/yarn.lock

@ -2,20 +2,20 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/ng.account@~3.2.0-rc.2": "@abp/ng.account@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.2.0-rc.2.tgz#30ec416a9d05f87fe2664943d72f051d1b84aaad" resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.2.0.tgz#95323fe873a91ed96f5604d0791dbf78b4245f31"
integrity sha512-iobXZEJh/pXz4dxFjN407KTFJnFcaUBH4Bx5pwUAPV1HIXwNQzANWHe4389GEZjUohV+0WVhdRI85bffGFCOQA== integrity sha512-0OKVYJ1uB33VCa+IReyz0VSb9ku4OJYG+6b1hrqCJcJCzqzbltCxCVVJ31FvrYDoEah3E1TNQIzTxvbCuoG8YA==
dependencies: dependencies:
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.core@~3.2.0-rc.2": "@abp/ng.core@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.2.0-rc.2.tgz#51ecd1884e99bb9a17802f786a25263f4d6fbfff" resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.2.0.tgz#6970a9a483c3796af7b7db2af3d5c3c6cfd7410c"
integrity sha512-7zKejXr6Y75AlsrPsuBsmHmv2t4qCAfPhrgQ+/YHuqAd8h3XZcSWn75vKm8405KEe2pTTY8+mA+aUT8Mmc9HMg== integrity sha512-AYNrWi41hFpM6zOc2K/l13r6gmLu99QUbHr1dwsp+goGXo0UZ1dLJ3HtxNnwte4Wx2U2DmkLPvVovCHxcXbXAA==
dependencies: dependencies:
"@abp/utils" "^3.2.0-rc.1" "@abp/utils" "^3.2.0-rc.2"
"@angular/localize" "~10.0.10" "@angular/localize" "~10.0.10"
"@ngxs/router-plugin" "^3.7.0" "@ngxs/router-plugin" "^3.7.0"
"@ngxs/storage-plugin" "^3.7.0" "@ngxs/storage-plugin" "^3.7.0"
@ -27,35 +27,35 @@
ts-toolbelt "6.15.4" ts-toolbelt "6.15.4"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.feature-management@~3.2.0-rc.2": "@abp/ng.feature-management@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.2.0-rc.2.tgz#a46f8ba30341249d091887c7588fce0ecd62b624" resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.2.0.tgz#0ebe620f84b206ea87d876b791359b9d97e46c92"
integrity sha512-9ILmEboRKqHdCjVS/uYR8wHXJrC+8n8zEdtDu6mwbMoGG5G2iGWUbL0coQrFhkXXWetCq8M1KqEnBATTW9r0ng== integrity sha512-Up7BuPmp24/zmwllHAe6AqnbgwtiV2YnMQApsEnh2Mv+d8LfvGQEeqSILIYebovHod6rkEvIWrpXQBAwOF8O6Q==
dependencies: dependencies:
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.identity@~3.2.0-rc.2": "@abp/ng.identity@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.2.0-rc.2.tgz#075a119bb585753231195ba1a71a3484a8e157fa" resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.2.0.tgz#3ab2e8d1813c6ddbceb4e7edb1de5fe28d4b1e39"
integrity sha512-RivOj97jGbJgS9dKA3HWfm3VOHPQZan+l33B6F6lR9W5z7PX454h7a/dEtVcBa1B4tsyELP48IUv6hNx7iw1KA== integrity sha512-7dP6Hbkr6lML1R2hjGxzZI65cjTvKPdOR2/OCYw2UxoCshQLqj0aiMxzzul+sMX2EFQCb5dLDuSJouK0CveyJg==
dependencies: dependencies:
"@abp/ng.permission-management" "~3.2.0-rc.2" "@abp/ng.permission-management" "~3.2.0"
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.permission-management@~3.2.0-rc.2": "@abp/ng.permission-management@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.2.0-rc.2.tgz#cf0f74759a930b778b104d2e85dd9345b08a969d" resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.2.0.tgz#43f7b3c2dca3c066c4ade8d137e3705a0480a55e"
integrity sha512-7HKq0JcWcqSyOOfrP+ud3tTjrn+3STEOgjfAcTF6Xg0l6DxXlwVnEa653qE51GH0JfWp9iaOtXChmt6e0VMHqg== integrity sha512-iPbAhYx8arAwMQ88hxTGSWFwv1UXxxrxSA0IefjCUAX2sdvIC/2WVcfo7UcS5DxM4TIu/+9TKsWC4gRR/8bHsQ==
dependencies: dependencies:
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.schematics@~3.2.0-rc.2": "@abp/ng.schematics@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-3.2.0-rc.2.tgz#22f4a7d00abbde7b03d4bca179ca235efed3e6d1" resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-3.2.0.tgz#de45bddf14639b5cc2f39cd34f3b8250620aadaf"
integrity sha512-QewJMq7AYOQomvtXT0O/v+KQ+AxF8Crfx6uKvInCQ3o/ne+fcwrWITgUTdjn78Eb+hRj9kBLux0PHJF1IOGLZQ== integrity sha512-TV6jElMI4W7P/CmLkbhjzR9BsGdSx6C1SC4rlVvbKfwrpcTQ4jv4YJNOXHyk36EnwNMRu+TkUj+45MlOfEAQkw==
dependencies: dependencies:
"@angular-devkit/core" "~10.0.3" "@angular-devkit/core" "~10.0.3"
"@angular-devkit/schematics" "~10.0.3" "@angular-devkit/schematics" "~10.0.3"
@ -63,37 +63,37 @@
jsonc-parser "^2.3.0" jsonc-parser "^2.3.0"
typescript "~3.9.2" typescript "~3.9.2"
"@abp/ng.setting-management@~3.2.0-rc.2": "@abp/ng.setting-management@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.2.0-rc.2.tgz#f4586190a57bb06bc675c30484adea7b598f3663" resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.2.0.tgz#f0e4cb4deba76cbe4b49f54977bf260b6f41f4d7"
integrity sha512-lRkBeh7evzbeg1aBX2b1X0rwzjfnbrNllIk3gHadnbeRKts+cy7njENzSfoMjBAxUUh5I1Pd5vwK6syz1nJ+0Q== integrity sha512-cEuVjljCE9N+lLZP3ZOhhnShvRCck0yeAXELzvG/GTsAlJkw99jWUQxG+UI7Dh7lBVhFg9oF4qyr0zzM8Wf/PA==
dependencies: dependencies:
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.tenant-management@~3.2.0-rc.2": "@abp/ng.tenant-management@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.2.0-rc.2.tgz#df82ff2c28680ea001bc7e4e9b84433c8d87f082" resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.2.0.tgz#7402347ab45e11437838d4a1d5b4f52f908630f7"
integrity sha512-Rwh0UVzpk2ItGwjv/ftJ9U6ZEAeAeDpl5jr4xzFm4sa7H5hWVKFCOxjL1DZOrcI9dk6b6DUifsIvqHPy0KxURA== integrity sha512-J0ma1fE/q/jDSoZpgV3eCZtd6NA9HrNHXkCi18QprfTAOCTqLipOvit60ed5rrPcZVbxdv8mnVTRtAaP/FnWLA==
dependencies: dependencies:
"@abp/ng.feature-management" "~3.2.0-rc.2" "@abp/ng.feature-management" "~3.2.0"
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.theme.basic@~3.2.0-rc.2": "@abp/ng.theme.basic@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.2.0-rc.2.tgz#909e6d5a8da4acd04517eb974a631341195d47ee" resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.2.0.tgz#9a1a80050e37a2d029b0ec0b070f28c7afe06484"
integrity sha512-DEebOMR7DSLF3iIVBBwb08EbZwn1jVc6lAvJIl4yttLbYjxmYc3ra5TXNSYJit0jeknmnibCo2rNDG6sFPeidg== integrity sha512-1z277I8mamzeSzYvJIwgwKXIPreH9CqQq0l+2tGu98HaivOxpkpWeWkviT3Xu6wGHILaTXtwBQMoae2AGEDL7A==
dependencies: dependencies:
"@abp/ng.theme.shared" "~3.2.0-rc.2" "@abp/ng.theme.shared" "~3.2.0"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/ng.theme.shared@~3.2.0-rc.2": "@abp/ng.theme.shared@~3.2.0":
version "3.2.0-rc.2" version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.2.0-rc.2.tgz#4f8b1a44488be59888d6d458d356d436198404e5" resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.2.0.tgz#0587daa9b88e274656ed7288c3280a80d90d17e0"
integrity sha512-WtYYo9dO+LGCUjkiZpgTN44oOA6r1O5Y+6XDxqoBGhzvhlN/Uz+t87cLkurhShRnqXAAd15DLW4Q/+y/F81tGQ== integrity sha512-DazYqnJGy5dfDZHQY0kfZF5hANHX+xSc25EFAkteEO4e9Y0XAM5Z3YPn/pdIkxmfBoXAeTiMOjkVeuhyHlgDew==
dependencies: dependencies:
"@abp/ng.core" "~3.2.0-rc.2" "@abp/ng.core" "~3.2.0"
"@fortawesome/fontawesome-free" "^5.14.0" "@fortawesome/fontawesome-free" "^5.14.0"
"@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ng-bootstrap/ng-bootstrap" "^7.0.0"
"@ngx-validate/core" "^0.0.11" "@ngx-validate/core" "^0.0.11"
@ -102,7 +102,14 @@
chart.js "^2.9.3" chart.js "^2.9.3"
tslib "^2.0.0" tslib "^2.0.0"
"@abp/utils@^3.2.0-rc.1", "@abp/utils@^3.2.0-rc.2": "@abp/utils@^3.2.0":
version "3.2.0"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.0.tgz#084918379f2c5e43c1e52291ba6667f3ea3c1f33"
integrity sha512-DZsvF/I5o3r0D1+2B61KvJX78/tJ5uj9MaPq00Z/sxXdqsP2SQQmjhMm+Lb0FgGMK06XIoF9eDgM3Hu0y0H3cQ==
dependencies:
just-compare "^1.3.0"
"@abp/utils@^3.2.0-rc.2":
version "3.2.0-rc.2" version "3.2.0-rc.2"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.0-rc.2.tgz#84697871830e7b061e255c1b7a2f66a92b2a6560" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.0-rc.2.tgz#84697871830e7b061e255c1b7a2f66a92b2a6560"
integrity sha512-DWsu2uwj7BeqROTYk9VXT29+kkDSbUeh86GRFvaDBrkeE+XGAiCW+rG43j6y1mdJHwmuaAkCDoV4xEBYdi/sVA== integrity sha512-DWsu2uwj7BeqROTYk9VXT29+kkDSbUeh86GRFvaDBrkeE+XGAiCW+rG43j6y1mdJHwmuaAkCDoV4xEBYdi/sVA==

Loading…
Cancel
Save