Browse Source

Merge branch 'dev' of https://github.com/abpframework/abp into feat/upgrade-nx

pull/10607/head
Mehmet Erim 5 years ago
parent
commit
73602764ce
  1. 6
      docs/en/Application-Services.md
  2. 2
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs
  3. 4
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs
  4. 12
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs
  5. 26
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHubContext.cs
  6. 23
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHubContextAccessorHubFilter.cs
  7. 92
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Auditing/AbpAuditHubFilter.cs
  8. 55
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Auditing/AspNetCoreSignalRAuditLogContributor.cs
  9. 4
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Authentication/AbpAuthenticationHubFilter.cs
  10. 23
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/DefaultAbpHubContextAccessor.cs
  11. 12
      framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/IAbpHubContextAccessor.cs
  12. 5
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AspNetCoreAuditLogContributor.cs
  13. 5
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProvider.cs
  14. 21
      modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs
  15. 18
      modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs
  16. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  17. 6
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js
  18. 6
      modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml
  19. 4
      npm/lerna.json
  20. 12
      npm/ng-packs/packages/core/src/lib/directives/autofocus.directive.ts
  21. 10
      npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts
  22. 16
      npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts
  23. 2
      npm/ng-packs/packages/core/src/lib/models/common.ts
  24. 4
      npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts
  25. 23
      npm/ng-packs/packages/core/src/lib/pipes/localization.pipe.ts
  26. 8
      npm/ng-packs/packages/core/src/lib/services/config-state.service.ts
  27. 4
      npm/ng-packs/packages/core/src/lib/services/environment.service.ts
  28. 2
      npm/ng-packs/packages/core/src/lib/services/http-error-reporter.service.ts
  29. 2
      npm/ng-packs/packages/core/src/lib/services/lazy-load.service.ts
  30. 4
      npm/ng-packs/packages/core/src/lib/services/list.service.ts
  31. 4
      npm/ng-packs/packages/core/src/lib/utils/localization-utils.ts
  32. 4
      npm/ng-packs/packages/setting-management/config/src/components/email-setting-group/email-setting-group.component.html
  33. 2
      npm/ng-packs/packages/setting-management/config/src/components/email-setting-group/email-setting-group.component.ts
  34. 2
      npm/ng-packs/packages/setting-management/config/src/providers/features.token.ts
  35. 4
      npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.ts
  36. 8
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html
  37. 12
      npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts
  38. 2
      npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts
  39. 2
      npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/tenant-box/tenant-box.component.html
  40. 2
      npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts
  41. 6
      npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/languages.component.ts
  42. 2
      npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/nav-items.component.html
  43. 9
      npm/ng-packs/packages/theme-basic/src/lib/components/routes/routes.component.html
  44. 6
      npm/ng-packs/packages/theme-basic/src/lib/components/routes/routes.component.ts
  45. 2
      npm/ng-packs/packages/theme-basic/src/lib/components/validation-error/validation-error.component.ts
  46. 8
      npm/ng-packs/packages/theme-basic/src/lib/handlers/lazy-style.handler.ts
  47. 6
      npm/ng-packs/packages/theme-basic/src/lib/services/layout.service.ts
  48. 9
      npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/date-time.adapter.ts
  49. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/date.adapter.ts
  50. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/time.adapter.ts
  51. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/abstract-actions/abstract-actions.component.ts
  52. 6
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts
  53. 18
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts
  54. 6
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts
  55. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/directives/disabled.directive.ts
  56. 6
      npm/ng-packs/packages/theme-shared/extensions/src/lib/directives/prop-data.directive.ts
  57. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/actions.ts
  58. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts
  59. 4
      npm/ng-packs/packages/theme-shared/extensions/src/lib/models/toolbar-actions.ts
  60. 10
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/enum.util.ts
  61. 10
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/localization.util.ts
  62. 9
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts
  63. 16
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/typeahead.util.ts
  64. 5
      npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/validation.util.ts
  65. 3
      npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts
  66. 12
      npm/ng-packs/packages/theme-shared/src/lib/components/button/button.component.ts
  67. 4
      npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts
  68. 24
      npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts
  69. 2
      npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts
  70. 2
      npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-ref.service.ts
  71. 4
      npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html
  72. 38
      npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts
  73. 14
      npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts
  74. 2
      npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.html
  75. 4
      npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts
  76. 4
      npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts
  77. 12
      npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts
  78. 2
      npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts
  79. 74
      npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts
  80. 2
      npm/ng-packs/packages/theme-shared/src/lib/models/nav-item.ts
  81. 6
      npm/ng-packs/packages/theme-shared/src/lib/services/confirmation.service.ts
  82. 4
      npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts
  83. 7
      npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts
  84. 1
      npm/ng-packs/tsconfig.base.json
  85. 1684
      npm/ng-packs/yarn.lock
  86. 2
      npm/packs/aspnetcore.mvc.ui.theme.shared/package.json
  87. 5
      npm/yarn.lock
  88. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  89. 268
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock
  90. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  91. 268
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock
  92. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  93. 238
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock
  94. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js
  95. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  96. 238
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock
  97. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  98. 238
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock
  99. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js
  100. 238
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock

6
docs/en/Application-Services.md

@ -430,17 +430,17 @@ Task DeleteAsync(TKey id);
#### Querying #### Querying
These methods are low level methods those can be control how to query entities from the database. These methods are low level methods that can control how to query entities from the database.
* `CreateFilteredQuery` can be overridden to create an `IQueryable<TEntity>` that is filtered by the given input. If your `TGetListInput` class contains any filter, it is proper to override this method and filter the query. It returns the (unfiltered) repository (which is already `IQueryable<TEntity>`) by default. * `CreateFilteredQuery` can be overridden to create an `IQueryable<TEntity>` that is filtered by the given input. If your `TGetListInput` class contains any filter, it is proper to override this method and filter the query. It returns the (unfiltered) repository (which is already `IQueryable<TEntity>`) by default.
* `ApplyPaging` is used to make paging on the query. If your `TGetListInput` already implements `IPagedResultRequest`, you don't need to override this since the ABP Framework automatically understands it and performs the paging. * `ApplyPaging` is used to make paging on the query. If your `TGetListInput` already implements `IPagedResultRequest`, you don't need to override this since the ABP Framework automatically understands it and performs the paging.
* `ApplySorting` is used to sort (order by...) the query. If your `TGetListInput` already implements the `ISortedResultRequest`, ABP Framework automatically sorts the query. If not, it fallbacks to the `ApplyDefaultSorting` which tries to sort by creating time, if your entity implements the standard `IHasCreationTime` interface. * `ApplySorting` is used to sort (order by...) the query. If your `TGetListInput` already implements the `ISortedResultRequest`, ABP Framework automatically sorts the query. If not, it fallbacks to the `ApplyDefaultSorting` which tries to sort by creation time, if your entity implements the standard `IHasCreationTime` interface.
* `GetEntityByIdAsync` is used to get an entity by id, which calls `Repository.GetAsync(id)` by default. * `GetEntityByIdAsync` is used to get an entity by id, which calls `Repository.GetAsync(id)` by default.
* `DeleteByIdAsync` is used to delete an entity by id, which calls `Repository.DeleteAsync(id)` by default. * `DeleteByIdAsync` is used to delete an entity by id, which calls `Repository.DeleteAsync(id)` by default.
#### Object to Object Mapping #### Object to Object Mapping
These methods are used to convert Entities to DTOs and vice verse. They uses the [IObjectMapper](Object-To-Object-Mapping.md) by default. These methods are used to convert Entities to DTOs and vice verse. They use the [IObjectMapper](Object-To-Object-Mapping.md) by default.
* `MapToGetOutputDtoAsync` is used to map the entity to the DTO returned from the `GetAsync`, `CreateAsync` and `UpdateAsync` methods. Alternatively, you can override the `MapToGetOutputDto` if you don't need to perform any async operation. * `MapToGetOutputDtoAsync` is used to map the entity to the DTO returned from the `GetAsync`, `CreateAsync` and `UpdateAsync` methods. Alternatively, you can override the `MapToGetOutputDto` if you don't need to perform any async operation.
* `MapToGetListOutputDtosAsync` is used to map a list of entities to a list of DTOs returned from the `GetListAsync` method. It uses the `MapToGetListOutputDtoAsync` to map each entity in the list. You can override one of them based on your case. Alternatively, you can override the `MapToGetListOutputDto` if you don't need to perform any async operation. * `MapToGetListOutputDtosAsync` is used to map a list of entities to a list of DTOs returned from the `GetListAsync` method. It uses the `MapToGetListOutputDtoAsync` to map each entity in the list. You can override one of them based on your case. Alternatively, you can override the `MapToGetListOutputDto` if you don't need to perform any async operation.

2
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelper.cs

@ -38,7 +38,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
public bool SuppressLabel { get; set; } public bool SuppressLabel { get; set; }
public CheckBoxHiddenInputRenderMode CheckBoxHiddenInputRenderMode { get; set; } public CheckBoxHiddenInputRenderMode? CheckBoxHiddenInputRenderMode { get; set; }
public AbpInputTagHelper(AbpInputTagHelperService tagHelperService) public AbpInputTagHelper(AbpInputTagHelperService tagHelperService)
: base(tagHelperService) : base(tagHelperService)

4
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs

@ -30,9 +30,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form
{ {
var (innerHtml, isCheckBox) = await GetFormInputGroupAsHtmlAsync(context, output); var (innerHtml, isCheckBox) = await GetFormInputGroupAsHtmlAsync(context, output);
if (isCheckBox) if (isCheckBox && TagHelper.CheckBoxHiddenInputRenderMode.HasValue)
{ {
TagHelper.ViewContext.CheckBoxHiddenInputRenderMode = TagHelper.CheckBoxHiddenInputRenderMode; TagHelper.ViewContext.CheckBoxHiddenInputRenderMode = TagHelper.CheckBoxHiddenInputRenderMode.Value;
} }
var order = TagHelper.AspFor.ModelExplorer.GetDisplayOrder(); var order = TagHelper.AspFor.ModelExplorer.GetDisplayOrder();

12
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpAspNetCoreSignalRModule.cs

@ -8,6 +8,9 @@ using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.AspNetCore.Auditing; using Volo.Abp.AspNetCore.Auditing;
using Volo.Abp.AspNetCore.SignalR.Auditing;
using Volo.Abp.AspNetCore.SignalR.Authentication;
using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
@ -34,7 +37,9 @@ namespace Volo.Abp.AspNetCore.SignalR
var routePatterns = new List<string> {"/signalr-hubs"}; var routePatterns = new List<string> {"/signalr-hubs"};
var signalRServerBuilder = context.Services.AddSignalR(options => var signalRServerBuilder = context.Services.AddSignalR(options =>
{ {
options.AddFilter<AbpSignalRHubFilter>(); options.AddFilter<AbpHubContextAccessorHubFilter>();
options.AddFilter<AbpAuthenticationHubFilter>();
options.AddFilter<AbpAuditHubFilter>();
}); });
context.Services.ExecutePreConfiguredActions(signalRServerBuilder); context.Services.ExecutePreConfiguredActions(signalRServerBuilder);
@ -75,6 +80,11 @@ namespace Volo.Abp.AspNetCore.SignalR
options.IgnoredUrls.AddIfNotContains(x => routePattern.StartsWith(x), () => routePattern); options.IgnoredUrls.AddIfNotContains(x => routePattern.StartsWith(x), () => routePattern);
} }
}); });
Configure<AbpAuditingOptions>(options =>
{
options.Contributors.Add(new AspNetCoreSignalRAuditLogContributor());
});
} }
private void AutoAddHubTypes(IServiceCollection services) private void AutoAddHubTypes(IServiceCollection services)

26
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHubContext.cs

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using Microsoft.AspNetCore.SignalR;
namespace Volo.Abp.AspNetCore.SignalR
{
public class AbpHubContext
{
public IServiceProvider ServiceProvider { get; }
public Hub Hub { get; }
public MethodInfo HubMethod { get; }
public IReadOnlyList<object> HubMethodArguments { get; }
public AbpHubContext(IServiceProvider serviceProvider, Hub hub, MethodInfo hubMethod, IReadOnlyList<object> hubMethodArguments)
{
ServiceProvider = serviceProvider;
Hub = hub;
HubMethod = hubMethod;
HubMethodArguments = hubMethodArguments;
}
}
}

23
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpHubContextAccessorHubFilter.cs

@ -0,0 +1,23 @@
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection;
namespace Volo.Abp.AspNetCore.SignalR
{
public class AbpHubContextAccessorHubFilter : IHubFilter
{
public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next)
{
var hubContextAccessor = invocationContext.ServiceProvider.GetRequiredService<IAbpHubContextAccessor>();
using (hubContextAccessor.Change(new AbpHubContext(
invocationContext.ServiceProvider,
invocationContext.Hub,
invocationContext.HubMethod,
invocationContext.HubMethodArguments)))
{
return await next(invocationContext);
}
}
}
}

92
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Auditing/AbpAuditHubFilter.cs

@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.Auditing;
using Volo.Abp.Uow;
using Volo.Abp.Users;
namespace Volo.Abp.AspNetCore.SignalR.Auditing
{
public class AbpAuditHubFilter : IHubFilter
{
public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next)
{
var options = invocationContext.ServiceProvider.GetRequiredService<IOptions<AbpAuditingOptions>>().Value;
if (!options.IsEnabled)
{
return await next(invocationContext);
}
var hasError = false;
var auditingManager = invocationContext.ServiceProvider.GetRequiredService<IAuditingManager>();
using (var saveHandle = auditingManager.BeginScope())
{
Debug.Assert(auditingManager.Current != null);
object result;
try
{
result = await next(invocationContext);
if (auditingManager.Current.Log.Exceptions.Any())
{
hasError = true;
}
}
catch (Exception ex)
{
hasError = true;
if (!auditingManager.Current.Log.Exceptions.Contains(ex))
{
auditingManager.Current.Log.Exceptions.Add(ex);
}
throw;
}
finally
{
if (ShouldWriteAuditLog(invocationContext.ServiceProvider, hasError))
{
var unitOfWorkManager = invocationContext.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
if (unitOfWorkManager.Current != null)
{
await unitOfWorkManager.Current.SaveChangesAsync();
}
await saveHandle.SaveAsync();
}
}
return result;
}
}
private bool ShouldWriteAuditLog(IServiceProvider serviceProvider, bool hasError)
{
var options = serviceProvider.GetRequiredService<IOptions<AbpAuditingOptions>>().Value;
if (options.AlwaysLogOnException && hasError)
{
return true;
}
if (!options.IsEnabledForAnonymousUsers && !serviceProvider.GetRequiredService<ICurrentUser>().IsAuthenticated)
{
return false;
}
var auditingManager = serviceProvider.GetRequiredService<IAuditingManager>();
if (auditingManager.Current == null ||
auditingManager.Current.Log.Actions.IsNullOrEmpty())
{
return false;
}
return true;
}
}
}

