From 1f8aa684c65fbde7f734d5047e9e1744166c6623 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 22 Nov 2021 13:38:14 +0800 Subject: [PATCH 01/25] Update TODO tutorial. --- docs/en/Tutorials/Todo/Index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index c252ee0afe..4db981b895 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -682,7 +682,7 @@ You first need to run the `TodoApp.HttpApi.Host` project since the proxy generat Once you run the `TodoApp.HttpApi.Host` project, open a command-line terminal in the `angular` folder and type the following command: ````bash -abp generate-proxy +abp generate-proxy -t ng ```` If everything goes well, it should generate an output like shown below: From 1443312e36502a8a255966713766feef4f5a6423 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 22 Nov 2021 13:56:23 +0800 Subject: [PATCH 02/25] Update Index.md --- docs/en/Tutorials/Todo/Index.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index 4db981b895..54515397b6 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -758,17 +758,16 @@ Open the `/angular/src/app/home/home.component.html` file and replace its conten
-
- - + +
+
+ +
+
+
+ +
-
  • From 0468b56d4695ec179eaa49e49cac1307fa10e56f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 22 Nov 2021 18:45:20 +0800 Subject: [PATCH 03/25] Update Index.md --- docs/en/Tutorials/Todo/Index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index 54515397b6..ef3a43d798 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -543,7 +543,7 @@ namespace TodoApp.Blazor.Pages private List TodoItems { get; set; } = new List(); private string NewTodoText { get; set; } - protected async override Task OnInitializedAsync() + protected override async Task OnInitializedAsync() { TodoItems = await TodoAppService.GetListAsync(); } @@ -595,7 +595,7 @@ Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* projec class="form-inline"> From 8c0f182af987e2ed04aa7154da3c61b1568b87b8 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Mon, 22 Nov 2021 19:13:07 +0300 Subject: [PATCH 04/25] Cms-Kit: Show the lines on the comments --- .../Shared/Components/Commenting/Default.cshtml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index 92d02a7cea..ab4bd69b91 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -57,7 +57,16 @@ Func GetCommentContentArea(Guid id, string text) => @

    - @text + @{ + var lines = text.SplitToLines(); + if (lines.Any()) + { + foreach (var line in lines) + { + @line
    + } + } + }

    ; } From bdbc0a04cd4fc83d851735ca34ac6746b1863704 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Wed, 24 Nov 2021 11:31:07 +0300 Subject: [PATCH 05/25] Add note about "long identifier support up to 128 bytes with v12.2+" to Oracle documentations --- docs/en/Entity-Framework-Core-Oracle-Devart.md | 2 ++ docs/en/Entity-Framework-Core-Oracle-Official.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docs/en/Entity-Framework-Core-Oracle-Devart.md b/docs/en/Entity-Framework-Core-Oracle-Devart.md index ecd4f65e0c..872c36a01e 100644 --- a/docs/en/Entity-Framework-Core-Oracle-Devart.md +++ b/docs/en/Entity-Framework-Core-Oracle-Devart.md @@ -4,6 +4,8 @@ This document explains how to switch to the **Oracle** database provider for **[ > This document uses a paid library of [Devart](https://www.devart.com/dotconnect/oracle/) company, See [this document](Entity-Framework-Core-Oracle.md) for other options. +> Before switching your provider, please ensure your Oracle version is **v12.2+**. In the earlier versions of Oracle, there were long identifier limitations that prevents creating a database table, column or index longer than 30 bytes. With [v12.2](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/newft/new-features.html#GUID-64283AD6-0939-47B0-856E-5E9255D7246B) "The maximum length of identifiers is increased to 128 bytes". **v12.2** and later versions, you can use the database tables, columns and indexes provided by ABP without any problems. + ## Replace the Volo.Abp.EntityFrameworkCore.SqlServer Package `.EntityFrameworkCore` project in the solution depends on the [Volo.Abp.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.SqlServer) NuGet package. Remove this package and add the same version of the [Volo.Abp.EntityFrameworkCore.Oracle.Devart](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.Oracle.Devart) package. diff --git a/docs/en/Entity-Framework-Core-Oracle-Official.md b/docs/en/Entity-Framework-Core-Oracle-Official.md index b273515ac1..a3bb0f7b1b 100644 --- a/docs/en/Entity-Framework-Core-Oracle-Official.md +++ b/docs/en/Entity-Framework-Core-Oracle-Official.md @@ -2,6 +2,8 @@ This document explains how to switch to the **Oracle** database provider for **[the application startup template](Startup-Templates/Application.md)** which comes with SQL Server provider pre-configured. +> Before switching your provider, please ensure your Oracle version is **v12.2+**. In the earlier versions of Oracle, there were long identifier limitations that prevents creating a database table, column or index longer than 30 bytes. With [v12.2](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/newft/new-features.html#GUID-64283AD6-0939-47B0-856E-5E9255D7246B) "The maximum length of identifiers is increased to 128 bytes". **v12.2** and later versions, you can use the database tables, columns and indexes provided by ABP without any problems. + ## Replace the Volo.Abp.EntityFrameworkCore.SqlServer Package `.EntityFrameworkCore` project in the solution depends on the [Volo.Abp.EntityFrameworkCore.SqlServer](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.SqlServer) NuGet package. Remove this package and add the same version of the [Volo.Abp.EntityFrameworkCore.Oracle](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore.Oracle) package. From 8da86d3c0b043bcce4379ddcbd3c222bc09c7e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 24 Nov 2021 11:51:55 +0300 Subject: [PATCH 06/25] Update road map for v5.1. --- docs/en/Road-Map.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/docs/en/Road-Map.md b/docs/en/Road-Map.md index de0a45ffbb..e8d3002750 100644 --- a/docs/en/Road-Map.md +++ b/docs/en/Road-Map.md @@ -4,19 +4,16 @@ This document provides a road map, release schedule and planned features for the ## Next Versions -### v5.0 +### v5.1 -This version will focus on the following works: +In [5.1 milestone](https://github.com/abpframework/abp/milestone/60), we will be mostly working on the following topics: -* Upgrading to .NET 6.0 ([#9004](https://github.com/abpframework/abp/issues/9004)) -* Upgrading to Bootstrap 5.x ([#8922](https://github.com/abpframework/abp/issues/8922)) -* C# and JavaScript Static Client Proxy Generation ([#9864](https://github.com/abpframework/abp/issues/9864)) -* Revisit the microservice demo solution ([#8385](https://github.com/abpframework/abp/issues/8385)) -* Publishing distributed events as transactional ([#6126](https://github.com/abpframework/abp/issues/6126)) -* Performance optimizations; Enabling .NET Trimming, using source generators and reducing reflection, etc. -* Improving the abp.io platform and work more on contents and documents +* Maturing and documenting the [eShopOnAbp](https://github.com/abpframework/eShopOnAbp) project. +* Working on the [LeptonX](https://blog.abp.io/abp/LeptonX-Theme-for-ABP-Framework-Alpha-Release) theme and making it as the default theme for the ABP Framework UI options. +* Flexing the UI-backend dependency for the Angular UI, so we can easily create UI-only modules (like UI themes) with its own localization and settings. +* Working on more examples and guides. -**Planned release date**: End of Quarter 4, 2021. See the [5.0 milestone](https://github.com/abpframework/abp/milestone/51) to track the progress. +The planned release data for v5.1 is **February, 2022**. See the [5.1 milestone](https://github.com/abpframework/abp/milestone/60) on GitHub for all the issues we are working on. ## Backlog Items @@ -24,10 +21,10 @@ The *Next Versions* section above shows the main focus of the planned versions. Here, a list of major items in the backlog we are considering to work on in the next versions. -* ([#497](https://github.com/abpframework/abp/issues/497)) API Versioning system: finalize & document -* ([#7221](https://github.com/abpframework/abp/issues/7221)) Alternative to IdentityServer4 -* ([#2183](https://github.com/abpframework/abp/issues/2183)) Dapr integration -* ([#236](https://github.com/abpframework/abp/issues/236)) Resource based authorization system +* [#497](https://github.com/abpframework/abp/issues/497) / API Versioning system: finalize & document +* [#7221](https://github.com/abpframework/abp/issues/7221) / Alternative to IdentityServer4 +* [#2183](https://github.com/abpframework/abp/issues/2183) / Dapr integration +* [#236](https://github.com/abpframework/abp/issues/236) / Resource based authorization system * [#2882](https://github.com/abpframework/abp/issues/2882) / Providing a gRPC integration infrastructure (while it is [already possible](https://github.com/abpframework/abp-samples/tree/master/GrpcDemo) to create or consume gRPC endpoints for your application, we plan to create endpoints for the [standard application modules](https://docs.abp.io/en/abp/latest/Modules/Index)) * [#1754](https://github.com/abpframework/abp/issues/1754) / Multi-lingual entities * [#57](https://github.com/abpframework/abp/issues/57) / Built-in CQRS infrastructure @@ -36,6 +33,7 @@ Here, a list of major items in the backlog we are considering to work on in the * [#4223](https://github.com/abpframework/abp/issues/4223) / WebHook system * [#162](https://github.com/abpframework/abp/issues/162) / Azure ElasticDB Integration for multitenancy * [#2296](https://github.com/abpframework/abp/issues/2296) / Feature toggling infrastructure +* [#6655](https://github.com/abpframework/abp/pull/6655) / Use Typescript for the MVC UI You can always check the milestone planning and the prioritized backlog issues on [the GitHub repository](https://github.com/abpframework/abp/milestones) for a detailed road map. The backlog items are subject to change. We are adding new items and changing priorities based on the community feedbacks and goals of the project. From b7bc469b77fa4259fbcbe7ec852a03a06f277628 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 25 Nov 2021 09:34:34 +0800 Subject: [PATCH 07/25] Update Index.md --- docs/en/Tutorials/Todo/Index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index ef3a43d798..476a5d2175 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -412,14 +412,16 @@ Open the `Index.cshtml` file in the `Pages` folder of the *TodoApp.Web* project -
    - - + +
    +
    + +
    +
    +
    + +
    -
      @foreach (var todoItem in Model.TodoItems) From 2aa3011625c226b7e7e2466df0187d9be6f80e90 Mon Sep 17 00:00:00 2001 From: Jadyn Date: Thu, 25 Nov 2021 11:50:50 +0800 Subject: [PATCH 08/25] Revert Minio get blob stream --- .../Abp/BlobStoring/Minio/MinioBlobProvider.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs index 9587aeffc3..8df6a7bdb4 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobProvider.cs @@ -75,13 +75,21 @@ namespace Volo.Abp.BlobStoring.Minio return null; } - Stream blobStream = null; - await client.GetObjectAsync(containerName, blobName, (stream) => + var memoryStream = new MemoryStream(); + await client.GetObjectAsync(containerName, blobName, (stream) => { - blobStream = stream; + if (stream != null) + { + stream.CopyTo(memoryStream); + memoryStream.Seek(0, SeekOrigin.Begin); + } + else + { + memoryStream = null; + } }); - return await TryCopyToMemoryStreamAsync(blobStream, args.CancellationToken); + return memoryStream; } protected virtual MinioClient GetMinioClient(BlobProviderArgs args) From 2ec03fe57a66e9f56b0b30ba823d2e1f50438fac Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 25 Nov 2021 10:28:41 +0300 Subject: [PATCH 09/25] Add bs5 fix for select2 --- .../Bundling/BasicThemeGlobalStyleContributor.cs | 1 + .../wwwroot/themes/basic/custom/select2-bs5-fix.css | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs index bf60b4ccd0..e5254366d4 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs @@ -7,6 +7,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling public override void ConfigureBundle(BundleConfigurationContext context) { context.Files.Add("/themes/basic/layout.css"); + context.Files.Add("/themes/basic/custom/select2-bs5-fix.css"); } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css new file mode 100644 index 0000000000..beb981c139 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css @@ -0,0 +1,4 @@ +/*TODO: Remove after BS5 Modal support of select2 */ +span.select2-container.select2-container--default.select2-container--open { + z-index: 1056; /*Just for BS5 Modals*/ +} From 62a27546c06a4a1066756dc84fffc444b3f78c23 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 25 Nov 2021 15:08:39 +0300 Subject: [PATCH 10/25] Remove custom css for select2 --- .../Bundling/BasicThemeGlobalStyleContributor.cs | 1 - .../wwwroot/themes/basic/custom/select2-bs5-fix.css | 4 ---- 2 files changed, 5 deletions(-) delete mode 100644 modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs index e5254366d4..bf60b4ccd0 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Bundling/BasicThemeGlobalStyleContributor.cs @@ -7,7 +7,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling public override void ConfigureBundle(BundleConfigurationContext context) { context.Files.Add("/themes/basic/layout.css"); - context.Files.Add("/themes/basic/custom/select2-bs5-fix.css"); } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css deleted file mode 100644 index beb981c139..0000000000 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/wwwroot/themes/basic/custom/select2-bs5-fix.css +++ /dev/null @@ -1,4 +0,0 @@ -/*TODO: Remove after BS5 Modal support of select2 */ -span.select2-container.select2-container--default.select2-container--open { - z-index: 1056; /*Just for BS5 Modals*/ -} From 253408ff5bec01649e736e87e301fb097ef06efb Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 25 Nov 2021 15:08:53 +0300 Subject: [PATCH 11/25] Add parent parameter to dom-initializers --- .../bootstrap/dom-event-handlers.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js index 55c604cf4a..4e83df796a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js @@ -81,6 +81,7 @@ var itemsPropertyName = $(this).data("autocompleteItemsProperty"); var filterParamName = $(this).data("autocompleteFilterParamName"); var selectedText = $(this).data("autocompleteSelectedItemName"); + var parentSelector = $(this).data("autocompleteParentSelector"); var name = $(this).attr("name"); var selectedTextInputName = name.substring(0, name.length - 1) + "_Text]"; var selectedTextInput = $('', { @@ -119,7 +120,8 @@ }; } }, - width: '100%' + width: '100%', + dropdownParent: parentSelector ? $(parentSelector) : $('body'), }); $select.on('select2:select', function (e) { selectedTextInput.val(e.params.data.text); From 7b070e0296fd00a4b2d31bcd898cb8cd43c87732 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 25 Nov 2021 15:09:11 +0300 Subject: [PATCH 12/25] Implement parent selector for CmsKit Menu select2 --- .../Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml | 2 +- .../Pages/CmsKit/Menus/MenuItems/createModal.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml index 37264289b4..bb4083a6b9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml @@ -13,7 +13,7 @@ }
      - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js index 41e37a0118..2818f48523 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js @@ -33,6 +33,7 @@ $(function () { $pageId.data('autocompleteValueProperty', 'id'); $pageId.data('autocompleteItemsProperty', 'items'); $pageId.data('autocompleteFilterParamName', 'filter'); + $pageId.data('autocompleteParentSelector', '#menu-create-modal'); abp.dom.initializers.initializeAutocompleteSelects($pageId); } From 3aef9d9d99c1fe6c4b143a7e558e74016ce22ab4 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 25 Nov 2021 15:25:11 +0300 Subject: [PATCH 13/25] CmsKit - Implement parentSelector to UpdateModal --- .../Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml | 2 +- .../Pages/CmsKit/Menus/MenuItems/updateModal.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml index 81ebc6625d..719b708566 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml @@ -13,7 +13,7 @@ } - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js index e219763fc0..d8ded357bb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js @@ -34,6 +34,7 @@ $(function () { $pageId.data('autocompleteValueProperty', 'id'); $pageId.data('autocompleteItemsProperty', 'items'); $pageId.data('autocompleteFilterParamName', 'filter'); + $pageId.data('autocompleteParentSelector', '#menu-update-modal'); abp.dom.initializers.initializeAutocompleteSelects($pageId); } From 042b42030f84b9bde702510dc0b6ad73650011d9 Mon Sep 17 00:00:00 2001 From: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> Date: Thu, 25 Nov 2021 15:46:17 +0300 Subject: [PATCH 14/25] Update List-Service.md --- docs/en/UI/Angular/List-Service.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/docs/en/UI/Angular/List-Service.md b/docs/en/UI/Angular/List-Service.md index 03e2b5341a..fc3697bd35 100644 --- a/docs/en/UI/Angular/List-Service.md +++ b/docs/en/UI/Angular/List-Service.md @@ -201,26 +201,3 @@ You may use observables in combination with [AsyncPipe](https://angular.io/guide ``` - -## Breaking Change with ABP v3.0 - -We had to modify the `ListService` to make it work with `ngx-datatable`. Previously, the minimum value for `page` property was `1` and you could use it like this: - -```html - - -``` - -As of v3.0, with ngx-datatable, the `page` property has to be set as `0` for the initial page. Therefore, if you used `ListService` on your tables before and are going to keep `abp-table`, you need to make the following change: - -```html - - -``` - -**Important Note:** The `abp-table` is not removed, but is deprecated and will be removed in the future. Please consider switching to ngx-datatable. From be79ff946487210ecca9f12729f08cdacdad513e Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 26 Nov 2021 16:21:42 +0800 Subject: [PATCH 15/25] Use the extension method of SystemTextJson. --- .../JsonConverters/AbpHasExtraPropertiesJsonConverter.cs | 5 +++-- .../Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs | 4 ++-- .../SelectionStringValueItemSourceJsonConverter.cs | 2 +- .../JsonConverters/StringValueTypeJsonConverter.cs | 6 +++--- .../JsonConverters/ValueValidatorJsonConverter.cs | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpHasExtraPropertiesJsonConverter.cs b/framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpHasExtraPropertiesJsonConverter.cs index ebd561c0ae..792b96144e 100644 --- a/framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpHasExtraPropertiesJsonConverter.cs +++ b/framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/JsonConverters/AbpHasExtraPropertiesJsonConverter.cs @@ -27,12 +27,13 @@ namespace Volo.Abp.Json.SystemTextJson.JsonConverters var rootElement = JsonDocument.ParseValue(ref reader).RootElement; if (rootElement.ValueKind == JsonValueKind.Object) { - var extensibleObject = JsonSerializer.Deserialize(rootElement.GetRawText(), newOptions); + var extensibleObject = rootElement.Deserialize(newOptions); var extraPropertiesJsonProperty = rootElement.EnumerateObject().FirstOrDefault(x => x.Name.Equals(nameof(IHasExtraProperties.ExtraProperties), StringComparison.OrdinalIgnoreCase)); + if (extraPropertiesJsonProperty.Value.ValueKind == JsonValueKind.Object) { - var extraPropertyDictionary = JsonSerializer.Deserialize(extraPropertiesJsonProperty.Value.GetRawText(), typeof(ExtraPropertyDictionary), newOptions); + var extraPropertyDictionary = extraPropertiesJsonProperty.Value.Deserialize(typeof(ExtraPropertyDictionary), newOptions); ObjectHelper.TrySetProperty(extensibleObject, x => x.ExtraProperties, () => extraPropertyDictionary); } diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs index 09c08af9a8..2a26c6ee42 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/JsonConverters/EntityJsonConverter.cs @@ -13,12 +13,12 @@ namespace Volo.Abp.MemoryDb.JsonConverters var jsonDocument = JsonDocument.ParseValue(ref reader); if (jsonDocument.RootElement.ValueKind == JsonValueKind.Object) { - var entity = (TEntity)JsonSerializer.Deserialize(jsonDocument.RootElement.GetRawText(), typeToConvert); + var entity = (TEntity)jsonDocument.RootElement.Deserialize(typeToConvert); var idJsonElement = jsonDocument.RootElement.GetProperty(nameof(Entity.Id)); if (idJsonElement.ValueKind != JsonValueKind.Undefined) { - var id = JsonSerializer.Deserialize(idJsonElement.GetRawText()); + var id = idJsonElement.Deserialize(); if (id != null) { EntityHelper.TrySetId(entity, () => id); diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/SelectionStringValueItemSourceJsonConverter.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/SelectionStringValueItemSourceJsonConverter.cs index bae37dbff9..9d62f9952c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/SelectionStringValueItemSourceJsonConverter.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/SelectionStringValueItemSourceJsonConverter.cs @@ -19,7 +19,7 @@ namespace Volo.Abp.FeatureManagement.JsonConverters var newOptions = JsonSerializerOptionsHelper.Create(options, this); var selectionStringValueItem = - JsonSerializer.Deserialize(itemsJsonProperty.Value.GetRawText(), newOptions) ?? + itemsJsonProperty.Value.Deserialize(newOptions) ?? Array.Empty(); return new StaticSelectionStringValueItemSource(selectionStringValueItem.As()); diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/StringValueTypeJsonConverter.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/StringValueTypeJsonConverter.cs index 0d2196e911..408ef2f99b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/StringValueTypeJsonConverter.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/StringValueTypeJsonConverter.cs @@ -22,9 +22,9 @@ namespace Volo.Abp.FeatureManagement.JsonConverters return name switch { - "SelectionStringValueType" => JsonSerializer.Deserialize(rootElement.GetRawText(), newOptions), - "FreeTextStringValueType" => JsonSerializer.Deserialize(rootElement.GetRawText(), newOptions), - "ToggleStringValueType" => JsonSerializer.Deserialize(rootElement.GetRawText(), newOptions), + "SelectionStringValueType" => rootElement.Deserialize(newOptions), + "FreeTextStringValueType" => rootElement.Deserialize(newOptions), + "ToggleStringValueType" => rootElement.Deserialize(newOptions), _ => throw new ArgumentException($"{nameof(IStringValueType)} named {name} was not found!") }; } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/ValueValidatorJsonConverter.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/ValueValidatorJsonConverter.cs index 25bb603c1a..27f92cc0ec 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/ValueValidatorJsonConverter.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/JsonConverters/ValueValidatorJsonConverter.cs @@ -23,7 +23,7 @@ namespace Volo.Abp.FeatureManagement.JsonConverters if (propertiesJsonProperty.Value.ValueKind == JsonValueKind.Object) { var newOptions = JsonSerializerOptionsHelper.Create(options, this, new ObjectToInferredTypesConverter()); - var properties = JsonSerializer.Deserialize>(propertiesJsonProperty.Value.GetRawText(), newOptions); + var properties = propertiesJsonProperty.Value.Deserialize>(newOptions); if (properties != null && properties.Any()) { foreach (var property in properties) From 7e73bdd68d04d9f3e8a4fe41d57bd34278d2afe3 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 26 Nov 2021 16:59:35 +0800 Subject: [PATCH 16/25] Update Index.md --- docs/en/Tutorials/Todo/Index.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/docs/en/Tutorials/Todo/Index.md b/docs/en/Tutorials/Todo/Index.md index 476a5d2175..ea2551d4f5 100644 --- a/docs/en/Tutorials/Todo/Index.md +++ b/docs/en/Tutorials/Todo/Index.md @@ -591,17 +591,16 @@ Open the `Index.razor` file in the `Pages` folder of the *TodoApp.Blazor* projec - - - + +
      +
      + +
      +
      +
      + +
      -
        @foreach (var todoItem in TodoItems) From 88074d94b3fc89371c39a5b0de86d7d5efc200ca Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Fri, 26 Nov 2021 18:27:47 +0300 Subject: [PATCH 17/25] fix indent of comments in blog module --- .../src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.css | 2 +- .../Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.min.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.css index 5dcc41376e..6aac0e363b 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.css @@ -286,7 +286,7 @@ div.vs-blog { padding: 30px; border-bottom: 1px solid #f1f1f1; } div.vs-blog .comment-area > .media .media { - padding: 20px 0px 0px; } + padding: 20px 0px 0px 20px; } div.vs-blog .comment-area .comment-buttons { padding: 4px 0; font-size: .96em; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.min.css b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.min.css index 5c6b99aced..a7821851d2 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.min.css +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Shared/Styles/blog.min.css @@ -1 +1 @@ -div.vs-blog{position:relative;background:#fff;padding:10px;font-family:'Open Sans',Helvetica,Arial,sans-serif;font-size:15px;}div.vs-blog .post-content{color:#555;}div.vs-blog .post-content a{text-decoration:underline !important;color:#555;}div.vs-blog .post-content a:hover{text-decoration:underline !important;color:#000;}div.vs-blog p{color:#444;}div.vs-blog p a{text-decoration:underline;}div.vs-blog h1,div.vs-blog h2,div.vs-blog h3,div.vs-blog h4,div.vs-blog h5,div.vs-blog h6,div.vs-blog .tab-title{font-family:Helvetica,Arial,sans-serif;font-weight:700;}div.vs-blog h1{font-size:2em;margin:1rem 0 1.5rem;line-height:1.25;}div.vs-blog h2,div.vs-blog .tab-title{font-size:1.5em;margin:1.5rem 0 .75rem;}div.vs-blog h3{font-size:1.25em;margin:1.5rem 0 .75rem;}div.vs-blog h4{font-size:1.125em;margin:1.5rem 0 .75rem;}div.vs-blog h5{font-size:1em;}div.vs-blog h6{font-size:1em;}div.vs-blog .lead{font-size:1.1rem;font-weight:300;}div.vs-blog img{max-width:100%;}div.vs-blog input,div.vs-blog select,div.vs-blog textarea,div.vs-blog .form-control,div.vs-blog .btn{border-radius:0;border-width:1px 1px 2px 1px;}div.vs-blog .navbar-toggler{background:#0ff;}div.vs-blog .no-border{border:0;}div.vs-blog .btn-rounded{border-radius:30px;}div.vs-blog .list-group .list-group-item{position:relative;display:block;padding:30px 0 30px;background:none;border-radius:0;border:0;}div.vs-blog .list-group .list-group-item:hover{background:none;}div.vs-blog .list-group .list-group-item+.list-group-item{border-top:1px solid #f5f5f5;padding:35px 0 30px;}div.vs-blog .list-group .list-group-item h3{margin-top:0;}div.vs-blog .list-group.small-list .list-group-item{padding:10px 0;}div.vs-blog .list-group.small-list .list-group-item+.list-group-item{padding:10px 0;}div.vs-blog .font-75{font-size:.75em;}div.vs-blog .font-85{font-size:.85em;}div.vs-blog .font-92{font-size:.92em;}div.vs-blog .font-100{font-size:1em;}div.vs-blog .font-125{font-size:1.125em;}div.vs-blog pre{background:#131323;padding:25px 30px;margin:1em 0 2em 0;}div.vs-blog .vs-blog-title{padding-bottom:15px;margin-bottom:25px;border-bottom:1px solid #ddd;}div.vs-blog .vs-blog-title h1,div.vs-blog .vs-blog-title h2,div.vs-blog .vs-blog-title h3,div.vs-blog .vs-blog-title h4,div.vs-blog .vs-blog-title h5,div.vs-blog .vs-blog-title h6{margin:0;padding:0;}div.vs-blog .vs-footer{padding-top:15px;margin-top:25px;border-top:1px solid #ddd;}div.vs-blog .vs-seperator{padding:0 4px;opacity:.3;}div.vs-blog .hero-section{padding:0;}div.vs-blog .hero-section .hero-articles{position:relative;overflow:hidden;}div.vs-blog .hero-section .hero-articles .hero-content h1{margin-top:2em;font-size:2em;font-weight:bold;line-height:1.25;}div.vs-blog .hero-section .hero-articles .hero-content h1 a{color:#000;font-weight:700;}div.vs-blog .hero-section .hero-articles .hero-content h1 a:hover{text-decoration:none;}div.vs-blog .hero-section .hero-articles .hero-content h2{margin-top:.5rem;font-size:1.75em;font-weight:bold;line-height:1.25;}div.vs-blog .hero-section .hero-articles .hero-content h2 a{color:#000;}div.vs-blog .hero-section .hero-articles .hero-content h2 a:hover{text-decoration:none;}div.vs-blog .hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff !important;}div.vs-blog .hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000 !important;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos{color:#000;}div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2);}div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar{display:inline-block;border-radius:50%;}div.vs-blog .hero-section .hero-articles .img-container img{width:100%;}div.vs-blog .hero-section .hero-articles:hover .img-container::after{opacity:1;}div.vs-blog .article-owner .article-infos{color:#000;}div.vs-blog .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .article-owner .article-infos img.article-avatar{width:48px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .user-card h5 span{font-weight:300;opacity:.5;padding:0 5px;}div.vs-blog .card-articles .card-content{padding:10px 0 10px;}div.vs-blog .card-articles .card-content h3{margin:10px 0;}div.vs-blog .card-articles .card-content h3 a{font-weight:700;}div.vs-blog .card-articles .article-owner{text-align:left;}div.vs-blog .card-articles .article-owner .article-infos{color:#000;}div.vs-blog .card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6);}div.vs-blog .card-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%;}div.vs-blog .article-owner{font-size:.72em;}div.vs-blog .user-link-icons{position:absolute;right:18px;top:15px;z-index:3;}div.vs-blog .user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em;}div.vs-blog .user-link-icons a:hover{color:#fff;}div.vs-blog .tags{margin:2rem 0;padding:0 0 1.25rem 0;}div.vs-blog .tags .tag{display:inline-block;padding:4px 12px;background:rgba(208,208,208,.3);border-radius:4px;margin:0 2px 3px 0;color:#b1b1b1 !important;font-size:.85em;line-height:1.6em;text-transform:uppercase;transition:.25s;text-decoration:none;}div.vs-blog .tags .tag:hover{background:#000;color:#fff !important;}div.vs-blog .hero-section .tags{margin:1rem 0;padding:0 0 .5rem 0;}div.vs-blog .list-group-item .tags{margin:1rem 0 0;padding:0 0;}div.vs-blog .popular-tags a{display:block;font-size:.9em;}div.vs-blog .popular-tags a span{float:right;opacity:.3;font-size:.9em;}div.vs-blog .img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc;}div.vs-blog .post-detail h1{padding:0 0;line-height:1.25em;font-size:3.5em;}div.vs-blog .post-detail .article-owner{text-align:center;position:relative;z-index:12;}div.vs-blog .post-detail .article-owner .article-infos{color:#000;}div.vs-blog .post-detail .article-owner .article-infos a{color:#000;color:rgba(0,0,0,.8);}div.vs-blog .post-detail .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2);}div.vs-blog .post-detail .article-owner .article-infos img.article-avatar{width:64px;margin:-20px 10px 0 0;display:inline-block;border-radius:50%;border:3px solid #fff;}div.vs-blog .post-detail .post-content{font-size:1.125em;}div.vs-blog .post-detail .post-content .post-img-container{margin:50px -80px 20px;overflow:hidden;border-radius:4px;}div.vs-blog .post-detail .post-content .lead{font-size:1.125em;color:#111;}div.vs-blog .media{font-size:.95em;}div.vs-blog .media .media{font-size:.95em;}div.vs-blog .read-more-btn{display:inline-block;font-size:.9em;margin:0 0 1em 0;background:#eee;color:#00f;padding:.25em 1em;border-radius:20px;}div.vs-blog .comment-area{background:#f5f5f5;margin:1.5rem 0;padding:10px;}div.vs-blog .comment-area .comment-owner{margin-bottom:4px;margin-top:8px;}div.vs-blog .comment-area .comment-owner span{font-weight:300;opacity:.5;padding:0 5px;}div.vs-blog .comment-area .media{background:#fff;margin:1px;border-radius:4px;}div.vs-blog .comment-area>.media{padding:30px;border-bottom:1px solid #f1f1f1;}div.vs-blog .comment-area>.media .media{padding:20px 0 0;}div.vs-blog .comment-area .comment-buttons{padding:4px 0;font-size:.96em;}div.vs-blog .comment-area .comment-buttons .seperator{color:#ddd;margin:0 8px;}div.vs-blog .comment-area .comment-buttons .count{color:#fff;background:#ddd;margin-left:5px;padding:1px 3px;font-size:10px;border-radius:3px;}div.vs-blog .comment-area .comment-buttons .count.count-up{background:#999;}div.vs-blog .comment-area .comment-buttons a{opacity:.65;margin-right:10px;}div.vs-blog .comment-area .comment-buttons a:hover{opacity:1;}div.vs-blog .comment-area p{margin-bottom:6px;}div.vs-blog .comment-area .comment-avatar{width:64px;}div.vs-blog .comment-area .answer-avatar{width:64px;}div.vs-blog .box-articles h3 a{color:#000;font-weight:700;}div.vs-blog .box-articles h3 a:hover{text-decoration:none;}div.vs-blog>.form-group{margin:0 !important;} \ No newline at end of file +div.vs-blog{position:relative;background:#fff;padding:10px;font-family:'Open Sans',Helvetica,Arial,sans-serif;font-size:15px}div.vs-blog .post-content{color:#555}div.vs-blog .post-content a,div.vs-blog .post-content a:hover{text-decoration:underline!important;color:#555}div.vs-blog .post-content a:hover{color:#000}div.vs-blog p{color:#444}div.vs-blog p a{text-decoration:underline}div.vs-blog .tab-title,div.vs-blog h1,div.vs-blog h2,div.vs-blog h3,div.vs-blog h4,div.vs-blog h5,div.vs-blog h6{font-family:Helvetica,Arial,sans-serif;font-weight:700}div.vs-blog h1{font-size:2em;margin:1rem 0 1.5rem;line-height:1.25}div.vs-blog .tab-title,div.vs-blog h2{font-size:1.5em;margin:1.5rem 0 .75rem}div.vs-blog h3,div.vs-blog h4{font-size:1.25em;margin:1.5rem 0 .75rem}div.vs-blog h4{font-size:1.125em}div.vs-blog h5,div.vs-blog h6{font-size:1em}div.vs-blog .lead{font-size:1.1rem;font-weight:300}div.vs-blog img{max-width:100%}div.vs-blog .btn,div.vs-blog .form-control,div.vs-blog input,div.vs-blog select,div.vs-blog textarea{border-radius:0;border-width:1px 1px 2px}div.vs-blog .navbar-toggler{background:#0ff}div.vs-blog .no-border{border:0}div.vs-blog .btn-rounded{border-radius:30px}div.vs-blog .list-group .list-group-item{position:relative;display:block;padding:30px 0;background:0 0;border-radius:0;border:0}div.vs-blog .list-group .list-group-item:hover{background:0 0}div.vs-blog .list-group .list-group-item+.list-group-item{border-top:1px solid #f5f5f5;padding:35px 0 30px}div.vs-blog .list-group .list-group-item h3{margin-top:0}div.vs-blog .list-group.small-list .list-group-item,div.vs-blog .list-group.small-list .list-group-item+.list-group-item{padding:10px 0}div.vs-blog .font-75{font-size:.75em}div.vs-blog .font-85{font-size:.85em}div.vs-blog .font-92{font-size:.92em}div.vs-blog .font-100{font-size:1em}div.vs-blog .font-125{font-size:1.125em}div.vs-blog pre{background:#131323;padding:25px 30px;margin:1em 0 2em}div.vs-blog .vs-blog-title{padding-bottom:15px;margin-bottom:25px;border-bottom:1px solid #ddd}div.vs-blog .vs-blog-title h1,div.vs-blog .vs-blog-title h2,div.vs-blog .vs-blog-title h3,div.vs-blog .vs-blog-title h4,div.vs-blog .vs-blog-title h5,div.vs-blog .vs-blog-title h6{margin:0;padding:0}div.vs-blog .vs-footer{padding-top:15px;margin-top:25px;border-top:1px solid #ddd}div.vs-blog .vs-seperator{padding:0 4px;opacity:.3}div.vs-blog .hero-section{padding:0}div.vs-blog .hero-section .hero-articles{position:relative;overflow:hidden}div.vs-blog .hero-section .hero-articles .hero-content h1{margin-top:2em;font-size:2em;font-weight:700;line-height:1.25}div.vs-blog .box-articles h3 a,div.vs-blog .hero-section .hero-articles .hero-content h1 a{color:#000;font-weight:700}div.vs-blog .hero-section .hero-articles .hero-content h1 a:hover,div.vs-blog .hero-section .hero-articles .hero-content h2 a:hover{text-decoration:none}div.vs-blog .hero-section .hero-articles .hero-content h2{margin-top:.5rem;font-size:1.75em;font-weight:700;line-height:1.25}div.vs-blog .hero-section .hero-articles .tags .tag{background:rgba(208,208,208,.3);color:#fff!important}div.vs-blog .hero-section .hero-articles .tags .tag:hover{background:#fff;color:#000!important}div.vs-blog .article-owner .article-infos,div.vs-blog .hero-section .hero-articles .article-owner .article-infos,div.vs-blog .hero-section .hero-articles .hero-content h2 a{color:#000}div.vs-blog .hero-section .hero-articles .article-owner .article-infos .seperator{margin:0 4px;color:rgba(255,255,255,.2)}div.vs-blog .hero-section .hero-articles .article-owner .article-infos img.article-avatar{display:inline-block;border-radius:50%}div.vs-blog .hero-section .hero-articles .img-container img{width:100%}div.vs-blog .hero-section .hero-articles:hover .img-container::after{opacity:1}div.vs-blog .article-owner .article-infos a,div.vs-blog .card-articles .article-owner .article-infos a{color:rgba(0,0,0,.6)}div.vs-blog .article-owner .article-infos .seperator,div.vs-blog .card-articles .article-owner .article-infos .seperator,div.vs-blog .post-detail .article-owner .article-infos .seperator{margin:0 4px;color:rgba(0,0,0,.2)}div.vs-blog .article-owner .article-infos img.article-avatar{width:48px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%}div.vs-blog .comment-area .comment-owner span,div.vs-blog .user-card h5 span{font-weight:300;opacity:.5;padding:0 5px}div.vs-blog .card-articles .card-content{padding:10px 0}div.vs-blog .card-articles .card-content h3{margin:10px 0}div.vs-blog .card-articles .card-content h3 a{font-weight:700}div.vs-blog .card-articles .article-owner{text-align:left}div.vs-blog .card-articles .article-owner .article-infos{color:#000}div.vs-blog .card-articles .article-owner .article-infos img.article-avatar{width:30px;margin:-1px 4px 0 0;display:inline-block;border-radius:50%}div.vs-blog .article-owner{font-size:.72em}div.vs-blog .user-link-icons{position:absolute;right:18px;top:15px;z-index:3}div.vs-blog .user-link-icons a{display:inline-block;color:#eee;margin-left:12px;font-size:1.25em}div.vs-blog .user-link-icons a:hover{color:#fff}div.vs-blog .tags{margin:2rem 0;padding:0 0 1.25rem}div.vs-blog .tags .tag{display:inline-block;padding:4px 12px;background:rgba(208,208,208,.3);border-radius:4px;margin:0 2px 3px 0;color:#b1b1b1!important;font-size:.85em;line-height:1.6em;text-transform:uppercase;transition:.25s;text-decoration:none}div.vs-blog .tags .tag:hover{background:#000;color:#fff!important}div.vs-blog .hero-section .tags{margin:1rem 0;padding:0 0 .5rem}div.vs-blog .list-group-item .tags{margin:1rem 0 0;padding:0}div.vs-blog .popular-tags a{display:block;font-size:.9em}div.vs-blog .popular-tags a span{float:right;opacity:.3;font-size:.9em}div.vs-blog .img-container{position:relative;overflow:hidden;border-radius:4px;background:#dcdcdc}div.vs-blog .post-detail h1{padding:0;line-height:1.25em;font-size:3.5em}div.vs-blog .post-detail .article-owner{text-align:center;position:relative;z-index:12}div.vs-blog .post-detail .article-owner .article-infos{color:#000}div.vs-blog .post-detail .article-owner .article-infos a{color:#000;color:rgba(0,0,0,.8)}div.vs-blog .post-detail .article-owner .article-infos img.article-avatar{width:64px;margin:-20px 10px 0 0;display:inline-block;border-radius:50%;border:3px solid #fff}div.vs-blog .post-detail .post-content{font-size:1.125em}div.vs-blog .post-detail .post-content .post-img-container{margin:50px -80px 20px;overflow:hidden;border-radius:4px}div.vs-blog .post-detail .post-content .lead{font-size:1.125em;color:#111}div.vs-blog .media,div.vs-blog .media .media{font-size:.95em}div.vs-blog .read-more-btn{display:inline-block;font-size:.9em;margin:0 0 1em;background:#eee;color:#00f;padding:.25em 1em;border-radius:20px}div.vs-blog .comment-area{background:#f5f5f5;margin:1.5rem 0;padding:10px}div.vs-blog .comment-area .comment-owner{margin-bottom:4px;margin-top:8px}div.vs-blog .comment-area .media{background:#fff;margin:1px;border-radius:4px}div.vs-blog .comment-area>.media{padding:30px;border-bottom:1px solid #f1f1f1}div.vs-blog .comment-area>.media .media{padding:20px 0 0 20px}div.vs-blog .comment-area .comment-buttons{padding:4px 0;font-size:.96em}div.vs-blog .comment-area .comment-buttons .seperator{color:#ddd;margin:0 8px}div.vs-blog .comment-area .comment-buttons .count{color:#fff;background:#ddd;margin-left:5px;padding:1px 3px;font-size:10px;border-radius:3px}div.vs-blog .comment-area .comment-buttons .count.count-up{background:#999}div.vs-blog .comment-area .comment-buttons a{opacity:.65;margin-right:10px}div.vs-blog .comment-area .comment-buttons a:hover{opacity:1}div.vs-blog .comment-area p{margin-bottom:6px}div.vs-blog .comment-area .answer-avatar,div.vs-blog .comment-area .comment-avatar{width:64px}div.vs-blog .box-articles h3 a:hover{text-decoration:none}div.vs-blog>.form-group{margin:0!important} \ No newline at end of file From 61224a63a74ba40b523f8cb429af41407a877a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 26 Nov 2021 20:44:12 +0300 Subject: [PATCH 18/25] Create the empty eShopOnAbp document --- docs/en/Samples/eShopOnAbp/Index.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/en/Samples/eShopOnAbp/Index.md diff --git a/docs/en/Samples/eShopOnAbp/Index.md b/docs/en/Samples/eShopOnAbp/Index.md new file mode 100644 index 0000000000..068d39f92b --- /dev/null +++ b/docs/en/Samples/eShopOnAbp/Index.md @@ -0,0 +1,3 @@ +# eShopOnAbp + +This document is in progress. Please see the source code for now: https://github.com/abpframework/eShopOnAbp From c3d88a83baa588e892b62fb451292dc3a913548a Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 29 Nov 2021 10:13:18 +0800 Subject: [PATCH 19/25] Fix PublishToEventBusAsync problem. --- .../Volo/Abp/EventBus/Azure/AzureDistributedEventBus.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.EventBus.Azure/Volo/Abp/EventBus/Azure/AzureDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Azure/Volo/Abp/EventBus/Azure/AzureDistributedEventBus.cs index a719e0a8d5..f809159346 100644 --- a/framework/src/Volo.Abp.EventBus.Azure/Volo/Abp/EventBus/Azure/AzureDistributedEventBus.cs +++ b/framework/src/Volo.Abp.EventBus.Azure/Volo/Abp/EventBus/Azure/AzureDistributedEventBus.cs @@ -180,7 +180,7 @@ namespace Volo.Abp.EventBus.Azure protected override async Task PublishToEventBusAsync(Type eventType, object eventData) { - await PublishAsync(eventType, eventData); + await PublishAsync(EventNameAttribute.GetNameOrDefault(eventType), eventData); } protected override void AddToUnitOfWork(IUnitOfWork unitOfWork, UnitOfWorkEventRecord eventRecord) From de91432f811e8ff5363da8efa197c21d092fa86c Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 29 Nov 2021 09:37:52 +0300 Subject: [PATCH 20/25] added article --- ...xpress-Reporting-To-ABP-MVC-Application.md | 717 ++++++++++++++++++ .../bundle-hierarchy.png | Bin 0 -> 54260 bytes .../bundling-folders.png | Bin 0 -> 5163 bytes .../data-source.png | Bin 0 -> 40758 bytes .../initial-project.png | Bin 0 -> 9078 bytes .../result.gif | Bin 0 -> 118897 bytes .../wwwroot-lib.png | Bin 0 -> 9000 bytes 7 files changed, 717 insertions(+) create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/Integrating-DevExpress-Reporting-To-ABP-MVC-Application.md create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/initial-project.png create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/result.gif create mode 100644 docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/Integrating-DevExpress-Reporting-To-ABP-MVC-Application.md b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/Integrating-DevExpress-Reporting-To-ABP-MVC-Application.md new file mode 100644 index 0000000000..58a5796992 --- /dev/null +++ b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/Integrating-DevExpress-Reporting-To-ABP-MVC-Application.md @@ -0,0 +1,717 @@ +# Integrating DevExpress ASP.NET Core Reporting to ABP MVC Application + +In this step by step article, I will demonstrate how to integrate DevExpress Reporting [DocumentViewer](https://docs.devexpress.com/XtraReports/400248/web-reporting/asp-net-core-reporting/document-viewer-in-asp-net-core-applications) and [End-User Report Designer](https://docs.devexpress.com/XtraReports/400249/web-reporting/asp-net-core-reporting/end-user-report-designer-in-asp-net-core-applications) components to an existing ABP application. We will also create core bundling packages for styling, DevExpress javascript components and also DocumentViewer specific bundling packages. + +## Create the Project (Optional) + +ABP Framework offers startup templates to get to business faster. We can download a new startup template using [ABP CLI](https://docs.abp.io/en/abp/latest/CLI): + +````bash +abp new Acme.BookStore +```` + +After the download is finished, open the solution in Visual Studio (or your favorite IDE): + +![initial-project](initial-project.png) + +Run the `Acme.BookStore.DbMigrator` application to create the database and seed the initial data (which creates the admin user, admin role, related permissions, etc). Then we can run the `Acme.BookStore.Web` project to see our application working. + +> _Default admin username is **admin** and password is **1q2w3E\***_ + +## Installing Packages + +You can also follow [this documentation](https://js.devexpress.com/Documentation/17_1/Guide/ASP.NET_MVC_Controls/Prerequisites_and_Installation/) to install DevExpress packages into your computer. We will be installing both nuget references and npm references. + +> Don't forget to add _"DevExpress NuGet Feed"_ to your **Nuget Package Sources**. + +### Adding NuGet Packages + +- Add the `` NuGet package reference to the **Acme.BookStore.Application.Contracts.csproj**. Or run + + ```csharp + Install-Package DevExtreme.AspNet.Core + ``` + + command under **Acme.BookStore.Application.Contracts** project. + +- Add the `` NuGet package reference to the **Acme.BookStore.Web.csproj**. Or run + + ```csharp + Install-Package DevExpress.AspNetCore.Reporting + ``` + + command under the **Acme.BookStore.Web** project. **Note:** You need a commercial license to use this package. + +### Adding NPM Packages + +Open your `Acme.BookStore.Web` project folder with a command line. Add **devextreme** and [other required third party NPM packages](https://docs.devexpress.com/XtraReports/401763/web-reporting/asp-net-core-reporting/end-user-report-designer-in-asp-net-applications/quick-start/add-an-end-user-report-designer-to-an-aspnet-core-application): + +- `npm install devexpress-reporting @devexpress/analytics-core devextreme` +- `npm install globalize jquery-ui-dist cldrjs` + +At the end, your `package.json` should look as shown below: + +```json +{ + "version": "1.0.0", + "name": "my-app", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-rc.1", + "@devexpress/analytics-core": "^21.2.3", + "cldrjs": "^0.5.5", + "devexpress-reporting": "^21.2.3", + "devextreme": "^21.2.3", + "globalize": "^1.7.0", + "jquery-ui-dist": "^1.12.1" + } +} +``` + +### Adding Resource Mappings + +The `devextreme` and third party NPM packages will be saved under the `node_modules` folder. We need to move the needed files in our `wwwroot/libs` folder to use them in the web project. We can do it using the ABP [client side resource mapping](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Client-Side-Package-Management) system. + +Open the `abp.resourcemapping.js` file in your `Acme.BookStore.Web` project and add definitions inside the `mappings` object so the final `abp.resourcemapping.js` file can look as shown below: + +```javascript +module.exports = { + aliases: { + + }, + mappings: { + "@node_modules/devextreme/dist/**/*": "@libs/devextreme/", + "@node_modules/jquery-ui-dist/jquery-ui.min.js": "@libs/devextreme/js/", + "@node_modules/@devexpress/analytics-core/dist/**/*": "@libs/devexpress-analytics-core/", + "@node_modules/devexpress-reporting/dist/**/*": "@libs/devexpress-reporting/", + "@node_modules/knockout/build/output/knockout-latest.js":"@libs/devexpress-reporting/js/", + "@node_modules/cldrjs/dist/cldr.js":"@libs/devexpress-reporting/cldrjs/", + "@node_modules/cldrjs/dist/cldr/event.js":"@libs/devexpress-reporting/cldrjs/", + "@node_modules/cldrjs/dist/cldr/supplemental.js":"@libs/devexpress-reporting/cldrjs/", + "@node_modules/cldrjs/dist/cldr/unresolved.js":"@libs/devexpress-reporting/cldrjs/", + "@node_modules/globalize/dist/globalize.js":"@libs/devexpress-reporting/globalize/", + "@node_modules/globalize/dist/globalize/message.js":"@libs/devexpress-reporting/globalize/", + "@node_modules/globalize/dist/globalize/number.js":"@libs/devexpress-reporting/globalize/", + "@node_modules/globalize/dist/globalize/currency.js":"@libs/devexpress-reporting/globalize/", + "@node_modules/globalize/dist/globalize/date.js":"@libs/devexpress-reporting/globalize/", + "@node_modules/ace-builds/src-min-noconflict/ace.js":"@libs/devexpress-reporting/ace-builds/", + "@node_modules/ace-builds/src-min-noconflict/ext-language_tools.js":"@libs/devexpress-reporting/ace-builds/", + "@node_modules/ace-builds/src-min-noconflict/theme-dreamweaver.js":"@libs/devexpress-reporting/ace-builds/", + "@node_modules/ace-builds/src-min-noconflict/theme-ambiance.js":"@libs/devexpress-reporting/ace-builds/", + "@node_modules/ace-builds/src-min-noconflict/snippets/text.js":"@libs/devexpress-reporting/ace-builds/" + } +}; +``` + +Open your `Acme.BookStore.Web` project folder with a command line and run the `abp install-libs` command. This command will copy the needed library files into the `/wwwroot/libs/devextreme/` folder. + +````bash +abp install-libs +```` + +You can see `devextreme`, `devexpress-reporting` and `devexpress-analytics-core` folders inside the `wwwroot/libs`: + +![wwwroot-lib](wwwroot-lib.png) + + + +## Bundling + +We will create [bundle contributors](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification) to add the devextreme css and javascript files for DevExpress [DocumentViewer](https://docs.devexpress.com/XtraReports/400248/web-reporting/asp-net-core-reporting/document-viewer-in-asp-net-core-applications) and [End-User Report Designer](https://docs.devexpress.com/XtraReports/400249/web-reporting/asp-net-core-reporting/end-user-report-designer-in-asp-net-core-applications) components. + +To utilize bundling better, we will create hierarchical contributors for both styles and scripts as seen below: + +![bundle-hierarchy](bundle-hierarchy.png) + +It is recommended to follow this hierarchy because some of the scripts and styles need to be added before one another. Once you grab the relations between the dependent scripts and styles, you are free to modify the `Bundling hierarchy` as you desire and re-use the contributors for other DevExpress components. + +We'll start with creating folders in the `Acme.BookStore.Web` project starting with a folder named **Bundling**. Create the following folders for future usage: + +- Create a `Common` folder under `Bundling` folder +- Create a `Reporting` folder under `Bundling` folder +- Create a `ThirdParty` folder under `Reporting ` folder +- Create a `DocumentViewer` folder under `Reporting ` folder +- Create a `DocumentDesigner` folder under `Reporting ` folder + +At the end, you should have a folder structure as shown below: + +![bundling-folders](bundling-folders.png) + +With this structured foldering, you can easily add other devexpress components in an isolated and maintained way. + +### Adding the Common Style Contributor + +Create a `DevExtremeCommonStyleContributor.cs` file under the `Bundling/Common` folder with the following content: + +```csharp +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace Acme.BookStore.Web.Bundling.Common; + +public class DevExtremeCommonStyleContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devextreme/css/dx.common.css"); + context.Files.AddIfNotContains("/libs/devextreme/css/dx.light.css"); + } +} +``` + +> You can choose other themes than the light theme. Check the `/libs/devextreme/css/` folder and the DevExtreme documentation for other themes. + +Now we will add the common bundle to the global style bundles. Open your `Acme.BookStoreWebModule.cs` file in your `Acme.BookStore.Web` project and add the following code into the `ConfigureServices` method: + +```csharp +Configure(options => +{ + options + .StyleBundles + .Get(StandardBundles.Styles.Global) + .AddContributors(typeof(DevExtremeCommonStyleContributor)); +}); +``` + +### Adding the Document Viewer Style Contributor + +Create a `DevExpressDocumentViewerStyleContributor.cs` file under the `Bundling/Reporting/DocumentViewer` folder with the following content: + +```csharp +using System.Collections.Generic; +using Acme.BookStore.Web.Bundling.Common; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Reporting.DocumentViewer; + +[DependsOn( + typeof(DevExtremeCommonStyleContributor) +)] +public class DevExpressDocumentViewerStyleContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devexpress-reporting/css/dx-reporting-skeleton-screen.css"); + context.Files.AddIfNotContains("/libs/devexpress-analytics-core/css/dx-analytics.common.css"); + context.Files.AddIfNotContains("/libs/devexpress-analytics-core/css/dx-analytics.light.css"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/css/dx-webdocumentviewer.css"); + } +} +``` + +### Adding the Document Designer Style Contributor + +Create a `DevExtremeDocumentDesignerStyleContributor.cs` file under the `Bundling/Reporting/DocumentDesigner` folder with the following content: + +```csharp +using System.Collections.Generic; +using Acme.BookStore.Web.Bundling.Reporting.DocumentViewer; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Reporting.DocumentDesigner; + +[DependsOn( + typeof(DevExtremeDocumentViewerStyleContributor) +)] +public class DevExtremeDocumentDesignerStyleContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devexpress-analytics-core/css/dx-querybuilder.css"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/css/dx-reportdesigner.css"); + } +} +``` + +### Adding the Reporting Common Script Contributor + +Create a `DevExtremeReportingCommonScriptContributor.cs` file under the `Bundling/Common` folder with the following content: + +```csharp +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQuery; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Common; + +[DependsOn( + typeof(JQueryScriptContributor) +)] +public class DevExtremeReportingCommonScriptContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devextreme/js/jquery-ui.min.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/js/knockout-latest.js"); + context.Files.AddIfNotContains("/libs/devextreme/js/dx.all.js"); // Has to be added after jquery and knockout + } +} +``` + +The `DevExtremeReportingCommonScriptContributor` depends on the `JQueryScriptContributor` which adds JQuery related files before the DevExpress packages (see the [bundling system](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification) for details). + +> Since not all of the components of DevExtreme use scripts like `knockout.js` and `jquery-ui.js`, we used *ReportingCommon* naming. You can choose another name or a *Common* contributor by only adding `dx.all.js`. + +### Adding the Third Party Script Contributor + +Create a `DevExpressReportingThirdPartyScriptContributor.cs` file under the `Bundling/Reporting/ThirdParty` folder with the following content: + +```csharp +using System.Collections.Generic; +using Acme.BookStore.Web.Bundling.Common; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Reporting.ThirdParty; + +[DependsOn( + typeof(DevExtremeReportingCommonScriptContributor) +)] +public class DevExpressReportingThirdPartyScriptContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + // cldrj related scripts + context.Files.AddIfNotContains("/libs/devexpress-reporting/cldrjs/cldr.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/cldrjs/event.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/cldrjs/supplemental.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/cldrjs/unresolved.js"); + // globalize related scripts + context.Files.AddIfNotContains("/libs/devexpress-reporting/globalize/globalize.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/globalize/currency.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/globalize/date.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/globalize/message.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/globalize/number.js"); + // ace-builds related scripts + context.Files.AddIfNotContains("/libs/devexpress-reporting/ace-builds/ace.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/ace-builds/ext-language_tools.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/ace-builds/theme-ambiance.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/ace-builds/theme-dreamweaver.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/ace-builds/text.js"); + } +} +``` + +The `DevExpressReportingThirdPartyScriptContributor` depends on the newly created `DevExtremeReportingCommonScriptContributor` which adds the specified scripts before third party scripts. + +### Adding the Document Viewer Script Contributor + +Create a `DevExpressDocumentViewerScriptContributor.cs` file under the `Bundling/Reporting/DocumentViewer` folder with the following content: + +```csharp +using System.Collections.Generic; +using Acme.BookStore.Web.Bundling.Reporting.ThirdParty; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Reporting.DocumentViewer; + +[DependsOn(typeof(DevExpressReportingThirdPartyScriptContributor))] +public class DevExpressDocumentViewerScriptContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devexpress-analytics-core/js/dx-analytics-core.min.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/js/dx-webdocumentviewer.min.js"); + } +} +``` + +Note that the `DevExpressDocumentViewerScriptContributor` depends on the newly created `DevExpressReportingThirdPartyScriptContributor`. + +### Adding the Document Designer Script Contributor + +```csharp +using System.Collections.Generic; +using Acme.BookStore.Web.Bundling.Reporting.DocumentViewer; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.Modularity; + +namespace Acme.BookStore.Web.Bundling.Reporting.DocumentDesigner; + +[DependsOn( + typeof(DevExpressDocumentViewerScriptContributor) +)] +public class DevExpressDocumentDesignerScriptContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/devexpress-analytics-core/js/dx-querybuilder.min.js"); + context.Files.AddIfNotContains("/libs/devexpress-reporting/js/dx-reportdesigner.min.js"); + } +} +``` + +## End User Report Designer Integration + +> You are free to create your desired pages and rooting. This sample will be creating a **Designer** page to demonstrate the layout for the DevExpress reporting components individually. + +Create a `Reporting` folder under `Pages` in the `Acme.BookStore.Web` project . + +### Adding a Document Designer Page + +Create a `Designer.cshtml` Razor page under the `Pages/Reporting` folder and add the following: + +```csharp +@page +@using Acme.BookStore.Web.Bundling.Reporting.DocumentDesigner +@using DevExpress.AspNetCore +@model Acme.BookStore.Web.Pages.Reporting.Designer + +@{ + var designerRender = Html.DevExpress().ReportDesigner("reportDesigner") + .Height("1000px"); + @designerRender.RenderHtml() +} + +@section Scripts { + + + + @designerRender.RenderScripts() +} +``` + +### Adding Controllers + +Create a `Controllers` folder and add a `ReportingController.cs` file to contain customized controllers for reporting endpoints: + +```csharp +using DevExpress.AspNetCore.Reporting.QueryBuilder; +using DevExpress.AspNetCore.Reporting.QueryBuilder.Native.Services; +using DevExpress.AspNetCore.Reporting.ReportDesigner; +using DevExpress.AspNetCore.Reporting.ReportDesigner.Native.Services; +using DevExpress.AspNetCore.Reporting.WebDocumentViewer; +using DevExpress.AspNetCore.Reporting.WebDocumentViewer.Native.Services; + +namespace Acme.BookStore.Web.Controllers; + +public class CustomWebDocumentViewerController : WebDocumentViewerController +{ + public CustomWebDocumentViewerController(IWebDocumentViewerMvcControllerService controllerService) + : base(controllerService) + { + } +} + +public class CustomReportDesignerController : ReportDesignerController +{ + public CustomReportDesignerController(IReportDesignerMvcControllerService controllerService) + : base(controllerService) + { + } +} + +public class CustomQueryBuilderController : QueryBuilderController +{ + public CustomQueryBuilderController(IQueryBuilderMvcControllerService controllerService) + : base(controllerService) + { + } +} +``` + +### Service Configuration and Midware Update + +Update the `ConfigureServices` method of the `BookStoreWebModule.cs` file in **Acme.BookStore.Web** project with the following: + +```csharp +context.Services.AddDevExpressControls(); +context.Services.AddTransient(); +context.Services.AddTransient(); +context.Services.AddTransient(); +// UnComment this line if you want to use report storage which is used for menus like "Save as" etc. +//context.Services.AddScoped(); +``` + +Add `UseDevExpressControls` before `UseConfiguredEndpoints` in `OnApplicationInitialization` as the following: + +```csharp +... +app.UseDevExpressControls(); + +app.UseCorrelationId(); +... +``` + +### Adding Custom Report Storage (Optional) + +Create `CustomReportStorageWebExtension.cs` under the **Acme.BookStore.Web** project as below: + +```csharp +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using DevExpress.XtraReports.UI; +using Microsoft.AspNetCore.Hosting; + +namespace Acme.BookStore.Web; + +public class CustomReportStorageWebExtension : DevExpress.XtraReports.Web.Extensions.ReportStorageWebExtension +{ + readonly string ReportDirectory; + const string FileExtension = ".repx"; + + public CustomReportStorageWebExtension(IWebHostEnvironment env) + { + ReportDirectory = Path.Combine(env.ContentRootPath, "Reports"); + if (!Directory.Exists(ReportDirectory)) + { + Directory.CreateDirectory(ReportDirectory); + } + } + + public override bool CanSetData(string url) + { + return true; + } + + public override bool IsValidUrl(string url) + { + return true; + } + + public override byte[] GetData(string url) + { + try + { + if (Directory.EnumerateFiles(ReportDirectory).Select(Path.GetFileNameWithoutExtension).Contains(url)) + { + return File.ReadAllBytes(Path.Combine(ReportDirectory, url + FileExtension)); + } + + if (ReportsFactory.Reports.ContainsKey(url)) + { + using (MemoryStream ms = new MemoryStream()) + { + ReportsFactory.Reports[url]().SaveLayoutToXml(ms); + return ms.ToArray(); + } + } + + throw new DevExpress.XtraReports.Web.ClientControls.FaultException( + string.Format("Could not find report '{0}'.", url)); + } + catch (Exception) + { + throw new DevExpress.XtraReports.Web.ClientControls.FaultException( + string.Format("Could not find report '{0}'.", url)); + } + } + + public override Dictionary GetUrls() + { + return Directory.GetFiles(ReportDirectory, "*" + FileExtension) + .Select(Path.GetFileNameWithoutExtension) + .Concat(ReportsFactory.Reports.Select(x => x.Key)) + .ToDictionary(x => x); + } + + public override void SetData(XtraReport report, string url) + { + report.SaveLayoutToXml(Path.Combine(ReportDirectory, url + FileExtension)); + } + + public override string SetNewData(XtraReport report, string defaultUrl) + { + SetData(report, defaultUrl); + return defaultUrl; + } +} + +public class ReportsFactory +{ + public static Dictionary> Reports { get; set; } +} +``` + +> You can check more about it at [DevExpress Report Storage documentation](https://docs.devexpress.com/XtraReports/400211/web-reporting/asp-net-core-reporting/end-user-report-designer-in-asp-net-applications/add-a-report-storage). + +### Adding a DataSource To Designer + +Update `Designer.cshtml.cs` under `Pages/Reporting` in the **Acme.BookStore.Web** project with the following: + +```csharp +using System; +using System.Collections.Generic; +using DevExpress.DataAccess.ConnectionParameters; +using DevExpress.DataAccess.Json; +using DevExpress.DataAccess.Sql; +using DevExpress.XtraReports.UI; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace Acme.BookStore.Web.Pages.Reporting; + +public class Designer : PageModel +{ + public ReportDesignerModel DesignerModel { get; set; } + + public void OnGet() + { + // Create a SQL data source. + // MsSqlConnectionParameters parameters = new MsSqlConnectionParameters("localhost", + // "dbName", "userName", "password", MsSqlAuthorizationType.SqlServer); + // SqlDataSource dataSource = new SqlDataSource(parameters); + // SelectQuery query = SelectQueryFluentBuilder.AddTable("Products").SelectAllColumnsFromTable().Build("Products"); + // dataSource.Queries.Add(query); + // dataSource.RebuildResultSchema(); + + // Create a JSON data source. + JsonDataSource jsonDataSource = new JsonDataSource(); + jsonDataSource.JsonSource = new UriJsonSource(new Uri("https://raw.githubusercontent.com/DevExpress-Examples/DataSources/master/JSON/customers.json")); + jsonDataSource.Fill(); + + + DesignerModel = new ReportDesignerModel + { + Report = new XtraReport(), + DataSources = new Dictionary() + }; + // DesignerModel.DataSources.Add("BookStoreDb", dataSource); + DesignerModel.DataSources.Add("JsonDataSource", jsonDataSource); + } + + public class ReportDesignerModel + { + public XtraReport Report { get; set; } + public Dictionary DataSources { get; set; } + } +} +``` + +This will allow binding the `data-source` for your report designer. Also update `Designer.cshtml` to use these data sources: + +```csharp +@{ + var designerRender = Html.DevExpress().ReportDesigner("reportDesigner") + .Height("1000px") + .Bind(Model.DesignerModel.Report) + .DataSources(configureDS => + { + foreach (var ds in Model.DesignerModel.DataSources) + { + configureDS.Add(ds.Key, ds.Value); + } + }); + @designerRender.RenderHtml() +} +``` + +You can now see the **Add New DataSource** icon in the Field List: +![data-source](data-source.png) + +> You can check [DevExpress Reporting Use Data Sources and Connections documentations](https://docs.devexpress.com/XtraReports/401896/web-reporting/asp-net-core-reporting/end-user-report-designer-in-asp-net-applications/use-data-sources-and-connections) for more information. + +## Document Viewer Integration + +> You are free to create your desired pages and rooting. This sample will be creating a **Viewer** page to demonstrate the layout for the DevExpress reporting components individually. + +Since End User Report Designer already implements the required controllers for features, you should only add a new page for document viewing. + +### Adding a Document Viewer Page + +Create a `Viewer.cshtml` Razor page under the `Pages/Reporting` folder and add the following: + +```csharp +@page +@using Acme.BookStore.Web.Bundling.Reporting.DocumentViewer +@using DevExpress.AspNetCore +@model Acme.BookStore.Web.Pages.Reporting.Viewer + +@{ + var viewerRender = Html.DevExpress().WebDocumentViewer("DocumentViewer") + .Height("1000px") + .Bind("TestReport"); + @viewerRender.RenderHtml() +} + +@section Scripts { + + + + @viewerRender.RenderScripts() +} +``` + +> Note: `TestReport.repx` file must be found under `Reports` folder in **Acme.BookStore.Web** project. + +### Adding the Antiforgery Token or Passing Bearer Token + +While exporting data, you may come across **HTTP 400** error which logs as `[ERR] The required antiforgery request token was not provided in either form field "__RequestVerificationToken" or header value "RequestVerificationToken".` Or you may want to pass **Bearer Token**. + +To add these functionalities, update the `Viewer.cshtml` file under the `Pages/Reporting` folder in the **Acme.BookStore.Web** project as shown below: + +```csharp +@page +@using Acme.BookStore.Web.Bundling.Reporting.DocumentViewer +@using DevExpress.AspNetCore +@model Acme.BookStore.Web.Pages.Reporting.Viewer +@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf + +@functions{ + public string GetAntiXsrfRequestToken() + { + return Xsrf.GetAndStoreTokens(HttpContext).RequestToken; + } +} + + + + + +@{ + var viewerRender = Html.DevExpress().WebDocumentViewer("DocumentViewer") + .ClientSideEvents(x => + { + x.BeforeRender("WebDocumentViewer_BeforeRender"); + x.OnExport("OnViewerExport"); + }) + .Height("1000px") + .Bind("CustomerReport"); + @viewerRender.RenderHtml() +} + +@section Scripts { + + + + @viewerRender.RenderScripts() +} +``` + +> You can also add similar configuration to Report Designer for exporting in Preview Mode. + +## Result + +![result](result.gif) + +## Source Code + +- You can download the source code from [here](https://github.com/gterdem/abp-devexpress-reporting-sample). \ No newline at end of file diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundle-hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..700feb491869d22adf9ff040e89fdc2d4a9fb7d8 GIT binary patch literal 54260 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%0D^r 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 Ang9R* literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/bundling-folders.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3efea39ebd0f5f69f4cf14b81df54cd35cb77e GIT binary patch literal 5163 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/data-source.png new file mode 100644 index 0000000000000000000000000000000000000000..45eca29beecb4fe820c8c56969ccab7fd4112a9e GIT binary patch literal 40758 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

        Wwm|ZcREG%50 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png b/docs/en/Community-Articles/2021-11-29-Integrating-DevExpress-Reporting-To-ABP-MVC-Application/wwwroot-lib.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1cb697f9e09fd6397c664322cc36e58a9ba21f GIT binary patch literal 9000 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 OKz_D3g(@?5!TleA7_FWF literal 0 HcmV?d00001 From f3a606b141382641001ad7481fa6547f12a620c4 Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Mon, 22 Nov 2021 14:19:37 +0300 Subject: [PATCH 21/25] Microservice template: `/graphBuild` after new service creation --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index d347e84418..5fb9edde1c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; @@ -12,6 +13,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Auth; +using Volo.Abp.Cli.Build; using Volo.Abp.Cli.Commands.Services; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding; @@ -29,6 +31,7 @@ namespace Volo.Abp.Cli.Commands public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransientDependency { public ILogger Logger { get; set; } + public IDotNetProjectBuilder DotNetProjectBuilder { get; set; } protected TemplateProjectBuilder TemplateProjectBuilder { get; } public ITemplateInfoProvider TemplateInfoProvider { get; } @@ -83,6 +86,16 @@ namespace Volo.Abp.Cli.Commands ExtractProjectZip(result, projectArgs.OutputFolder); Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); + + if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template)) + { + var projects = new List + { + new DotNetProjectInfo(string.Empty, projectArgs.OutputFolder, true) + }; + + DotNetProjectBuilder.BuildProjects(projects, "/graphBuild"); + } OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); } From 127d85756c0c42bafc3f9b1ac0cc59aa2da90a1b Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 29 Nov 2021 10:17:47 +0300 Subject: [PATCH 22/25] Refactor --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 24 +------------------ .../Commands/ProjectCreationCommandBase.cs | 8 +++++++ 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 5fb9edde1c..0e17683eee 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -5,33 +5,20 @@ using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; -using System.Text.Json; using System.Threading.Tasks; -using ICSharpCode.SharpZipLib.Core; -using ICSharpCode.SharpZipLib.Zip; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.Cli.Args; -using Volo.Abp.Cli.Auth; -using Volo.Abp.Cli.Build; using Volo.Abp.Cli.Commands.Services; -using Volo.Abp.Cli.Http; using Volo.Abp.Cli.ProjectBuilding; -using Volo.Abp.Cli.ProjectBuilding.Building; -using Volo.Abp.Cli.ProjectBuilding.Templates.App; -using Volo.Abp.Cli.ProjectBuilding.Templates.Console; -using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; -using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; -using Volo.Abp.Threading; namespace Volo.Abp.Cli.Commands { public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransientDependency { public ILogger Logger { get; set; } - public IDotNetProjectBuilder DotNetProjectBuilder { get; set; } protected TemplateProjectBuilder TemplateProjectBuilder { get; } public ITemplateInfoProvider TemplateInfoProvider { get; } @@ -86,17 +73,8 @@ namespace Volo.Abp.Cli.Commands ExtractProjectZip(result, projectArgs.OutputFolder); Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); - - if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(template)) - { - var projects = new List - { - new DotNetProjectInfo(string.Empty, projectArgs.OutputFolder, true) - }; - - DotNetProjectBuilder.BuildProjects(projects, "/graphBuild"); - } + RunGraphBuildForMicroserviceServiceTemplate(projectArgs); OpenRelatedWebPage(projectArgs, template, isTiered, commandLineArgs); } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 6aa528a7b7..fa13e077df 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -296,6 +296,14 @@ namespace Volo.Abp.Cli.Commands } } + protected virtual void RunGraphBuildForMicroserviceServiceTemplate(ProjectBuildArgs projectArgs) + { + if (MicroserviceServiceTemplateBase.IsMicroserviceServiceTemplate(projectArgs.TemplateName)) + { + CmdHelper.RunCmd("dotnet build /graphbuild", projectArgs.OutputFolder); + } + } + protected virtual DatabaseManagementSystem GetDatabaseManagementSystem(CommandLineArgs commandLineArgs) { var optionValue = commandLineArgs.Options.GetOrNull(Options.DatabaseManagementSystem.Short, Options.DatabaseManagementSystem.Long); From fb18d24b95c3d5de70f95b8f6580985d5a5493a0 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Mon, 29 Nov 2021 11:36:30 +0300 Subject: [PATCH 23/25] add @angular/localize package to ng-packs --- npm/ng-packs/apps/dev-app/src/polyfills.ts | 4 +- npm/ng-packs/package.json | 1 + npm/ng-packs/yarn.lock | 947 ++++++++++----------- 3 files changed, 438 insertions(+), 514 deletions(-) diff --git a/npm/ng-packs/apps/dev-app/src/polyfills.ts b/npm/ng-packs/apps/dev-app/src/polyfills.ts index 8a120c374d..d6bdc6ec0c 100644 --- a/npm/ng-packs/apps/dev-app/src/polyfills.ts +++ b/npm/ng-packs/apps/dev-app/src/polyfills.ts @@ -57,8 +57,8 @@ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ -import 'zone.js'; // Included with Angular CLI. - /*************************************************************************************************** * APPLICATION IMPORTS */ +import '@angular/localize/init'; +import 'zone.js'; // Included with Angular CLI. diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c0993290b8..c7a8100117 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -62,6 +62,7 @@ "@angular/compiler-cli": "12.2.13", "@angular/core": "12.2.13", "@angular/forms": "12.2.13", + "@angular/localize": "12.2.13", "@angular/language-service": "12.2.13", "@angular/platform-browser": "12.2.13", "@angular/platform-browser-dynamic": "12.2.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index b70312ff9f..7296bcaf18 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,72 +2,72 @@ # yarn lockfile v1 -"@abp/ng.account.core@~5.0.0-beta.3", "@abp/ng.account.core@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.0.0-beta.3-1.tgz#5e18c55d8f0ae0957d552e77ea8687106588c28d" - integrity sha512-3+BxvzZauPm0uIRLINIuwIHRHQ0eCAV1ceWIZcCIBkm+ONoiK4ApiFNdQzVQ8QPbH639xOW/De+9sPqJieY0jg== +"@abp/ng.account.core@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.0.0-rc.1.tgz#df65aaf02008e088edfa80342ef1c6244f59ba1a" + integrity sha512-p4k+Os0yWFSpP93UekklJR3rU7z5gTPiL6EuCjgtm3s6MTueuCSHIm7YHuFwZ966dfWhXOO9gJdQhMVI9qy3iQ== dependencies: tslib "^2.0.0" -"@abp/ng.account@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.0.0-beta.3-1.tgz#0c5ae9d2234e72a6214a997ccbc813d7b5409752" - integrity sha512-Hjqiq5tq+A8YLkfyosnbmtGHguFlYZBMF4CFIkAFHT24Say74HHDbPuboLYFGvxz3nOBwXJh8p41YyuuvjpYvQ== +"@abp/ng.account@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.0.0-rc.1.tgz#37ca0333ee348960c74563932506bd695de548b3" + integrity sha512-MVnq3NLfMUZBTL7bEuDDYw9rnFwQK2jbRXm/BbMFBh1PetKNBR7Xv8QLtW6C6mGu5eBp/lZbFwp7v0brpirrZA== dependencies: - "@abp/ng.account.core" "~5.0.0-beta.3-1" - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.account.core" "~5.0.0-rc.1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.components@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-5.0.0-beta.3-1.tgz#f8e994a586c8d459e473a2c0264fc87e4b160d4d" - integrity sha512-deCPvGOQ8tqKpNG08N47dKsKMS2OrAm1iuLu9S/IIOK5HcTotvlXYHlH3oih3PbjkfkpUImKANNSf2h0HmnEBA== +"@abp/ng.components@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-5.0.0-rc.1.tgz#b65bc879ec4831378257f2c0cf308bc023fbde9c" + integrity sha512-iS/oJHDmYV0Ng6YIPWnoUeA/Ei0TmyCws4fDdxzNWozV0Sf5AimIi/VfmeHRFY0sz5XKlCm04oQZOvwx0eLZUQ== dependencies: chart.js "^3.5.1" ng-zorro-antd "^12.0.1" tslib "^2.0.0" -"@abp/ng.core@~5.0.0-beta.3", "@abp/ng.core@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.0.0-beta.3-1.tgz#586be6ead6459a2d8fc4891bdcd18a6c2442242d" - integrity sha512-dJX+Vv52iGyyBXP6dYI36Y1hCIcL5BYdvXE0ETc2lXNfslbzeTDHu4Amghq31IAmNEF+au0JKazwj54lTHhiBA== +"@abp/ng.core@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.0.0-rc.1.tgz#92170056fa54b08ec6f79d3ddf1e767b40ffc5ee" + integrity sha512-CX51woDCHKyjhmgY3FghrIIUCQ3suz+uPx3+nhCV4yZ/BxjkBQiO7OGAoVL+e4NJkvYc8t7Q3GV2iK/PswZHnw== dependencies: - "@abp/utils" "~5.0.0-beta.3" + "@abp/utils" "~5.0.0-rc.1" angular-oauth2-oidc "^12.1.0" just-clone "^3.2.1" just-compare "^1.4.0" ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~5.0.0-beta.3", "@abp/ng.feature-management@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.0.0-beta.3-1.tgz#e3674cff51ac15b280e4829c8e6cbe00f57d9723" - integrity sha512-+F5OKgSfbQ1qY2cnm3Bz1Hh8YDZggS0NLS1d3EqJF3Wyx5OMo7R51F+/LZGxIgloJGv2fGrfVg+9UGhMuwi60Q== +"@abp/ng.feature-management@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.0.0-rc.1.tgz#cc951b7df2a7e98db6f7dbf33cb6b3f72c445103" + integrity sha512-SCk0NiSVnSeuL0B6ACJ2kGWjiLPIU3zAPtgfvZQH7srTE+BAzSxhho2JAVOo3etYjeUqChRpEAvBWkWX8TxjwA== dependencies: - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.identity@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.0.0-beta.3-1.tgz#c20214d5a6e23930933bc2d2413cba1f7530fc96" - integrity sha512-6okmrlUciRHrTbLqa16vY0onqtULQYaoao7e5AFZgmwRWAU0H5/wL4Wv+1EgtCos/fbn/X+f0i6tuzdzeOOGvg== +"@abp/ng.identity@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.0.0-rc.1.tgz#c39ed45f880d050523a03bb5aed1f859f9ffd623" + integrity sha512-Gn0cuPWpDTCd449lwHBMPHV2zAu1VZIlo/hglQUpZdUa0VzEOkTV3T/QJa8X+eDEjTDJsK13FyNUheSJKLNA/A== dependencies: - "@abp/ng.permission-management" "~5.0.0-beta.3-1" - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.permission-management" "~5.0.0-rc.1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.permission-management@~5.0.0-beta.3", "@abp/ng.permission-management@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.0.0-beta.3-1.tgz#13820aa8967a615c9327d8d73cd3426eafb18e1b" - integrity sha512-3j32gUfgfBvKMbfFMk0T9xV6ttNN0X7iIqqpI0Jgeu3xmLciSuAd3eZkc5D82xAXEOrOixfh3Mb9MMqcz9qzeQ== +"@abp/ng.permission-management@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.0.0-rc.1.tgz#c420f5fdaf6e8c7e41efdf42400024f24a531952" + integrity sha512-IgVoIHEOst+Fv8aVkEfXyFBzcOOrNG4wcLzkSnpaxy0mo/ZDFA6PW5jZz7FpxOfr9Kq61Ic21r9KKhXOK1ASTA== dependencies: - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.schematics@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.0.0-beta.3-1.tgz#b1b5b57625bee9fa20eab55234803efd00ba3329" - integrity sha512-wFaV8Ru81IEpfiCu1DnCWi4nCLwUQhjMitPb5V2zB1umyOwS6ED5UR+nPX1KJzrldhchXUZTibeESMl/xG6Raw== +"@abp/ng.schematics@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.0.0-rc.1.tgz#092c65412b345edca87b399f1b5c01f273e7f325" + integrity sha512-vMHSbnErsG+JwG5/ojzI4gaWObeBu6IXsXrTickDEtUUYZVlSnyqhbd98/iqGwp7hDisFW7lcemg4j8URyxEnw== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -76,39 +76,39 @@ should-quote "^1.0.0" typescript "~3.9.2" -"@abp/ng.setting-management@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.0.0-beta.3-1.tgz#5504ce5d9ad758419c349270e95aacc9d8978a62" - integrity sha512-wKuZM/t6M06PJH/D0hWyL6/3I0tB3gsRERW0bNMjGq/zYxAjNxgcViazWaihab4BW90uc70g9vQRKXvkiZ+r3w== +"@abp/ng.setting-management@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.0.0-rc.1.tgz#991b35a20c065596b25b94a8e68937a137ca5846" + integrity sha512-wk5PkTl8F3aiey64hfD095odzQs1Tswx5t7apRimsA6v8iaLRDI0oeuLPdcvpET2G+GVOO9JmxbAnjkNb0rKBw== dependencies: - "@abp/ng.components" "~5.0.0-beta.3-1" - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.components" "~5.0.0-rc.1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.tenant-management@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.0.0-beta.3-1.tgz#e4a5528a8400fc15ab92458e7ba3a4539238e554" - integrity sha512-20WTteuRx3C2Zj7TRQH3E3lYQ50FiE1xihwj1p0ObZ1wvWqvCM4S4zossaDhzQSd6PR5RJ2534SRFKMrpu1Kfw== +"@abp/ng.tenant-management@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.0.0-rc.1.tgz#85f3f1932058e726bd9e60c5aa15870ca7916d3d" + integrity sha512-4rMjTTPJ2GT2Xru6/lnSypJh1F0cIKz6g+knnIiHFWxWhEeALFRFn3vnWvBWaNn6cGgPil4aUSdpQAfO59C0dQ== dependencies: - "@abp/ng.feature-management" "~5.0.0-beta.3-1" - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.feature-management" "~5.0.0-rc.1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.basic@~5.0.0-beta.3": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.0.0-beta.3-1.tgz#5b7c5f54ca5e6ccee5a322273affbf7dd4133aa9" - integrity sha512-i/xdkyrJNKHnmBW9bYlrxsZVV6vQpFh4QCDkZdg8CZ4QidqgH8PFTLAQx7EagJnB3wFBlzdVGLOtwCMoltZngA== +"@abp/ng.theme.basic@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.0.0-rc.1.tgz#53b9d9f437131d859fce0024485e3eacbcb84590" + integrity sha512-rhN64Zxwo+fRnZlRoLCvodtjwvpmNAQfWNat6zpOnQ56m/BuHcGURx++lJ63NfGigkDCpqrph7O8LUUr0xoU4w== dependencies: - "@abp/ng.account.core" "~5.0.0-beta.3-1" - "@abp/ng.theme.shared" "~5.0.0-beta.3-1" + "@abp/ng.account.core" "~5.0.0-rc.1" + "@abp/ng.theme.shared" "~5.0.0-rc.1" tslib "^2.0.0" -"@abp/ng.theme.shared@~5.0.0-beta.3", "@abp/ng.theme.shared@~5.0.0-beta.3-1": - version "5.0.0-beta.3-1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.0.0-beta.3-1.tgz#cf41626289d8830b7aa0854fd6a7905a0eeaecdf" - integrity sha512-eWc65LIj/N/CLvQKZjjGXNLfYbDY/T6WPyvxuXCv7VhWTZDJhtYp00rem9/DhMKaK9pBYbt0U0QTDVFTktjsgA== +"@abp/ng.theme.shared@~5.0.0-rc.1": + version "5.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.0.0-rc.1.tgz#d769ebe0ec9c78286b5c8628b07e9e9b6d05329e" + integrity sha512-caY5i+5mOWdlnksUaTmUxlrTs13+yqbK5nS6YIVfodWqm8MzzJR+wVqvzTBceEcTy8iWMSi/ufEY15RP6i2hOA== dependencies: - "@abp/ng.core" "~5.0.0-beta.3-1" + "@abp/ng.core" "~5.0.0-rc.1" "@fortawesome/fontawesome-free" "^5.15.4" "@ng-bootstrap/ng-bootstrap" "^11.0.0-beta.2" "@ngx-validate/core" "^0.0.13" @@ -116,13 +116,6 @@ bootstrap "^5.1.1" tslib "^2.0.0" -"@abp/utils@~5.0.0-beta.3": - version "5.0.0-beta.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.3.tgz#63ece8b7a524a056c7dd16486cbb3203eca39017" - integrity sha512-RonjfS2eL7vdbLa+J/wvDc+8TkyPYB3S587evvB+wkncmL1POY/KjOt6GVcsjIj/E5KbprAj+UMRHuwAQbxvmg== - dependencies: - just-compare "^1.3.0" - "@abp/utils@~5.0.0-rc.1": version "5.0.0-rc.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-rc.1.tgz#ba89a9de73288661db295f3bce9ea0e47c669f42" @@ -351,9 +344,9 @@ tslib "^2.2.0" "@angular/cdk@^12.1.0": - version "12.2.12" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.12.tgz#61dda37d8900275790da623c1f83daa1e859c795" - integrity sha512-AK+74JZP95BDj9OJ1YUaRqPXkgs+oadTk7z+8omu1RcvDoUivouKxgODCQX5jI7rZeQIlnV49hEgBne07hYk4A== + version "12.2.13" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.13.tgz#1fdbe814adfd6b4ff906c6d9c4c6df07b83f09d8" + integrity sha512-zSKRhECyFqhingIeyRInIyTvYErt4gWo+x5DQr0b7YLUbU8DZSwWnG4w76Ke2s4U8T7ry1jpJBHoX/e8YBpGMg== dependencies: tslib "^2.2.0" optionalDependencies: @@ -437,6 +430,15 @@ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-12.2.13.tgz#326045a328f8a962287037d7a85be8120074421c" integrity sha512-jb9s3IJuWNKTRcM90NOwvMfiy85nnKfTxxLVn8/QFMO6+Ps/hsVZNp+W/TmAEDvCkon+9q0O4hwa4MY1m/Dlkw== +"@angular/localize@12.2.13": + version "12.2.13" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-12.2.13.tgz#27b50a46a7cf182a3e07e63faf0ede6c974063e7" + integrity sha512-mAGs86JaWaoHN/+Mmvq1QppiTbIT1FWC5cUe0dnpGStfoKqiULPSjiHTzlfJw/eUZUMOMD7C8kjbbhv3jjLTIQ== + dependencies: + "@babel/core" "7.8.3" + glob "7.1.7" + yargs "^17.0.0" + "@angular/platform-browser-dynamic@12.2.13": version "12.2.13" resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.13.tgz#9ee6309f511da419d5d80a1a8279adc806e92f04" @@ -493,9 +495,9 @@ "@babel/highlight" "^7.16.0" "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" - integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== "@babel/core@7.14.8": version "7.14.8" @@ -518,28 +520,28 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.6": - version "7.15.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" - integrity sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg== +"@babel/core@7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" + integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.15.4" - "@babel/helper-compilation-targets" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.4" - "@babel/helpers" "^7.15.4" - "@babel/parser" "^7.15.5" - "@babel/template" "^7.15.4" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.4" + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helpers" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.12.3": +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.6": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== @@ -569,7 +571,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.14.8", "@babel/generator@^7.15.4", "@babel/generator@^7.16.0", "@babel/generator@^7.7.2": +"@babel/generator@^7.14.8", "@babel/generator@^7.16.0", "@babel/generator@^7.7.2", "@babel/generator@^7.8.3": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== @@ -601,16 +603,6 @@ "@babel/types" "^7.16.0" "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.0.tgz#01d615762e796c17952c29e3ede9d6de07d235a8" - integrity sha512-S7iaOT1SYlqK0sQaCi21RX4+13hmdmnxIEAnQUB/eh7GeAnRjOUgTYpLkUOiRXzD+yog1JxP0qyAQZ7ZxVxLVg== - dependencies: - "@babel/compat-data" "^7.16.0" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.15.4": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== @@ -698,7 +690,7 @@ dependencies: "@babel/types" "^7.16.0" -"@babel/helper-module-transforms@^7.14.8", "@babel/helper-module-transforms@^7.15.4", "@babel/helper-module-transforms@^7.16.0": +"@babel/helper-module-transforms@^7.14.8", "@babel/helper-module-transforms@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== @@ -724,10 +716,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz#d5aa3b086e13a5fe05238ff40c3a5a0c2dab3ead" - integrity sha512-MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew== +"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== dependencies: "@babel/helper-annotate-as-pure" "^7.16.0" "@babel/helper-wrap-function" "^7.16.0" @@ -784,16 +776,7 @@ "@babel/traverse" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helpers@^7.14.8", "@babel/helpers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.0.tgz#875519c979c232f41adfbd43a3b0398c2e388183" - integrity sha512-dVRM0StFMdKlkt7cVcGgwD8UMaBfWJHl3A83Yfs8GQ3MO0LHIIIMvK7Fa0RGOGUQ10qikLaX6D7o5htcQWgTMQ== - dependencies: - "@babel/template" "^7.16.0" - "@babel/traverse" "^7.16.0" - "@babel/types" "^7.16.0" - -"@babel/helpers@^7.15.4": +"@babel/helpers@^7.14.8", "@babel/helpers@^7.16.0", "@babel/helpers@^7.8.3": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== @@ -811,15 +794,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.7", "@babel/parser@^7.14.8", "@babel/parser@^7.16.0", "@babel/parser@^7.7.2": - version "7.16.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" - integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== - -"@babel/parser@^7.15.5", "@babel/parser@^7.16.3": - version "7.16.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz#271bafcb811080905a119222edbc17909c82261d" - integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.7", "@babel/parser@^7.14.8", "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.7.2", "@babel/parser@^7.8.3": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": version "7.16.0" @@ -840,12 +818,12 @@ "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-async-generator-functions@^7.14.7": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e" - integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw== + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.15.4" + "@babel/helper-remap-async-to-generator" "^7.16.4" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.14.5": @@ -857,11 +835,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7" - integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" + integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.15.4" + "@babel/helper-create-class-features-plugin" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" @@ -914,15 +892,15 @@ "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.14.7": - version "7.15.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz#ef68050c8703d07b25af402cb96cf7f34a68ed11" - integrity sha512-qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" + integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== dependencies: - "@babel/compat-data" "^7.15.0" - "@babel/helper-compilation-targets" "^7.15.4" + "@babel/compat-data" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.15.4" + "@babel/plugin-transform-parameters" "^7.16.0" "@babel/plugin-proposal-optional-catch-binding@^7.14.5": version "7.16.0" @@ -950,12 +928,12 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5" - integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" + integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== dependencies: - "@babel/helper-annotate-as-pure" "^7.15.4" - "@babel/helper-create-class-features-plugin" "^7.15.4" + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-create-class-features-plugin" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" @@ -1119,23 +1097,23 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-block-scoping@^7.14.5": - version "7.15.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" - integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" + integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-classes@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1" - integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" + integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.15.4" - "@babel/helper-function-name" "^7.15.4" - "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.15.4" - "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.14.5": @@ -1176,9 +1154,9 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-for-of@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" - integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" + integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== dependencies: "@babel/helper-plugin-utils" "^7.14.5" @@ -1214,24 +1192,24 @@ babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1" - integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" + integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== dependencies: - "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-module-transforms" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.15.4" + "@babel/helper-simple-access" "^7.16.0" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.15.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132" - integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" + integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== dependencies: - "@babel/helper-hoist-variables" "^7.15.4" - "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.9" + "@babel/helper-validator-identifier" "^7.15.7" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.14.5": @@ -1243,11 +1221,11 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": - version "7.14.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" - integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" + integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.16.0" "@babel/plugin-transform-new-target@^7.14.5": version "7.16.0" @@ -1265,9 +1243,9 @@ "@babel/helper-replace-supers" "^7.16.0" "@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.0.tgz#1b50765fc421c229819dc4c7cdb8911660b3c2d7" - integrity sha512-XgnQEm1CevKROPx+udOi/8f8TiGhrUWiHiaUCIp47tE0tpFDjzXNTZc9E5CmCwxNjXTWEVqvRfWZYOTFvMa/ZQ== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" + integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== dependencies: "@babel/helper-plugin-utils" "^7.14.5" @@ -1435,9 +1413,9 @@ semver "^6.3.0" "@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1446,9 +1424,9 @@ esutils "^2.0.2" "@babel/runtime-corejs3@^7.10.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.0.tgz#58a7fb00e6948508f12f53a303993e8b6e2f6c70" - integrity sha512-Oi2qwQ21X7/d9gn3WiwkDTJmq3TQtYNz89lRnoFy8VeZpWlsyXvzSwiRrRZ8cXluvSwqKxqHJ6dBd9Rv+p0ZGQ== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz#1e25de4fa994c57c18e5fdda6cc810dac70f5590" + integrity sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ== dependencies: core-js-pure "^3.19.0" regenerator-runtime "^0.13.4" @@ -1461,9 +1439,9 @@ regenerator-runtime "^0.13.4" "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.8.4": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.0.tgz#e27b977f2e2088ba24748bf99b5e1dece64e4f0b" - integrity sha512-Nht8L0O8YCktmsDV6FqFue7vQLRx3Hb0B37lS5y0jDRqRxlBG4wIJHnf9/bgSE2UyipKFA01YtS+npRdTWBUyw== + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== dependencies: regenerator-runtime "^0.13.4" @@ -1476,7 +1454,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/template@^7.14.5", "@babel/template@^7.15.4", "@babel/template@^7.16.0", "@babel/template@^7.3.3": +"@babel/template@^7.14.5", "@babel/template@^7.16.0", "@babel/template@^7.3.3", "@babel/template@^7.8.3": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== @@ -1485,22 +1463,7 @@ "@babel/parser" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.8", "@babel/traverse@^7.16.0", "@babel/traverse@^7.7.2": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.0.tgz#965df6c6bfc0a958c1e739284d3c9fa4a6e3c45b" - integrity sha512-qQ84jIs1aRQxaGaxSysII9TuDaguZ5yVrEuC0BN2vcPlalwfLovVmCjbFDPECPXcYM/wLvNFfp8uDOliLxIoUQ== - dependencies: - "@babel/code-frame" "^7.16.0" - "@babel/generator" "^7.16.0" - "@babel/helper-function-name" "^7.16.0" - "@babel/helper-hoist-variables" "^7.16.0" - "@babel/helper-split-export-declaration" "^7.16.0" - "@babel/parser" "^7.16.0" - "@babel/types" "^7.16.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.15.4", "@babel/traverse@^7.16.3": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.8", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3", "@babel/traverse@^7.7.2", "@babel/traverse@^7.8.3": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== @@ -1515,7 +1478,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.4", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.6": +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.16.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== @@ -1539,9 +1502,9 @@ integrity sha512-JZButFdZ1+/xAfpguQHoabIXkcqRRKpMrWKBkpEZZyxfY9C1DpADFB8PEqGSTeFr135SaTRfKqGKx5xSCLI7ZQ== "@cypress/request@^2.88.5": - version "2.88.7" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.7.tgz#386d960ab845a96953723348088525d5a75aaac4" - integrity sha512-FTULIP2rnDJvZDT9t6B4nSfYR40ue19tVmv3wUcY05R9/FPCoMl1nAPJkzWzBCo7ltVn5ThQTbxiMoGBN7k0ig== + version "2.88.9" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.9.tgz#7428fc66008ec3a4727c189857f6bb7f758f1d92" + integrity sha512-6md3dtAd3DXfTEXFb2Yde3TSaqpYsSBw3a1VFwAC9Fscu2B0DtY2Venu35csZyJj09XNkPMGRoE4ZXUdtkI+zg== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1551,7 +1514,7 @@ forever-agent "~0.6.1" form-data "~2.3.2" har-validator "~5.1.3" - http-signature "~1.2.0" + http-signature "~1.3.6" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" @@ -1564,9 +1527,9 @@ uuid "^8.3.2" "@cypress/webpack-preprocessor@^5.9.1": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.9.1.tgz#2694aa832baf3984d90bcb899e1ecff377560904" - integrity sha512-cg1ikftIo7NdlRA8ocNSxWjHJlh1JlTkN9ZfXUuKWWcJgrEdYLjXk0UzY6gYbLLaFka4oIhN6SvL5Y/7iELvgg== + version "5.10.0" + resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.10.0.tgz#477eee82c04caec956a07e51d2d90a9947ed6d7e" + integrity sha512-KzcDBjos3rIw58imyvATYTNi9CB+Co0SFUhexmuH2c+Wk1ksSM3g4XmxUUIaJJvDwmIK4tcoBMYd9Lzle8bR7A== dependencies: bluebird "^3.7.1" debug "4.3.2" @@ -1691,7 +1654,7 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^27.2.0", "@jest/environment@^27.3.1": +"@jest/environment@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.3.1.tgz#2182defbce8d385fd51c5e7c7050f510bd4c86b1" integrity sha512-BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw== @@ -1701,18 +1664,6 @@ "@types/node" "*" jest-mock "^27.3.0" -"@jest/fake-timers@^27.2.0": - version "27.2.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.2.0.tgz#560841bc21ae7fbeff0cbff8de8f5cf43ad3561d" - integrity sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w== - dependencies: - "@jest/types" "^27.1.1" - "@sinonjs/fake-timers" "^7.0.2" - "@types/node" "*" - jest-message-util "^27.2.0" - jest-mock "^27.1.1" - jest-util "^27.2.0" - "@jest/fake-timers@^27.3.1": version "27.3.1" resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.3.1.tgz#1fad860ee9b13034762cdb94266e95609dfce641" @@ -1866,18 +1817,7 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" -"@jest/types@^27.1.1": - version "27.1.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.1.tgz#77a3fc014f906c65752d12123a0134359707c0ad" - integrity sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jest/types@^27.2.5": +"@jest/types@^27.1.1", "@jest/types@^27.2.5": version "27.2.5" resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== @@ -2575,7 +2515,7 @@ npmlog "^4.1.2" write-file-atomic "^3.0.3" -"@ng-bootstrap/ng-bootstrap@^11.0.0-beta.2": +"@ng-bootstrap/ng-bootstrap@11.0.0-beta.2", "@ng-bootstrap/ng-bootstrap@^11.0.0-beta.2": version "11.0.0-beta.2" resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-11.0.0-beta.2.tgz#4d0c1f23a050e2e07ea22cc0c017e0b3685cdbf9" integrity sha512-H6Kdzw4DBsUIrlvoxEJHCValSTHq0XcsiTVNbb99PjgD6ZhkBjINenT0W62A91k0nQEQBZCjhGGv+aNU/XxQNg== @@ -2583,9 +2523,9 @@ tslib "^2.1.0" "@ngneat/spectator@^8.0.3": - version "8.3.1" - resolved "https://registry.yarnpkg.com/@ngneat/spectator/-/spectator-8.3.1.tgz#872947ec3ff1c9b56e21f9b8efd3c3dcf4f91c8b" - integrity sha512-l6zy+p91CGWk8FZDFXw+D96hhM18gEsYGIecK4bgFUdsgH83yb/5lrYfHH4fUyDHgc/t9SJtAxVBlMXKsAhNkg== + version "8.3.2" + resolved "https://registry.yarnpkg.com/@ngneat/spectator/-/spectator-8.3.2.tgz#51c584addd2d06b733af1654d04567f491be0218" + integrity sha512-jzodobAYIZmI+J7KG7PZ2tFe3wAs2RwA+hOL01l6XiiSj7JpkAyu3ORuM+l+Jn/fh20ApLu5mPSfvgwibSvKDA== dependencies: "@testing-library/dom" "7.26.5" jquery "3.6.0" @@ -2709,7 +2649,19 @@ tslib "^2.2.0" webpack-merge "5.7.3" -"@nrwl/cli@*", "@nrwl/cli@13.1.3": +"@nrwl/cli@*": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-13.2.3.tgz#a0cf0d0d8f7e3c5475b4bed6c6d4c4c16d889b84" + integrity sha512-4hrOYQ9MqhWOdjQTwuQqHTfPu8lYgdFCE39PVWAcePtoi67mUeba54HkyT6nkTHI1TbO7q8Kf+R73dRhhxDlpA== + dependencies: + "@nrwl/tao" "13.2.3" + chalk "4.1.0" + enquirer "~2.3.6" + v8-compile-cache "2.3.0" + yargs "15.4.1" + yargs-parser "20.0.0" + +"@nrwl/cli@13.1.3": version "13.1.3" resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-13.1.3.tgz#c5d21ea5d878c8aa0438e52a2f39236bcd37085a" integrity sha512-pwHMOy8MEKdPWf3qbTfSWt33tYq8p5mRE0RAdA9iXcxk7+2TZkU+ScVHZz4asmrZlsTC+UYJIzWJWTSCwaGL5A== @@ -2825,6 +2777,23 @@ tslib "^2.0.0" yargs-parser "20.0.0" +"@nrwl/tao@13.2.3": + version "13.2.3" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-13.2.3.tgz#f0ca4b08258bbc280d67dae039a2d4fda5830557" + integrity sha512-vn+GqvFVinqAXzvbHznPBtCg9OCfirh3hF68sZgY2C6jZ3m47XwST3mLTRSDTtSDy9QfUrSZ6p4uAk2Iht0yBQ== + dependencies: + chalk "4.1.0" + enquirer "~2.3.6" + fs-extra "^9.1.0" + jsonc-parser "3.0.0" + nx "13.2.3" + rxjs "^6.5.4" + rxjs-for-await "0.0.2" + semver "7.3.4" + tmp "~0.2.1" + tslib "^2.3.0" + yargs-parser "20.0.0" + "@nrwl/workspace@13.1.3": version "13.1.3" resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-13.1.3.tgz#6cc6efc580b4ff27f7b824de76e247fde68d0560" @@ -3018,7 +2987,7 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@schematics/angular@12.2.13": +"@schematics/angular@12.2.13", "@schematics/angular@~12.2.0": version "12.2.13" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-12.2.13.tgz#5bf3e7b699a42d7fd7f7aa12bbe4534e671e7201" integrity sha512-TrigQ9TCmAedf1J5PSSSfTC+sScYrITeAUN8a9rlkjZNvff8hHVyQaiZmhqL+egKQL828mhkqpnFUDd4QsPBIw== @@ -3027,15 +2996,6 @@ "@angular-devkit/schematics" "12.2.13" jsonc-parser "3.0.0" -"@schematics/angular@~12.2.0": - version "12.2.6" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-12.2.6.tgz#bf48e80e9b1db406d0eb7a5200d0f8661d1d05f2" - integrity sha512-53yVIB43jPpqitJXT5IxPm9Kq1P8AyRgzrCIKAl4mESsPsOIFR6ZCpuNRlaumEinHnbMpgzZ2M+RlialzAOS6w== - dependencies: - "@angular-devkit/core" "12.2.6" - "@angular-devkit/schematics" "12.2.6" - jsonc-parser "3.0.0" - "@sindresorhus/is@^4.0.0": version "4.2.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" @@ -3150,9 +3110,9 @@ "@types/estree" "*" "@types/eslint@*": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.28.2.tgz#0ff2947cdd305897c52d5372294e8c76f351db68" - integrity sha512-KubbADPkfoU75KgKeKLsFHXnU4ipH7wYg0TRT33NK3N3yiu7jlFAAoygIWBV+KbuHx/G+AvuGX6DllnK35gfJA== + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.0.tgz#afd0519223c29c347087542cbaee2fedc0873b16" + integrity sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -3242,9 +3202,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*": - version "16.11.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42" - integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw== + version "16.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" + integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== "@types/node@14.14.33": version "14.14.33" @@ -3252,9 +3212,9 @@ integrity sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g== "@types/node@^14.14.31": - version "14.17.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12" - integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g== + version "14.17.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0" + integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3267,9 +3227,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.1.tgz#e1303048d5389563e130f5bdd89d37a99acb75eb" - integrity sha512-Fo79ojj3vdEZOHg3wR9ksAMRz4P3S5fDB5e/YWZiFnyFQI1WY2Vftu9XoXVVtJfxB7Bpce/QTqWSSntkz2Znrw== + version "2.4.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.2.tgz#4c62fae93eb479660c3bd93f9d24d561597a8281" + integrity sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA== "@types/q@^0.0.32": version "0.0.32" @@ -3657,9 +3617,9 @@ acorn@^7.1.1, acorn@^7.4.0: integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== acorn@^8.2.4, acorn@^8.4.1: - version "8.5.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2" - integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q== + version "8.6.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" + integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== add-stream@^1.0.0: version "1.0.0" @@ -3758,9 +3718,9 @@ ajv@8.6.2: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.0.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.7.1.tgz#52be6f1736b076074798124293618f132ad07a7e" - integrity sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw== + version "8.8.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" + integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -4328,18 +4288,7 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.1, browserslist@^4.16.6, browserslist@^4.6.4, browserslist@^4.9.1: - version "4.17.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c" - integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g== - dependencies: - caniuse-lite "^1.0.30001254" - colorette "^1.3.0" - electron-to-chromium "^1.3.830" - escalade "^3.1.1" - node-releases "^1.1.75" - -browserslist@^4.17.5, browserslist@^4.17.6: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.0, browserslist@^4.16.1, browserslist@^4.16.6, browserslist@^4.17.5, browserslist@^4.17.6, browserslist@^4.6.4, browserslist@^4.9.1: version "4.18.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== @@ -4496,7 +4445,7 @@ cacheable-lookup@^5.0.3: resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== -cacheable-request@^7.0.1: +cacheable-request@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== @@ -4542,9 +4491,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" - integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + version "6.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" + integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== caniuse-api@^3.0.0: version "3.0.0" @@ -4556,15 +4505,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109: - version "1.0.30001279" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001279.tgz#eb06818da481ef5096a3b3760f43e5382ed6b0ce" - integrity sha512-VfEHpzHEXj6/CxggTwSFoZBBYGQfQv9Cf42KPlO79sWXCD1QNKWKsKzFeWL7QpZHJQYAvocqV6Rty1yJMkqWLQ== - -caniuse-lite@^1.0.30001254, caniuse-lite@^1.0.30001280: - version "1.0.30001280" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz#066a506046ba4be34cde5f74a08db7a396718fb7" - integrity sha512-kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001032, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001280: + version "1.0.30001283" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b" + integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== canonical-path@1.0.0: version "1.0.0" @@ -4687,9 +4631,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" - integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + version "3.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== circular-dependency-plugin@5.2.2: version "5.2.2" @@ -4799,11 +4743,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= -clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - cmd-shim@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" @@ -4863,7 +4802,7 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e" integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw== -colorette@^1.2.2, colorette@^1.3.0: +colorette@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== @@ -4914,9 +4853,9 @@ commander@^8.0.0: integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== commondir@^1.0.1: version "1.0.1" @@ -5130,15 +5069,7 @@ copy-webpack-plugin@9.0.1: schema-utils "^3.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.15.0: - version "3.18.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.0.tgz#fb360652201e8ac8da812718c008cd0482ed9b42" - integrity sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg== - dependencies: - browserslist "^4.17.0" - semver "7.0.0" - -core-js-compat@^3.16.2: +core-js-compat@^3.15.0, core-js-compat@^3.16.2: version "3.19.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== @@ -5247,11 +5178,6 @@ css-blank-pseudo@^0.1.4: dependencies: postcss "^7.0.5" -css-color-names@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" - integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== - css-declaration-sorter@^6.0.3: version "6.1.3" resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2" @@ -5362,10 +5288,10 @@ cssfontparser@^1.2.1: resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" integrity sha1-9AIvyPlwDGgCnVQghK+69CWj8+M= -cssnano-preset-default@^5.1.6: - version "5.1.6" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.6.tgz#1bdb83be6a6b1fee6dc5e9ec2e61286bcadcc7a6" - integrity sha512-X2nDeNGBXc0486oHjT2vSj+TdeyVsxRvJUxaOH50hOM6vSDLkKd0+59YXpSZRInJ4sNtBOykS4KsPfhdrU/35w== +cssnano-preset-default@^5.1.8: + version "5.1.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz#7525feb1b72f7b06e57f55064cbdae341d79dea2" + integrity sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -5376,11 +5302,11 @@ cssnano-preset-default@^5.1.6: postcss-discard-duplicates "^5.0.1" postcss-discard-empty "^5.0.1" postcss-discard-overridden "^5.0.1" - postcss-merge-longhand "^5.0.3" - postcss-merge-rules "^5.0.2" + postcss-merge-longhand "^5.0.4" + postcss-merge-rules "^5.0.3" postcss-minify-font-values "^5.0.1" postcss-minify-gradients "^5.0.3" - postcss-minify-params "^5.0.1" + postcss-minify-params "^5.0.2" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" postcss-normalize-display-values "^5.0.1" @@ -5389,13 +5315,13 @@ cssnano-preset-default@^5.1.6: postcss-normalize-string "^5.0.1" postcss-normalize-timing-functions "^5.0.1" postcss-normalize-unicode "^5.0.1" - postcss-normalize-url "^5.0.2" + postcss-normalize-url "^5.0.3" postcss-normalize-whitespace "^5.0.1" postcss-ordered-values "^5.0.2" - postcss-reduce-initial "^5.0.1" + postcss-reduce-initial "^5.0.2" postcss-reduce-transforms "^5.0.1" postcss-svgo "^5.0.3" - postcss-unique-selectors "^5.0.1" + postcss-unique-selectors "^5.0.2" cssnano-utils@^2.0.1: version "2.0.1" @@ -5403,11 +5329,11 @@ cssnano-utils@^2.0.1: integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== cssnano@^5.0.6: - version "5.0.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.10.tgz#92207eb7c9c6dc08d318050726f9fad0adf7220b" - integrity sha512-YfNhVJJ04imffOpbPbXP2zjIoByf0m8E2c/s/HnvSvjXgzXMfgopVjAEGvxYOjkOpWuRQDg/OZFjO7WW94Ri8w== + version "5.0.12" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.12.tgz#2c083a1c786fc9dc2d5522bd3c0e331b7cd302ab" + integrity sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg== dependencies: - cssnano-preset-default "^5.1.6" + cssnano-preset-default "^5.1.8" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -5510,9 +5436,9 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" date-fns@^2.10.0: - version "2.25.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.25.0.tgz#8c5c8f1d958be3809a9a03f4b742eba894fc5680" - integrity sha512-ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w== + version "2.26.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.26.0.tgz#fa45305543c392c4f914e50775fd2a4461e60fbd" + integrity sha512-VQI812dRi3cusdY/fhoBKvc6l2W8BPWU1FNVnFH9Nttjx4AFBRzfSVb/Eyc7jBT6e9sg1XtAGsYpBQ6c/jygbg== dateformat@^3.0.0: version "3.0.3" @@ -5531,7 +5457,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@4, debug@4.3.2, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== @@ -5882,10 +5815,10 @@ ejs@^3.1.5: dependencies: jake "^10.6.1" -electron-to-chromium@^1.3.830, electron-to-chromium@^1.3.896: - version "1.3.899" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.899.tgz#4d7d040e73def3d5f5bd6b8a21049025dce6fce0" - integrity sha512-w16Dtd2zl7VZ4N4Db+FIa7n36sgPGCKjrKvUUmp5ialsikvcQLjcJR9RWnlYNxIyEHLdHaoIZEqKsPxU9MdyBg== +electron-to-chromium@^1.3.896: + version "1.4.4" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz#57311918524c1a26878c330537f967804d43788a" + integrity sha512-teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg== emittery@^0.8.1: version "0.8.1" @@ -6721,9 +6654,9 @@ flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== + version "3.2.4" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" + integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== flatten@^1.0.2: version "1.0.3" @@ -6870,7 +6803,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -7122,16 +7055,16 @@ globby@^6.1.0: pinkie-promise "^2.0.0" got@^11.5.2: - version "11.8.2" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" - integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== + version "11.8.3" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.3.tgz#f496c8fdda5d729a90b4905d2b07dbd148170770" + integrity sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" "@types/cacheable-request" "^6.0.1" "@types/responselike" "^1.0.0" cacheable-lookup "^5.0.3" - cacheable-request "^7.0.1" + cacheable-request "^7.0.2" decompress-response "^6.0.0" http2-wrapper "^1.0.0-beta.5.2" lowercase-keys "^2.0.0" @@ -7356,9 +7289,9 @@ http-errors@~1.7.2: toidentifier "1.0.0" http-parser-js@>=0.5.1: - version "0.5.3" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" - integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + version "0.5.5" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5" + integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA== http-proxy-agent@^4.0.1: version "4.0.1" @@ -7397,6 +7330,15 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-signature@~1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9" + integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw== + dependencies: + assert-plus "^1.0.0" + jsprim "^2.0.2" + sshpk "^1.14.1" + http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" @@ -8334,20 +8276,7 @@ jest-each@^27.3.1: jest-util "^27.3.1" pretty-format "^27.3.1" -jest-environment-jsdom@^27.0.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.2.0.tgz#c654dfae50ca2272c2a2e2bb95ff0af298283a3c" - integrity sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA== - dependencies: - "@jest/environment" "^27.2.0" - "@jest/fake-timers" "^27.2.0" - "@jest/types" "^27.1.1" - "@types/node" "*" - jest-mock "^27.1.1" - jest-util "^27.2.0" - jsdom "^16.6.0" - -jest-environment-jsdom@^27.2.2, jest-environment-jsdom@^27.3.1: +jest-environment-jsdom@^27.0.0, jest-environment-jsdom@^27.2.2, jest-environment-jsdom@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz#63ac36d68f7a9303494df783494856222b57f73e" integrity sha512-3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg== @@ -8620,7 +8549,7 @@ jest-snapshot@^27.3.1: pretty-format "^27.3.1" semver "^7.3.2" -jest-util@27.2.0, jest-util@^27.0.0, jest-util@^27.2.0: +jest-util@27.2.0: version "27.2.0" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.2.0.tgz#bfccb85cfafae752257319e825a5b8d4ada470dc" integrity sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A== @@ -8632,7 +8561,7 @@ jest-util@27.2.0, jest-util@^27.0.0, jest-util@^27.2.0: is-ci "^3.0.0" picomatch "^2.2.3" -jest-util@^27.3.1: +jest-util@^27.0.0, jest-util@^27.2.0, jest-util@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.3.1.tgz#a58cdc7b6c8a560caac9ed6bdfc4e4ff23f80429" integrity sha512-8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw== @@ -8669,16 +8598,7 @@ jest-watcher@^27.3.1: jest-util "^27.3.1" string-length "^4.0.1" -jest-worker@^27.0.2, jest-worker@^27.0.6: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" - integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest-worker@^27.2.2, jest-worker@^27.3.1: +jest-worker@^27.0.2, jest-worker@^27.0.6, jest-worker@^27.2.2, jest-worker@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== @@ -8792,6 +8712,11 @@ json-schema@0.2.3: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -8807,7 +8732,7 @@ json3@^3.3.3: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@2.x, json5@^2.1.2: +json5@2.x, json5@^2.1.0, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -8855,6 +8780,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +jsprim@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + jszip@^3.1.3: version "3.7.1" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" @@ -9061,20 +8996,20 @@ lilconfig@^2.0.3: integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA== lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== listr2@^3.8.3: - version "3.13.3" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.3.tgz#d8f6095c9371b382c9b1c2bc33c5941d8e177f11" - integrity sha512-VqAgN+XVfyaEjSaFewGPcDs5/3hBbWVaX1VgWv2f52MF7US45JuARlArULctiB44IIcEk3JF7GtoFCLqEdeuPA== + version "3.13.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.13.5.tgz#105a813f2eb2329c4aae27373a281d610ee4985f" + integrity sha512-3n8heFQDSk+NcwBn3CgxEibZGaRzx+pC64n3YjpMD1qguV4nWus3Al+Oo3KooqFKTQEJ1v7MmnbnyyNspgx3NA== dependencies: cli-truncate "^2.1.0" - clone "^2.1.2" colorette "^2.0.16" log-update "^4.0.0" p-map "^4.0.0" + rfdc "^1.3.0" rxjs "^7.4.0" through "^2.3.8" wrap-ansi "^7.0.0" @@ -9209,7 +9144,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9233,9 +9168,9 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" loglevel@^1.6.8: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114" + integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA== lowercase-keys@^2.0.0: version "2.0.0" @@ -9379,9 +9314,9 @@ mem@^8.1.1: mimic-fn "^3.1.0" memfs@^3.1.2, memfs@^3.2.2: - version "3.3.0" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.3.0.tgz#4da2d1fc40a04b170a56622c7164c6be2c4cbef2" - integrity sha512-BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg== + version "3.4.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.0.tgz#8bc12062b973be6b295d4340595736a656f0a257" + integrity sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA== dependencies: fs-monkey "1.0.3" @@ -9469,16 +9404,11 @@ micromatch@^4.0.0, micromatch@^4.0.4: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.51.0: +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": version "1.51.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== -"mime-db@>= 1.43.0 < 2": - version "1.50.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f" - integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A== - mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.34" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" @@ -9899,11 +9829,6 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-releases@^1.1.75: - version "1.1.77" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.77.tgz#50b0cfede855dd374e7585bf228ff34e57c1c32e" - integrity sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ== - node-releases@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" @@ -10129,6 +10054,13 @@ nx@13.1.3: dependencies: "@nrwl/cli" "*" +nx@13.2.3: + version "13.2.3" + resolved "https://registry.yarnpkg.com/nx/-/nx-13.2.3.tgz#d571206b0ad5f8d34aa1aec644d75cbf15b6c097" + integrity sha512-aNRbPjArROZazOKAiUhG5uZAZmL1uXdsGoA3p5mDt5fCLSj/CX1V/myuRx+Js0qsAV78W6dSf2z6TiQeIgieXg== + dependencies: + "@nrwl/cli" "*" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -10973,25 +10905,23 @@ postcss-media-minmax@^4.0.0: dependencies: postcss "^7.0.2" -postcss-merge-longhand@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.3.tgz#42194a5ffbaa5513edbf606ef79c44958564658b" - integrity sha512-kmB+1TjMTj/bPw6MCDUiqSA5e/x4fvLffiAdthra3a0m2/IjTrWsTmD3FdSskzUjEwkj5ZHBDEbv5dOcqD7CMQ== +postcss-merge-longhand@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32" + integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw== dependencies: - css-color-names "^1.0.1" postcss-value-parser "^4.1.0" stylehacks "^5.0.1" -postcss-merge-rules@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a" - integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg== +postcss-merge-rules@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db" + integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" cssnano-utils "^2.0.1" postcss-selector-parser "^6.0.5" - vendors "^1.0.3" postcss-minify-font-values@^5.0.1: version "5.0.1" @@ -11009,16 +10939,15 @@ postcss-minify-gradients@^5.0.3: cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-minify-params@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" - integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== +postcss-minify-params@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c" + integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg== dependencies: alphanum-sort "^1.0.2" - browserslist "^4.16.0" + browserslist "^4.16.6" cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" - uniqs "^2.0.0" postcss-minify-selectors@^5.1.0: version "5.1.0" @@ -11114,10 +11043,10 @@ postcss-normalize-unicode@^5.0.1: browserslist "^4.16.0" postcss-value-parser "^4.1.0" -postcss-normalize-url@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763" - integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ== +postcss-normalize-url@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c" + integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg== dependencies: is-absolute-url "^3.0.3" normalize-url "^6.0.1" @@ -11211,12 +11140,12 @@ postcss-pseudo-class-any-link@^6.0.0: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" -postcss-reduce-initial@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" - integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== +postcss-reduce-initial@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz#fa424ce8aa88a89bc0b6d0f94871b24abe94c048" + integrity sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw== dependencies: - browserslist "^4.16.0" + browserslist "^4.16.6" caniuse-api "^3.0.0" postcss-reduce-transforms@^5.0.1: @@ -11275,14 +11204,13 @@ postcss-svgo@^5.0.3: postcss-value-parser "^4.1.0" svgo "^2.7.0" -postcss-unique-selectors@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" - integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== +postcss-unique-selectors@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1" + integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA== dependencies: alphanum-sort "^1.0.2" postcss-selector-parser "^6.0.5" - uniqs "^2.0.0" postcss-url@^10.1.1: version "10.1.3" @@ -11326,13 +11254,13 @@ postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.32, postcss@^7.0. source-map "^0.6.1" postcss@^8.2.15, postcss@^8.2.4, postcss@^8.3.5, postcss@^8.3.7, postcss@^8.3.9: - version "8.3.11" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.11.tgz#c3beca7ea811cd5e1c4a3ec6d2e7599ef1f8f858" - integrity sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA== + version "8.4.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869" + integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q== dependencies: nanoid "^3.1.30" picocolors "^1.0.0" - source-map-js "^0.6.2" + source-map-js "^1.0.1" prelude-ls@^1.2.1: version "1.2.1" @@ -11345,9 +11273,9 @@ prelude-ls@~1.1.2: integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prettier@^2.3.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c" - integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.0.tgz#a6370e2d4594e093270419d9cc47f7670488f893" + integrity sha512-FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg== pretty-bytes@^5.3.0, pretty-bytes@^5.6.0: version "5.6.0" @@ -11364,17 +11292,7 @@ pretty-format@^26.4.2: ansi-styles "^4.0.0" react-is "^17.0.1" -pretty-format@^27.0.0: - version "27.2.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.2.0.tgz#ee37a94ce2a79765791a8649ae374d468c18ef19" - integrity sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA== - dependencies: - "@jest/types" "^27.1.1" - ansi-regex "^5.0.0" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^27.2.2, pretty-format@^27.3.1: +pretty-format@^27.0.0, pretty-format@^27.2.2, pretty-format@^27.3.1: version "27.3.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== @@ -11990,6 +11908,11 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -12013,9 +11936,9 @@ rollup-plugin-sourcemaps@^0.6.3: source-map-resolve "^0.6.0" rollup@^2.45.1: - version "2.59.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.59.0.tgz#108c61b0fa0a37ebc8d1f164f281622056f0db59" - integrity sha512-l7s90JQhCQ6JyZjKgo7Lq1dKh2RxatOM+Jr6a9F7WbS9WgKbocyUSeLmZl8evAse7y96Ae98L2k1cBOwWD8nHw== + version "2.60.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.60.1.tgz#4b34cd247f09b421f10a3c9286eda2ecf9972079" + integrity sha512-akwfnpjY0rXEDSn1UTVfKXJhPsEBu+imi1gqBA1ZkHGydUnkV/fWCC90P7rDaLEW8KTwBcS1G3N4893Ndz+jwg== optionalDependencies: fsevents "~2.3.2" @@ -12102,9 +12025,9 @@ sass@1.36.0: chokidar ">=3.0.0 <4.0.0" sass@^1.32.8: - version "1.43.4" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.4.tgz#68c7d6a1b004bef49af0d9caf750e9b252105d1f" - integrity sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg== + version "1.43.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.43.5.tgz#25a9d91dd098793ef7229d7b04dd3daae2fc4a65" + integrity sha512-WuNm+eAryMgQluL7Mbq9M4EruyGGMyal7Lu58FfnRMVWxgUzIvI7aSn60iNt3kn5yZBMR7G84fAGDcwqOF5JOg== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -12185,7 +12108,7 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -12344,9 +12267,9 @@ side-channel@^1.0.4: object-inspect "^1.9.0" signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.5" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" - integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== sisteransi@^1.0.5: version "1.0.5" @@ -12447,9 +12370,9 @@ socks-proxy-agent@^5.0.0: socks "^2.3.3" socks-proxy-agent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz#869cf2d7bd10fea96c7ad3111e81726855e285c3" - integrity sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg== + version "6.1.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" + integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== dependencies: agent-base "^6.0.2" debug "^4.3.1" @@ -12487,6 +12410,11 @@ source-map-js@^0.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== +source-map-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + source-map-loader@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.0.tgz#f2a04ee2808ad01c774dea6b7d2639839f3b3049" @@ -12524,9 +12452,9 @@ source-map-support@0.5.19: source-map "^0.6.0" source-map-support@^0.5.17, source-map-support@^0.5.5, source-map-support@^0.5.6, source-map-support@~0.5.19, source-map-support@~0.5.20: - version "0.5.20" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" - integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -12585,9 +12513,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" - integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== spdy-transport@^3.0.0: version "3.0.0" @@ -12643,7 +12571,7 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: +sshpk@^1.14.1, sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== @@ -12712,7 +12640,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -12730,15 +12658,6 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - string.prototype.padend@^3.0.0: version "3.1.3" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" @@ -12778,7 +12697,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@6.0.0, strip-ansi@^6.0.0: +strip-ansi@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== @@ -12799,7 +12718,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -13050,9 +12969,9 @@ terser@5.7.1: source-map-support "~0.5.19" terser@^5.7.0, terser@^5.7.2: - version "5.9.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.9.0.tgz#47d6e629a522963240f2b55fcaa3c99083d2c351" - integrity sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -13224,7 +13143,7 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-jest@27.0.5, ts-jest@^27.0.0: +ts-jest@27.0.5: version "27.0.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.5.tgz#0b0604e2271167ec43c12a69770f0bb65ad1b750" integrity sha512-lIJApzfTaSSbtlksfFNHkWOzLJuuSm4faFAfo5kvzOiRAuoN4/eKxVJ2zEAho8aecE04qX6K1pAzfH5QHL1/8w== @@ -13238,6 +13157,20 @@ ts-jest@27.0.5, ts-jest@^27.0.0: semver "7.x" yargs-parser "20.x" +ts-jest@^27.0.0: + version "27.0.7" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.0.7.tgz#fb7c8c8cb5526ab371bc1b23d06e745652cca2d0" + integrity sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + ts-loader@^9.2.6: version "9.2.6" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.2.6.tgz#9937c4dd0a1e3dbbb5e433f8102a6601c6615d74" @@ -13275,9 +13208,9 @@ tsconfig-paths-webpack-plugin@3.4.1: tsconfig-paths "^3.9.0" tsconfig-paths@^3.9.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" - integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== + version "3.12.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" + integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" @@ -13496,11 +13429,6 @@ uniq@^1.0.1: resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -13652,11 +13580,6 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vendors@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -13688,9 +13611,9 @@ walker@^1.0.7: makeerror "1.0.12" watchpack@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" - integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.0.tgz#a41bca3da6afaff31e92a433f4c856a0c25ea0c4" + integrity sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -13849,9 +13772,9 @@ webpack-sources@^1.2.0, webpack-sources@^1.3.0: source-map "~0.6.1" webpack-sources@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.1.tgz#251a7d9720d75ada1469ca07dbb62f3641a05b6d" - integrity sha512-t6BMVLQ0AkjBOoRTZgqrWm7xbXMBzD+XDq2EZ96+vMfn3qKgsvdXZhbPZ4ElUOpdv4u+iiGe+w3+J75iy/bYGA== + version "3.2.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" + integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== webpack-subresource-integrity@1.5.2: version "1.5.2" @@ -14077,9 +14000,9 @@ ws@^6.2.1: async-limiter "~1.0.0" ws@^7.4.6: - version "7.5.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881" - integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w== + version "7.5.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" + integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== xml-name-validator@^3.0.0: version "3.0.0" From b842fbd3ec7a08b854c90cec9f6059ac6adb8a5b Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Mon, 29 Nov 2021 11:37:00 +0300 Subject: [PATCH 24/25] downgrade the @ng-bootstrap/ng-bootstrap --- npm/ng-packs/package.json | 6 ++++-- npm/ng-packs/packages/components/package.json | 2 +- npm/ng-packs/packages/theme-shared/package.json | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c7a8100117..9babf8025f 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -68,7 +68,7 @@ "@angular/platform-browser-dynamic": "12.2.13", "@angular/router": "12.2.13", "@fortawesome/fontawesome-free": "^5.15.4", - "@ng-bootstrap/ng-bootstrap": "^11.0.0-beta.2", + "@ng-bootstrap/ng-bootstrap": "11.0.0-beta.2", "@ngneat/spectator": "^8.0.3", "@ngx-validate/core": "^0.0.13", "@nrwl/angular": "13.1.3", @@ -120,5 +120,7 @@ "typescript": "4.3.5", "zone.js": "~0.11.4" }, - "dependencies": {} + "resolutions": { + "@ng-bootstrap/ng-bootstrap": "11.0.0-beta.2" + } } diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 163313fb38..27e35bf782 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -9,7 +9,7 @@ "peerDependencies": { "@abp/ng.core": ">=5.0.0-rc.1", "@abp/ng.theme.shared": ">=5.0.0-rc.1", - "@ng-bootstrap/ng-bootstrap": ">=6.0.0" + "@ng-bootstrap/ng-bootstrap": ">=10.0.0" }, "dependencies": { "chart.js": "^3.5.1", diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 999d08bb63..578e5712fa 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -9,7 +9,7 @@ "dependencies": { "@abp/ng.core": "~5.0.0-rc.1", "@fortawesome/fontawesome-free": "^5.15.4", - "@ng-bootstrap/ng-bootstrap": "^11.0.0-beta.2", + "@ng-bootstrap/ng-bootstrap": "11.0.0-beta.2", "@ngx-validate/core": "^0.0.13", "@swimlane/ngx-datatable": "^19.0.0", "bootstrap": "^5.1.1", From 4f98b16dbd8696203961f6816c906e114b4831e7 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 29 Nov 2021 17:49:35 +0800 Subject: [PATCH 25/25] Add ManageHostFeatures button to Blazor UI --- .../Pages/TenantManagement/TenantManagement.razor.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs index cb5ecc3413..f5767eb1b2 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Pages/TenantManagement/TenantManagement.razor.cs @@ -53,6 +53,10 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement protected override ValueTask SetToolbarItemsAsync() { + Toolbar.AddButton(L["ManageHostFeatures"], + async () => await FeatureManagementModal.OpenAsync(FeatureProviderName), + "fa fa-cog"); + Toolbar.AddButton(L["NewTenant"], OpenCreateModalAsync, IconName.Add, @@ -119,4 +123,4 @@ namespace Volo.Abp.TenantManagement.Blazor.Pages.TenantManagement return base.SetTableColumnsAsync(); } } -} \ No newline at end of file +}