55
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Auditing/AspNetCoreSignalRAuditLogContributor.cs

@ -0,0 +1,55 @@
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.AspNetCore.WebClientInfo;
using Volo.Abp.Auditing;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.SignalR.Auditing
{
public class AspNetCoreSignalRAuditLogContributor : AuditLogContributor, ITransientDependency
{
public ILogger<AspNetCoreSignalRAuditLogContributor> Logger { get; set; }
public AspNetCoreSignalRAuditLogContributor()
{
Logger = NullLogger<AspNetCoreSignalRAuditLogContributor>.Instance;
}
public override void PreContribute(AuditLogContributionContext context)
{
var hubContext = context.ServiceProvider.GetRequiredService<IAbpHubContextAccessor>().Context;
if (hubContext == null)
{
return;
}
var clientInfoProvider = context.ServiceProvider.GetRequiredService<IWebClientInfoProvider>();
if (context.AuditInfo.ClientIpAddress == null)
{
context.AuditInfo.ClientIpAddress = clientInfoProvider.ClientIpAddress;
}
if (context.AuditInfo.BrowserInfo == null)
{
context.AuditInfo.BrowserInfo = clientInfoProvider.BrowserInfo;
}
//TODO: context.AuditInfo.ClientName
}
public override void PostContribute(AuditLogContributionContext context)
{
var hubContext = context.ServiceProvider.GetRequiredService<IAbpHubContextAccessor>().Context;
if (hubContext == null)
{
return;
}
var firstAction = context.AuditInfo.Actions.FirstOrDefault();
context.AuditInfo.Url = firstAction?.ServiceName + "." + firstAction?.MethodName;
context.AuditInfo.HttpStatusCode = null;
}
}
}

4
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRHubFilter.cs → framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/Authentication/AbpAuthenticationHubFilter.cs

@ -4,9 +4,9 @@ using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Security.Claims; using Volo.Abp.Security.Claims;
namespace Volo.Abp.AspNetCore.SignalR namespace Volo.Abp.AspNetCore.SignalR.Authentication
{ {
public class AbpSignalRHubFilter : IHubFilter public class AbpAuthenticationHubFilter : IHubFilter
{ {
public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next) public virtual async ValueTask<object> InvokeMethodAsync(HubInvocationContext invocationContext, Func<HubInvocationContext, ValueTask<object>> next)
{ {

23
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/DefaultAbpHubContextAccessor.cs

@ -0,0 +1,23 @@
using System;
using System.Threading;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.SignalR
{
public class DefaultAbpHubContextAccessor : IAbpHubContextAccessor, ISingletonDependency
{
public AbpHubContext Context => _currentHubContext.Value;
private readonly AsyncLocal<AbpHubContext> _currentHubContext = new AsyncLocal<AbpHubContext>();
public virtual IDisposable Change(AbpHubContext context)
{
var parent = Context;
_currentHubContext.Value = context;
return new DisposeAction(() =>
{
_currentHubContext.Value = parent;
});
}
}
}

12
framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/IAbpHubContextAccessor.cs

@ -0,0 +1,12 @@
using System;
namespace Volo.Abp.AspNetCore.SignalR
{
public interface IAbpHubContextAccessor
{
AbpHubContext Context { get; }
IDisposable Change(AbpHubContext context);
}
}

5
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Auditing/AspNetCoreAuditLogContributor.cs

@ -26,6 +26,11 @@ namespace Volo.Abp.AspNetCore.Auditing
return; return;
} }
if (httpContext.WebSockets.IsWebSocketRequest)
{
return;
}
if (context.AuditInfo.HttpMethod == null) if (context.AuditInfo.HttpMethod == null)
{ {
context.AuditInfo.HttpMethod = httpContext.Request.Method; context.AuditInfo.HttpMethod = httpContext.Request.Method;

5
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Uow/AspNetCoreUnitOfWorkTransactionBehaviourProvider.cs

@ -22,6 +22,11 @@ namespace Volo.Abp.AspNetCore.Uow
return null; return null;
} }
if (httpContext.WebSockets.IsWebSocketRequest)
{
return null;
}
var currentUrl = httpContext.Request.Path.Value; var currentUrl = httpContext.Request.Path.Value;
if (currentUrl != null) if (currentUrl != null)
{ {

21
modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/NavMenu.razor.cs

@ -1,19 +1,36 @@
using System.Threading.Tasks; using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Volo.Abp.UI.Navigation; using Volo.Abp.UI.Navigation;
namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic
{ {
public partial class NavMenu public partial class NavMenu : IDisposable
{ {
[Inject] [Inject]
protected IMenuManager MenuManager { get; set; } protected IMenuManager MenuManager { get; set; }
[Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; }
protected ApplicationMenu Menu { get; set; } protected ApplicationMenu Menu { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
Menu = await MenuManager.GetMainMenuAsync(); Menu = await MenuManager.GetMainMenuAsync();
AuthenticationStateProvider.AuthenticationStateChanged += AuthenticationStateProviderOnAuthenticationStateChanged;
}
public void Dispose()
{
AuthenticationStateProvider.AuthenticationStateChanged -= AuthenticationStateProviderOnAuthenticationStateChanged;
}
private async void AuthenticationStateProviderOnAuthenticationStateChanged(Task<AuthenticationState> task)
{
Menu = await MenuManager.GetMainMenuAsync();
await InvokeAsync(StateHasChanged);
} }
} }
} }

18
modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Themes/Basic/LoginDisplay.razor.cs

@ -34,11 +34,8 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic
if (AuthenticationStateProvider != null) if (AuthenticationStateProvider != null)
{ {
AuthenticationStateProvider.AuthenticationStateChanged += async (task) => AuthenticationStateProvider.AuthenticationStateChanged +=
{ AuthenticationStateProviderOnAuthenticationStateChanged;
Menu = await MenuManager.GetAsync(StandardMenus.User);
await InvokeAsync(StateHasChanged);
};
} }
} }
@ -46,10 +43,21 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Themes.Basic
{ {
InvokeAsync(StateHasChanged); InvokeAsync(StateHasChanged);
} }
private async void AuthenticationStateProviderOnAuthenticationStateChanged(Task<AuthenticationState> task)
{
Menu = await MenuManager.GetAsync(StandardMenus.User);
await InvokeAsync(StateHasChanged);
}
public void Dispose() public void Dispose()
{ {
Navigation.LocationChanged -= OnLocationChanged; Navigation.LocationChanged -= OnLocationChanged;
if (AuthenticationStateProvider != null)
{
AuthenticationStateProvider.AuthenticationStateChanged -=
AuthenticationStateProviderOnAuthenticationStateChanged;
}
} }
private async Task NavigateToAsync(string uri, string target = null) private async Task NavigateToAsync(string uri, string target = null)

4
modules/cms-kit/angular/projects/cms-kit/package.json

@ -4,8 +4,8 @@
"peerDependencies": { "peerDependencies": {
"@angular/common": "^9.1.11", "@angular/common": "^9.1.11",
"@angular/core": "^9.1.11", "@angular/core": "^9.1.11",
"@abp/ng.core": ">=5.0.0-beta.1-1", "@abp/ng.core": ">=5.0.0-beta.3-1",
"@abp/ng.theme.shared": ">=5.0.0-beta.1-1" "@abp/ng.theme.shared": ">=5.0.0-beta.3-1"
}, },
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"

6
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js

@ -2,10 +2,10 @@
var l = abp.localization.getResource('CmsKit'); var l = abp.localization.getResource('CmsKit');
var myDefaultWhiteList = $.fn.tooltip.Constructor.Default.whiteList; var myDefaultAllowList = $.fn.tooltip.Constructor.Default.allowList;
if (myDefaultWhiteList.span.indexOf('data-reaction-name') < 0) { if (myDefaultAllowList.span.indexOf('data-reaction-name') < 0) {
myDefaultWhiteList.span.push('data-reaction-name'); myDefaultAllowList.span.push('data-reaction-name');
} }
abp.widgets.CmsReactionSelection = function ($widget) { abp.widgets.CmsReactionSelection = function ($widget) {

6
modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml

@ -13,7 +13,7 @@
<abp-modal size="Large"> <abp-modal size="Large">
<abp-modal-header title="@(L["Permissions"].Value) - @Model.EntityDisplayName"></abp-modal-header> <abp-modal-header title="@(L["Permissions"].Value) - @Model.EntityDisplayName"></abp-modal-header>
<abp-modal-body class="custom-scroll-container"> <abp-modal-body class="custom-scroll-container">
<abp-input asp-for="SelectAllInAllTabs" check-box-hidden-input-render-mode="None" label="@L["SelectAllInAllTabs"].Value"/> <abp-input asp-for="SelectAllInAllTabs" check-box-hidden-input-render-mode="CheckBoxHiddenInputRenderMode.None" label="@L["SelectAllInAllTabs"].Value"/>
<hr class="mt-2 mb-2"/> <hr class="mt-2 mb-2"/>
<input asp-for="@Model.ProviderKey"/> <input asp-for="@Model.ProviderKey"/>
<input asp-for="@Model.ProviderName"/> <input asp-for="@Model.ProviderName"/>
@ -27,7 +27,7 @@
<div class="w-100" style="max-height: 640px;overflow-y: auto"> <div class="w-100" style="max-height: 640px;overflow-y: auto">
<div class="pl-1 pt-1"> <div class="pl-1 pt-1">
<abp-input asp-for="@group.IsAllPermissionsGranted" <abp-input asp-for="@group.IsAllPermissionsGranted"
check-box-hidden-input-render-mode="None" check-box-hidden-input-render-mode="CheckBoxHiddenInputRenderMode.None"
name="SelectAllInThisTab" name="SelectAllInThisTab"
id="SelectAllInThisTab-@group.GetNormalizedGroupName()" id="SelectAllInThisTab-@group.GetNormalizedGroupName()"
data-tab-id="v-pills-tab-@group.GetNormalizedGroupName()" data-tab-id="v-pills-tab-@group.GetNormalizedGroupName()"
@ -37,7 +37,7 @@
{ {
var permission = group.Permissions[j]; var permission = group.Permissions[j];
<abp-input asp-for="@permission.IsGranted" <abp-input asp-for="@permission.IsGranted"
check-box-hidden-input-render-mode="None" check-box-hidden-input-render-mode="CheckBoxHiddenInputRenderMode.None"
abp-id-name="@Model.Groups[i].Permissions[j].IsGranted" abp-id-name="@Model.Groups[i].Permissions[j].IsGranted"
label="@permission.GetShownName(Model.ProviderName)" label="@permission.GetShownName(Model.ProviderName)"
disabled="@permission.IsDisabled(Model.ProviderName)" disabled="@permission.IsDisabled(Model.ProviderName)"

4
npm/lerna.json

@ -1,8 +1,6 @@
{ {
"version": "5.0.0-beta.3", "version": "5.0.0-beta.3",
"packages": [ "packages": ["packs/*"],
"packs/*"
],
"npmClient": "yarn", "npmClient": "yarn",
"lerna": "3.18.4" "lerna": "3.18.4"
} }

12
npm/ng-packs/packages/core/src/lib/directives/autofocus.directive.ts

@ -5,12 +5,20 @@ import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';
selector: '[autofocus]', selector: '[autofocus]',
}) })
export class AutofocusDirective implements AfterViewInit { export class AutofocusDirective implements AfterViewInit {
private _delay = 0;
@Input('autofocus') @Input('autofocus')
delay = 0; set delay(val: number | string | undefined) {
this._delay = Number(val) || 0;
}
get delay() {
return this._delay;
}
constructor(private elRef: ElementRef) {} constructor(private elRef: ElementRef) {}
ngAfterViewInit(): void { ngAfterViewInit(): void {
setTimeout(() => this.elRef.nativeElement.focus(), this.delay); setTimeout(() => this.elRef.nativeElement.focus(), this.delay as number);
} }
} }

10
npm/ng-packs/packages/core/src/lib/directives/permission.directive.ts

@ -1,12 +1,10 @@
import { import {
ChangeDetectorRef, ChangeDetectorRef,
Directive, Directive,
ElementRef,
Input, Input,
OnChanges, OnChanges,
OnDestroy, OnDestroy,
Optional, Optional,
Renderer2,
TemplateRef, TemplateRef,
ViewContainerRef, ViewContainerRef,
} from '@angular/core'; } from '@angular/core';
@ -18,13 +16,11 @@ import { PermissionService } from '../services/permission.service';
selector: '[abpPermission]', selector: '[abpPermission]',
}) })
export class PermissionDirective implements OnDestroy, OnChanges { export class PermissionDirective implements OnDestroy, OnChanges {
@Input('abpPermission') condition: string; @Input('abpPermission') condition: string | undefined;
subscription: Subscription; subscription!: Subscription;
constructor( constructor(
private elRef: ElementRef<HTMLElement>,
private renderer: Renderer2,
@Optional() private templateRef: TemplateRef<any>, @Optional() private templateRef: TemplateRef<any>,
private vcRef: ViewContainerRef, private vcRef: ViewContainerRef,
private permissionService: PermissionService, private permissionService: PermissionService,
@ -37,7 +33,7 @@ export class PermissionDirective implements OnDestroy, OnChanges {
} }
this.subscription = this.permissionService this.subscription = this.permissionService
.getGrantedPolicy$(this.condition) .getGrantedPolicy$(this.condition || '')
.pipe(distinctUntilChanged()) .pipe(distinctUntilChanged())
.subscribe(isGranted => { .subscribe(isGranted => {
this.vcRef.clear(); this.vcRef.clear();

16
npm/ng-packs/packages/core/src/lib/directives/replaceable-template.directive.ts

@ -33,7 +33,7 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges {
context = {} as any; context = {} as any;
externalComponent: Type<any>; externalComponent!: Type<any>;
defaultComponentRef: any; defaultComponentRef: any;
@ -50,7 +50,7 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges {
private subscription: SubscriptionService, private subscription: SubscriptionService,
) { ) {
this.context = { this.context = {
initTemplate: ref => { initTemplate: (ref: any) => {
this.resetDefaultComponent(); this.resetDefaultComponent();
this.defaultComponentRef = ref; this.defaultComponentRef = ref;
this.setDefaultComponentInputs(); this.setDefaultComponentInputs();
@ -121,8 +121,8 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges {
if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) { if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {
if (!this.defaultComponentSubscriptions[key]) { if (!this.defaultComponentSubscriptions[key]) {
this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe( this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe(
value => { (value: any) => {
this.data.outputs[key](value); this.data.outputs?.[key](value);
}, },
); );
} }
@ -132,7 +132,7 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges {
} }
setProvidedData() { setProvidedData() {
this.providedData = { ...this.data, inputs: {} }; this.providedData = { ...this.data, inputs: {}, outputs: {} };
if (!this.data.inputs) return; if (!this.data.inputs) return;
Object.defineProperties(this.providedData.inputs, { Object.defineProperties(this.providedData.inputs, {
@ -142,9 +142,9 @@ export class ReplaceableTemplateDirective implements OnInit, OnChanges {
[key]: { [key]: {
enumerable: true, enumerable: true,
configurable: true, configurable: true,
get: () => this.data.inputs[key].value, get: () => this.data.inputs[key]?.value,
...(this.data.inputs[key].twoWay && { ...(this.data.inputs[key]?.twoWay && {
set: newValue => { set: (newValue: any) => {
this.data.inputs[key].value = newValue; this.data.inputs[key].value = newValue;
this.data.outputs[`${key}Change`](newValue); this.data.outputs[`${key}Change`](newValue);
}, },

2
npm/ng-packs/packages/core/src/lib/models/common.ts

@ -52,7 +52,7 @@ export namespace ABP {
} }
export interface Route extends Nav { export interface Route extends Nav {
path: string; path?: string;
layout?: eLayoutType; layout?: eLayoutType;
iconClass?: string; iconClass?: string;
} }

4
npm/ng-packs/packages/core/src/lib/models/replaceable-components.ts

@ -16,8 +16,8 @@ export namespace ReplaceableComponents {
I, I,
O extends { [K in keyof O]: EventEmitter<any> | Subject<any> }, O extends { [K in keyof O]: EventEmitter<any> | Subject<any> },
> { > {
inputs: { -readonly [K in keyof I]: { value: I[K]; twoWay?: boolean } }; inputs?: { -readonly [K in keyof I]: { value: I[K]; twoWay?: boolean } };
outputs: { -readonly [K in keyof O]: (value: ABP.ExtractFromOutput<O[K]>) => void }; outputs?: { -readonly [K in keyof O]: (value: ABP.ExtractFromOutput<O[K]>) => void };
componentKey: string; componentKey: string;
} }

23
npm/ng-packs/packages/core/src/lib/pipes/localization.pipe.ts

@ -9,13 +9,20 @@ import { LocalizationService } from '../services/localization.service';
export class LocalizationPipe implements PipeTransform { export class LocalizationPipe implements PipeTransform {
constructor(private localization: LocalizationService) {} constructor(private localization: LocalizationService) {}
transform(value: string | LocalizationWithDefault = '', ...interpolateParams: string[]): string { transform(
return this.localization.instant( value: string | LocalizationWithDefault = '',
value, ...interpolateParams: (string | string[] | undefined)[]
...interpolateParams.reduce( ): string {
(acc, val) => (Array.isArray(val) ? [...acc, ...val] : [...acc, val]), const params =
[], interpolateParams.reduce((acc, val) => {
), if (!acc) {
); return val;
}
if (!val) {
return acc;
}
return Array.isArray(val) ? [...acc, ...val] : [...acc, val];
}, []) || [];
return this.localization.instant(value, ...params);
} }
} }

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

@ -48,14 +48,14 @@ export class ConfigStateService {
return this.store.state; return this.store.state;
} }
getDeep$(keys: string[] | string) { getDeep$(keys: string[] | string): Observable<any> {
keys = splitKeys(keys); keys = splitKeys(keys);
return this.store return this.store
.sliceState(state => state) .sliceState(state => state)
.pipe( .pipe(
map(state => { map(state => {
return (keys as string[]).reduce((acc, val) => { return (keys as string[]).reduce((acc: any, val) => {
if (acc) { if (acc) {
return acc[val]; return acc[val];
} }
@ -66,10 +66,10 @@ export class ConfigStateService {
); );
} }
getDeep(keys: string[] | string) { getDeep(keys: string[] | string): any {
keys = splitKeys(keys); keys = splitKeys(keys);
return (keys as string[]).reduce((acc, val) => { return (keys as string[]).reduce((acc: any, val) => {
if (acc) { if (acc) {
return acc[val]; return acc[val];
} }

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

@ -23,11 +23,11 @@ export class EnvironmentService {
return this.store.state; return this.store.state;
} }
getApiUrl(key?: string) { getApiUrl(key: string) {
return mapToApiUrl(key)(this.store.state.apis); return mapToApiUrl(key)(this.store.state.apis);
} }
getApiUrl$(key?: string) { getApiUrl$(key: string) {
return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key))); return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));
} }

2
npm/ng-packs/packages/core/src/lib/services/http-error-reporter.service.ts

@ -4,7 +4,7 @@ import { BehaviorSubject, Subject } from 'rxjs';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class HttpErrorReporterService { export class HttpErrorReporterService {
private _reporter$ = new Subject(); private _reporter$ = new Subject<HttpErrorResponse>();
private _errors$ = new BehaviorSubject<HttpErrorResponse[]>([]); private _errors$ = new BehaviorSubject<HttpErrorResponse[]>([]);
get reporter$() { get reporter$() {

2
npm/ng-packs/packages/core/src/lib/services/lazy-load.service.ts

@ -8,7 +8,7 @@ import { ResourceWaitService } from './resource-wait.service';
providedIn: 'root', providedIn: 'root',
}) })
export class LazyLoadService { export class LazyLoadService {
readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement>(); readonly loaded = new Map<string, HTMLScriptElement | HTMLLinkElement | null>();
constructor(private resourceWaitService: ResourceWaitService) {} constructor(private resourceWaitService: ResourceWaitService) {}

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

@ -21,7 +21,7 @@ import { PagedResultDto } from '../models/dtos';
import { LIST_QUERY_DEBOUNCE_TIME } from '../tokens/list.token'; import { LIST_QUERY_DEBOUNCE_TIME } from '../tokens/list.token';
@Injectable() @Injectable()
export class ListService<QueryParamsType = ABP.PageQueryParams> implements OnDestroy { export class ListService<QueryParamsType = ABP.PageQueryParams | any> implements OnDestroy {
private _filter = ''; private _filter = '';
set filter(value: string) { set filter(value: string) {
this._filter = value; this._filter = value;
@ -112,7 +112,7 @@ export class ListService<QueryParamsType = ABP.PageQueryParams> implements OnDes
switchMap(query => streamCreatorCallback(query).pipe(catchError(() => of(null)))), switchMap(query => streamCreatorCallback(query).pipe(catchError(() => of(null)))),
filter(Boolean), filter(Boolean),
tap(() => this._isLoading$.next(false)), tap(() => this._isLoading$.next(false)),
shareReplay({ bufferSize: 1, refCount: true }), shareReplay<any>({ bufferSize: 1, refCount: true }),
takeUntil(this.destroy$), takeUntil(this.destroy$),
); );
} }

4
npm/ng-packs/packages/core/src/lib/utils/localization-utils.ts

@ -35,7 +35,7 @@ export function createLocalizationPipeKeyGenerator(
) { ) {
const findLocalization = createLocalizationFinder(localization); const findLocalization = createLocalizationFinder(localization);
return (resourceNames: string[], keys: string[], defaultKey: string) => { return (resourceNames: string[], keys: string[], defaultKey: string | undefined) => {
const { resourceName, key } = findLocalization(resourceNames, keys); const { resourceName, key } = findLocalization(resourceNames, keys);
return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`; return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
}; };
@ -45,7 +45,7 @@ function createLocalizationFinder(localization: ApplicationLocalizationConfigura
const localize = createLocalizer(localization); const localize = createLocalizer(localization);
return (resourceNames: string[], keys: string[]) => { return (resourceNames: string[], keys: string[]) => {
resourceNames = resourceNames.concat(localization.defaultResourceName).filter(Boolean); resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
const resourceCount = resourceNames.length; const resourceCount = resourceNames.length;
const keyCount = keys.length; const keyCount = keys.length;

4
npm/ng-packs/packages/setting-management/config/src/components/email-setting-group/email-setting-group.component.html

@ -2,7 +2,7 @@
<hr class="my-3" /> <hr class="my-3" />
<form *ngIf="form" [formGroup]="form" (ngSubmit)="submit()" validateOnSubmit> <form *ngIf="form" [formGroup]="form" (ngSubmit)="submit()" [validateOnSubmit]="true">
<div class="mb-3 form-group"> <div class="mb-3 form-group">
<label class="form-label">{{ <label class="form-label">{{
'AbpSettingManagement::DefaultFromDisplayName' | abpLocalization 'AbpSettingManagement::DefaultFromDisplayName' | abpLocalization
@ -49,7 +49,7 @@
<div <div
[@collapse]="{ [@collapse]="{
value: form.get('smtpUseDefaultCredentials').value ? 'collapsed' : 'expanded', value: form.get('smtpUseDefaultCredentials')?.value ? 'collapsed' : 'expanded',
params: { time: '200ms', easing: 'linear' } params: { time: '200ms', easing: 'linear' }
}" }"
> >

2
npm/ng-packs/packages/setting-management/config/src/components/email-setting-group/email-setting-group.component.ts

@ -11,7 +11,7 @@ import { EmailSettingsDto } from '../../proxy/models';
animations: [collapse], animations: [collapse],
}) })
export class EmailSettingGroupComponent implements OnInit { export class EmailSettingGroupComponent implements OnInit {
form: FormGroup; form!: FormGroup;
saving = false; saving = false;

2
npm/ng-packs/packages/setting-management/config/src/providers/features.token.ts

@ -10,7 +10,7 @@ export const SETTING_MANAGEMENT_FEATURES = new InjectionToken<Observable<{ enabl
factory: () => { factory: () => {
const configState = inject(ConfigStateService); const configState = inject(ConfigStateService);
const featureKey = 'SettingManagement.Enable'; const featureKey = 'SettingManagement.Enable';
const mapFn = features => ({ const mapFn = (features: Record<string, string>) => ({
enable: features[featureKey].toLowerCase() !== 'false', enable: features[featureKey].toLowerCase() !== 'false',
}); });
return featuresFactory(configState, [featureKey], mapFn); return featuresFactory(configState, [featureKey], mapFn);

4
npm/ng-packs/packages/setting-management/src/lib/components/setting-management.component.ts

@ -1,6 +1,6 @@
import { ABP } from '@abp/ng.core'; import { ABP } from '@abp/ng.core';
import { Component, OnDestroy, OnInit, TrackByFunction } from '@angular/core';
import { SettingTabsService } from '@abp/ng.setting-management/config'; import { SettingTabsService } from '@abp/ng.setting-management/config';
import { Component, OnDestroy, OnInit, TrackByFunction } from '@angular/core';
import { Subscription } from 'rxjs'; import { Subscription } from 'rxjs';
@Component({ @Component({
@ -11,7 +11,7 @@ export class SettingManagementComponent implements OnDestroy, OnInit {
private subscription = new Subscription(); private subscription = new Subscription();
settings: ABP.Tab[] = []; settings: ABP.Tab[] = [];
selected: ABP.Tab; selected!: ABP.Tab;
trackByFn: TrackByFunction<ABP.Tab> = (_, item) => item.name; trackByFn: TrackByFunction<ABP.Tab> = (_, item) => item.name;

8
npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.html

@ -23,8 +23,8 @@
</div> </div>
<abp-extensible-table <abp-extensible-table
[data]="data.items" [data]="data.items || []"
[recordsTotal]="data.totalCount" [recordsTotal]="data.totalCount || 0"
[list]="list" [list]="list"
></abp-extensible-table> ></abp-extensible-table>
</div> </div>
@ -41,7 +41,7 @@
</ng-template> </ng-template>
<ng-template #abpBody> <ng-template #abpBody>
<form [formGroup]="tenantForm" (ngSubmit)="save()" validateOnSubmit> <form [formGroup]="tenantForm" (ngSubmit)="save()" [validateOnSubmit]="true">
<abp-extensible-form [selectedRecord]="selected"></abp-extensible-form> <abp-extensible-form [selectedRecord]="selected"></abp-extensible-form>
</form> </form>
</ng-template> </ng-template>
@ -63,7 +63,7 @@
providerKey: { value: providerKey }, providerKey: { value: providerKey },
visible: { value: visibleFeatures, twoWay: true } visible: { value: visibleFeatures, twoWay: true }
}, },
outputs: { visibleChange: onVisibleFeaturesChange }, outputs: { visibleChange: $any(onVisibleFeaturesChange) },
componentKey: featureManagementKey componentKey: featureManagementKey
}" }"
[(visible)]="visibleFeatures" [(visible)]="visibleFeatures"

12
npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts

@ -26,17 +26,15 @@ import { eTenantManagementComponents } from '../../enums/components';
export class TenantsComponent implements OnInit { export class TenantsComponent implements OnInit {
data: PagedResultDto<TenantDto> = { items: [], totalCount: 0 }; data: PagedResultDto<TenantDto> = { items: [], totalCount: 0 };
selected: TenantDto; selected!: TenantDto;
tenantForm: FormGroup; tenantForm!: FormGroup;
isModalVisible: boolean; isModalVisible!: boolean;
visibleFeatures = false; visibleFeatures = false;
providerKey: string; providerKey!: string;
_useSharedDatabase: boolean;
modalBusy = false; modalBusy = false;
@ -142,7 +140,7 @@ export class TenantsComponent implements OnInit {
}, 0); }, 0);
} }
sort(data) { sort(data: any) {
const { prop, dir } = data.sorts[0]; const { prop, dir } = data.sorts[0];
this.list.sortKey = prop; this.list.sortKey = prop;
this.list.sortOrder = dir; this.list.sortOrder = dir;

2
npm/ng-packs/packages/tenant-management/src/lib/defaults/default-tenants-toolbar-actions.ts

@ -7,7 +7,7 @@ export const DEFAULT_TENANTS_TOOLBAR_ACTIONS = ToolbarAction.createMany<TenantDt
text: 'AbpTenantManagement::ManageHostFeatures', text: 'AbpTenantManagement::ManageHostFeatures',
action: data => { action: data => {
const component = data.getInjected(TenantsComponent); const component = data.getInjected(TenantsComponent);
component.openFeaturesModal(null); component.openFeaturesModal('');
}, },
permission: 'FeatureManagement.ManageHostFeatures', permission: 'FeatureManagement.ManageHostFeatures',
icon: 'fa fa-cog', icon: 'fa fa-cog',

2
npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/tenant-box/tenant-box.component.html

@ -1,4 +1,4 @@
<ng-container *ngIf="(service.currentTenant$ | async) || {} as currentTenant"> <ng-container *ngIf="(service.currentTenant$ | async) || { name: '' } as currentTenant">
<div class="card shadow-sm rounded mb-3"> <div class="card shadow-sm rounded mb-3">
<div class="card-body px-5"> <div class="card-body px-5">
<div class="row"> <div class="row">

2
npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.ts

@ -21,7 +21,7 @@ export class CurrentUserComponent {
} }
constructor( constructor(
@Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile, @Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile: () => void,
private authService: AuthService, private authService: AuthService,
private configState: ConfigStateService, private configState: ConfigStateService,
private sessionState: SessionStateService, private sessionState: SessionStateService,

6
npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/languages.component.ts

@ -7,7 +7,7 @@ import { map } from 'rxjs/operators';
selector: 'abp-languages', selector: 'abp-languages',
template: ` template: `
<div <div
*ngIf="(dropdownLanguages$ | async)?.length > 0" *ngIf="((dropdownLanguages$ | async)?.length || 0) > 0"
class="dropdown" class="dropdown"
ngbDropdown ngbDropdown
#languageDropdown="ngbDropdown" #languageDropdown="ngbDropdown"
@ -34,7 +34,7 @@ import { map } from 'rxjs/operators';
*ngFor="let lang of dropdownLanguages$ | async" *ngFor="let lang of dropdownLanguages$ | async"
href="javascript:void(0)" href="javascript:void(0)"
class="dropdown-item" class="dropdown-item"
(click)="onChangeLang(lang.cultureName)" (click)="onChangeLang(lang.cultureName || '')"
>{{ lang?.displayName }}</a >{{ lang?.displayName }}</a
> >
</div> </div>
@ -52,7 +52,7 @@ export class LanguagesComponent {
return this.languages$.pipe( return this.languages$.pipe(
map( map(
languages => languages =>
languages?.find(lang => lang.cultureName === this.selectedLangCulture).displayName || '', languages?.find(lang => lang.cultureName === this.selectedLangCulture)?.displayName || '',
), ),
); );
} }

2
npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/nav-items.component.html

@ -1,6 +1,6 @@
<ul class="navbar-nav"> <ul class="navbar-nav">
<ng-container *ngFor="let item of navItems.items$ | async; trackBy: trackByFn"> <ng-container *ngFor="let item of navItems.items$ | async; trackBy: trackByFn">
<ng-container *ngIf="item.visible()"> <ng-container *ngIf="item.visible && item.visible()">
<li class="nav-item d-flex align-items-center" *abpPermission="item.requiredPolicy"> <li class="nav-item d-flex align-items-center" *abpPermission="item.requiredPolicy">
<ng-container <ng-container
*ngIf="item.component; else htmlTemplate" *ngIf="item.component; else htmlTemplate"

9
npm/ng-packs/packages/theme-basic/src/lib/components/routes/routes.component.html

@ -18,14 +18,13 @@
<ng-template #dropdownLink let-route> <ng-template #dropdownLink let-route>
<ng-container *ngIf="route.children?.length"> <ng-container *ngIf="route.children?.length">
<li <li
#navbarRootDropdown
class="nav-item dropdown" class="nav-item dropdown"
display="static" display="static"
*abpPermission="route.requiredPolicy" *abpPermission="route.requiredPolicy"
(click)=" (click)="
navbarRootDropdown.expand rootDropdownExpand[route.name]
? (navbarRootDropdown.expand = false) ? (rootDropdownExpand[route.name] = false)
: (navbarRootDropdown.expand = true) : (rootDropdownExpand[route.name] = true)
" "
> >
<a <a
@ -42,7 +41,7 @@
#routeContainer #routeContainer
class="dropdown-menu border-0 shadow-sm" class="dropdown-menu border-0 shadow-sm"
(click)="$event.preventDefault(); $event.stopPropagation()" (click)="$event.preventDefault(); $event.stopPropagation()"
[class.d-block]="smallScreen && navbarRootDropdown.expand" [class.d-block]="smallScreen && rootDropdownExpand[route.name]"
> >
<ng-container <ng-container
*ngTemplateOutlet="forTemplate; context: { $implicit: route }" *ngTemplateOutlet="forTemplate; context: { $implicit: route }"

6
npm/ng-packs/packages/theme-basic/src/lib/components/routes/routes.component.ts

@ -14,9 +14,11 @@ import {
templateUrl: 'routes.component.html', templateUrl: 'routes.component.html',
}) })
export class RoutesComponent { export class RoutesComponent {
@Input() smallScreen: boolean; @Input() smallScreen?: boolean;
@ViewChildren('childrenContainer') childrenContainers: QueryList<ElementRef<HTMLDivElement>>; @ViewChildren('childrenContainer') childrenContainers!: QueryList<ElementRef<HTMLDivElement>>;
rootDropdownExpand = {} as { [key: string]: boolean };
trackByFn: TrackByFunction<TreeNode<ABP.Route>> = (_, item) => item.name; trackByFn: TrackByFunction<TreeNode<ABP.Route>> = (_, item) => item.name;

2
npm/ng-packs/packages/theme-basic/src/lib/components/validation-error/validation-error.component.ts

@ -12,7 +12,7 @@ import { Validation, ValidationErrorComponent as ErrorComponent } from '@ngx-val
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
}) })
export class ValidationErrorComponent extends ErrorComponent { export class ValidationErrorComponent extends ErrorComponent {
get abpErrors(): Validation.Error[] & { interpoliteParams?: string[] } { get abpErrors(): (Validation.Error & { interpoliteParams?: string[] })[] {
if (!this.errors || !this.errors.length) return []; if (!this.errors || !this.errors.length) return [];
return this.errors.map(error => { return this.errors.map(error => {

8
npm/ng-packs/packages/theme-basic/src/lib/handlers/lazy-style.handler.ts

@ -6,8 +6,8 @@ export const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';
@Injectable() @Injectable()
export class LazyStyleHandler { export class LazyStyleHandler {
private lazyLoad: LazyLoadService; private lazyLoad!: LazyLoadService;
private styles: string[]; private styles!: string[];
private _dir: LocaleDirection = 'ltr'; private _dir: LocaleDirection = 'ltr';
readonly loaded = new Map<string, HTMLLinkElement>(); readonly loaded = new Map<string, HTMLLinkElement>();
@ -29,7 +29,7 @@ export class LazyStyleHandler {
this.listenToDirectionChanges(injector); this.listenToDirectionChanges(injector);
} }
private getHrefFromLink(link: HTMLLinkElement | null): string { private getHrefFromLink(link: HTMLLinkElement | null | undefined): string {
if (!link) return ''; if (!link) return '';
const a = document.createElement('a'); const a = document.createElement('a');
@ -94,5 +94,5 @@ export function initLazyStyleHandler(injector: Injector) {
interface LoadedStyle { interface LoadedStyle {
href: string; href: string;
link: HTMLLinkElement; link: HTMLLinkElement | null;
} }

6
npm/ng-packs/packages/theme-basic/src/lib/services/layout.service.ts

@ -1,14 +1,14 @@
import { ChangeDetectorRef, Injectable } from '@angular/core';
import { eThemeBasicComponents } from '../enums';
import { SubscriptionService } from '@abp/ng.core'; import { SubscriptionService } from '@abp/ng.core';
import { ChangeDetectorRef, Injectable } from '@angular/core';
import { fromEvent } from 'rxjs'; import { fromEvent } from 'rxjs';
import { debounceTime } from 'rxjs/operators'; import { debounceTime } from 'rxjs/operators';
import { eThemeBasicComponents } from '../enums';
@Injectable() @Injectable()
export class LayoutService { export class LayoutService {
isCollapsed = true; isCollapsed = true;
smallScreen: boolean; // do not set true or false smallScreen!: boolean; // do not set true or false
logoComponentKey = eThemeBasicComponents.Logo; logoComponentKey = eThemeBasicComponents.Logo;

9
npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/date-time.adapter.ts

@ -3,7 +3,7 @@ import { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';
@Injectable() @Injectable()
export class DateTimeAdapter { export class DateTimeAdapter {
value: NgbDateTimeStruct; value!: NgbDateTimeStruct;
fromModel(value: string | Date): NgbDateTimeStruct | null { fromModel(value: string | Date): NgbDateTimeStruct | null {
if (!value) return null; if (!value) return null;
@ -27,15 +27,16 @@ export class DateTimeAdapter {
toModel(value: NgbDateTimeStruct | null): string { toModel(value: NgbDateTimeStruct | null): string {
if (!value) return ''; if (!value) return '';
const now = new Date(); //const now = new Date();
value = { value = {
year: now.getUTCFullYear(), // TODO
/* year: now.getUTCFullYear(),
month: now.getMonth() + 1, month: now.getMonth() + 1,
day: now.getDate(), day: now.getDate(),
hour: 0, hour: 0,
minute: 0, minute: 0,
second: 0, second: 0, */
...this.value, ...this.value,
...value, ...value,
}; };

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/date.adapter.ts

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap'; import { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
@Injectable() @Injectable()
export class DateAdapter extends NgbDateAdapter<string> { export class DateAdapter extends NgbDateAdapter<string | Date> {
fromModel(value: string | Date): NgbDateStruct | null { fromModel(value: string | Date): NgbDateStruct | null {
if (!value) return null; if (!value) return null;

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/adapters/time.adapter.ts

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap'; import { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';
@Injectable() @Injectable()
export class TimeAdapter extends NgbTimeAdapter<string> { export class TimeAdapter extends NgbTimeAdapter<string | Date> {
fromModel(value: string | Date): NgbTimeStruct | null { fromModel(value: string | Date): NgbTimeStruct | null {
if (!value) return null; if (!value) return null;

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/abstract-actions/abstract-actions.component.ts

@ -13,7 +13,7 @@ export abstract class AbstractActionsComponent<L extends ActionList<any>> extend
readonly getInjected: InferredData<L>['getInjected']; readonly getInjected: InferredData<L>['getInjected'];
@Input() readonly record: InferredData<L>['record']; @Input() record!: InferredData<L>['record'];
constructor(injector: Injector) { constructor(injector: Injector) {
super(); super();

6
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts

@ -58,11 +58,11 @@ import { selfFactory } from '../../utils/factory.util';
], ],
}) })
export class DateTimePickerComponent { export class DateTimePickerComponent {
@Input() prop: FormProp; @Input() prop!: FormProp;
@Input() meridian = false; @Input() meridian = false;
@ViewChild(NgbInputDatepicker) date: NgbInputDatepicker; @ViewChild(NgbInputDatepicker) date!: NgbInputDatepicker;
@ViewChild(NgbTimepicker) time: NgbTimepicker; @ViewChild(NgbTimepicker) time!: NgbTimepicker;
constructor(public readonly cdRef: ChangeDetectorRef) {} constructor(public readonly cdRef: ChangeDetectorRef) {}

18
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts

@ -46,13 +46,13 @@ import { addTypeaheadTextSuffix } from '../../utils/typeahead.util';
], ],
}) })
export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit { export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
@Input() data: PropData; @Input() data!: PropData;
@Input() prop: FormProp; @Input() prop!: FormProp;
@Input() first: boolean; @Input() first?: boolean;
@ViewChild('field') private fieldRef: ElementRef<HTMLElement>; @ViewChild('field') private fieldRef!: ElementRef<HTMLElement>;
asterisk = ''; asterisk = '';
@ -60,9 +60,9 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
validators: ValidatorFn[] = []; validators: ValidatorFn[] = [];
readonly: boolean; readonly!: boolean;
disabled: boolean; disabled!: boolean;
private readonly form: FormGroup; private readonly form: FormGroup;
@ -72,9 +72,9 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
this.typeaheadModel = selectedOption || { key: null, value: null }; this.typeaheadModel = selectedOption || { key: null, value: null };
const { key, value } = this.typeaheadModel; const { key, value } = this.typeaheadModel;
const [keyControl, valueControl] = this.getTypeaheadControls(); const [keyControl, valueControl] = this.getTypeaheadControls();
if (valueControl.value && !value) valueControl.markAsDirty(); if (valueControl?.value && !value) valueControl.markAsDirty();
keyControl.setValue(key); keyControl?.setValue(key);
valueControl.setValue(value); valueControl?.setValue(value);
} }
search = (text$: Observable<string>) => search = (text$: Observable<string>) =>

6
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts

@ -33,7 +33,7 @@ import { ExtensibleFormPropComponent } from './extensible-form-prop.component';
}) })
export class ExtensibleFormComponent<R = any> { export class ExtensibleFormComponent<R = any> {
@ViewChildren(ExtensibleFormPropComponent) @ViewChildren(ExtensibleFormPropComponent)
formProps: QueryList<ExtensibleFormPropComponent>; formProps!: QueryList<ExtensibleFormPropComponent>;
@Input() @Input()
set selectedRecord(record: R) { set selectedRecord(record: R) {
@ -43,8 +43,8 @@ export class ExtensibleFormComponent<R = any> {
} }
extraPropertiesKey = EXTRA_PROPERTIES_KEY; extraPropertiesKey = EXTRA_PROPERTIES_KEY;
propList: FormPropList<R>; propList!: FormPropList<R>;
record: R; record!: R;
get form(): FormGroup { get form(): FormGroup {
return (this.container ? this.container.control : { controls: {} }) as FormGroup; return (this.container ? this.container.control : { controls: {} }) as FormGroup;

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/directives/disabled.directive.ts

@ -6,7 +6,7 @@ import { NgControl } from '@angular/forms';
}) })
export class DisabledDirective implements OnChanges { export class DisabledDirective implements OnChanges {
@Input() @Input()
abpDisabled: boolean; abpDisabled = false;
constructor(@Host() private ngControl: NgControl) {} constructor(@Host() private ngControl: NgControl) {}

6
npm/ng-packs/packages/theme-shared/extensions/src/lib/directives/prop-data.directive.ts

@ -18,11 +18,11 @@ export class PropDataDirective<L extends PropList<any>>
extends PropData<InferredData<L>> extends PropData<InferredData<L>>
implements OnChanges, OnDestroy implements OnChanges, OnDestroy
{ {
@Input('abpPropDataFromList') readonly propList: L; @Input('abpPropDataFromList') propList?: L;
@Input('abpPropDataWithRecord') readonly record: InferredData<L>['record']; @Input('abpPropDataWithRecord') record!: InferredData<L>['record'];
@Input('abpPropDataAtIndex') readonly index: number; @Input('abpPropDataAtIndex') index?: number;
readonly getInjected: InferredData<L>['getInjected']; readonly getInjected: InferredData<L>['getInjected'];

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/actions.ts

@ -32,7 +32,7 @@ export abstract class Action<R = any> {
) {} ) {}
} }
export type ActionCallback<T, R = any> = (data?: Omit<ActionData<T>, 'data'>) => R; export type ActionCallback<T, R = any> = (data: Omit<ActionData<T>, 'data'>) => R;
export type ActionPredicate<T> = (data?: Omit<ActionData<T>, 'data'>) => boolean; export type ActionPredicate<T> = (data?: Omit<ActionData<T>, 'data'>) => boolean;
export abstract class ActionsFactory<C extends Actions<any>> { export abstract class ActionsFactory<C extends Actions<any>> {

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/props.ts

@ -38,7 +38,7 @@ export abstract class Prop<R = any> {
} }
} }
export type PropCallback<T, R = any> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => R; export type PropCallback<T, R = any> = (data: Omit<PropData<T>, 'data'>, auxData?: any) => R;
export type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => boolean; export type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => boolean;
export abstract class PropsFactory<C extends Props<any>> { export abstract class PropsFactory<C extends Props<any>> {

4
npm/ng-packs/packages/theme-shared/extensions/src/lib/models/toolbar-actions.ts

@ -27,7 +27,7 @@ export class ToolbarAction<R = any> extends Action<R> {
readonly icon: string; readonly icon: string;
constructor(options: ToolbarActionOptions<R>) { constructor(options: ToolbarActionOptions<R>) {
super(options.permission, options.visible, options.action); super(options.permission || '', options.visible, options.action);
this.text = options.text; this.text = options.text;
this.icon = options.icon || ''; this.icon = options.icon || '';
} }
@ -45,7 +45,7 @@ export class ToolbarComponent<R = any> extends Action<R> {
readonly component: Type<any>; readonly component: Type<any>;
constructor(options: ToolbarComponentOptions<R>) { constructor(options: ToolbarComponentOptions<R>) {
super(options.permission, options.visible, options.action); super(options.permission || '', options.visible, options.action);
this.component = options.component; this.component = options.component;
} }

10
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/enum.util.ts

@ -8,7 +8,7 @@ import { PropCallback } from '../models/props';
export function createEnum(members: ObjectExtensions.ExtensionEnumFieldDto[]) { export function createEnum(members: ObjectExtensions.ExtensionEnumFieldDto[]) {
const enumObject: any = {}; const enumObject: any = {};
members.forEach(({ name, value }) => { members.forEach(({ name = '', value }) => {
enumObject[(enumObject[name] = value as any)] = name; enumObject[(enumObject[name] = value as any)] = name;
}); });
@ -21,7 +21,7 @@ export function createEnumValueResolver<T = any>(
propName: string, propName: string,
): PropCallback<T, Observable<string>> { ): PropCallback<T, Observable<string>> {
return data => { return data => {
const value = data.record[EXTRA_PROPERTIES_KEY][propName]; const value = (data.record as any)[EXTRA_PROPERTIES_KEY][propName];
const key = lookupEnum.transformed[value]; const key = lookupEnum.transformed[value];
const l10n = data.getInjected(LocalizationService); const l10n = data.getInjected(LocalizationService);
const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum); const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);
@ -40,7 +40,7 @@ export function createEnumOptions<T = any>(
return createLocalizationStream( return createLocalizationStream(
l10n, l10n,
lookupEnum.fields.map(({ name, value }) => ({ lookupEnum.fields.map(({ name = '', value }) => ({
key: localizeEnum(name), key: localizeEnum(name),
value, value,
})), })),
@ -62,12 +62,12 @@ function createEnumLocalizer(
return key => return key =>
l10n.localizeWithFallbackSync( l10n.localizeWithFallbackSync(
[resource], [resource || ''],
['Enum:' + shortType + '.' + key, shortType + '.' + key, key], ['Enum:' + shortType + '.' + key, shortType + '.' + key, key],
key, key,
); );
} }
function getShortEnumType(enumType: string): string { function getShortEnumType(enumType: string) {
return enumType.split('.').pop(); return enumType.split('.').pop();
} }

10
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/localization.util.ts

@ -15,19 +15,23 @@ export function createDisplayNameLocalizationPipeKeyGenerator(
) => { ) => {
if (displayName && displayName.name) if (displayName && displayName.name)
return generateLocalizationPipeKey( return generateLocalizationPipeKey(
[displayName.resource], [displayName.resource || ''],
[displayName.name], [displayName.name],
displayName.name, displayName.name,
); );
const key = generateLocalizationPipeKey( const key = generateLocalizationPipeKey(
[fallback.resource], [fallback.resource || ''],
['DisplayName:' + fallback.name], ['DisplayName:' + fallback.name],
undefined, undefined,
); );
if (key) return key; if (key) return key;
return generateLocalizationPipeKey([fallback.resource], [fallback.name], fallback.name); return generateLocalizationPipeKey(
[fallback.resource || ''],
[fallback.name || ''],
fallback.name,
);
}; };
} }

9
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/state.util.ts

@ -74,7 +74,7 @@ export function mapEntitiesToContributors<T = any>(
resource: string, resource: string,
) { ) {
return pipe( return pipe(
switchMap(entities => switchMap((entities: any) =>
zip(selectLocalization(configState), selectEnums(configState)).pipe( zip(selectLocalization(configState), selectEnums(configState)).pipe(
map(([localization, enums]) => { map(([localization, enums]) => {
const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization); const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
@ -166,8 +166,9 @@ function createPropertiesToContributorsMapper<T = any>(
if (isOnCreateForm || isOnEditForm) { if (isOnCreateForm || isOnEditForm) {
const defaultValue = property.defaultValue; const defaultValue = property.defaultValue;
const validators = () => getValidatorsFromProperty(property); const validators = () => getValidatorsFromProperty(property);
let options: PropCallback<any, Observable<ABP.Option<any>[]>>; let options: PropCallback<any, Observable<ABP.Option<any>[]>> | undefined;
if (type === ePropType.Enum) options = createEnumOptions(propName, enums[property.type]); if (type === ePropType.Enum)
options = createEnumOptions(propName, enums[property.type || '']);
else if (type === ePropType.Typeahead) options = createTypeaheadOptions(lookup); else if (type === ePropType.Typeahead) options = createTypeaheadOptions(lookup);
const formProp = new FormProp({ const formProp = new FormProp({
@ -192,7 +193,7 @@ function createPropertiesToContributorsMapper<T = any>(
} }
function getTypeFromProperty(property: ObjectExtensions.ExtensionPropertyDto): ePropType { function getTypeFromProperty(property: ObjectExtensions.ExtensionPropertyDto): ePropType {
return property.typeSimple.replace(/\?$/, '') as string as ePropType; return property?.typeSimple?.replace(/\?$/, '') as string as ePropType;
} }
function isUndefined(obj: any): obj is undefined { function isUndefined(obj: any): obj is undefined {

16
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/typeahead.util.ts

@ -12,25 +12,25 @@ export function createTypeaheadOptions(
lookup: ExtensionPropertyUiLookupDto, lookup: ExtensionPropertyUiLookupDto,
): PropCallback<any, Observable<ABP.Option<any>[]>> { ): PropCallback<any, Observable<ABP.Option<any>[]>> {
return (data, searchText) => return (data, searchText) =>
searchText searchText && data
? data ? data
.getInjected(RestService) .getInjected(RestService)
.request( .request(
{ {
method: 'GET', method: 'GET',
url: lookup.url, url: lookup.url || '',
params: { params: {
[lookup.filterParamName]: searchText, [lookup.filterParamName || '']: searchText,
}, },
}, },
{ apiName: 'Default' }, { apiName: 'Default' },
) )
.pipe( .pipe(
map(response => { map((response: any) => {
const list = response[lookup.resultListPropertyName]; const list = response[lookup.resultListPropertyName || ''];
const mapToOption = (item: any) => ({ const mapToOption = (item: any) => ({
key: item[lookup.displayPropertyName], key: item[lookup.displayPropertyName || ''],
value: item[lookup.valuePropertyName], value: item[lookup.valuePropertyName || ''],
}); });
return list.map(mapToOption); return list.map(mapToOption);
}), }),
@ -51,7 +51,7 @@ export function createTypeaheadDisplayNameGenerator(
properties: ObjectExtensions.EntityExtensionProperties, properties: ObjectExtensions.EntityExtensionProperties,
): ObjectExtensions.DisplayNameGeneratorFn { ): ObjectExtensions.DisplayNameGeneratorFn {
return (displayName, fallback) => { return (displayName, fallback) => {
const name = removeTypeaheadTextSuffix(fallback.name); const name = removeTypeaheadTextSuffix(fallback.name || '');
return displayNameGeneratorFn(displayName || properties[name].displayName, { return displayNameGeneratorFn(displayName || properties[name].displayName, {
name, name,
resource: fallback.resource, resource: fallback.resource,

5
npm/ng-packs/packages/theme-shared/extensions/src/lib/utils/validation.util.ts

@ -8,8 +8,9 @@ export function getValidatorsFromProperty(
const validators: ValidatorFn[] = []; const validators: ValidatorFn[] = [];
property.attributes.forEach(attr => { property.attributes.forEach(attr => {
if (attr.typeSimple in AbpValidators) if (attr.typeSimple && attr.typeSimple in AbpValidators) {
validators.push(AbpValidators[attr.typeSimple](attr.config)); validators.push((AbpValidators as any)[attr.typeSimple](attr.config));
}
}); });
return validators; return validators;

3
npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb-items/breadcrumb-items.component.ts

@ -1,3 +1,4 @@
import { ABP } from '@abp/ng.core';
import { Component, Input } from '@angular/core'; import { Component, Input } from '@angular/core';
@Component({ @Component({
@ -5,5 +6,5 @@ import { Component, Input } from '@angular/core';
templateUrl: './breadcrumb-items.component.html', templateUrl: './breadcrumb-items.component.html',
}) })
export class BreadcrumbItemsComponent { export class BreadcrumbItemsComponent {
@Input() items = []; @Input() items: Partial<ABP.Route>[] = [];
} }

12
npm/ng-packs/packages/theme-shared/src/lib/components/button/button.component.ts

@ -39,16 +39,16 @@ export class ButtonComponent implements OnInit {
buttonType = 'button'; buttonType = 'button';
@Input() @Input()
iconClass: string; iconClass?: string;
@Input() @Input()
loading = false; loading = false;
@Input() @Input()
disabled = false; disabled: boolean | undefined = false;
@Input() @Input()
attributes: ABP.Dictionary<string>; attributes?: ABP.Dictionary<string>;
@Output() readonly click = new EventEmitter<MouseEvent>(); @Output() readonly click = new EventEmitter<MouseEvent>();
@ -63,7 +63,7 @@ export class ButtonComponent implements OnInit {
@Output() readonly abpBlur = new EventEmitter<FocusEvent>(); @Output() readonly abpBlur = new EventEmitter<FocusEvent>();
@ViewChild('button', { static: true }) @ViewChild('button', { static: true })
buttonRef: ElementRef<HTMLButtonElement>; buttonRef!: ElementRef<HTMLButtonElement>;
get icon(): string { get icon(): string {
return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`; return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`;
@ -74,7 +74,9 @@ export class ButtonComponent implements OnInit {
ngOnInit() { ngOnInit() {
if (this.attributes) { if (this.attributes) {
Object.keys(this.attributes).forEach(key => { Object.keys(this.attributes).forEach(key => {
this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]); if (this.attributes?.[key]) {
this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]);
}
}); });
} }
} }

4
npm/ng-packs/packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts

@ -12,9 +12,9 @@ export class ConfirmationComponent {
reject = Confirmation.Status.reject; reject = Confirmation.Status.reject;
dismiss = Confirmation.Status.dismiss; dismiss = Confirmation.Status.dismiss;
confirmation$: ReplaySubject<Confirmation.DialogData>; confirmation$!: ReplaySubject<Confirmation.DialogData>;
clear: (status: Confirmation.Status) => void; clear!: (status: Confirmation.Status) => void;
close(status: Confirmation.Status) { close(status: Confirmation.Status) {
this.clear(status); this.clear(status);

24
npm/ng-packs/packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts

@ -22,11 +22,11 @@ import { debounceTime, filter } from 'rxjs/operators';
providers: [SubscriptionService], providers: [SubscriptionService],
}) })
export class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnInit { export class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnInit {
appRef: ApplicationRef; appRef!: ApplicationRef;
cfRes: ComponentFactoryResolver; cfRes!: ComponentFactoryResolver;
injector: Injector; injector!: Injector;
status = 0; status = 0;
@ -34,18 +34,18 @@ export class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnIn
details: LocalizationParam = 'Sorry, an error has occured.'; details: LocalizationParam = 'Sorry, an error has occured.';
customComponent: Type<any> = null; customComponent: Type<any> | undefined = undefined;
destroy$: Subject<void>; destroy$!: Subject<void>;
hideCloseIcon = false; hideCloseIcon = false;
backgroundColor: string; backgroundColor!: string;
isHomeShow = true; isHomeShow = true;
@ViewChild('container', { static: false }) @ViewChild('container', { static: false })
containerRef: ElementRef<HTMLDivElement>; containerRef?: ElementRef<HTMLDivElement>;
get statusText(): string { get statusText(): string {
return this.status ? `[${this.status}]` : ''; return this.status ? `[${this.status}]` : '';
@ -66,13 +66,15 @@ export class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnIn
customComponentRef.instance.errorStatus = this.status; customComponentRef.instance.errorStatus = this.status;
customComponentRef.instance.destroy$ = this.destroy$; customComponentRef.instance.destroy$ = this.destroy$;
this.appRef.attachView(customComponentRef.hostView); this.appRef.attachView(customComponentRef.hostView);
this.containerRef.nativeElement.appendChild( if (this.containerRef) {
(customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0], this.containerRef.nativeElement.appendChild(
); (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],
);
}
customComponentRef.changeDetectorRef.detectChanges(); customComponentRef.changeDetectorRef.detectChanges();
} }
const keyup$ = fromEvent(document, 'keyup').pipe( const keyup$ = fromEvent<KeyboardEvent>(document, 'keyup').pipe(
debounceTime(150), debounceTime(150),
filter((key: KeyboardEvent) => key && key.key === 'Escape'), filter((key: KeyboardEvent) => key && key.key === 'Escape'),
); );

2
npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts

@ -22,7 +22,7 @@ import { combineLatest, Subscription, timer } from 'rxjs';
providers: [SubscriptionService], providers: [SubscriptionService],
}) })
export class LoaderBarComponent implements OnDestroy, OnInit { export class LoaderBarComponent implements OnDestroy, OnInit {
protected _isLoading: boolean; protected _isLoading!: boolean;
@Input() @Input()
set isLoading(value: boolean) { set isLoading(value: boolean) {

2
npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal-ref.service.ts

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
export type ModalDismissMode = 'hard' | 'soft'; export type ModalDismissMode = 'hard' | 'soft';
export interface DismissableModal { export interface DismissableModal {
dismiss(mode: ModalDismissMode); dismiss(mode: ModalDismissMode): void;
} }
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })

4
npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.html

@ -1,7 +1,7 @@
<ng-content></ng-content> <ng-content></ng-content>
<ng-template #modalContent let-modal> <ng-template #modalContent let-modal>
<div id="abp-modal-header" class="modal-header"> <div *ngIf="abpHeader" id="abp-modal-header" class="modal-header">
<ng-container *ngTemplateOutlet="abpHeader"></ng-container> <ng-container *ngTemplateOutlet="abpHeader"></ng-container>
​ ​
<button <button
@ -12,7 +12,7 @@
(click)="modal.dismiss()" (click)="modal.dismiss()"
></button> ></button>
</div> </div>
<div id="abp-modal-body" class="modal-body"> <div *ngIf="abpBody" id="abp-modal-body" class="modal-body">
<ng-container *ngTemplateOutlet="abpBody"></ng-container> <ng-container *ngTemplateOutlet="abpBody"></ng-container>
</div> </div>
<div *ngIf="abpFooter" id="abp-modal-footer" class="modal-footer"> <div *ngIf="abpFooter" id="abp-modal-footer" class="modal-footer">

38
npm/ng-packs/packages/theme-shared/src/lib/components/modal/modal.component.ts

@ -55,16 +55,16 @@ export class ModalComponent implements OnInit, OnDestroy, DismissableModal {
@Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken; @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;
@ViewChild('modalContent') modalContent: TemplateRef<any>; @ViewChild('modalContent') modalContent?: TemplateRef<any>;
@ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef<any>; @ContentChild('abpHeader', { static: false }) abpHeader?: TemplateRef<any>;
@ContentChild('abpBody', { static: false }) abpBody: TemplateRef<any>; @ContentChild('abpBody', { static: false }) abpBody?: TemplateRef<any>;
@ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef<any>; @ContentChild('abpFooter', { static: false }) abpFooter?: TemplateRef<any>;
@ContentChild(ButtonComponent, { static: false, read: ButtonComponent }) @ContentChild(ButtonComponent, { static: false, read: ButtonComponent })
abpSubmit: ButtonComponent; abpSubmit?: ButtonComponent;
@Output() readonly visibleChange = new EventEmitter<boolean>(); @Output() readonly visibleChange = new EventEmitter<boolean>();
@ -78,7 +78,7 @@ export class ModalComponent implements OnInit, OnDestroy, DismissableModal {
_busy = false; _busy = false;
modalRef: NgbModalRef; modalRef!: NgbModalRef;
isConfirmationOpen = false; isConfirmationOpen = false;
@ -93,7 +93,7 @@ export class ModalComponent implements OnInit, OnDestroy, DismissableModal {
} }
get isFormDirty(): boolean { get isFormDirty(): boolean {
return Boolean(this.modalWindowRef.querySelector('.ng-dirty')); return Boolean(this.modalWindowRef?.querySelector('.ng-dirty'));
} }
constructor( constructor(
@ -191,22 +191,22 @@ export class ModalComponent implements OnInit, OnDestroy, DismissableModal {
} }
listen() { listen() {
fromEvent(this.modalWindowRef, 'keyup') if (this.modalWindowRef) {
.pipe( fromEvent<KeyboardEvent>(this.modalWindowRef, 'keyup')
takeUntil(this.destroy$), .pipe(
debounceTime(150), takeUntil(this.destroy$),
filter((key: KeyboardEvent) => key && key.key === 'Escape'), debounceTime(150),
) filter((key: KeyboardEvent) => key && key.key === 'Escape'),
.subscribe(() => this.close()); )
.subscribe(() => this.close());
}
fromEvent(window, 'beforeunload') fromEvent(window, 'beforeunload')
.pipe(takeUntil(this.destroy$)) .pipe(takeUntil(this.destroy$))
.subscribe(event => { .subscribe(event => {
event.preventDefault(); // TODO: check this
if (this.isFormDirty && !this.suppressUnsavedChangesWarning) { if (!this.isFormDirty || this.suppressUnsavedChangesWarning) {
event.returnValue = true; event.preventDefault();
} else {
delete event.returnValue;
} }
}); });

14
npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts

@ -10,14 +10,14 @@ import { Toaster } from '../../models/toaster';
animations: [toastInOut], animations: [toastInOut],
}) })
export class ToastContainerComponent implements OnInit { export class ToastContainerComponent implements OnInit {
toasts$: ReplaySubject<Toaster.Toast[]>; toasts$!: ReplaySubject<Toaster.Toast[]>;
remove: (toastId: number) => void; remove!: (toastId: number) => void;
toasts = [] as Toaster.Toast[]; toasts = [] as Toaster.Toast[];
@Input() @Input()
top: string; top?: string;
@Input() @Input()
right = '30px'; right = '30px';
@ -26,10 +26,10 @@ export class ToastContainerComponent implements OnInit {
bottom = '30px'; bottom = '30px';
@Input() @Input()
left: string; left?: string;
@Input() @Input()
toastKey: string; toastKey?: string;
ngOnInit() { ngOnInit() {
this.toasts$.subscribe(toasts => { this.toasts$.subscribe(toasts => {
@ -41,8 +41,8 @@ export class ToastContainerComponent implements OnInit {
}); });
} }
trackByFunc(index, toast) { trackByFunc(index: number, toast: Toaster.Toast) {
if (!toast) return null; if (!toast) return null;
return toast.options.id; return toast.options?.id;
} }
} }

2
npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.html

@ -3,7 +3,7 @@
<i class="fa icon" [ngClass]="iconClass"></i> <i class="fa icon" [ngClass]="iconClass"></i>
</div> </div>
<div class="abp-toast-content"> <div class="abp-toast-content">
<button class="abp-toast-close-button" (click)="close()" *ngIf="toast.options.closable"> <button class="abp-toast-close-button" (click)="close()" *ngIf="toast.options?.closable">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
</button> </button>
<div class="abp-toast-title"> <div class="abp-toast-title">

4
npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts

@ -7,7 +7,7 @@ import { Toaster } from '../../models/toaster';
}) })
export class ToastComponent implements OnInit { export class ToastComponent implements OnInit {
@Input() @Input()
toast: Toaster.Toast; toast!: Toaster.Toast;
@Output() remove = new EventEmitter<number>(); @Output() remove = new EventEmitter<number>();
@ -42,7 +42,7 @@ export class ToastComponent implements OnInit {
} }
close() { close() {
this.remove.emit(this.toast.options.id); this.remove.emit(this.toast.options?.id);
} }
tap() { tap() {

4
npm/ng-packs/packages/theme-shared/src/lib/directives/ellipsis.directive.ts

@ -13,11 +13,11 @@ import {
}) })
export class EllipsisDirective implements AfterViewInit { export class EllipsisDirective implements AfterViewInit {
@Input('abpEllipsis') @Input('abpEllipsis')
width: string; width?: string;
@HostBinding('title') @HostBinding('title')
@Input() @Input()
title: string; title?: string;
@Input('abpEllipsisEnabled') @Input('abpEllipsisEnabled')
enabled = true; enabled = true;

12
npm/ng-packs/packages/theme-shared/src/lib/directives/loading.directive.ts

@ -18,7 +18,7 @@ import { LoadingComponent } from '../components/loading/loading.component';
@Directive({ selector: '[abpLoading]' }) @Directive({ selector: '[abpLoading]' })
export class LoadingDirective implements OnInit, OnDestroy { export class LoadingDirective implements OnInit, OnDestroy {
private _loading: boolean; private _loading!: boolean;
@HostBinding('style.position') @HostBinding('style.position')
position = 'relative'; position = 'relative';
@ -53,7 +53,7 @@ export class LoadingDirective implements OnInit, OnDestroy {
if (newValue && !this.rootNode) { if (newValue && !this.rootNode) {
this.rootNode = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]; this.rootNode = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];
this.targetElement.appendChild(this.rootNode); this.targetElement?.appendChild(this.rootNode as HTMLDivElement);
} else if (this.rootNode) { } else if (this.rootNode) {
this.renderer.removeChild(this.rootNode.parentElement, this.rootNode); this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);
this.rootNode = null; this.rootNode = null;
@ -66,14 +66,14 @@ export class LoadingDirective implements OnInit, OnDestroy {
} }
@Input('abpLoadingTargetElement') @Input('abpLoadingTargetElement')
targetElement: HTMLElement; targetElement: HTMLElement | undefined;
@Input('abpLoadingDelay') @Input('abpLoadingDelay')
delay = 0; delay = 0;
componentRef: ComponentRef<LoadingComponent>; componentRef!: ComponentRef<LoadingComponent>;
rootNode: HTMLDivElement; rootNode: HTMLDivElement | null = null;
timerSubscription: Subscription; timerSubscription: Subscription | null = null;
constructor( constructor(
private elRef: ElementRef<HTMLElement>, private elRef: ElementRef<HTMLElement>,

2
npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts

@ -27,7 +27,7 @@ export class NgxDatatableListDirective implements OnChanges, OnDestroy, OnInit {
private subscription = new Subscription(); private subscription = new Subscription();
private querySubscription = new Subscription(); private querySubscription = new Subscription();
@Input() list: ListService; @Input() list!: ListService;
constructor( constructor(
private table: DatatableComponent, private table: DatatableComponent,

74
npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts

@ -71,7 +71,7 @@ export const DEFAULT_ERROR_LOCALIZATIONS = {
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class ErrorHandler { export class ErrorHandler {
componentRef: ComponentRef<HttpErrorWrapperComponent>; componentRef: ComponentRef<HttpErrorWrapperComponent> | null = null;
protected httpErrorHandler = this.injector.get(HTTP_ERROR_HANDLER, (_, err: HttpErrorResponse) => protected httpErrorHandler = this.injector.get(HTTP_ERROR_HANDLER, (_, err: HttpErrorResponse) =>
throwError(err), throwError(err),
@ -109,7 +109,7 @@ export class ErrorHandler {
.getEvents(ResolveEnd) .getEvents(ResolveEnd)
.pipe(filter(() => !!this.componentRef)) .pipe(filter(() => !!this.componentRef))
.subscribe(() => { .subscribe(() => {
this.componentRef.destroy(); this.componentRef?.destroy();
this.componentRef = null; this.componentRef = null;
}); });
} }
@ -120,7 +120,7 @@ export class ErrorHandler {
.subscribe(); .subscribe();
} }
private executeErrorHandler = error => { private executeErrorHandler = (error: any) => {
const returnValue = this.httpErrorHandler(this.injector, error); const returnValue = this.httpErrorHandler(this.injector, error);
return (returnValue instanceof Observable ? returnValue : of(null)).pipe( return (returnValue instanceof Observable ? returnValue : of(null)).pipe(
@ -138,7 +138,7 @@ export class ErrorHandler {
}; };
if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) { if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {
const confirmation$ = this.showError(null, null, body); const confirmation$ = this.showErrorWithRequestBody(body);
if (err.status === 401) { if (err.status === 401) {
confirmation$.subscribe(() => { confirmation$.subscribe(() => {
@ -249,29 +249,34 @@ export class ErrorHandler {
}); });
} }
protected showError( protected showErrorWithRequestBody(body: any) {
message?: LocalizationParam, let message: LocalizationParam;
title?: LocalizationParam, let title: LocalizationParam;
body?: any,
): Observable<Confirmation.Status> { if (body.details) {
if (body) { message = body.details;
if (body.details) { title = body.message;
message = body.details; } else if (body.message) {
title = body.message; title = {
} else if (body.message) { key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,
title = { defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,
key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title, };
defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title, message = body.message;
}; } else {
message = body.message; message = body.message || {
} else { key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,
message = body.message || { defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,
key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title, };
defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title, title = '';
};
}
} }
return this.showError(message, title);
}
protected showError(
message: LocalizationParam,
title: LocalizationParam,
): Observable<Confirmation.Status> {
return this.confirmationService.error(message, title, { return this.confirmationService.error(message, title, {
hideCancelBtn: true, hideCancelBtn: true,
yesText: 'AbpAccount::Close', yesText: 'AbpAccount::Close',
@ -293,18 +298,18 @@ export class ErrorHandler {
for (const key in instance) { for (const key in instance) {
/* istanbul ignore else */ /* istanbul ignore else */
if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, key)) { if (Object.prototype.hasOwnProperty.call(this.componentRef.instance, key)) {
this.componentRef.instance[key] = instance[key]; (this.componentRef.instance as any)[key] = (instance as any)[key];
} }
} }
this.componentRef.instance.hideCloseIcon = this.httpErrorConfig.errorScreen.hideCloseIcon; this.componentRef.instance.hideCloseIcon = !!this.httpErrorConfig.errorScreen?.hideCloseIcon;
const appRef = this.injector.get(ApplicationRef); const appRef = this.injector.get(ApplicationRef);
if (this.canCreateCustomError(instance.status as ErrorScreenErrorCodes)) { if (this.canCreateCustomError(instance.status as ErrorScreenErrorCodes)) {
this.componentRef.instance.cfRes = this.cfRes; this.componentRef.instance.cfRes = this.cfRes;
this.componentRef.instance.appRef = appRef; this.componentRef.instance.appRef = appRef;
this.componentRef.instance.injector = this.injector; this.componentRef.instance.injector = this.injector;
this.componentRef.instance.customComponent = this.httpErrorConfig.errorScreen.component; this.componentRef.instance.customComponent = this.httpErrorConfig.errorScreen?.component;
} }
appRef.attachView(this.componentRef.hostView); appRef.attachView(this.componentRef.hostView);
@ -313,27 +318,32 @@ export class ErrorHandler {
const destroy$ = new Subject<void>(); const destroy$ = new Subject<void>();
this.componentRef.instance.destroy$ = destroy$; this.componentRef.instance.destroy$ = destroy$;
destroy$.subscribe(() => { destroy$.subscribe(() => {
this.componentRef.destroy(); this.componentRef?.destroy();
this.componentRef = null; this.componentRef = null;
}); });
} }
canCreateCustomError(status: ErrorScreenErrorCodes): boolean { canCreateCustomError(status: ErrorScreenErrorCodes): boolean {
return ( return !!(
this.httpErrorConfig?.errorScreen?.component && this.httpErrorConfig?.errorScreen?.component &&
this.httpErrorConfig?.errorScreen?.forWhichErrors?.indexOf(status) > -1 this.httpErrorConfig?.errorScreen?.forWhichErrors &&
this.httpErrorConfig?.errorScreen?.forWhichErrors.indexOf(status) > -1
); );
} }
protected filterRestErrors = ({ status }: HttpErrorResponse): boolean => { protected filterRestErrors = ({ status }: HttpErrorResponse): boolean => {
if (typeof status !== 'number') return false; if (typeof status !== 'number') return false;
return this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === status) < 0; return (
!!this.httpErrorConfig.skipHandledErrorCodes &&
this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === status) < 0
);
}; };
protected filterRouteErrors = (navigationError: NavigationError): boolean => { protected filterRouteErrors = (navigationError: NavigationError): boolean => {
return ( return (
navigationError.error?.message?.indexOf('Cannot match') > -1 && navigationError.error?.message?.indexOf('Cannot match') > -1 &&
!!this.httpErrorConfig.skipHandledErrorCodes &&
this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0 this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0
); );
}; };

2
npm/ng-packs/packages/theme-shared/src/lib/models/nav-item.ts

@ -1,7 +1,7 @@
import { Type } from '@angular/core'; import { Type } from '@angular/core';
export class NavItem { export class NavItem {
id: string | number; id?: string | number;
component?: Type<any>; component?: Type<any>;
html?: string; html?: string;
action?: () => void; action?: () => void;

6
npm/ng-packs/packages/theme-shared/src/lib/services/confirmation.service.ts

@ -7,10 +7,10 @@ import { Confirmation } from '../models/confirmation';
@Injectable({ providedIn: 'root' }) @Injectable({ providedIn: 'root' })
export class ConfirmationService { export class ConfirmationService {
status$: Subject<Confirmation.Status>; status$!: Subject<Confirmation.Status>;
confirmation$ = new ReplaySubject<Confirmation.DialogData>(1); confirmation$ = new ReplaySubject<Confirmation.DialogData>(1);
private containerComponentRef: ComponentRef<ConfirmationComponent>; private containerComponentRef!: ComponentRef<ConfirmationComponent>;
clear = (status: Confirmation.Status = Confirmation.Status.dismiss) => { clear = (status: Confirmation.Status = Confirmation.Status.dismiss) => {
this.confirmation$.next(); this.confirmation$.next();
@ -87,7 +87,7 @@ export class ConfirmationService {
} }
private listenToEscape() { private listenToEscape() {
fromEvent(document, 'keyup') fromEvent<KeyboardEvent>(document, 'keyup')
.pipe( .pipe(
takeUntil(this.status$), takeUntil(this.status$),
debounceTime(150), debounceTime(150),

4
npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts

@ -19,7 +19,7 @@ export class ToasterService implements ToasterContract {
private toasts = [] as Toaster.Toast[]; private toasts = [] as Toaster.Toast[];
private containerComponentRef: ComponentRef<ToastContainerComponent>; private containerComponentRef!: ComponentRef<ToastContainerComponent>;
constructor(private contentProjectionService: ContentProjectionService) {} constructor(private contentProjectionService: ContentProjectionService) {}
@ -100,7 +100,7 @@ export class ToasterService implements ToasterContract {
show( show(
message: LocalizationParam, message: LocalizationParam,
title: LocalizationParam = null, title: LocalizationParam | undefined = undefined,
severity: Toaster.Severity = 'neutral', severity: Toaster.Severity = 'neutral',
options = {} as Partial<Toaster.ToastOptions>, options = {} as Partial<Toaster.ToastOptions>,
): Toaster.ToasterId { ): Toaster.ToasterId {

7
npm/ng-packs/packages/theme-shared/src/lib/utils/date-parser-formatter.ts

@ -17,13 +17,14 @@ export class DateParserFormatter extends NgbDateParserFormatter {
super(); super();
} }
parse(value: string): NgbDateStruct { parse(value: string): NgbDateStruct | null {
if (value) { if (value) {
const dateParts = value.trim().split('-'); const dateParts = value.trim().split('-');
// TODO: CHANGED
if (dateParts.length === 1 && isNumber(dateParts[0])) { if (dateParts.length === 1 && isNumber(dateParts[0])) {
return { year: toInteger(dateParts[0]), month: null, day: null }; return { year: toInteger(dateParts[0]), month: -1, day: -1 };
} else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) { } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {
return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null }; return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: -1 };
} else if ( } else if (
dateParts.length === 3 && dateParts.length === 3 &&
isNumber(dateParts[0]) && isNumber(dateParts[0]) &&

1
npm/ng-packs/tsconfig.base.json

@ -1,6 +1,7 @@
{ {
"compileOnSave": false, "compileOnSave": false,
"compilerOptions": { "compilerOptions": {
"strict": false,
"sourceMap": true, "sourceMap": true,
"declaration": false, "declaration": false,
"moduleResolution": "node", "moduleResolution": "node",

1684
npm/ng-packs/yarn.lock

File diff suppressed because it is too large

2
npm/packs/aspnetcore.mvc.ui.theme.shared/package.json

@ -13,7 +13,7 @@
"@abp/aspnetcore.mvc.ui": "~5.0.0-beta.3", "@abp/aspnetcore.mvc.ui": "~5.0.0-beta.3",
"@abp/bootstrap": "~5.0.0-beta.3", "@abp/bootstrap": "~5.0.0-beta.3",
"@abp/bootstrap-datepicker": "~5.0.0-beta.3", "@abp/bootstrap-datepicker": "~5.0.0-beta.3",
"@abp/datatables.net-bs4": "~5.0.0-beta.3", "@abp/datatables.net-bs5": "~5.0.0-beta.3",
"@abp/font-awesome": "~5.0.0-beta.3", "@abp/font-awesome": "~5.0.0-beta.3",
"@abp/jquery-form": "~5.0.0-beta.3", "@abp/jquery-form": "~5.0.0-beta.3",
"@abp/jquery-validation-unobtrusive": "~5.0.0-beta.3", "@abp/jquery-validation-unobtrusive": "~5.0.0-beta.3",

5
npm/yarn.lock

@ -76,6 +76,11 @@
unique-filename "^1.1.1" unique-filename "^1.1.1"
which "^1.3.1" which "^1.3.1"
"@gar/promisify@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
"@lerna/add@3.18.4": "@lerna/add@3.18.4":
version "3.18.4" version "3.18.4"
resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.18.4.tgz#0d97c75b64febc10a9a38546a3019f0f2c24b0e6" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-3.18.4.tgz#0d97c75b64febc10a9a38546a3019f0f2c24b0e6"

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

268
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/yarn.lock

@ -2,52 +2,52 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.components.server.basictheme@^4.4.3": "@abp/aspnetcore.components.server.basictheme@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-4.4.3.tgz#ae4be5ad09a632c6a5cf107036e625d5040903cf" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-4.4.4.tgz#532072f508ba70850d5cc5811781c6755b1a18e1"
integrity sha512-uouOUtsGKxhTKJ8bM2uzGJx5smvyR6g/Du19DC7+rhOEQpBMnQyIV2rmqdTQ52JOCaL/Q8YU9bOG8e5B5M5K3A== integrity sha512-11wTVJGWvBwfIY5rrN/e3mAbxfhy6Zq0IdHKGpjIDzkamB5jr5vjUNRoNH6ZM5GRg6R9iyr9iy9UCqogVg5Gug==
dependencies: dependencies:
"@abp/aspnetcore.components.server.theming" "~4.4.3" "@abp/aspnetcore.components.server.theming" "~4.4.4"
"@abp/aspnetcore.components.server.theming@~4.4.3": "@abp/aspnetcore.components.server.theming@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-4.4.3.tgz#8cf98389153be9b7edb8cdd9b7d1045d60388a30" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-4.4.4.tgz#999d3c8338e57e465a13f8d7da57ff61bd1e89fc"
integrity sha512-LiBT7mo6L72v1712K4mSlH+UQ4DSVzJ0ndXHKzLIpch7K9fhYqOLvLNfBQvutWiXyFmvk3dcuWRFtOvGCw05cQ== integrity sha512-4NPNr/KbYmGBqVVQ85zP+sw9qHyM2qwEjAKQ3yESfn56zMQx0uTTd6ytRDqDidI81UwTCZpVsPCxfne4IWHNxA==
dependencies: dependencies:
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -56,145 +56,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

268
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/yarn.lock

@ -2,52 +2,52 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.components.server.basictheme@^4.4.3": "@abp/aspnetcore.components.server.basictheme@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-4.4.3.tgz#ae4be5ad09a632c6a5cf107036e625d5040903cf" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.basictheme/-/aspnetcore.components.server.basictheme-4.4.4.tgz#532072f508ba70850d5cc5811781c6755b1a18e1"
integrity sha512-uouOUtsGKxhTKJ8bM2uzGJx5smvyR6g/Du19DC7+rhOEQpBMnQyIV2rmqdTQ52JOCaL/Q8YU9bOG8e5B5M5K3A== integrity sha512-11wTVJGWvBwfIY5rrN/e3mAbxfhy6Zq0IdHKGpjIDzkamB5jr5vjUNRoNH6ZM5GRg6R9iyr9iy9UCqogVg5Gug==
dependencies: dependencies:
"@abp/aspnetcore.components.server.theming" "~4.4.3" "@abp/aspnetcore.components.server.theming" "~4.4.4"
"@abp/aspnetcore.components.server.theming@~4.4.3": "@abp/aspnetcore.components.server.theming@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-4.4.3.tgz#8cf98389153be9b7edb8cdd9b7d1045d60388a30" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.components.server.theming/-/aspnetcore.components.server.theming-4.4.4.tgz#999d3c8338e57e465a13f8d7da57ff61bd1e89fc"
integrity sha512-LiBT7mo6L72v1712K4mSlH+UQ4DSVzJ0ndXHKzLIpch7K9fhYqOLvLNfBQvutWiXyFmvk3dcuWRFtOvGCw05cQ== integrity sha512-4NPNr/KbYmGBqVVQ85zP+sw9qHyM2qwEjAKQ3yESfn56zMQx0uTTd6ytRDqDidI81UwTCZpVsPCxfne4IWHNxA==
dependencies: dependencies:
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -56,145 +56,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

238
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -41,145 +41,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js

@ -106,7 +106,7 @@ var abp = abp || {};
$dfd.resolve(data); $dfd.resolve(data);
userOptions.success && userOptions.success(data); userOptions.success && userOptions.success(data);
}).fail(function (jqXHR) { }).fail(function (jqXHR) {
if(jqXHR.status === 0 || jqXHR.statusText === 'abort') { if(jqXHR.statusText === 'abort') {
//ajax request is abort, ignore error handle. //ajax request is abort, ignore error handle.
return; return;
} }

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

238
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -41,145 +41,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

238
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -41,145 +41,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js

@ -1,4 +1,6 @@
/* /*
https://select2.org/troubleshooting/common-problems https://select2.org/troubleshooting/common-problems
*/ */
$.fn.modal.Constructor.prototype._enforceFocus = function () { }; if ($.fn.modal) {
$.fn.modal.Constructor.prototype._enforceFocus = function () { };
}

238
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock

@ -2,37 +2,37 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@^4.4.3": "@abp/aspnetcore.mvc.ui.theme.basic@^4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.3.tgz#26b230021334f7859fbb80f9c379a1192cc3fe97" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-4.4.4.tgz#ecaaee9d8af8e14a1c9fa65bf3cb6e56c6a82e99"
integrity sha512-FR1XIiZljhjBuHQKr2kdd0gD82sy8+oVPrJ+BrSKK3N4OsOTpVxZnUhixLeDRv1Lmw3twwmLCEcp8snPix/wPg== integrity sha512-FBctV4JuYnTqCCzA/1EG2wUdTYYcilTNSWvk/4YZkndvu9T5iu48qdac1Gq3Ux8JIFer9D0oAPld0YlweYYOGw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.3" "@abp/aspnetcore.mvc.ui.theme.shared" "~4.4.4"
"@abp/aspnetcore.mvc.ui.theme.shared@~4.4.3": "@abp/aspnetcore.mvc.ui.theme.shared@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.3.tgz#464148bbf641e6988852235f94dc3393131c657e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-4.4.4.tgz#22191efb159572abbd071e12cce847768721a2ee"
integrity sha512-/aXlX5JZ/CYD6KdIBL2V216aNidqxf7ugU9dZPK1FbGSixN805lJVIu766ufEA5xZrMIGPL/O7MZmu+hJyclTA== integrity sha512-Fp4OXxaSSsTzDlWlVYksSTKXbXvUdILbJNlk+r03TD7VmJCaNx49BxLyUEhJIyP3SY8oOno1UnsDjygbFHJ0xw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~4.4.3" "@abp/aspnetcore.mvc.ui" "~4.4.4"
"@abp/bootstrap" "~4.4.3" "@abp/bootstrap" "~4.4.4"
"@abp/bootstrap-datepicker" "~4.4.3" "@abp/bootstrap-datepicker" "~4.4.4"
"@abp/datatables.net-bs4" "~4.4.3" "@abp/datatables.net-bs4" "~4.4.4"
"@abp/font-awesome" "~4.4.3" "@abp/font-awesome" "~4.4.4"
"@abp/jquery-form" "~4.4.3" "@abp/jquery-form" "~4.4.4"
"@abp/jquery-validation-unobtrusive" "~4.4.3" "@abp/jquery-validation-unobtrusive" "~4.4.4"
"@abp/lodash" "~4.4.3" "@abp/lodash" "~4.4.4"
"@abp/luxon" "~4.4.3" "@abp/luxon" "~4.4.4"
"@abp/malihu-custom-scrollbar-plugin" "~4.4.3" "@abp/malihu-custom-scrollbar-plugin" "~4.4.4"
"@abp/select2" "~4.4.3" "@abp/select2" "~4.4.4"
"@abp/sweetalert" "~4.4.3" "@abp/sweetalert" "~4.4.4"
"@abp/timeago" "~4.4.3" "@abp/timeago" "~4.4.4"
"@abp/toastr" "~4.4.3" "@abp/toastr" "~4.4.4"
"@abp/aspnetcore.mvc.ui@~4.4.3": "@abp/aspnetcore.mvc.ui@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.3.tgz#b7c217f23d39793a63baff9a56ff063bb0da3049" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-4.4.4.tgz#2f8e9488cad566f333d62fa717621477fb7fe658"
integrity sha512-dVZe5HcKRTg0gfWom7vY70JRZkHm1nFtYWq+ciEPvVqPAClzDEvJucoKiUTzfgmPQO13Yv5/GonTV99MV9sLHg== integrity sha512-/ngxU+vyUfBfpJ7+4/2Fyo5arUAY+LrjauoH9rkdXxpNjNNKjSUsoVqRAwRc1QMJh3iuUOeJgzx0gtkcE2ihiQ==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
extend-object "^1.0.0" extend-object "^1.0.0"
@ -41,145 +41,145 @@
merge-stream "^2.0.0" merge-stream "^2.0.0"
micromatch "^4.0.2" micromatch "^4.0.2"
"@abp/bootstrap-datepicker@~4.4.3": "@abp/bootstrap-datepicker@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.3.tgz#08fd1642ede232badb62a1536982ad2bfce6c265" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-4.4.4.tgz#f2bddae93c4d126f926e4c9f0b4d41b5638ec4ba"
integrity sha512-pwb+3DbLkhuNnjD74UwqZgK5hnoxAFFu8y7qlJEkSiKsLWrKNlJS+PHF1LLifPqXogU1MKwc18AuXnHOEKjzbQ== integrity sha512-WfP8KqMNcwAIyVim0MpyMo7sg1kVd9LzrqeAOdu5nPrJ9iV5N3y/JIw4JUkSaOh/zQPLgZUMg1NEhDHOkbaOHw==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap@~4.4.3": "@abp/bootstrap@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.3.tgz#76968df98fd5c6e5d26abea9cea5c9d76646d24e" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-4.4.4.tgz#34ff3d94cea5b95fa78acdd5837d36569e0244db"
integrity sha512-InA3AI1ydkqd7AYz+f9RAag1h/uhFsFAFGIo34jllIeFhG4C59EbkNwdWDk96lNHmt0qutQYydsO6WKPlgnjYA== integrity sha512-fE8MsiUJD7K/lzKCsQ5FUU6KbZL6GORBMUdenm5OAUGpQWKPdLZ8mF2rjNsb2+kQgVQCuei7eYl+6712idCF9A==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
bootstrap "^4.6.0" bootstrap "^4.6.0"
bootstrap-v4-rtl "4.6.0-1" bootstrap-v4-rtl "4.6.0-1"
"@abp/core@~4.4.3": "@abp/core@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.3.tgz#fc79a2eebf37a61a6cc05287b722750000f38522" resolved "https://registry.yarnpkg.com/@abp/core/-/core-4.4.4.tgz#e157da92b884d7d9a1e3ba50f65be42c60047d78"
integrity sha512-gQ2rNyj1MpYCfLTg7Id/20AH4dqs0XIt/n+WqlgeGoYvEpAm4lakHWL7mxZaDQ+iMI/lVVrBhuzwuQv7xKpEIQ== integrity sha512-t3Mu7Bvs0o439CVSx9uxBJ+yTFrt2Pyep9/6Vh6Su+b4aoZeQt6ZTKWeJqUVZ7Y/LMt+AbJ/dtbFHvhV8yVuXg==
dependencies: dependencies:
"@abp/utils" "^4.4.3" "@abp/utils" "~4.4.4"
"@abp/datatables.net-bs4@~4.4.3": "@abp/datatables.net-bs4@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.3.tgz#69d3704d057fe39c3b4aff0654f098fac3a27f49" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-4.4.4.tgz#37f4c5664ba1a8c4f5b03e675192f6b0ef66cf1b"
integrity sha512-Rs8u9BqaVnA7SYhaP849dVNQjaUdO3y5d95b5hv9kLgxquIEf/FIAmGMc0p9BkCK74SkRJ3WJLlR8DXxLi/tEw== integrity sha512-byccQ1dSzhxpLggDwyPoOSOGF+6lBrr9r+WC3OCzWkBUuD6gXpRzDumjAAgIe12hGfXGDRibuD7Ji3qPLzcHzw==
dependencies: dependencies:
"@abp/datatables.net" "~4.4.3" "@abp/datatables.net" "~4.4.4"
datatables.net-bs4 "^1.10.21" datatables.net-bs4 "^1.10.21"
"@abp/datatables.net@~4.4.3": "@abp/datatables.net@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.3.tgz#1515dcc2bdc7c65c1f24a366c738e1b21ad05723" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-4.4.4.tgz#add4b07eef578dd02f84892bbe495642459c4669"
integrity sha512-j0cIadlcIOLb/ZQnbqXi4sMEgyLCFA08GMIljvN6GhBObZjMQh4Eazk/B+a4xw+ATk0rbAW3dJyMx80zpi82cg== integrity sha512-+9JHEu71xADrTFIKoujXAO0nwUvAuRU9gJpVuJFg4G6juILbEqARo2mUTXEx+UyqnzhwoRJ0K1VFyBJnCY0R0Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
datatables.net "^1.10.21" datatables.net "^1.10.21"
"@abp/font-awesome@~4.4.3": "@abp/font-awesome@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.3.tgz#9b0b03da07245e4458305e54490b4e37cbcc2b40" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-4.4.4.tgz#47ff0c880ceb95382e0b1371912230cd7d7602c8"
integrity sha512-R6s0jcAhmpUTdc4b/NJkfHXbXblmcuTNwiNG/CJJ/QNrVhk7OolzyqR5k/moaBpb4Uaqf5u07Aau24rOH35q5w== integrity sha512-lkuyC7drFfzavkNJNLuQ+EJYTBb5ZlPNPnGFAxEpRyjJuJ5j+n84JxVBXwg+oPOfmZ+hOeEQPA7j7TdcC4EZDQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
"@fortawesome/fontawesome-free" "^5.13.0" "@fortawesome/fontawesome-free" "^5.13.0"
"@abp/jquery-form@~4.4.3": "@abp/jquery-form@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.3.tgz#3d5760e9ece4984165304fa028a5eb997adc4d9f" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-4.4.4.tgz#0638484b9318ba98acaf765aac0396f5f523dce5"
integrity sha512-lk0QYruQVwXhVFYBiIrNx5zqF7fY7PKuGGvPQMHyeNaljvpbuK5FPwkge0y6nToWA4Y7PhSCYBU7xvkBuqEDgA== integrity sha512-JWN82DzSbSk2vAPQaapv+8PPCN8si4peLoWJAoHTVizAvis3YamdcG+QLYbTCAVKRlh7kiLRgbAAroy3ppbZ7Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~4.4.3": "@abp/jquery-validation-unobtrusive@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.3.tgz#c08e336debe60a119a5abd0cb66032da6ace6b08" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.4.4.tgz#2ef0ce29eeb9e6aac9a87338a67aab2060b63026"
integrity sha512-mfvYChTALH5nmB0docrEkS5/+Yxt6SgbQOjPVuQx5PgqoVscmf2/JvsBnW73/YVdQBkVXs339hoDGPA6K2WR9w== integrity sha512-XA9s0uzGXjBju1ZS42xd3IWproSxLBdGEZIYoSbVmaxS0YDBa8FqffbNb/fgY9M8dqujZEasDVuQPhXLBRN+jA==
dependencies: dependencies:
"@abp/jquery-validation" "~4.4.3" "@abp/jquery-validation" "~4.4.4"
jquery-validation-unobtrusive "^3.2.11" jquery-validation-unobtrusive "^3.2.11"
"@abp/jquery-validation@~4.4.3": "@abp/jquery-validation@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.3.tgz#331f3671e6e37bed4dc737942e8eb2a6d1297722" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-4.4.4.tgz#fa71e1729b692b40097175d68caad29ea13d5155"
integrity sha512-RjKn9xxoYQz0v8yzWcVlbIQYZQTcXgYFX7GMJf04V/QbdU6vsge+5vHKzhcaW5XWL8+GgKHTqqoxbqzdJykaPA== integrity sha512-vrP/Vpne86GbPnHR8M8PGvm+B9kGd/JJiPzVN/egxEvvBKdw0APGk9R03Tji2Qu8CuZxvPnKzHHBwKRinWX3Ng==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
jquery-validation "^1.19.2" jquery-validation "^1.19.2"
"@abp/jquery@~4.4.3": "@abp/jquery@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.3.tgz#9d2dc238596a6e5c878b5be4b1d49e7e8f95aec4" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-4.4.4.tgz#cbf5f99562ad5f01c41aa61704b0136c4ad68594"
integrity sha512-BN2KU1mw0hyQD8/61ZOIDM0hyMDkhZix4TOWCQa3s18pWHlBEsjKVnINQlz9J9k4TZEdQP9D3wZmw+XUfZjoIw== integrity sha512-0fltJprq9DMHHWeTAN7i8kAcod5czQ48LdjeIY3wuLDWkGgMVcfarECQ9cu7QekMryB0HFdrUjMJHIhxqzxc3Q==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~4.4.3": "@abp/lodash@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.3.tgz#8e936ebc54a9043eee80cb22f3dad5ea8a2306cb" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-4.4.4.tgz#8abd3986bcf64561ecbc86f23f53677b3c34eda9"
integrity sha512-QKFjdRd8cEZp7fg9MhuFhD5CP3MBw7CfaJ3yj0W1e5Tx+xtV+rYz4PrOE8/BLb4un7gxqUrEWBgdIzY+lBR7mQ== integrity sha512-IyAZHiR1vPYhbla0lTH/iYK38PCR+9wP5zgrWGD0JSP9R642GEEhdeiuzwclv1aNGretg+TSATr+zSWB5V1DYQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
lodash "^4.17.15" lodash "^4.17.15"
"@abp/luxon@~4.4.3": "@abp/luxon@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.3.tgz#bd3328f45714155870bc8a91d41a197a613392b0" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-4.4.4.tgz#429b28dddbd8fa65c6c58978451d426bb886c5a3"
integrity sha512-rPVzSXEy+rJZLIQ10boOq6suQAZQWJyB5P+rvfSx8h9sbRpsQ5fJOX2ShnUUf/+49KHzRRIqy+vrhr1oiE0C8Q== integrity sha512-pw75sGoQ/d4OaNlmGwt55Eq7AGWXUBuXyrsNQWSJmkPV9AS2s//ZoxZut1Wu/qaKo5DV4VitEW1U21MuKoEZPA==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
luxon "^1.24.1" luxon "^1.24.1"
"@abp/malihu-custom-scrollbar-plugin@~4.4.3": "@abp/malihu-custom-scrollbar-plugin@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.3.tgz#194f39ebbabad7853089549a7e19cfd2a7393e98" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-4.4.4.tgz#fea9aa4755993dac45a8ad10938da789ec523518"
integrity sha512-bhME41UsDCPGxnLP+zqH8nsx1uAxRR8tAeBKOJV24Xf8FHEjUQEDBXG0t1PBYGZVn1/0Ugao7Z12G9uZOiZVog== integrity sha512-Mgtzpw94SjN91YWPdV/TfvDt5JZNpW6iCHfL2NjfH3sTXCywK/CanmhdQ0FYJCasRWVPTHfQPWydFsnyzHWXRQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/select2@~4.4.3": "@abp/select2@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.3.tgz#71015901aae117360f876c744903613494800c83" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-4.4.4.tgz#80d0e0b64cec86a3aa069e9086958946f631d2bf"
integrity sha512-s7ArMLq2LC0m1oFcuCJghf5lEnGbq1D8/WaIKGmmD0ERL0g5xMccFlNbXm+Z79MJoTvQFssSLPTLZICjzWPKJw== integrity sha512-8qx0nj9ZHrdnEPccpLhavHu4YnVp0Z5ZyfpfACVS2GgaxsR31DbltlGdnr2IfRyhK8nJWLNsW8UNhSoXQwGYEw==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert@~4.4.3": "@abp/sweetalert@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.3.tgz#287b9c89f90885742b074b4e3a427f0ec482952d" resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-4.4.4.tgz#1af8934290d4e5adb7c620363ef2a9b746a6eeab"
integrity sha512-tAEgHMaTe+E+uS+Mt8XV3dt5yJJHg01Zsbp4ojO3wvdoAS6MKRXWdH05u3ZdwRQrJFbSgQjY85vWn/a/PnYRng== integrity sha512-TgXm4rhqzTghKzgbxDT5NQcQ/PRFkgwJtnNWZK3XDZiKzw0auT8Wa3GtSsJJD5tl3Dx6VfnTtmf0gpPU5/9fKQ==
dependencies: dependencies:
"@abp/core" "~4.4.3" "@abp/core" "~4.4.4"
sweetalert "^2.1.2" sweetalert "^2.1.2"
"@abp/timeago@~4.4.3": "@abp/timeago@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.3.tgz#7d31b9fcc128e9b8c6bb7870c4284427e9f9f383" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-4.4.4.tgz#91ddb61439eaa138a42b9179ec92845efb05af29"
integrity sha512-E8FeAraStlYsHz6D1oBrwM5eHhZeCGrP7aA768Ke5UGIZPoYwyIIYLRfK4MCoCLKgTVlRrUn0Dj7Xkj9tWOfBQ== integrity sha512-r53FieaMDar60tGAu+NLr2qCem1+NhPgd7MtYEemJil8HUYci7T0fXvWcYhlrn98zipzEx3eiWo4eBwvIP8MLg==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~4.4.3": "@abp/toastr@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.3.tgz#45ef155fdbb6134a50794e456f820671c72e4105" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-4.4.4.tgz#1cd04ad6dfcb866bfaad3ec288407b0bf3f47c41"
integrity sha512-dmKYS7iw/a+eWCD+J+nZ1htmGEjJSCsV1H8dDwA+ZxYJrE2/ejUh0LZ+b8Hsvobqfe/6bwYBj6oe0R9+vszCfg== integrity sha512-B7Q0Gza71nITTbryHcHqiIxtJzFbVmXeoPlcLlc/i4zvMaoibihevN10vXmPnfkdQUvTgViIjwA4/ZnBmyM11Q==
dependencies: dependencies:
"@abp/jquery" "~4.4.3" "@abp/jquery" "~4.4.4"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@^4.4.3": "@abp/utils@~4.4.4":
version "4.4.3" version "4.4.4"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.4.tgz#0bd79fa4635224fcae7ff61224a8c54266db73bf"
integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== integrity sha512-h8Nt2OPqi8EiXKAuvJIpBlCHhavL7BHr+ntJXY6yM4aCdcQtJdSAgNmh0skzEGnf1hZxrYOugtAz4Pk1WNjv/g==
dependencies: dependencies:
just-compare "^1.3.0" just-compare "^1.3.0"

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save