From 22ae6ca99346e4e81957563e4b387e64c45bb989 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 12 Aug 2020 20:30:09 +0800 Subject: [PATCH 01/98] Add Kafka event bus integration --- framework/Volo.Abp.sln | 14 ++ .../Volo.Abp.EventBus.Kafka/FodyWeavers.xml | 3 + .../Volo.Abp.EventBus.Kafka/FodyWeavers.xsd | 30 +++ .../Volo.Abp.EventBus.Kafka.csproj | 16 ++ .../EventBus/Kafka/AbpEventBusKafkaModule.cs | 27 +++ .../EventBus/Kafka/AbpKafkaEventBusOptions.cs | 12 + .../Kafka/KafkaDistributedEventBus.cs | 208 ++++++++++++++++++ framework/src/Volo.Abp.Kafka/FodyWeavers.xml | 3 + framework/src/Volo.Abp.Kafka/FodyWeavers.xsd | 30 +++ .../src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj | 17 ++ .../Volo/Abp/Kafka/AbpKafkaModule.cs | 31 +++ .../Volo/Abp/Kafka/AbpKafkaOptions.cs | 22 ++ .../Volo/Abp/Kafka/ConsumerPool.cs | 105 +++++++++ .../Volo/Abp/Kafka/IConsumerPool.cs | 10 + .../Volo/Abp/Kafka/IKafkaMessageConsumer.cs | 11 + .../Abp/Kafka/IKafkaMessageConsumerFactory.cs | 19 ++ .../Volo/Abp/Kafka/IKafkaSerializer.cs | 11 + .../Volo/Abp/Kafka/IProducerPool.cs | 10 + .../Volo/Abp/Kafka/KafkaConnections.cs | 35 +++ .../Volo/Abp/Kafka/KafkaMessageConsumer.cs | 156 +++++++++++++ .../Abp/Kafka/KafkaMessageConsumerFactory.cs | 32 +++ .../Volo/Abp/Kafka/ProducerPool.cs | 97 ++++++++ .../Volo/Abp/Kafka/Utf8JsonKafkaSerializer.cs | 27 +++ nupkg/common.ps1 | 2 + 24 files changed, 928 insertions(+) create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xml create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xsd create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpEventBusKafkaModule.cs create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpKafkaEventBusOptions.cs create mode 100644 framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs create mode 100644 framework/src/Volo.Abp.Kafka/FodyWeavers.xml create mode 100644 framework/src/Volo.Abp.Kafka/FodyWeavers.xsd create mode 100644 framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaModule.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IConsumerPool.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumer.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumerFactory.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaSerializer.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IProducerPool.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaConnections.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumerFactory.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs create mode 100644 framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/Utf8JsonKafkaSerializer.cs diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 5778b054ed..2b381f4315 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -323,6 +323,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Aws", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Aws.Tests", "test\Volo.Abp.BlobStoring.Aws.Tests\Volo.Abp.BlobStoring.Aws.Tests.csproj", "{2CD3B26A-CA81-4279-8D5D-6A594517BB3F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Kafka", "src\Volo.Abp.Kafka\Volo.Abp.Kafka.csproj", "{2A864049-9CD5-4493-8CDB-C408474D43D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Kafka", "src\Volo.Abp.EventBus.Kafka\Volo.Abp.EventBus.Kafka.csproj", "{C1D891B0-AE83-42CB-987D-425A2787DE78}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -961,6 +965,14 @@ Global {2CD3B26A-CA81-4279-8D5D-6A594517BB3F}.Debug|Any CPU.Build.0 = Debug|Any CPU {2CD3B26A-CA81-4279-8D5D-6A594517BB3F}.Release|Any CPU.ActiveCfg = Release|Any CPU {2CD3B26A-CA81-4279-8D5D-6A594517BB3F}.Release|Any CPU.Build.0 = Release|Any CPU + {2A864049-9CD5-4493-8CDB-C408474D43D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A864049-9CD5-4493-8CDB-C408474D43D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A864049-9CD5-4493-8CDB-C408474D43D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A864049-9CD5-4493-8CDB-C408474D43D4}.Release|Any CPU.Build.0 = Release|Any CPU + {C1D891B0-AE83-42CB-987D-425A2787DE78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1D891B0-AE83-42CB-987D-425A2787DE78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1D891B0-AE83-42CB-987D-425A2787DE78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1D891B0-AE83-42CB-987D-425A2787DE78}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1124,6 +1136,8 @@ Global {8E49687A-E69F-49F2-8DB0-428D0883A937} = {447C8A77-E5F0-4538-8687-7383196D04EA} {50968CDE-1029-4051-B2E5-B69D0ECF2A18} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {2CD3B26A-CA81-4279-8D5D-6A594517BB3F} = {447C8A77-E5F0-4538-8687-7383196D04EA} + {2A864049-9CD5-4493-8CDB-C408474D43D4} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {C1D891B0-AE83-42CB-987D-425A2787DE78} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xml b/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xml new file mode 100644 index 0000000000..bc5a74a236 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + diff --git a/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xsd b/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj new file mode 100644 index 0000000000..42b0293781 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj @@ -0,0 +1,16 @@ + + + + + + + netstandard2.0 + + + + + + + + + diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpEventBusKafkaModule.cs b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpEventBusKafkaModule.cs new file mode 100644 index 0000000000..e0e408cb6b --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpEventBusKafkaModule.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Kafka; +using Volo.Abp.Modularity; + +namespace Volo.Abp.EventBus.Kafka +{ + [DependsOn( + typeof(AbpEventBusModule), + typeof(AbpKafkaModule))] + public class AbpEventBusKafkaModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + + Configure(configuration.GetSection("Kafka:EventBus")); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + context + .ServiceProvider + .GetRequiredService() + .Initialize(); + } + } +} diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpKafkaEventBusOptions.cs b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpKafkaEventBusOptions.cs new file mode 100644 index 0000000000..3aff9699fb --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/AbpKafkaEventBusOptions.cs @@ -0,0 +1,12 @@ +namespace Volo.Abp.EventBus.Kafka +{ + public class AbpKafkaEventBusOptions + { + + public string ConnectionName { get; set; } + + public string TopicName { get; set; } + + public string GroupId { get; set; } + } +} diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs new file mode 100644 index 0000000000..fd6d773952 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo/Abp/EventBus/Kafka/KafkaDistributedEventBus.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Confluent.Kafka; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.Kafka; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; + +namespace Volo.Abp.EventBus.Kafka +{ + [Dependency(ReplaceServices = true)] + [ExposeServices(typeof(IDistributedEventBus), typeof(KafkaDistributedEventBus))] + public class KafkaDistributedEventBus : EventBusBase, IDistributedEventBus, ISingletonDependency + { + protected AbpKafkaEventBusOptions AbpKafkaEventBusOptions { get; } + protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; } + protected IKafkaMessageConsumerFactory MessageConsumerFactory { get; } + protected IKafkaSerializer Serializer { get; } + protected IProducerPool ProducerPool { get; } + protected ConcurrentDictionary> HandlerFactories { get; } + protected ConcurrentDictionary EventTypes { get; } + protected IKafkaMessageConsumer Consumer { get; private set; } + + public KafkaDistributedEventBus( + IServiceScopeFactory serviceScopeFactory, + ICurrentTenant currentTenant, + IOptions abpKafkaEventBusOptions, + IKafkaMessageConsumerFactory messageConsumerFactory, + IOptions abpDistributedEventBusOptions, + IKafkaSerializer serializer, + IProducerPool producerPool) + : base(serviceScopeFactory, currentTenant) + { + AbpKafkaEventBusOptions = abpKafkaEventBusOptions.Value; + AbpDistributedEventBusOptions = abpDistributedEventBusOptions.Value; + MessageConsumerFactory = messageConsumerFactory; + Serializer = serializer; + ProducerPool = producerPool; + + HandlerFactories = new ConcurrentDictionary>(); + EventTypes = new ConcurrentDictionary(); + } + + public void Initialize() + { + Consumer = MessageConsumerFactory.Create( + AbpKafkaEventBusOptions.TopicName, + AbpKafkaEventBusOptions.GroupId, + AbpKafkaEventBusOptions.ConnectionName); + + Consumer.OnMessageReceived(ProcessEventAsync); + + SubscribeHandlers(AbpDistributedEventBusOptions.Handlers); + } + + private async Task ProcessEventAsync(Message message) + { + var eventName = message.Key; + var eventType = EventTypes.GetOrDefault(eventName); + if (eventType == null) + { + return; + } + + var eventData = Serializer.Deserialize(message.Value, eventType); + + await TriggerHandlersAsync(eventType, eventData); + } + + public IDisposable Subscribe(IDistributedEventHandler handler) where TEvent : class + { + return Subscribe(typeof(TEvent), handler); + } + + public override IDisposable Subscribe(Type eventType, IEventHandlerFactory factory) + { + var handlerFactories = GetOrCreateHandlerFactories(eventType); + + if (factory.IsInFactories(handlerFactories)) + { + return NullDisposable.Instance; + } + + handlerFactories.Add(factory); + + return new EventHandlerFactoryUnregistrar(this, eventType, factory); + } + + /// + public override void Unsubscribe(Func action) + { + Check.NotNull(action, nameof(action)); + + GetOrCreateHandlerFactories(typeof(TEvent)) + .Locking(factories => + { + factories.RemoveAll( + factory => + { + var singleInstanceFactory = factory as SingleInstanceHandlerFactory; + if (singleInstanceFactory == null) + { + return false; + } + + var actionHandler = singleInstanceFactory.HandlerInstance as ActionEventHandler; + if (actionHandler == null) + { + return false; + } + + return actionHandler.Action == action; + }); + }); + } + + /// + public override void Unsubscribe(Type eventType, IEventHandler handler) + { + GetOrCreateHandlerFactories(eventType) + .Locking(factories => + { + factories.RemoveAll( + factory => + factory is SingleInstanceHandlerFactory handlerFactory && + handlerFactory.HandlerInstance == handler + ); + }); + } + + /// + public override void Unsubscribe(Type eventType, IEventHandlerFactory factory) + { + GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Remove(factory)); + } + + /// + public override void UnsubscribeAll(Type eventType) + { + GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear()); + } + + public override async Task PublishAsync(Type eventType, object eventData) + { + var eventName = EventNameAttribute.GetNameOrDefault(eventType); + var body = Serializer.Serialize(eventData); + + var producer = ProducerPool.Get(AbpKafkaEventBusOptions.ConnectionName); + + await producer.ProduceAsync( + AbpKafkaEventBusOptions.TopicName, + new Message + { + Key = eventName, Value = body + }); + } + + private List GetOrCreateHandlerFactories(Type eventType) + { + return HandlerFactories.GetOrAdd( + eventType, + type => + { + var eventName = EventNameAttribute.GetNameOrDefault(type); + EventTypes[eventName] = type; + return new List(); + } + ); + } + + protected override IEnumerable GetHandlerFactories(Type eventType) + { + var handlerFactoryList = new List(); + + foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key)) + ) + { + handlerFactoryList.Add( + new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value)); + } + + return handlerFactoryList.ToArray(); + } + + private static bool ShouldTriggerEventForHandler(Type targetEventType, Type handlerEventType) + { + //Should trigger same type + if (handlerEventType == targetEventType) + { + return true; + } + + //Should trigger for inherited types + if (handlerEventType.IsAssignableFrom(targetEventType)) + { + return true; + } + + return false; + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/FodyWeavers.xml b/framework/src/Volo.Abp.Kafka/FodyWeavers.xml new file mode 100644 index 0000000000..be0de3a908 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.Kafka/FodyWeavers.xsd b/framework/src/Volo.Abp.Kafka/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj new file mode 100644 index 0000000000..e91f42d7b2 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj @@ -0,0 +1,17 @@ + + + + + + + netstandard2.0 + + + + + + + + + + diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaModule.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaModule.cs new file mode 100644 index 0000000000..d69e924349 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaModule.cs @@ -0,0 +1,31 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Json; +using Volo.Abp.Modularity; +using Volo.Abp.Threading; + +namespace Volo.Abp.Kafka +{ + [DependsOn( + typeof(AbpJsonModule), + typeof(AbpThreadingModule) + )] + public class AbpKafkaModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + Configure(configuration.GetSection("Kafka")); + } + + public override void OnApplicationShutdown(ApplicationShutdownContext context) + { + context.ServiceProvider + .GetRequiredService() + .Dispose(); + + context.ServiceProvider + .GetRequiredService() + .Dispose(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs new file mode 100644 index 0000000000..1769d8a076 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/AbpKafkaOptions.cs @@ -0,0 +1,22 @@ +using System; +using Confluent.Kafka; +using Confluent.Kafka.Admin; + +namespace Volo.Abp.Kafka +{ + public class AbpKafkaOptions + { + public KafkaConnections Connections { get; } + + public Action ConfigureProducer { get; set; } + + public Action ConfigureConsumer { get; set; } + + public Action ConfigureTopic { get; set; } + + public AbpKafkaOptions() + { + Connections = new KafkaConnections(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs new file mode 100644 index 0000000000..07af447e1a --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using Confluent.Kafka; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Kafka +{ + public class ConsumerPool : IConsumerPool, ISingletonDependency + { + protected AbpKafkaOptions Options { get; } + + protected ConcurrentDictionary> Consumers { get; } + + protected TimeSpan TotalDisposeWaitDuration { get; set; } = TimeSpan.FromSeconds(10); + + public ILogger Logger { get; set; } + + private bool _isDisposed; + + public ConsumerPool(IOptions options) + { + Options = options.Value; + + Consumers = new ConcurrentDictionary>(); + Logger = new NullLogger(); + } + + public virtual IConsumer Get(string groupId, string connectionName = null) + { + connectionName ??= KafkaConnections.DefaultConnectionName; + var config = new ConsumerConfig(Options.Connections.GetOrDefault(connectionName)) + { + GroupId = groupId, + EnableAutoCommit = false + }; + + Options.ConfigureConsumer?.Invoke(config); + + return Consumers.GetOrAdd( + connectionName, + new ConsumerBuilder(config).Build()); + } + + public void Dispose() + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + + if (!Consumers.Any()) + { + Logger.LogDebug($"Disposed consumer pool with no consumers in the pool."); + return; + } + + var poolDisposeStopwatch = Stopwatch.StartNew(); + + Logger.LogInformation($"Disposing consumer pool ({Consumers.Count} consumers)."); + + var remainingWaitDuration = TotalDisposeWaitDuration; + + foreach (var consumer in Consumers.Values) + { + var poolItemDisposeStopwatch = Stopwatch.StartNew(); + + try + { + consumer.Close(); + consumer.Dispose(); + } + catch + { + } + + poolItemDisposeStopwatch.Stop(); + + remainingWaitDuration = remainingWaitDuration > poolItemDisposeStopwatch.Elapsed + ? remainingWaitDuration.Subtract(poolItemDisposeStopwatch.Elapsed) + : TimeSpan.Zero; + } + + poolDisposeStopwatch.Stop(); + + Logger.LogInformation( + $"Disposed Kafka Consumer Pool ({Consumers.Count} consumers in {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms)."); + + if (poolDisposeStopwatch.Elapsed.TotalSeconds > 5.0) + { + Logger.LogWarning( + $"Disposing Kafka Consumer Pool got time greather than expected: {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms."); + } + + Consumers.Clear(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IConsumerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IConsumerPool.cs new file mode 100644 index 0000000000..94c8a551e2 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IConsumerPool.cs @@ -0,0 +1,10 @@ +using System; +using Confluent.Kafka; + +namespace Volo.Abp.Kafka +{ + public interface IConsumerPool : IDisposable + { + IConsumer Get(string groupId, string connectionName = null); + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumer.cs new file mode 100644 index 0000000000..87872b31a2 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumer.cs @@ -0,0 +1,11 @@ +using System; +using System.Threading.Tasks; +using Confluent.Kafka; + +namespace Volo.Abp.Kafka +{ + public interface IKafkaMessageConsumer + { + void OnMessageReceived(Func, Task> callback); + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumerFactory.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumerFactory.cs new file mode 100644 index 0000000000..2b01b5a935 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaMessageConsumerFactory.cs @@ -0,0 +1,19 @@ +namespace Volo.Abp.Kafka +{ + public interface IKafkaMessageConsumerFactory + { + /// + /// Creates a new . + /// Avoid to create too many consumers since they are + /// not disposed until end of the application. + /// + /// + /// + /// + /// + IKafkaMessageConsumer Create( + string topicName, + string groupId, + string connectionName = null); + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaSerializer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaSerializer.cs new file mode 100644 index 0000000000..58e718831c --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IKafkaSerializer.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.Abp.Kafka +{ + public interface IKafkaSerializer + { + byte[] Serialize(object obj); + + object Deserialize(byte[] value, Type type); + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IProducerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IProducerPool.cs new file mode 100644 index 0000000000..2f94f23e2a --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/IProducerPool.cs @@ -0,0 +1,10 @@ +using System; +using Confluent.Kafka; + +namespace Volo.Abp.Kafka +{ + public interface IProducerPool : IDisposable + { + IProducer Get(string connectionName = null); + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaConnections.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaConnections.cs new file mode 100644 index 0000000000..159c798691 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaConnections.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using Confluent.Kafka; +using JetBrains.Annotations; + +namespace Volo.Abp.Kafka +{ + [Serializable] + public class KafkaConnections : Dictionary + { + public const string DefaultConnectionName = "Default"; + + [NotNull] + public ClientConfig Default + { + get => this[DefaultConnectionName]; + set => this[DefaultConnectionName] = Check.NotNull(value, nameof(value)); + } + + public KafkaConnections() + { + Default = new ClientConfig(); + } + + public ClientConfig GetOrDefault(string connectionName) + { + if (TryGetValue(connectionName, out var connectionFactory)) + { + return connectionFactory; + } + + return Default; + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs new file mode 100644 index 0000000000..c22ca6756b --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumer.cs @@ -0,0 +1,156 @@ +using System; +using System.Collections.Concurrent; +using System.Linq; +using System.Threading.Tasks; +using Confluent.Kafka; +using Confluent.Kafka.Admin; +using JetBrains.Annotations; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; +using Volo.Abp.ExceptionHandling; +using Volo.Abp.Threading; + +namespace Volo.Abp.Kafka +{ + public class KafkaMessageConsumer : IKafkaMessageConsumer, ITransientDependency, IDisposable + { + public ILogger Logger { get; set; } + + protected IConsumerPool ConsumerPool { get; } + + protected IExceptionNotifier ExceptionNotifier { get; } + + protected AbpKafkaOptions Options { get; } + + protected ConcurrentBag, Task>> Callbacks { get; } + + protected IConsumer Consumer { get; private set; } + + protected string ConnectionName { get; private set; } + + protected string GroupId { get; private set; } + + protected string TopicName { get; private set; } + + public KafkaMessageConsumer( + IConsumerPool consumerPool, + IExceptionNotifier exceptionNotifier, + IOptions options) + { + ConsumerPool = consumerPool; + ExceptionNotifier = exceptionNotifier; + Options = options.Value; + Logger = NullLogger.Instance; + + Callbacks = new ConcurrentBag, Task>>(); + } + + public virtual void Initialize( + [NotNull] string topicName, + [NotNull] string groupId, + string connectionName = null) + { + Check.NotNull(topicName, nameof(topicName)); + Check.NotNull(groupId, nameof(groupId)); + TopicName = topicName; + ConnectionName = connectionName ?? KafkaConnections.DefaultConnectionName; + GroupId = groupId; + + AsyncHelper.RunSync(CreateTopicAsync); + Consume(); + } + + public virtual void OnMessageReceived(Func, Task> callback) + { + Callbacks.Add(callback); + } + + protected virtual async Task CreateTopicAsync() + { + using (var adminClient = new AdminClientBuilder(Options.Connections.GetOrDefault(ConnectionName)).Build()) + { + var topic = new TopicSpecification + { + Name = TopicName, + NumPartitions = 1, + ReplicationFactor = 1 + }; + + Options.ConfigureTopic?.Invoke(topic); + + try + { + await adminClient.CreateTopicsAsync(new[] {topic}); + } + catch (CreateTopicsException e) + { + if (!e.Error.Reason.Contains($"Topic '{TopicName}' already exists")) + { + throw; + } + } + } + } + + protected virtual void Consume() + { + Consumer = ConsumerPool.Get(GroupId, ConnectionName); + + Task.Factory.StartNew(async () => + { + Consumer.Subscribe(TopicName); + + while (true) + { + try + { + var consumeResult = Consumer.Consume(); + + if (consumeResult.IsPartitionEOF) + { + continue; + } + + await HandleIncomingMessage(consumeResult); + } + catch (ConsumeException ex) + { + Logger.LogException(ex, LogLevel.Warning); + AsyncHelper.RunSync(() => ExceptionNotifier.NotifyAsync(ex, logLevel: LogLevel.Warning)); + } + } + }); + } + + protected virtual async Task HandleIncomingMessage(ConsumeResult consumeResult) + { + try + { + foreach (var callback in Callbacks) + { + await callback(consumeResult.Message); + } + + Consumer.Commit(consumeResult); + } + catch (Exception ex) + { + Logger.LogException(ex); + await ExceptionNotifier.NotifyAsync(ex); + } + } + + public virtual void Dispose() + { + if (Consumer == null) + { + return; + } + + Consumer.Close(); + Consumer.Dispose(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumerFactory.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumerFactory.cs new file mode 100644 index 0000000000..fb08aa4144 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/KafkaMessageConsumerFactory.cs @@ -0,0 +1,32 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Kafka +{ + public class KafkaMessageConsumerFactory : IKafkaMessageConsumerFactory, ISingletonDependency, IDisposable + { + protected IServiceScope ServiceScope { get; } + + public KafkaMessageConsumerFactory(IServiceScopeFactory serviceScopeFactory) + { + ServiceScope = serviceScopeFactory.CreateScope(); + } + + public IKafkaMessageConsumer Create( + string topicName, + string groupId, + string connectionName = null) + { + var consumer = ServiceScope.ServiceProvider.GetRequiredService(); + consumer.Initialize(topicName, groupId, connectionName); + return consumer; + } + + public void Dispose() + { + ServiceScope?.Dispose(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs new file mode 100644 index 0000000000..77c8898d42 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Concurrent; +using System.Diagnostics; +using System.Linq; +using Confluent.Kafka; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Kafka +{ + public class ProducerPool : IProducerPool, ISingletonDependency + { + protected AbpKafkaOptions Options { get; } + + protected ConcurrentDictionary> Producers { get; } + + protected TimeSpan TotalDisposeWaitDuration { get; set; } = TimeSpan.FromSeconds(10); + + public ILogger Logger { get; set; } + + private bool _isDisposed; + + public ProducerPool(IOptions options) + { + Options = options.Value; + + Producers = new ConcurrentDictionary>(); + Logger = new NullLogger(); + } + + public virtual IProducer Get(string connectionName = null) + { + connectionName ??= KafkaConnections.DefaultConnectionName; + var config = Options.Connections.GetOrDefault(connectionName); + + Options.ConfigureProducer?.Invoke(new ProducerConfig(config)); + + return Producers.GetOrAdd( + connectionName, + new ProducerBuilder(config).Build()); + } + + public void Dispose() + { + if (_isDisposed) + { + return; + } + + _isDisposed = true; + + if (!Producers.Any()) + { + Logger.LogDebug($"Disposed producer pool with no producers in the pool."); + return; + } + + var poolDisposeStopwatch = Stopwatch.StartNew(); + + Logger.LogInformation($"Disposing producer pool ({Producers.Count} producers)."); + + var remainingWaitDuration = TotalDisposeWaitDuration; + + foreach (var producer in Producers.Values) + { + var poolItemDisposeStopwatch = Stopwatch.StartNew(); + + try + { + producer.Dispose(); + } + catch + { + } + + poolItemDisposeStopwatch.Stop(); + + remainingWaitDuration = remainingWaitDuration > poolItemDisposeStopwatch.Elapsed + ? remainingWaitDuration.Subtract(poolItemDisposeStopwatch.Elapsed) + : TimeSpan.Zero; + } + + poolDisposeStopwatch.Stop(); + + Logger.LogInformation($"Disposed Kafka Producer Pool ({Producers.Count} producers in {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms)."); + + if(poolDisposeStopwatch.Elapsed.TotalSeconds > 5.0) + { + Logger.LogWarning($"Disposing Kafka Producer Pool got time greather than expected: {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms."); + } + + Producers.Clear(); + } + } +} diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/Utf8JsonKafkaSerializer.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/Utf8JsonKafkaSerializer.cs new file mode 100644 index 0000000000..a04125f8a6 --- /dev/null +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/Utf8JsonKafkaSerializer.cs @@ -0,0 +1,27 @@ +using System; +using System.Text; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Json; + +namespace Volo.Abp.Kafka +{ + public class Utf8JsonKafkaSerializer : IKafkaSerializer, ITransientDependency + { + private readonly IJsonSerializer _jsonSerializer; + + public Utf8JsonKafkaSerializer(IJsonSerializer jsonSerializer) + { + _jsonSerializer = jsonSerializer; + } + + public byte[] Serialize(object obj) + { + return Encoding.UTF8.GetBytes(_jsonSerializer.Serialize(obj)); + } + + public object Deserialize(byte[] value, Type type) + { + return _jsonSerializer.Deserialize(type, Encoding.UTF8.GetString(value)); + } + } +} diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 99244d5d6c..39d2700411 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -84,6 +84,7 @@ $projects = ( "framework/src/Volo.Abp.EntityFrameworkCore.SqlServer", "framework/src/Volo.Abp.EventBus", "framework/src/Volo.Abp.EventBus.RabbitMQ", + "framework/src/Volo.Abp.EventBus.Kafka", "framework/src/Volo.Abp.Features", "framework/src/Volo.Abp.FluentValidation", "framework/src/Volo.Abp.Guids", @@ -122,6 +123,7 @@ $projects = ( "framework/src/Volo.Abp.Validation.Abstractions", "framework/src/Volo.Abp.Validation", "framework/src/Volo.Abp.VirtualFileSystem", + "framework/src/Volo.Abp.Kafka" # modules/account "modules/account/src/Volo.Abp.Account.Application.Contracts", From 0e25b18aad27aded5468e693d56a94d5c23287ab Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 14 Aug 2020 15:12:05 +0800 Subject: [PATCH 02/98] Update kafka connection pool --- .../Volo/Abp/Kafka/ConsumerPool.cs | 22 ++++++++++-------- .../Volo/Abp/Kafka/ProducerPool.cs | 23 +++++++++++-------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs index 07af447e1a..b2995d1079 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ConsumerPool.cs @@ -34,17 +34,21 @@ namespace Volo.Abp.Kafka public virtual IConsumer Get(string groupId, string connectionName = null) { connectionName ??= KafkaConnections.DefaultConnectionName; - var config = new ConsumerConfig(Options.Connections.GetOrDefault(connectionName)) - { - GroupId = groupId, - EnableAutoCommit = false - }; - - Options.ConfigureConsumer?.Invoke(config); return Consumers.GetOrAdd( - connectionName, - new ConsumerBuilder(config).Build()); + connectionName, connection => + { + var config = new ConsumerConfig(Options.Connections.GetOrDefault(connection)) + { + GroupId = groupId, + EnableAutoCommit = false + }; + + Options.ConfigureConsumer?.Invoke(config); + + return new ConsumerBuilder(config).Build(); + } + ); } public void Dispose() diff --git a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs index 77c8898d42..c4b4b9ead0 100644 --- a/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs +++ b/framework/src/Volo.Abp.Kafka/Volo/Abp/Kafka/ProducerPool.cs @@ -33,13 +33,16 @@ namespace Volo.Abp.Kafka public virtual IProducer Get(string connectionName = null) { connectionName ??= KafkaConnections.DefaultConnectionName; - var config = Options.Connections.GetOrDefault(connectionName); - - Options.ConfigureProducer?.Invoke(new ProducerConfig(config)); - + return Producers.GetOrAdd( - connectionName, - new ProducerBuilder(config).Build()); + connectionName, connection => + { + var config = Options.Connections.GetOrDefault(connection); + + Options.ConfigureProducer?.Invoke(new ProducerConfig(config)); + + return new ProducerBuilder(config).Build(); + }); } public void Dispose() @@ -84,11 +87,13 @@ namespace Volo.Abp.Kafka poolDisposeStopwatch.Stop(); - Logger.LogInformation($"Disposed Kafka Producer Pool ({Producers.Count} producers in {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms)."); + Logger.LogInformation( + $"Disposed Kafka Producer Pool ({Producers.Count} producers in {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms)."); - if(poolDisposeStopwatch.Elapsed.TotalSeconds > 5.0) + if (poolDisposeStopwatch.Elapsed.TotalSeconds > 5.0) { - Logger.LogWarning($"Disposing Kafka Producer Pool got time greather than expected: {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms."); + Logger.LogWarning( + $"Disposing Kafka Producer Pool got time greather than expected: {poolDisposeStopwatch.Elapsed.TotalMilliseconds:0.00} ms."); } Producers.Clear(); From 7fd9c6ab554cd7a0499960b52310b990e2bd62f2 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Thu, 20 Aug 2020 17:06:52 +0300 Subject: [PATCH 03/98] docs: create environment docs for Angular --- docs/en/UI/Angular/Environment.md | 99 +++++++++++++++++++++++++++++ docs/en/UI/Angular/Multi-Tenancy.md | 2 +- docs/en/docs-nav.json | 8 ++- 3 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 docs/en/UI/Angular/Environment.md diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md new file mode 100644 index 0000000000..b1f47ac864 --- /dev/null +++ b/docs/en/UI/Angular/Environment.md @@ -0,0 +1,99 @@ +# Environment + +Current `Environment` Configuration holds sub config classes. + +```typescript +export interface Environment { + apis: Apis; + application: Application; + hmr?: boolean; + localization?: { defaultResourceName?: string }; + oAuthConfig: AuthConfig; + production: boolean; + remoteEnv?: RemoteEnv; +} +``` + +## Apis + +```typescript +export interface Apis { + [key: string]: ApiConfig; + default: ApiConfig; +} + +export interface ApiConfig { + [key: string]: string; + url: string; +} +``` + +Api config has to have a default config and it may have some additional ones for different modules. +I.e. you may want to connect to different Apis for different modules. + +Take a look at example + +```json +{ + ... + "apis": { + "default": { + "url": "https://localhost:8080", + }, + "AbpIdentity": { + "url": "https://localhost:9090", + } + } +} +``` + +When an api from `AbpIdentity` is called, the request will be sent to `"https://localhost:9090"`. +Everything else will be sent to `"https://localhost:8080"` + +## Application + +```typescript + export interface Application { + name: string; + baseUrl?: string; + logoUrl?: string; +} +``` + +* `name`: Name of the backend Application. It is also used by `logo.component` if `logoUrl` is not provided. +* `logoUrl`: Url of application logo. It is used by `logo.component` +* `baseUrl`: [For detailed information](./Multi-Tenancy.md#domain-tenant-resolver) + +## Localization + +You can read about `Localization` [here in detail](./Localization.md) + +## OAuthConfig + +..... + +## RemoteEnvironment + +To integrate an existing config json into environment, you need to set `remoteEnv` + +```typescript +export type customMergeFn = ( + localEnv: Partial, + remoteEnv: any, +) => Config.Environment; + +export interface RemoteEnv { + url: string; + mergeStrategy: 'deepmerge' | 'overwrite' | customMergeFn; + method?: string; + headers?: ABP.Dictionary; +} +``` + +* `url` *: Required. The url to be used to retrieve environment config +* `mergeStrategy`: Defines how local and remote environment json will be merged + * `deepmerge`: Both local and remote environment json will be merged recursively. If both config has same nested path, remote environment will be prioritized. + * `overwrite`: Remote environment will be used and local environment will be ignored. + * `customMergeFn`: You can also provide your own merge function as shown in the example. It will take two parameters, `localEnv: Partial` and `remoteEnv` and it needs to return a `Config.Environment` object. +* `method`: HTTP method to be used when retrieving environment config. Default: `GET` +* `headers`: If extra headers are needed for the request, it can be set through this field. \ No newline at end of file diff --git a/docs/en/UI/Angular/Multi-Tenancy.md b/docs/en/UI/Angular/Multi-Tenancy.md index fb9fb54f76..2f768de32a 100644 --- a/docs/en/UI/Angular/Multi-Tenancy.md +++ b/docs/en/UI/Angular/Multi-Tenancy.md @@ -20,7 +20,7 @@ On the page above, you can; You can switch between existing tenants by using the tenant switching component in the child pages of the `AccountLayoutComponent` (like Login page). Angular UI sends the selected tenant id to the backend as `__tenant` header on each request. -## Domain Tenant Resolver +

Domain Tenant Resolver

Angular UI can get the tenant name from the app running URL. You can determine the current tenant by subdomain (like mytenant1.mydomain.com) or by the whole domain (like mytenant.com). To do this, you need to set the `application.baseUrl` property in the environment: diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 660f2b1b60..411cced68d 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -219,11 +219,11 @@ "items": [ { "text": "Email Sending System", - "path": "Emailing.md", + "path": "Emailing.md" }, { "text": "MailKit Integration", - "path": "MailKit.md", + "path": "MailKit.md" } ] }, @@ -423,6 +423,10 @@ "text": "Migration Guide v2.x to v3", "path": "UI/Angular/Migration-Guide-v3.md" }, + { + "text": "Environment", + "path": "UI/Angular/Environment.md" + }, { "text": "Service Proxies", "path": "UI/Angular/Service-Proxies.md" From 1bb107bde4443854773c8509cd4d2cd005fdb80c Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 21 Aug 2020 09:02:33 +0300 Subject: [PATCH 04/98] docs: improve environment.md --- docs/en/UI/Angular/Environment.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index b1f47ac864..22acc369d9 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -35,7 +35,7 @@ Take a look at example ```json { - ... + // ... "apis": { "default": { "url": "https://localhost:8080", @@ -43,7 +43,8 @@ Take a look at example "AbpIdentity": { "url": "https://localhost:9090", } - } + }, + // ... } ``` @@ -68,9 +69,9 @@ Everything else will be sent to `"https://localhost:8080"` You can read about `Localization` [here in detail](./Localization.md) -## OAuthConfig +## AuthConfig -..... +For authentication, we use [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc) ## RemoteEnvironment From 45458342e4fd46e6d51c8761000241bd00d57702 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Fri, 21 Aug 2020 12:17:00 +0300 Subject: [PATCH 05/98] docs: improve environment md --- docs/en/UI/Angular/Environment.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 22acc369d9..34b7a38370 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -1,6 +1,8 @@ # Environment -Current `Environment` Configuration holds sub config classes. +Every application needs some ** environment ** variables. In Angular world, this is usually managed by `environment.ts`, `environment.prod.ts` and so on. It is the same for Abp as well. + +Current `Environment` configuration holds sub config classes as follows: ```typescript export interface Environment { @@ -31,7 +33,7 @@ export interface ApiConfig { Api config has to have a default config and it may have some additional ones for different modules. I.e. you may want to connect to different Apis for different modules. -Take a look at example +Take a look at following example ```json { @@ -62,7 +64,7 @@ Everything else will be sent to `"https://localhost:8080"` ``` * `name`: Name of the backend Application. It is also used by `logo.component` if `logoUrl` is not provided. -* `logoUrl`: Url of application logo. It is used by `logo.component` +* `logoUrl`: Url of the application logo. It is used by `logo.component` * `baseUrl`: [For detailed information](./Multi-Tenancy.md#domain-tenant-resolver) ## Localization @@ -71,11 +73,14 @@ You can read about `Localization` [here in detail](./Localization.md) ## AuthConfig -For authentication, we use [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc) +For authentication, we use angular-oauth2-oidc. Please check their [docs](https://github.com/manfredsteyer/angular-oauth2-oidc) out ## RemoteEnvironment -To integrate an existing config json into environment, you need to set `remoteEnv` +Some applications need to integrate an existing config into the `environment` used throughout the application. +Abp Framework supports this out of box. + +To integrate an existing config json into the `environment`, you need to set `remoteEnv` ```typescript export type customMergeFn = ( @@ -92,9 +97,9 @@ export interface RemoteEnv { ``` * `url` *: Required. The url to be used to retrieve environment config -* `mergeStrategy`: Defines how local and remote environment json will be merged - * `deepmerge`: Both local and remote environment json will be merged recursively. If both config has same nested path, remote environment will be prioritized. - * `overwrite`: Remote environment will be used and local environment will be ignored. +* `mergeStrategy` *: Required. Defines how the local and the remote `environment` json will be merged + * `deepmerge`: Both local and remote `environment` json will be merged recursively. If both configs have same nested path, the remote `environment` will be prioritized. + * `overwrite`: Remote `environment` will be used and local environment will be ignored. * `customMergeFn`: You can also provide your own merge function as shown in the example. It will take two parameters, `localEnv: Partial` and `remoteEnv` and it needs to return a `Config.Environment` object. * `method`: HTTP method to be used when retrieving environment config. Default: `GET` * `headers`: If extra headers are needed for the request, it can be set through this field. \ No newline at end of file From d410e8059ced47fbaadc04536bb2595b03c04562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Fri, 21 Aug 2020 23:31:59 +0300 Subject: [PATCH 06/98] Introduce @abp/cropperjs npm package CropperJs script and style contributor are added --- .../CropperJs/CropperJsScriptContributor.cs | 13 +++++++++++++ .../Packages/CropperJs/CropperJsStyleContributor.cs | 13 +++++++++++++ npm/packs/cropperjs/abp.resourcemapping.js | 6 ++++++ npm/packs/cropperjs/package.json | 11 +++++++++++ 4 files changed, 43 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsScriptContributor.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsStyleContributor.cs create mode 100644 npm/packs/cropperjs/abp.resourcemapping.js create mode 100644 npm/packs/cropperjs/package.json diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsScriptContributor.cs new file mode 100644 index 0000000000..fbfd19f765 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsScriptContributor.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.CropperJs +{ + public class CropperJsScriptContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/cropperjs/js/cropper.min.js"); + } + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsStyleContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsStyleContributor.cs new file mode 100644 index 0000000000..1e6f78ff3f --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/CropperJs/CropperJsStyleContributor.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.CropperJs +{ + public class CropperJsStyleContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/cropperjs/css/cropper.min.css"); + } + } +} \ No newline at end of file diff --git a/npm/packs/cropperjs/abp.resourcemapping.js b/npm/packs/cropperjs/abp.resourcemapping.js new file mode 100644 index 0000000000..68cc55b64e --- /dev/null +++ b/npm/packs/cropperjs/abp.resourcemapping.js @@ -0,0 +1,6 @@ +module.exports = { + mappings: { + "@node_modules/cropperjs/dist/cropper.min.js": "@libs/cropperjs/js/", + "@node_modules/cropperjs/dist/cropper.min.css": "@libs/cropperjs/css/" + } +} \ No newline at end of file diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json new file mode 100644 index 0000000000..9ce511e71b --- /dev/null +++ b/npm/packs/cropperjs/package.json @@ -0,0 +1,11 @@ +{ + "version": "3.0.5", + "name": "@abp/cropperjs", + "publishConfig": { + "access": "public" + }, + "dependencies": { + "cropperjs": "^1.5.7" + }, + "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" +} From 6db86830a9c1636b170d939011d82b6662a43928 Mon Sep 17 00:00:00 2001 From: Bunyamin Coskuner Date: Mon, 24 Aug 2020 10:37:34 +0300 Subject: [PATCH 07/98] docs: capitalize ABP Co-authored-by: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> --- docs/en/UI/Angular/Environment.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 34b7a38370..cfdfb4cce1 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -1,6 +1,6 @@ # Environment -Every application needs some ** environment ** variables. In Angular world, this is usually managed by `environment.ts`, `environment.prod.ts` and so on. It is the same for Abp as well. +Every application needs some ** environment ** variables. In Angular world, this is usually managed by `environment.ts`, `environment.prod.ts` and so on. It is the same for ABP as well. Current `Environment` configuration holds sub config classes as follows: @@ -102,4 +102,4 @@ export interface RemoteEnv { * `overwrite`: Remote `environment` will be used and local environment will be ignored. * `customMergeFn`: You can also provide your own merge function as shown in the example. It will take two parameters, `localEnv: Partial` and `remoteEnv` and it needs to return a `Config.Environment` object. * `method`: HTTP method to be used when retrieving environment config. Default: `GET` -* `headers`: If extra headers are needed for the request, it can be set through this field. \ No newline at end of file +* `headers`: If extra headers are needed for the request, it can be set through this field. From b0dbd4e8f1a34e10942f92fa3ea89cec67ca2492 Mon Sep 17 00:00:00 2001 From: Bunyamin Coskuner Date: Mon, 24 Aug 2020 10:38:51 +0300 Subject: [PATCH 08/98] docs: remove hmr and localization fields Co-authored-by: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> --- docs/en/UI/Angular/Environment.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index cfdfb4cce1..5ffe7b1ba5 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -8,8 +8,6 @@ Current `Environment` configuration holds sub config classes as follows: export interface Environment { apis: Apis; application: Application; - hmr?: boolean; - localization?: { defaultResourceName?: string }; oAuthConfig: AuthConfig; production: boolean; remoteEnv?: RemoteEnv; From 9e4b2a7335259bf3cc20c795c687be0031adc15d Mon Sep 17 00:00:00 2001 From: Bunyamin Coskuner Date: Mon, 24 Aug 2020 10:39:16 +0300 Subject: [PATCH 09/98] docs: remove localization part Co-authored-by: Mehmet Erim <34455572+mehmet-erim@users.noreply.github.com> --- docs/en/UI/Angular/Environment.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 5ffe7b1ba5..af50e34155 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -65,9 +65,6 @@ Everything else will be sent to `"https://localhost:8080"` * `logoUrl`: Url of the application logo. It is used by `logo.component` * `baseUrl`: [For detailed information](./Multi-Tenancy.md#domain-tenant-resolver) -## Localization - -You can read about `Localization` [here in detail](./Localization.md) ## AuthConfig From 325f13020825f92f5c87e4a19ec0f3a06d1a67c3 Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Mon, 24 Aug 2020 15:46:01 +0300 Subject: [PATCH 10/98] docs: update nav between docs --- docs/en/UI/Angular/Environment.md | 8 +++++++- docs/en/UI/Angular/Migration-Guide-v3.md | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 34b7a38370..ceacf8f038 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -102,4 +102,10 @@ export interface RemoteEnv { * `overwrite`: Remote `environment` will be used and local environment will be ignored. * `customMergeFn`: You can also provide your own merge function as shown in the example. It will take two parameters, `localEnv: Partial` and `remoteEnv` and it needs to return a `Config.Environment` object. * `method`: HTTP method to be used when retrieving environment config. Default: `GET` -* `headers`: If extra headers are needed for the request, it can be set through this field. \ No newline at end of file +* `headers`: If extra headers are needed for the request, it can be set through this field. + + +## What's Next? + +* [Service Proxies](./Service-Proxies.md) + diff --git a/docs/en/UI/Angular/Migration-Guide-v3.md b/docs/en/UI/Angular/Migration-Guide-v3.md index 725a04c088..810d830ca3 100644 --- a/docs/en/UI/Angular/Migration-Guide-v3.md +++ b/docs/en/UI/Angular/Migration-Guide-v3.md @@ -473,5 +473,5 @@ Some interfaces have long been marked as deprecated and now they are removed. ## What's Next? -* [Service Proxies](./Service-Proxies.md) +* [Environment](./Environment.md) From 8e2c8a51871865635409c1fd9094028159c12c52 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 25 Aug 2020 14:42:03 +0300 Subject: [PATCH 11/98] ABP CLI generate-proxy command checks if @abp/ng.schematics package was installed resolves https://github.com/abpframework/abp/issues/5170 --- .../Abp/Cli/Commands/GenerateProxyCommand.cs | 49 ++++++++++++++++--- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs index 74bc1bf9f5..ab680ce4b8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -2,6 +2,8 @@ using System; using System.IO; using System.Text; using System.Threading.Tasks; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Utils; using Volo.Abp.DependencyInjection; @@ -12,19 +14,50 @@ namespace Volo.Abp.Cli.Commands { public Task ExecuteAsync(CommandLineArgs commandLineArgs) { - var angularPath = $"angular.json"; - if (!File.Exists(angularPath)) + CheckAngularJsonFile(); + CheckNgSchematics(); + + CmdHelper.RunCmd("npx ng g @abp/ng.schematics:proxy"); + + return Task.CompletedTask; + } + + private void CheckNgSchematics() + { + var packageJsonPath = $"package.json"; + + if (!File.Exists(packageJsonPath)) { throw new CliUsageException( - "angular.json file not found. You must run this command in the angular folder." + - Environment.NewLine + Environment.NewLine + - GetUsageInfo() - ); + "package.json file not found" + + Environment.NewLine + + GetUsageInfo() + ); } - CmdHelper.RunCmd("npx ng g @abp/ng.schematics:proxy"); + var schematicsPackageNode = (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; - return Task.CompletedTask; + if (schematicsPackageNode == null) + { + throw new CliUsageException( + "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + + Environment.NewLine + + GetUsageInfo() + ); + } + } + + private void CheckAngularJsonFile() + { + var angularPath = $"angular.json"; + if (!File.Exists(angularPath)) + { + throw new CliUsageException( + "angular.json file not found. You must run this command in the angular folder." + + Environment.NewLine + Environment.NewLine + + GetUsageInfo() + ); + } } public string GetUsageInfo() From 8394ffcd422a3cb72e0bbc496843e90bb9e7d504 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:48:32 +0300 Subject: [PATCH 12/98] feat: add utility fn to get root namespace from environment --- .../packages/schematics/src/utils/source.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index e08ecec285..8a41776955 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -25,6 +25,31 @@ export async function getApiDefinition(url: string) { return body; } +export function getRootNamespace(tree: Tree, project: Project, moduleName: string) { + const environmentExpr = readEnvironment(tree, project.definition); + + if (!environmentExpr) + throw new SchematicsException(interpolate(Exception.NoEnvironment, project.name)); + + let assignment = getAssignedPropertyFromObjectliteral(environmentExpr, [ + 'apis', + moduleName, + 'rootNamespace', + ]); + + if (!assignment) + assignment = getAssignedPropertyFromObjectliteral(environmentExpr, [ + 'apis', + 'default', + 'rootNamespace', + ]); + + if (!assignment) + throw new SchematicsException(interpolate(Exception.NoRootNamespace, project.name, moduleName)); + + return assignment.replace(/[`'"]/g, ''); +} + export function getSourceUrl(tree: Tree, project: Project, moduleName: string) { const environmentExpr = readEnvironment(tree, project.definition); From 060e3c4a0851d2699daa1063aa0695140b227210 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:49:25 +0300 Subject: [PATCH 13/98] feat: add rootNamespace to core config model --- npm/ng-packs/packages/core/src/lib/models/config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/core/src/lib/models/config.ts b/npm/ng-packs/packages/core/src/lib/models/config.ts index 5f19907388..be640a4dcf 100644 --- a/npm/ng-packs/packages/core/src/lib/models/config.ts +++ b/npm/ng-packs/packages/core/src/lib/models/config.ts @@ -24,6 +24,7 @@ export namespace Config { export interface ApiConfig { [key: string]: string; + rootNamespace?: string; url: string; } From b672edafaae0efbf422ad9f0e6a8b7994635d1b5 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:50:10 +0300 Subject: [PATCH 14/98] feat: add placeholder rootNamespace to all environments --- npm/ng-packs/apps/dev-app/src/environments/environment.ts | 1 + templates/app/angular/src/environments/environment.ts | 1 + .../angular/projects/dev-app/src/environments/environment.ts | 2 ++ 3 files changed, 4 insertions(+) diff --git a/npm/ng-packs/apps/dev-app/src/environments/environment.ts b/npm/ng-packs/apps/dev-app/src/environments/environment.ts index 2bf42cf7dc..e338675552 100644 --- a/npm/ng-packs/apps/dev-app/src/environments/environment.ts +++ b/npm/ng-packs/apps/dev-app/src/environments/environment.ts @@ -20,6 +20,7 @@ export const environment = { apis: { default: { url: 'https://localhost:44305', + rootNamespace: 'MyCompanyName.MyProjectName', }, }, } as Config.Environment; diff --git a/templates/app/angular/src/environments/environment.ts b/templates/app/angular/src/environments/environment.ts index cb0be073c2..bd2c831240 100644 --- a/templates/app/angular/src/environments/environment.ts +++ b/templates/app/angular/src/environments/environment.ts @@ -19,6 +19,7 @@ export const environment = { apis: { default: { url: 'https://localhost:44305', + rootNamespace: 'MyCompanyName.MyProjectName', }, }, } as Config.Environment; diff --git a/templates/module/angular/projects/dev-app/src/environments/environment.ts b/templates/module/angular/projects/dev-app/src/environments/environment.ts index 780fa891d9..b6467fa43c 100644 --- a/templates/module/angular/projects/dev-app/src/environments/environment.ts +++ b/templates/module/angular/projects/dev-app/src/environments/environment.ts @@ -18,9 +18,11 @@ export const environment = { apis: { default: { url: 'https://localhost:44301', + rootNamespace: 'MyCompanyName.MyProjectName', }, MyProjectName: { url: 'https://localhost:44300', + rootNamespace: 'MyCompanyName.MyProjectName', }, }, } as Config.Environment; From 6107bd58d3bb659b4c1432dfe9bc668a70fb9c5d Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:51:21 +0300 Subject: [PATCH 15/98] feat: use same schema on proxy and api commands --- .../schematics/src/commands/api/schema.json | 26 +++++++++---------- .../schematics/src/commands/api/schema.ts | 12 ++++----- .../schematics/src/commands/proxy/schema.json | 24 +++++------------ .../schematics/src/commands/proxy/schema.ts | 11 +++----- 4 files changed, 29 insertions(+), 44 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/schema.json b/npm/ng-packs/packages/schematics/src/commands/api/schema.json index afed78c2ca..4411418c34 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/api/schema.json @@ -4,36 +4,36 @@ "title": "ABP Generate API Schema", "type": "object", "properties": { - "solution": { - "alias": "x", - "description": "Solution name", + "module": { + "alias": "m", + "description": "Backend module to generate code for", "type": "string", "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "Please enter the solution name. (case-sensitive, eg. Acme.BookStore)" + "x-prompt": "Please enter name of the backend module you wish to generate proxies for. (default: \"app\")" }, - "target": { - "alias": "t", - "description": "Angular project to generate code in", + "source": { + "alias": "s", + "description": "Angular project to resolve root namespace & API definition URL from", "type": "string", "$default": { "$source": "argv", "index": 1 }, - "x-prompt": "Plese enter Angular project name to place generated code in. (default: workspace \"defaultProject\")" + "x-prompt": "Plese enter Angular project name to resolve root namespace & API definition URL from. (default: workspace \"defaultProject\")" }, - "module": { - "alias": "m", - "description": "Backend module to generate code for", + "target": { + "alias": "t", + "description": "Angular project to generate code in", "type": "string", "$default": { "$source": "argv", "index": 2 }, - "x-prompt": "Please enter name of the backend module you wish to generate proxies for. (default: \"app\")" + "x-prompt": "Plese enter Angular project name to place generated code in. (default: workspace \"defaultProject\")" } }, - "required": ["solution"] + "required": [] } diff --git a/npm/ng-packs/packages/schematics/src/commands/api/schema.ts b/npm/ng-packs/packages/schematics/src/commands/api/schema.ts index 32e316cf53..0c26ce461f 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/schema.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/schema.ts @@ -1,16 +1,16 @@ export interface Schema { /** - * Solution name + * Backend module to generate code for */ - solution: string; + module?: string; /** - * Angular project to generate code in + * Angular project to resolve root namespace & API definition URL from */ - target?: string; + source?: string; /** - * Backend module to generate code for + * Angular project to generate code in */ - module?: string; + target?: string; } diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json index 7e4c0fc88e..f0b76bbdf6 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json @@ -4,25 +4,25 @@ "title": "ABP Generate Proxy Schema", "type": "object", "properties": { - "solution": { - "alias": "x", - "description": "Solution name", + "module": { + "alias": "m", + "description": "Backend module to generate code for", "type": "string", "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "Please enter the solution name. (case-sensitive, eg. Acme.BookStore)" + "x-prompt": "Please enter name of the backend module you wish to generate proxies for. (default: \"app\")" }, "source": { "alias": "s", - "description": "Angular project to resolve API definition URL from", + "description": "Angular project to resolve root namespace & API definition URL from", "type": "string", "$default": { "$source": "argv", "index": 1 }, - "x-prompt": "Plese enter Angular project name to resolve API definition URL from. (default: workspace \"defaultProject\")" + "x-prompt": "Plese enter Angular project name to resolve root namespace & API definition URL from. (default: workspace \"defaultProject\")" }, "target": { "alias": "t", @@ -33,17 +33,7 @@ "index": 2 }, "x-prompt": "Plese enter Angular project name to place generated code in. (default: workspace \"defaultProject\")" - }, - "module": { - "alias": "m", - "description": "Backend module to generate code for", - "type": "string", - "$default": { - "$source": "argv", - "index": 3 - }, - "x-prompt": "Please enter name of the backend module you wish to generate proxies for. (default: \"app\")" } }, - "required": ["solution"] + "required": [] } diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts b/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts index 54f11b2da8..0c26ce461f 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts @@ -1,11 +1,11 @@ export interface Schema { /** - * Solution name + * Backend module to generate code for */ - solution: string; + module?: string; /** - * Angular project to resolve API definition URL from + * Angular project to resolve root namespace & API definition URL from */ source?: string; @@ -13,9 +13,4 @@ export interface Schema { * Angular project to generate code in */ target?: string; - - /** - * Backend module to generate code for - */ - module?: string; } From 2c46da86c38b7ff89aaf970acb9ae5bdf52d3a8d Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:52:01 +0300 Subject: [PATCH 16/98] feat: add separate exception for invalid api definition --- npm/ng-packs/packages/schematics/src/enums/exception.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/enums/exception.ts b/npm/ng-packs/packages/schematics/src/enums/exception.ts index b1402daf5c..6c2e635edf 100644 --- a/npm/ng-packs/packages/schematics/src/enums/exception.ts +++ b/npm/ng-packs/packages/schematics/src/enums/exception.ts @@ -1,12 +1,14 @@ export const enum Exception { FileNotFound = '[File Not Found] There is no file at "{0}" path.', InvalidModule = '[Invalid Module] Backend module "{0}" does not exist in API definition.', + InvalidApiDefinition = '[Invalid API Definition] The provided API definition is invalid.', InvalidWorkspace = '[Invalid Workspace] The angular.json should be a valid JSON file.', NoApi = '[API Not Available] Please double-check the URL in the source project environment and make sure your application is up and running.', - NoApiDefinition = '[API Definition Not Found] There is no valid API definition file at "{0}".', + NoApiDefinition = '[API Definition Not Found] There is no API definition file at "{0}".', NoProject = '[Project Not Found] Either define a default project in your workspace or specify the project name in schematics options.', NoTypeDefinition = '[Type Definition Not Found] There is no type definition for "{0}".', NoWorkspace = '[Workspace Not Found] Make sure you are running schematics at the root directory of your workspace and it has an angular.json file.', NoEnvironment = '[Environment Not Found] An environment file cannot be located in "{0}" project.', NoApiUrl = '[API URL Not Found] Cannot resolve API URL for "{1}" module from "{0}" project.', + NoRootNamespace = '[Root Namespace Not Found] Cannot resolve root namespace for "{1}" module from "{0}" project.', } From 63bb86a30662999e6aba5d52f143998ba2b26bab Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 17:52:54 +0300 Subject: [PATCH 17/98] feat: resolve solution from rootNamespace in environment --- .../packages/schematics/src/commands/api/index.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 688430f35f..956e91e0b1 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -20,6 +20,7 @@ import { createImportRefToEnumMapper, EnumGeneratorParams, getEnumNamesFromImports, + getRootNamespace, interpolate, ModelGeneratorParams, resolveProject, @@ -29,18 +30,21 @@ import * as cases from '../../utils/text'; import { Schema as GenerateProxySchema } from './schema'; export default function(params: GenerateProxySchema) { - const solution = params.solution; const moduleName = strings.camelize(params.module || 'app'); return chain([ async (tree: Tree, _context: SchematicContext) => { + const source = await resolveProject(tree, params.source!); const target = await resolveProject(tree, params.target!); + const solution = getRootNamespace(tree, source, moduleName); const targetPath = buildDefaultPath(target.definition); - const readApiDefinition = createApiDefinitionReader( - `${targetPath}/shared/api-definition.json`, - ); + const definitionPath = `${targetPath}/shared/api-definition.json`; + const readApiDefinition = createApiDefinitionReader(definitionPath); const data = readApiDefinition(tree); const types = data.types; + const modules = data.modules; + if (!types || !modules) throw new SchematicsException(Exception.InvalidApiDefinition); + const definition = data.modules[moduleName]; if (!definition) throw new SchematicsException(interpolate(Exception.InvalidModule, moduleName)); From c61d273c5b62cdf24dfe6442f41d950a9b09aece Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Tue, 25 Aug 2020 18:28:05 +0300 Subject: [PATCH 18/98] docs: update ApiConfig with rootNamespace --- docs/en/UI/Angular/Environment.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/en/UI/Angular/Environment.md b/docs/en/UI/Angular/Environment.md index 1119e7781a..86978cfa16 100644 --- a/docs/en/UI/Angular/Environment.md +++ b/docs/en/UI/Angular/Environment.md @@ -24,6 +24,7 @@ export interface Apis { export interface ApiConfig { [key: string]: string; + rootNamespace?: string; url: string; } ``` @@ -51,6 +52,8 @@ Take a look at following example When an api from `AbpIdentity` is called, the request will be sent to `"https://localhost:9090"`. Everything else will be sent to `"https://localhost:8080"` +* `rootNamespace` **(new)** : Root namespace of the related API. e.g. Acme.BookStore + ## Application ```typescript From d4852de457cb5c966708bc9d7023e57415426050 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 18:39:03 +0300 Subject: [PATCH 19/98] fix: escape dot in parseNamespace regex --- npm/ng-packs/packages/schematics/src/utils/namespace.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/namespace.ts b/npm/ng-packs/packages/schematics/src/utils/namespace.ts index 8b7c1a8c66..c4d10ff9e6 100644 --- a/npm/ng-packs/packages/schematics/src/utils/namespace.ts +++ b/npm/ng-packs/packages/schematics/src/utils/namespace.ts @@ -8,8 +8,8 @@ export function parseNamespace(solution: string, type: string) { .join('.'); solution.split('.').reduceRight((acc, part) => { - acc = part + '.' + acc; - const regex = new RegExp('^' + acc + '(Controllers.)?'); + acc = `${part}\.${acc}`; + const regex = new RegExp(`^${acc}(Controllers\.)?`); namespace = namespace.replace(regex, ''); return acc; }, ''); From 9e4ecc0a4a7d0cf56fc1487f5e671b5dc6497de4 Mon Sep 17 00:00:00 2001 From: Bunyamin Coskuner Date: Tue, 25 Aug 2020 18:45:46 +0300 Subject: [PATCH 20/98] docs: revert title change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Levent Arman Özak --- docs/en/UI/Angular/Multi-Tenancy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Multi-Tenancy.md b/docs/en/UI/Angular/Multi-Tenancy.md index 2f768de32a..fb9fb54f76 100644 --- a/docs/en/UI/Angular/Multi-Tenancy.md +++ b/docs/en/UI/Angular/Multi-Tenancy.md @@ -20,7 +20,7 @@ On the page above, you can; You can switch between existing tenants by using the tenant switching component in the child pages of the `AccountLayoutComponent` (like Login page). Angular UI sends the selected tenant id to the backend as `__tenant` header on each request. -

Domain Tenant Resolver

+## Domain Tenant Resolver Angular UI can get the tenant name from the app running URL. You can determine the current tenant by subdomain (like mytenant1.mydomain.com) or by the whole domain (like mytenant.com). To do this, you need to set the `application.baseUrl` property in the environment: From ffa4c1a9ce08e9120e072ed27de0a4c17ac11c63 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 25 Aug 2020 20:14:31 +0300 Subject: [PATCH 21/98] fix: escape dot twice in parseNamespace regex --- npm/ng-packs/packages/schematics/src/utils/namespace.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/namespace.ts b/npm/ng-packs/packages/schematics/src/utils/namespace.ts index c4d10ff9e6..78ee91a02a 100644 --- a/npm/ng-packs/packages/schematics/src/utils/namespace.ts +++ b/npm/ng-packs/packages/schematics/src/utils/namespace.ts @@ -8,8 +8,8 @@ export function parseNamespace(solution: string, type: string) { .join('.'); solution.split('.').reduceRight((acc, part) => { - acc = `${part}\.${acc}`; - const regex = new RegExp(`^${acc}(Controllers\.)?`); + acc = `${part}\\.${acc}`; + const regex = new RegExp(`^${acc}(Controllers\\.)?`); namespace = namespace.replace(regex, ''); return acc; }, ''); From 78d927ada8250f53c7719e6e4b3a391ad2bcbb9f Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Wed, 26 Aug 2020 09:32:03 +0300 Subject: [PATCH 22/98] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 1d2d986131..185ff859c9 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.1.0-rc.1 + 3.1.0-rc.2 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png https://abp.io From c36f7243233f59dd215f491c5d022ecb276df877 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 14:48:22 +0800 Subject: [PATCH 23/98] Disable features based on inheritance relationship. --- .../Volo/Abp/FeatureManagement/FeatureDto.cs | 6 +- .../FeatureManagement/FeatureAppService.cs | 5 +- .../DefaultValueFeatureManagementProvider.cs | 7 +- .../FeatureManagementProvider.cs | 7 +- .../Abp/FeatureManagement/FeatureManager.cs | 84 ++++++++++++------- .../FeatureNameValueWithGrantedProvider.cs | 19 +++++ .../FeatureValueProviderInfo.cs | 21 +++++ .../IFeatureManagementProvider.cs | 5 +- .../Abp/FeatureManagement/IFeatureManager.cs | 6 +- .../FeatureManagementModal.cshtml | 11 ++- .../FeatureManagementModal.cshtml.cs | 9 +- 11 files changed, 138 insertions(+), 42 deletions(-) create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureNameValueWithGrantedProvider.cs create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureValueProviderInfo.cs diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs index 1128cfd2e2..26b41dbc8f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Volo.Abp.Validation.StringValues; namespace Volo.Abp.FeatureManagement @@ -11,6 +11,8 @@ namespace Volo.Abp.FeatureManagement public string Value { get; set; } + public string ProviderName { get; set; } + public string Description { get; set; } public IStringValueType ValueType { get; set; } @@ -19,4 +21,4 @@ namespace Volo.Abp.FeatureManagement public string ParentName { get; set; } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index ab097a54a6..8fc761a632 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -33,6 +33,8 @@ namespace Volo.Abp.FeatureManagement foreach (var featureDefinition in featureDefinitions) { + var value = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, + providerKey); features.Add(new FeatureDto { Name = featureDefinition.Name, @@ -40,7 +42,8 @@ namespace Volo.Abp.FeatureManagement ValueType = featureDefinition.ValueType, Description = featureDefinition.Description?.Localize(StringLocalizerFactory), ParentName = featureDefinition.Parent?.Name, - Value = await FeatureManager.GetOrNullAsync(featureDefinition.Name, providerName, providerKey) + Value = value.Value, + ProviderName = value.Provider.Name }); } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagementProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagementProvider.cs index 6c501166e2..744cedbbbf 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagementProvider.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagementProvider.cs @@ -8,6 +8,11 @@ namespace Volo.Abp.FeatureManagement { public string Name => DefaultValueFeatureValueProvider.ProviderName; + public bool Compatible(string providerName) + { + return providerName == Name; + } + public virtual Task GetOrNullAsync(FeatureDefinition feature, string providerKey) { return Task.FromResult(feature.DefaultValue); @@ -23,4 +28,4 @@ namespace Volo.Abp.FeatureManagement throw new AbpException($"Can not clear default value of a feature. It is only possible while defining the feature in a {typeof(IFeatureDefinitionProvider)} implementation."); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementProvider.cs index 499d396e60..45e5f65b4c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementProvider.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementProvider.cs @@ -14,6 +14,11 @@ namespace Volo.Abp.FeatureManagement Store = store; } + public virtual bool Compatible(string providerName) + { + return providerName == Name; + } + public virtual async Task GetOrNullAsync(FeatureDefinition feature, string providerKey) { return await Store.GetOrNullAsync(feature.Name, Name, NormalizeProviderKey(providerKey)); @@ -34,4 +39,4 @@ namespace Volo.Abp.FeatureManagement return providerKey; } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs index 04b7ab6682..5ff7c18407 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs @@ -35,23 +35,37 @@ namespace Volo.Abp.FeatureManagement true ); } - - public virtual Task GetOrNullAsync( - string name, - string providerName, - string providerKey, + + public virtual async Task GetOrNullAsync( + string name, + string providerName, + string providerKey, bool fallback = true) { Check.NotNull(name, nameof(name)); Check.NotNull(providerName, nameof(providerName)); - return GetOrNullInternalAsync(name, providerName, providerKey, fallback); + return (await GetOrNullInternalAsync(name, providerName, providerKey, fallback)).Value; } public virtual async Task> GetAllAsync( - string providerName, - string providerKey, + string providerName, + string providerKey, bool fallback = true) + { + return (await GetAllWithProviderAsync(providerName, providerKey, fallback)) + .Select(x => new FeatureNameValue(x.Name, x.Value)).ToList(); + } + + public async Task GetOrNullWithProviderAsync(string name, string providerName, string providerKey, bool fallback = true) + { + Check.NotNull(name, nameof(name)); + Check.NotNull(providerName, nameof(providerName)); + + return await GetOrNullInternalAsync(name, providerName, providerKey, fallback); + } + + public async Task> GetAllWithProviderAsync(string providerName, string providerKey, bool fallback = true) { Check.NotNull(providerName, nameof(providerName)); @@ -68,31 +82,35 @@ namespace Volo.Abp.FeatureManagement if (!providerList.Any()) { - return new List(); + return new List(); } - var featureValues = new Dictionary(); + var featureValues = new Dictionary(); foreach (var feature in featureDefinitions) { - string value = null; + FeatureNameValueWithGrantedProvider value = null; foreach (var provider in providerList) { + var pk = provider.Name == providerName ? providerKey : null; var providerValue = await provider.GetOrNullAsync( feature, - provider.Name == providerName ? providerKey : null + pk ); if (providerValue != null) { - value = providerValue; + value = new FeatureNameValueWithGrantedProvider(feature.Name, providerValue) + { + Provider = new FeatureValueProviderInfo(provider.Name, pk) + }; } } if (value != null) { - featureValues[feature.Name] = new FeatureNameValue(feature.Name, value); + featureValues[feature.Name] = value; } } @@ -100,10 +118,10 @@ namespace Volo.Abp.FeatureManagement } public virtual async Task SetAsync( - string name, - string value, - string providerName, - string providerKey, + string name, + string value, + string providerName, + string providerKey, bool forceToSet = false) { Check.NotNull(name, nameof(name)); @@ -120,11 +138,11 @@ namespace Volo.Abp.FeatureManagement { return; } - + if (providers.Count > 1 && !forceToSet && value != null) { var fallbackValue = await GetOrNullInternalAsync(name, providers[1].Name, null); - if (fallbackValue == value) + if (fallbackValue.Value == value) { //Clear the value if it's same as it's fallback value value = null; @@ -151,10 +169,10 @@ namespace Volo.Abp.FeatureManagement } } - protected virtual async Task GetOrNullInternalAsync( - string name, - string providerName, - string providerKey, + protected virtual async Task GetOrNullInternalAsync( + string name, + string providerName, + string providerKey, bool fallback = true) //TODO: Fallback is not used { var feature = FeatureDefinitionManager.Get(name); @@ -166,21 +184,27 @@ namespace Volo.Abp.FeatureManagement providers = providers.SkipWhile(c => c.Name != providerName); } - string value = null; + FeatureNameValueWithGrantedProvider featureNameValueWithGrantedProvider = null; foreach (var provider in providers) { - value = await provider.GetOrNullAsync( - feature, - provider.Name == providerName ? providerKey : null - ); + string pk = null; + if (provider.Compatible(providerName)) + { + pk = providerKey; + } + var value = await provider.GetOrNullAsync(feature, pk); if (value != null) { + featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(name, value) + { + Provider = new FeatureValueProviderInfo(provider.Name, pk) + }; break; } } - return value; + return featureNameValueWithGrantedProvider; } } } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureNameValueWithGrantedProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureNameValueWithGrantedProvider.cs new file mode 100644 index 0000000000..d017cb3a9b --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureNameValueWithGrantedProvider.cs @@ -0,0 +1,19 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.FeatureManagement +{ + [Serializable] + public class FeatureNameValueWithGrantedProvider : NameValue + { + public FeatureValueProviderInfo Provider { get; set; } + + public FeatureNameValueWithGrantedProvider([NotNull] string name, string value) + { + Check.NotNull(name, nameof(name)); + + Name = name; + Value = value; + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureValueProviderInfo.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureValueProviderInfo.cs new file mode 100644 index 0000000000..3c2fc7ed30 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureValueProviderInfo.cs @@ -0,0 +1,21 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.FeatureManagement +{ + [Serializable] + public class FeatureValueProviderInfo + { + public string Name { get; } + + public string Key { get; } + + public FeatureValueProviderInfo([NotNull]string name, string key) + { + Check.NotNull(name, nameof(name)); + + Name = name; + Key = key; + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManagementProvider.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManagementProvider.cs index 204ed16235..4026937f4b 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManagementProvider.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManagementProvider.cs @@ -8,10 +8,13 @@ namespace Volo.Abp.FeatureManagement { string Name { get; } + //TODO: Other better method name. + bool Compatible(string providerName); + Task GetOrNullAsync([NotNull] FeatureDefinition feature, [CanBeNull] string providerKey); Task SetAsync([NotNull] FeatureDefinition feature, [NotNull] string value, [CanBeNull] string providerKey); Task ClearAsync([NotNull] FeatureDefinition feature, [CanBeNull] string providerKey); } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManager.cs index df19cd332b..961110137c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/IFeatureManager.cs @@ -10,6 +10,10 @@ namespace Volo.Abp.FeatureManagement Task> GetAllAsync([NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); + Task GetOrNullWithProviderAsync([NotNull]string name, [NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); + + Task> GetAllWithProviderAsync([NotNull] string providerName, [CanBeNull] string providerKey, bool fallback = true); + Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string providerName, [CanBeNull] string providerKey, bool forceToSet = false); } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index ec8b4b1706..90659844ac 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -4,6 +4,7 @@ @using Volo.Abp.FeatureManagement.Localization @using Volo.Abp.Validation.StringValues @using Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement +@using Volo.Abp.Features @model FeatureManagementModal @inject IHtmlLocalizer L @{ @@ -20,20 +21,22 @@ @for (var i = 0; i < Model.FeatureListDto.Features.Count; i++) { var feature = Model.FeatureListDto.Features[i]; + var disabled = Model.IsDisabled((feature.ProviderName));
- @feature.DisplayName + @feature.DisplayName @(disabled ? $"({feature.ProviderName})" : "") + @if (feature.ValueType is FreeTextStringValueType) { - + } @if (feature.ValueType is SelectionStringValueType) { - @foreach (var item in (feature.ValueType as SelectionStringValueType).ItemSource.Items) { if (item.Value == feature.Value) @@ -50,7 +53,7 @@ @if (feature.ValueType is ToggleStringValueType) { - }
diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs index fd32f69d63..e46d686e69 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Features; using Volo.Abp.Validation.StringValues; namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement @@ -55,6 +56,10 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement return NoContent(); } + public virtual bool IsDisabled(string providerName) + { + return providerName != ProviderName && providerName != DefaultValueFeatureValueProvider.ProviderName; + } public class ProviderInfoViewModel { @@ -69,9 +74,11 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement public string Value { get; set; } + public string ProviderName { get; set; } + public bool BoolValue { get; set; } public string Type { get; set; } } } -} \ No newline at end of file +} From ee842252606dcf6778c13432d59331fce5d1db89 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:10:05 +0800 Subject: [PATCH 24/98] Fix unit test. --- .../Volo/Abp/FeatureManagement/FeatureAppService.cs | 7 +++---- .../Volo/Abp/FeatureManagement/FeatureManager.cs | 8 +++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index 8fc761a632..c63336ded1 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -33,8 +33,7 @@ namespace Volo.Abp.FeatureManagement foreach (var featureDefinition in featureDefinitions) { - var value = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, - providerKey); + var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey); features.Add(new FeatureDto { Name = featureDefinition.Name, @@ -42,8 +41,8 @@ namespace Volo.Abp.FeatureManagement ValueType = featureDefinition.ValueType, Description = featureDefinition.Description?.Localize(StringLocalizerFactory), ParentName = featureDefinition.Parent?.Name, - Value = value.Value, - ProviderName = value.Provider.Name + Value = feature.Value, + ProviderName = feature.Provider?.Name }); } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs index 5ff7c18407..c708743b93 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs @@ -184,7 +184,7 @@ namespace Volo.Abp.FeatureManagement providers = providers.SkipWhile(c => c.Name != providerName); } - FeatureNameValueWithGrantedProvider featureNameValueWithGrantedProvider = null; + var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(name, null); foreach (var provider in providers) { string pk = null; @@ -196,10 +196,8 @@ namespace Volo.Abp.FeatureManagement var value = await provider.GetOrNullAsync(feature, pk); if (value != null) { - featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(name, value) - { - Provider = new FeatureValueProviderInfo(provider.Name, pk) - }; + featureNameValueWithGrantedProvider.Value = value; + featureNameValueWithGrantedProvider.Provider = new FeatureValueProviderInfo(provider.Name, pk); break; } } From 8f77c1e21c5f9972fa9b3533419c4afaa7e9ef2e Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:22:24 +0800 Subject: [PATCH 25/98] Refactor GetAllWithProviderAsync method. --- .../Abp/FeatureManagement/FeatureManager.cs | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs index c708743b93..454ade5476 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs @@ -89,28 +89,27 @@ namespace Volo.Abp.FeatureManagement foreach (var feature in featureDefinitions) { - FeatureNameValueWithGrantedProvider value = null; - + var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(feature.Name, null); foreach (var provider in providerList) { - var pk = provider.Name == providerName ? providerKey : null; - var providerValue = await provider.GetOrNullAsync( - feature, - pk - ); + string pk = null; + if (provider.Compatible(providerName)) + { + pk = providerKey; + } - if (providerValue != null) + var value = await provider.GetOrNullAsync(feature, pk); + if (value != null) { - value = new FeatureNameValueWithGrantedProvider(feature.Name, providerValue) - { - Provider = new FeatureValueProviderInfo(provider.Name, pk) - }; + featureNameValueWithGrantedProvider.Value = value; + featureNameValueWithGrantedProvider.Provider = new FeatureValueProviderInfo(provider.Name, pk); + break; } } - if (value != null) + if (featureNameValueWithGrantedProvider.Value != null) { - featureValues[feature.Name] = value; + featureValues[feature.Name] = featureNameValueWithGrantedProvider; } } From 94b8888816b6f53e8b56aad3623246b65827b97c Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:34:29 +0800 Subject: [PATCH 26/98] Add some extension methods. --- .../DefaultValueFeatureManagerExtensions.cs | 12 +++++++++++- .../EditionFeatureManagerExtensions.cs | 12 +++++++++++- .../TenantFeatureManagerExtensions.cs | 10 ++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagerExtensions.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagerExtensions.cs index c000b66df3..7ff616fccf 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagerExtensions.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DefaultValueFeatureManagerExtensions.cs @@ -16,5 +16,15 @@ namespace Volo.Abp.FeatureManagement { return featureManager.GetAllAsync(DefaultValueFeatureValueProvider.ProviderName, null, fallback); } + + public static Task GetOrNullWithProviderAsync(this IFeatureManager featureManager, [NotNull] string name, bool fallback = true) + { + return featureManager.GetOrNullWithProviderAsync(name, DefaultValueFeatureValueProvider.ProviderName, null, fallback); + } + + public static Task> GetAllWithProviderAsync(this IFeatureManager featureManager, bool fallback = true) + { + return featureManager.GetAllWithProviderAsync(DefaultValueFeatureValueProvider.ProviderName, null, fallback); + } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagerExtensions.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagerExtensions.cs index be8bbfc95a..2b26ec94e1 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagerExtensions.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/EditionFeatureManagerExtensions.cs @@ -18,9 +18,19 @@ namespace Volo.Abp.FeatureManagement return featureManager.GetAllAsync(EditionFeatureValueProvider.ProviderName, editionId.ToString(), fallback); } + public static Task GetOrNullWithProviderForEditionAsync(this IFeatureManager featureManager, [NotNull] string name, Guid editionId, bool fallback = true) + { + return featureManager.GetOrNullWithProviderAsync(name, EditionFeatureValueProvider.ProviderName, editionId.ToString(), fallback); + } + + public static Task> GetAllWithProviderForEditionAsync(this IFeatureManager featureManager, Guid editionId, bool fallback = true) + { + return featureManager.GetAllWithProviderAsync(EditionFeatureValueProvider.ProviderName, editionId.ToString(), fallback); + } + public static Task SetForEditionAsync(this IFeatureManager featureManager, Guid editionId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) { return featureManager.SetAsync(name, value, EditionFeatureValueProvider.ProviderName, editionId.ToString(), forceToSet); } } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagerExtensions.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagerExtensions.cs index 972c8f7d53..97a148d959 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagerExtensions.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/TenantFeatureManagerExtensions.cs @@ -18,6 +18,16 @@ namespace Volo.Abp.FeatureManagement return featureManager.GetAllAsync(TenantFeatureValueProvider.ProviderName, tenantId.ToString(), fallback); } + public static Task GetOrNullWithProviderForTenantAsync(this IFeatureManager featureManager, [NotNull] string name, Guid tenantId, bool fallback = true) + { + return featureManager.GetOrNullWithProviderAsync(name, TenantFeatureValueProvider.ProviderName, tenantId.ToString(), fallback); + } + + public static Task> GetAllWithProviderForTenantAsync(this IFeatureManager featureManager, Guid tenantId, bool fallback = true) + { + return featureManager.GetAllWithProviderAsync(TenantFeatureValueProvider.ProviderName, tenantId.ToString(), fallback); + } + public static Task SetForTenantAsync(this IFeatureManager featureManager, Guid tenantId, [NotNull] string name, [CanBeNull] string value, bool forceToSet = false) { return featureManager.SetAsync(name, value, TenantFeatureValueProvider.ProviderName, tenantId.ToString(), forceToSet); From e8504af0f9167c8ff5b1b10fd2d3135c507bebc7 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 26 Aug 2020 15:38:21 +0800 Subject: [PATCH 27/98] Add FeatureProviderDto. --- .../Volo/Abp/FeatureManagement/FeatureDto.cs | 3 +-- .../Volo/Abp/FeatureManagement/FeatureProviderDto.cs | 9 +++++++++ .../Volo/Abp/FeatureManagement/FeatureAppService.cs | 6 +++++- .../FeatureManagement/FeatureManagementModal.cshtml | 6 +++--- 4 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureProviderDto.cs diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs index 26b41dbc8f..11e1c6c005 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs @@ -1,4 +1,3 @@ -using System.Collections.Generic; using Volo.Abp.Validation.StringValues; namespace Volo.Abp.FeatureManagement @@ -11,7 +10,7 @@ namespace Volo.Abp.FeatureManagement public string Value { get; set; } - public string ProviderName { get; set; } + public FeatureProviderDto Provider { get; set; } public string Description { get; set; } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureProviderDto.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureProviderDto.cs new file mode 100644 index 0000000000..59c9dcb2ef --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureProviderDto.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.FeatureManagement +{ + public class FeatureProviderDto + { + public string Name { get; set; } + + public string Key { get; set; } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs index c63336ded1..f0c310650d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs @@ -42,7 +42,11 @@ namespace Volo.Abp.FeatureManagement Description = featureDefinition.Description?.Localize(StringLocalizerFactory), ParentName = featureDefinition.Parent?.Name, Value = feature.Value, - ProviderName = feature.Provider?.Name + Provider = new FeatureProviderDto + { + Name = feature.Provider?.Name, + Key = feature.Provider?.Key + } }); } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml index 90659844ac..f5adbf79d4 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml @@ -21,12 +21,12 @@ @for (var i = 0; i < Model.FeatureListDto.Features.Count; i++) { var feature = Model.FeatureListDto.Features[i]; - var disabled = Model.IsDisabled((feature.ProviderName)); + var disabled = Model.IsDisabled(feature.Provider.Name);
- @feature.DisplayName @(disabled ? $"({feature.ProviderName})" : "") + @feature.DisplayName @(disabled ? $"({feature.Provider.Name})" : "") - + @if (feature.ValueType is FreeTextStringValueType) { From 414e258f17223c7fb0eb4503f8db49e1df33ac17 Mon Sep 17 00:00:00 2001 From: erolarkat Date: Wed, 26 Aug 2020 12:13:51 +0300 Subject: [PATCH 28/98] npm packages 3.1.0-rc.2 --- .../package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../yarn.lock | 222 ++++++------ .../package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../yarn.lock | 236 ++++++------- .../app/Volo.BloggingTestApp/package.json | 4 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../app/Volo.BloggingTestApp/yarn.lock | 330 +++++++++--------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 236 ++++++------- modules/cms-kit/angular/package.json | 10 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 236 ++++++------- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 236 ++++++------- .../host/Volo.CmsKit.Web.Unified/package.json | 2 +- .../wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 236 ++++++------- modules/docs/app/VoloDocs.Web/package.json | 4 +- .../VoloDocs.Web/wwwroot/libs/abp/core/abp.js | 16 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 16 +- modules/docs/app/VoloDocs.Web/yarn.lock | 296 ++++++++-------- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/account/package.json | 4 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 2 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/virtual-file-explorer/package.json | 6 +- templates/app/angular/package.json | 12 +- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 236 ++++++------- templates/module/angular/package.json | 12 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- 103 files changed, 2144 insertions(+), 2128 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 9838b50651..60d92094ba 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^3.0.5", + "@abp/aspnetcore.mvc.ui.theme.shared": "^3.1.0-rc.2", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/jquery/abp.jquery.js b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 3399733e18..fe5adc6229 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.shared@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,144 +34,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 8f9f972442..66d620dc75 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/jquery/abp.jquery.js b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index b30d4d2f76..f1b72d84a6 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 63cfac4070..3329e0c9b4 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5", - "@abp/blogging": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2", + "@abp/blogging": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js +++ b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index fcd9dbcd00..259516d463 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,213 +41,213 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/blogging@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.0.5.tgz#07d476d9d7bb20b52ccd122c8cf7c7c2bd3c1aa4" - integrity sha512-3qBS3EfBRrcGzgo8xaJXIVNu/qkuhBLYixPur69nUa8sDAsYI725mVIOfznyYyTAxPXB2EDOf4WA+NKiEINrqQ== +"@abp/blogging@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.1.0-rc.2.tgz#89f056ce6218cbeffeefbc96138d98596db6dd91" + integrity sha512-SrAsp6S/1FM9IRnpsOKLSxT/Cx0mENS7LmLYm/rMc8YwYTUZDg9s9DJhs6WqFgghadByvul6bgJ8NDLrktKJcA== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - "@abp/owl.carousel" "~3.0.5" - "@abp/prismjs" "~3.0.5" - "@abp/tui-editor" "~3.0.5" + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + "@abp/owl.carousel" "~3.1.0-rc.2" + "@abp/prismjs" "~3.1.0-rc.2" + "@abp/tui-editor" "~3.1.0-rc.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.0.5.tgz#7ceadd21360db11c91582a532029bfe65d10a930" - integrity sha512-iq455C096L5D+b6IrWkMxA9mbpggBNZ1kWfCQ3rhIjo0qbOGrvdGB3uQ+BqRS9Ni9ku7vBb2COldouIC9KOp5A== +"@abp/clipboard@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.2.tgz#73a8dbc1f98cfb64d374b463dcd16b186bb694bb" + integrity sha512-Q1Z9pcs3gpptjE8Cjm/38bPKwKncjoVYSO0TknyEZLM3QG+PtZwa9UCkaK+Truz/U3QoZqbPuNbPKr5cz7o+lw== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" clipboard "^2.0.6" -"@abp/codemirror@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.0.5.tgz#2d60ad50f7b50833b0032f3c2e8992a89f257aa9" - integrity sha512-RkbmRGmSCB2962rJdhp0NgJ+qEP4gG05wuSuCMsYJTU3U9IkhkqiJbzupUzAkHQTaCQwCOUeXoBLUkwCHUP2DA== +"@abp/codemirror@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.1.0-rc.2.tgz#020d6207094293109a0752b046064c2592056c27" + integrity sha512-TmbfAP+CpzbWly03iibi7x9dW655Zxcu50tifAyi3LSTwrQIbhB6jo1aksdA2X97qTSLBhvOt3avcqj91sKRhQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" codemirror "^5.54.0" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.0.5.tgz#f222b54958bd842840db5ad8b32d82f1cd209302" - integrity sha512-VT9UfukzbhMsWhUZNc8b792fY04lqkuJL98QprU59No1Rb7+XUa1k9FMbt2kl12Je3jltY3+UrDl+vrdasFxKg== +"@abp/highlight.js@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.1.0-rc.2.tgz#4c796617471ec571dd6be2fc5327ae02e720ea1f" + integrity sha512-EUBRx7kDRmWEZx4bx1tHRjs0goMV1TzvuBQj7Wrq41CUqhpz2cBk9ZUI5AFGQJTSf0tz1SFqZhr4xDMpo8szTw== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.0.5.tgz#43c0daf0dd30de3d0109980aa5493db6f72108c1" - integrity sha512-HMRv5B29fQ5nPz4wFlfTsJ3dACotNLHZUuQbOt8SifRkt9Va0t20j+IwIGhSYVc93ttYHjB0IuMk6G10mdBA1A== +"@abp/markdown-it@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.1.0-rc.2.tgz#cd9e84d4188c1adaad4f37ce5f9a1fa028fb5405" + integrity sha512-CufWWxhceJqzKxnTbFXMB+SVi2Ikp2CH8tQ5wvrsDwqJV6ViOCyhBLMIwcV1/oAY9lHzCI+abPiEUZdN7AzhYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" markdown-it "^11.0.0" -"@abp/owl.carousel@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.0.5.tgz#d575d201a9c4853aa8578e6d8da396de60d6c961" - integrity sha512-fBzNaJPRnFc1VV5MBpRAGr3yZtkcbRHOOKlq74bkg9kvnqNa8dLISPRxHsBCtX+bxndWI3OfmN9Uliiq39TgSA== +"@abp/owl.carousel@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.1.0-rc.2.tgz#c17e34dd4a38aef12f59ad0ef9ad20715880aa98" + integrity sha512-065bHPn7XJHs2ABKdUx3hunnRmKuedjyZZuIMZNvavH4hJyiV3MI0F6RjWLohgMFIvmp0iM259bQwoCkvGFrBA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" owl.carousel "^2.3.4" -"@abp/prismjs@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.0.5.tgz#81a6ef656f3d7a76f365eb0bcbf2d0d3013d6e72" - integrity sha512-vdSSa1+tXS5+HWIgQyjDy4yQG7Q1YyuHQnFU6zlDJCQlE+20PL6lYgPnqR7DQ+Cd4lhRb3oxvloImYjwiwSQvA== +"@abp/prismjs@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.2.tgz#767d58c07e94c6e5056fd187d4e398efa108f67e" + integrity sha512-HCX/nw6noslnlw7xh94IaybI7xNYrjVOIld1C+J7p9AHizLhxh4kRbwVTpLhFzUWsSrTe8+VssgryimLQvTmjg== dependencies: - "@abp/clipboard" "~3.0.5" - "@abp/core" "~3.0.5" + "@abp/clipboard" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.2" prismjs "^1.20.0" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/tui-editor@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.0.5.tgz#9eee7cb555793a9c01a6e0ce10e77bb46577857c" - integrity sha512-xwaBhwnyvoIbEKWMSrTs2JHIOf3JK6tsABfcxhTRHXQfr2VONOEjbaLaAruNOuLJy3m/7rOsGWTeT8lMWwf3Fw== +"@abp/tui-editor@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.1.0-rc.2.tgz#48a1f78b4aca6a82daeb243b2d192c1dbe01710f" + integrity sha512-w9mNBY4c1DXAsIwLpLLKXHoIZMMaQhY2xONhD771v503ZGyNKHU+0donbyowLUzznf3PX7LcVVx/vpYxCnWybw== dependencies: - "@abp/codemirror" "~3.0.5" - "@abp/highlight.js" "~3.0.5" - "@abp/jquery" "~3.0.5" - "@abp/markdown-it" "~3.0.5" + "@abp/codemirror" "~3.1.0-rc.2" + "@abp/highlight.js" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.2" + "@abp/markdown-it" "~3.1.0-rc.2" tui-editor "^1.4.10" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index c4410d5c13..1c05d0716c 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 2233b4f0cb..8d9afafbf8 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index 14efeda0d6..ecc40c2236 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.0.5", - "@abp/ng.identity": "~3.0.5", - "@abp/ng.setting-management": "~3.0.5", - "@abp/ng.tenant-management": "~3.0.5", - "@abp/ng.theme.basic": "~3.0.5", + "@abp/ng.account": "~3.1.0-rc.2", + "@abp/ng.identity": "~3.1.0-rc.2", + "@abp/ng.setting-management": "~3.1.0-rc.2", + "@abp/ng.tenant-management": "~3.1.0-rc.2", + "@abp/ng.theme.basic": "~3.1.0-rc.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index e61eba0c89..0f6c8018c3 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.0.5", - "@abp/ng.theme.shared": ">=3.0.5" + "@abp/ng.core": ">=3.1.0-rc.2", + "@abp/ng.theme.shared": ">=3.1.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 55812dc3ab..2aff27f377 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index a583172e87..c836cc49cb 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 5ffe5c0500..7103162cc8 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index ade6c69acd..be0f989fd7 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 5ffe5c0500..7103162cc8 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 3261b074f0..f1a5b49588 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index c6b5ba0dba..0db7e0be4e 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.0.5", - "@abp/docs": "^3.0.5" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2", + "@abp/docs": "^3.1.0-rc.2" } } diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js index 41837d2368..20bd92147a 100644 --- a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js +++ b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/core/abp.js @@ -706,18 +706,18 @@ var abp = abp || {}; var toLocal = function (date) { return new Date( - date.getUTCFullYear(), - date.getUTCMonth(), - date.getUTCDate(), - date.getUTCHours(), - date.getUTCMinutes(), - date.getUTCSeconds(), - date.getUTCMilliseconds() + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() ); }; var toUtc = function (date) { - Date.UTC( + return Date.UTC( date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/jquery/abp.jquery.js index e6aff047f7..3087635e7d 100644 --- a/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/docs/app/VoloDocs.Web/wwwroot/libs/abp/jquery/abp.jquery.js @@ -79,13 +79,15 @@ var abp = abp || {}; } }; - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); // AJAX /////////////////////////////////////////////////////////////////// diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 4c93967952..22df5982ca 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.0.5.tgz#e1affea2e21370562b244f81ce8911d3d36f8d55" - integrity sha512-068PVUu/Zu1zQNgWsJXhUmSIm/HRA4Mx6VXxlNL+qiCLffg8AzRuj4rZc+UaYJieDmJDJc0dlWgiyUFpuvzZ8A== +"@abp/anchor-js@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.1.0-rc.2.tgz#3f445de4884bbe4a7be2bada7db56a376e9fba5e" + integrity sha512-qBFBy8tcinL7YWFy7iPprXTaFowgc7cvyO8mEKG2HG6/LdObm6KBASgAXGLRv2Jhxbdfyrisbcr+TdM8gzrWog== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.0.5.tgz#c146f20226522f0305cc0fa31cfcf9d39be78901" - integrity sha512-ptNhD4xV2wSLW7vQ5KUgaRiH5Ov1OscZW2ZEoivnt3kqgtIC3DGw+SiE9vjFCvyY83fjRkIlW2PIfQxSySbteQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.0.5" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.0.5.tgz#5b370902cf229963f9aa10dd64482d57299dde76" - integrity sha512-iobAH39xrCdnqdaABaiYZg4lqNSOwPkMCLnyc+ytxOMbu/YnNKahXPmRhgd8dR/l+iQY1+6T4SWfLdGswi3gAg== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.0.5" - "@abp/bootstrap" "~3.0.5" - "@abp/bootstrap-datepicker" "~3.0.5" - "@abp/datatables.net-bs4" "~3.0.5" - "@abp/font-awesome" "~3.0.5" - "@abp/jquery-form" "~3.0.5" - "@abp/jquery-validation-unobtrusive" "~3.0.5" - "@abp/lodash" "~3.0.5" - "@abp/luxon" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/select2" "~3.0.5" - "@abp/sweetalert" "~3.0.5" - "@abp/timeago" "~3.0.5" - "@abp/toastr" "~3.0.5" - -"@abp/aspnetcore.mvc.ui@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.0.5.tgz#a050eaee328c56a3730f5abbf25035adf612d6f0" - integrity sha512-/EOgjXTzR+I1OK9KA7L3yzQ2RGSDW97+n3cQrSdLAUF+tnRvMJS0nytDlSJSRK2hb8/clFMaofZHCC81aUkYUg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -49,180 +49,180 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.0.5.tgz#3a7fd86dbcadc31c11be5b2b31c8cf8ac3035540" - integrity sha512-vIY1wT4RHoJAPhVK11Q5MS71iZbwsmM/0VTBvvs04mjRSSi6xhdyRYkA+l+P49fnOwhZNaaK19XwQdVVScDuhA== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.0.5.tgz#91f2c8fe6a57fc5789ae8fe9c206b2c159e55880" - integrity sha512-LdydeJIbw5k1k7FkWaI1lTectZeTXmEIoccJtj9Qx4N9yGt40wGsjz9SOvUdJ0IKAgntIWNQP8ohWiBPgzT7Xg== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.0.5.tgz#7ceadd21360db11c91582a532029bfe65d10a930" - integrity sha512-iq455C096L5D+b6IrWkMxA9mbpggBNZ1kWfCQ3rhIjo0qbOGrvdGB3uQ+BqRS9Ni9ku7vBb2COldouIC9KOp5A== +"@abp/clipboard@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.2.tgz#73a8dbc1f98cfb64d374b463dcd16b186bb694bb" + integrity sha512-Q1Z9pcs3gpptjE8Cjm/38bPKwKncjoVYSO0TknyEZLM3QG+PtZwa9UCkaK+Truz/U3QoZqbPuNbPKr5cz7o+lw== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" clipboard "^2.0.6" -"@abp/core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.0.5.tgz#9a7bd990d02edc8128a5be3233b6fbb5669b15b8" - integrity sha512-LdkSkZQfN4hugcGNxBkje0+eQomivwNFbnAkMFQbvCwYLwKB2yvk7GCemEetW1piqvyrUGz4jqhtunjoXps5JA== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.0.5" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.0.5.tgz#9b79935970d2d4074994240b5deb01dff5987c0a" - integrity sha512-jIWRBEG/NlhaE43i6Xzr18XJ5aTWA+WWslf7WgNOArG5slGBbH4lLLja4HswLP3NGdSmzIyHJR1p9XQ82nBkbQ== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.0.5" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.0.5.tgz#0a0a39e8fa54522bf8a09ce76ff3927207a79491" - integrity sha512-HClQ2tcZuWBAChf9oOJOtMP1zHv8jqloPEcw3iqbhS/tWZBw5VQ4TO+BVfZsqHDXZNnWSmR6/2xiKsK32nliew== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/docs@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.0.5.tgz#733211ea72f3064ea5c23ed36a16c7f8b0ef5d8b" - integrity sha512-LQDHz6mE3ptP1AmpK+IEoY6edQB/t7Hu5ueLdtNHqTJWkwW7ngXOaECbkC2KVPywLqbXw0vzHBw2OnCVSKxtyw== +"@abp/docs@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.1.0-rc.2.tgz#d46ec3c7b71fb7ad35e076ea6fd0b0bb9e09d27f" + integrity sha512-jGqxJTOQQb+xxNhasvy4S5qHGOesZwL4BruVdUXVbhUqc1M2lof6iJF4GxYaTndPigg4rOUpc+4WcSD8LUqWQw== dependencies: - "@abp/anchor-js" "~3.0.5" - "@abp/clipboard" "~3.0.5" - "@abp/malihu-custom-scrollbar-plugin" "~3.0.5" - "@abp/popper.js" "~3.0.5" - "@abp/prismjs" "~3.0.5" + "@abp/anchor-js" "~3.1.0-rc.2" + "@abp/clipboard" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/popper.js" "~3.1.0-rc.2" + "@abp/prismjs" "~3.1.0-rc.2" -"@abp/font-awesome@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.0.5.tgz#62d58c34f0abf268e30bdf788dfbd3f45b19b412" - integrity sha512-/+31Vtw1S9vvuNy/rN/Q6awkgUaYNNYXESgfvqI0pqIkvlPgigvS8E68mHqGzsxyRqdZisI6JGd94AF+vJD7sQ== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.0.5.tgz#9d2ea9b2509448ee163a163298a7a09480865f78" - integrity sha512-RKgvQciaMml33NvzA28aYyfNI+WQHRfKLFWvOvqc8qO4C3BvyrnwepuzZcnI/9UsELKLSLoFrfk3rJHhxnTJhg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.0.5.tgz#b8912e1c4cfdd4fdff6ad4aa7ee8693b55a3be1f" - integrity sha512-kPifDA+1ErbeQBwn+BzwtWuTHXzBke/EMCmITuj59plM/60gZ1ZfVm8EzzTmKS7iLaVVeOqTKf0vEQTobNYffw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.0.5" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.0.5.tgz#55e36b3c832a35447fac69af312dedf1dee22279" - integrity sha512-fdqxc5CJ6TpUAF8+NEsKCmXvvZiOPR5bzczcfvfovxLOjvHvdEO74XPGjsjlBNTdaKMhmNGZRK4JRLUz7fvTng== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.0.5.tgz#2e43ac19a8df6e1e0220d6d4991d33a93d890754" - integrity sha512-2d2l+smWKAVP4/b6GSO+8rmJ7pFXiUewpBDwkHm5qgkK6n6UGqIcK9lIgiS2YQ6rmL6qdtuNhhqtC9GF2TF2kQ== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.0.5.tgz#d5d9f14095d76239bc0e6f9804c24d1f92ffcab4" - integrity sha512-+B2vxfPwxoIIb8Ac8eHi6OgAn0qbjmPZuun7/es0/ouYYTbEhvhTAD20X3PGZlHrIYeDyS2ansuXm8gJI+/BzA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.0.5.tgz#083042c939ea58bf719e35114a6c8efb07b68688" - integrity sha512-0UVHO2CO89t34O35OA3JzWGWLBpg+e1NQXSfVtK90nmg/QmzGkHVM9m7Su0jjLNBt3N5EA5OPOhriot3bCKItw== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.0.5.tgz#f908289927a63fd76fb8f60b00a37747d9edbe39" - integrity sha512-3GoXA8VtGyZWKiqaPCipPXYLLM7h2Y5Oecq5c5YlMQyW2akv7uHiQQF2GZW/nVsFu3HBbGTOWpKRRmVk3PEO9Q== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.0.5.tgz#ef46770e3a63cf10c91d4bda983198cd84b8e063" - integrity sha512-5MzLBMRWh2hHLVJJIrvJa6c4fwEdUk9HmnqpaqXnSX52B4uy9jcBexMdi/H7+cmao9NHm+Ld9n9G0YA8vMNeKA== +"@abp/popper.js@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.1.0-rc.2.tgz#26bd792c33b9a8cf347d14be4e08a4d42eb189c8" + integrity sha512-xWsOIzndRkvwdD5LOan8zf4vtceW0RIjCWSWdRtso4+V/fTLzWw9ofG3utvMaeJvu1Rfdr2mb2tLzYDNezNDAg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" popper.js "^1.16.0" -"@abp/prismjs@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.0.5.tgz#81a6ef656f3d7a76f365eb0bcbf2d0d3013d6e72" - integrity sha512-vdSSa1+tXS5+HWIgQyjDy4yQG7Q1YyuHQnFU6zlDJCQlE+20PL6lYgPnqR7DQ+Cd4lhRb3oxvloImYjwiwSQvA== +"@abp/prismjs@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.2.tgz#767d58c07e94c6e5056fd187d4e398efa108f67e" + integrity sha512-HCX/nw6noslnlw7xh94IaybI7xNYrjVOIld1C+J7p9AHizLhxh4kRbwVTpLhFzUWsSrTe8+VssgryimLQvTmjg== dependencies: - "@abp/clipboard" "~3.0.5" - "@abp/core" "~3.0.5" + "@abp/clipboard" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.2" prismjs "^1.20.0" -"@abp/select2@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.0.5.tgz#79d7754713c64a6549da520dc6867ef3e3dd0350" - integrity sha512-VbeSHdAdDy8exrjplHMMhLVV4oG7Gq9zBb5M52f0sIkA4DkXFhksXHcHNoOCfhaKAXpenGA03Z9GJewZ3MTpMw== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.0.5.tgz#e3b92d23cf3633983980b6255bf63c43d422ceab" - integrity sha512-OUt4ANgj14GESfRG7+UqdONS8daOu+8x2OZDWv98hriuX0uCVBjwB2J0jRI/n653C68Mi0yHixGONDv9OLy/lg== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.0.5" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.0.5.tgz#b191a7c43f3dc77645fe27273f2f6619f7d4eb31" - integrity sha512-QhvAOU4C+Qxh/gFuCSGZtLU4KwVhdv/jtK8ovWyqbGvQMCCIimqa8BFKIz0H5XWIJhHwwWblkpjICWgjWh6uXw== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.0.5.tgz#fc83b678f5be3a22040d0421ad9db5b2eac9d4fc" - integrity sha512-qgi2DEu6FYpN/DYcOZrmXsAr1HqcIKMhBWeXgjfoYUIl/K5+OuUgbQ69D/jdc0jz8HU9a4Cw7Q8hhe4CkgssEw== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.0.5" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" - integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index b5f8b39800..fd6fc21eb1 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index 28c088df6e..83d38bb0df 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 552af1182a..843beb71bb 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -25,16 +25,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.account": "~3.0.5", - "@abp/ng.core": "~3.0.5", - "@abp/ng.feature-management": "~3.0.5", - "@abp/ng.identity": "~3.0.5", - "@abp/ng.permission-management": "~3.0.5", - "@abp/ng.setting-management": "~3.0.5", - "@abp/ng.tenant-management": "~3.0.5", - "@abp/ng.theme.basic": "~3.0.5", - "@abp/ng.theme.shared": "~3.0.5", - "@abp/utils": "^3.0.5", + "@abp/ng.account": "~3.1.0-rc.2", + "@abp/ng.core": "~3.1.0-rc.2", + "@abp/ng.feature-management": "~3.1.0-rc.2", + "@abp/ng.identity": "~3.1.0-rc.2", + "@abp/ng.permission-management": "~3.1.0-rc.2", + "@abp/ng.setting-management": "~3.1.0-rc.2", + "@abp/ng.tenant-management": "~3.1.0-rc.2", + "@abp/ng.theme.basic": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/utils": "^3.1.0-rc.2", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1000.6", "@angular-devkit/build-ng-packagr": "~0.1000.6", diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 7caa4680c4..1f3b34dcab 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.account", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index d96da776f1..f3bb738a91 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=3.0.5", + "@abp/ng.core": ">=3.1.0-rc.2", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 11433378e1..3f5bd24e97 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^3.0.5", + "@abp/utils": "^3.1.0-rc.2", "@angular/localize": "~10.0.10", "@ngxs/router-plugin": "^3.6.2", "@ngxs/storage-plugin": "^3.6.2", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index c35412775f..8b304d13c7 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index a25c076057..e259cdea9f 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~3.1.0-rc.1", - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.permission-management": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index c2485538be..5d258540ea 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 8f258c2fc9..9c7df23b83 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index b6309084b7..97b644d782 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 3513a620ba..735d905a5d 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~3.1.0-rc.1", - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.feature-management": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 056e0d74e6..666cd7fd5c 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.1", + "@abp/ng.theme.shared": "~3.1.0-rc.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index b30e808c98..91a875c0dd 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~3.1.0-rc.1", + "@abp/ng.core": "~3.1.0-rc.2", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.11", diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index e544ff1c2c..0d38ce5e2d 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 9e6402e1b0..06274bbeed 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index e06f2b3e91..bb1a173dcc 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~3.1.0-rc.1", - "@abp/bootstrap": "~3.1.0-rc.1", - "@abp/bootstrap-datepicker": "~3.1.0-rc.1", - "@abp/datatables.net-bs4": "~3.1.0-rc.1", - "@abp/font-awesome": "~3.1.0-rc.1", - "@abp/jquery-form": "~3.1.0-rc.1", - "@abp/jquery-validation-unobtrusive": "~3.1.0-rc.1", - "@abp/lodash": "~3.1.0-rc.1", - "@abp/luxon": "~3.1.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.1", - "@abp/select2": "~3.1.0-rc.1", - "@abp/sweetalert": "~3.1.0-rc.1", - "@abp/timeago": "~3.1.0-rc.1", - "@abp/toastr": "~3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui": "~3.1.0-rc.2", + "@abp/bootstrap": "~3.1.0-rc.2", + "@abp/bootstrap-datepicker": "~3.1.0-rc.2", + "@abp/datatables.net-bs4": "~3.1.0-rc.2", + "@abp/font-awesome": "~3.1.0-rc.2", + "@abp/jquery-form": "~3.1.0-rc.2", + "@abp/jquery-validation-unobtrusive": "~3.1.0-rc.2", + "@abp/lodash": "~3.1.0-rc.2", + "@abp/luxon": "~3.1.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.2", + "@abp/select2": "~3.1.0-rc.2", + "@abp/sweetalert": "~3.1.0-rc.2", + "@abp/timeago": "~3.1.0-rc.2", + "@abp/toastr": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 48e1f22468..ba1ea2b672 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 239e957ebc..03f11931ee 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.1", - "@abp/owl.carousel": "~3.1.0-rc.1", - "@abp/prismjs": "~3.1.0-rc.1", - "@abp/tui-editor": "~3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.2", + "@abp/owl.carousel": "~3.1.0-rc.2", + "@abp/prismjs": "~3.1.0-rc.2", + "@abp/tui-editor": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 197a9e6739..8e8fe67d5a 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 6c4af44e63..ce970434c3 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 7857983493..b483d36ac9 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 3ae7a15786..62df2bf8db 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index d4c5ee3e52..03afdc0370 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index cc320760db..de6ed27ccd 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^3.1.0-rc.1" + "@abp/utils": "^3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index 6170f63583..ff1d91a8ef 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~3.1.0-rc.1", + "@abp/datatables.net": "~3.1.0-rc.2", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index d5fd2d10f1..836ed61126 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 379c9596e7..3be2ff3c24 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~3.1.0-rc.1", - "@abp/clipboard": "~3.1.0-rc.1", - "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.1", - "@abp/popper.js": "~3.1.0-rc.1", - "@abp/prismjs": "~3.1.0-rc.1" + "@abp/anchor-js": "~3.1.0-rc.2", + "@abp/clipboard": "~3.1.0-rc.2", + "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.2", + "@abp/popper.js": "~3.1.0-rc.2", + "@abp/prismjs": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 99aa4f9dc9..bc07d361ed 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 285f6ee151..0635634a31 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index f1d398e30f..d07ba815a2 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1" + "@abp/core": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 5f0d1b01d6..0b285ba858 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 08810c9087..3d398b767f 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~3.1.0-rc.1", + "@abp/jquery-validation": "~3.1.0-rc.2", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 9a700fed97..22bf237ec6 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index b7f850d90a..76337adfa3 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 9e78404419..246209ed16 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 2cf2be258b..18c555a3f2 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 5040112ee9..39ef414fff 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/luxon", "publishConfig": { "access": "public" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 96dccbc66e..1dd9459497 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 3b0cc08d89..306a58f6b8 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index f2e287bd88..e1f3151561 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index a5f9f45c23..43f07f85eb 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 96b78ce0fb..459d0d75a5 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.1.0-rc.1", - "@abp/core": "~3.1.0-rc.1", + "@abp/clipboard": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.2", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 2a070ee367..85ac78874b 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 887ea68121..d240950fa2 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index 0c3d13ca86..e4e8f96e63 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index bc8f98ae73..20a773e5c6 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index 37a2592a39..ae79e0eaaf 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.1", + "@abp/jquery": "~3.1.0-rc.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 813e6a2b53..f727468814 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~3.1.0-rc.1", - "@abp/highlight.js": "~3.1.0-rc.1", - "@abp/jquery": "~3.1.0-rc.1", - "@abp/markdown-it": "~3.1.0-rc.1", + "@abp/codemirror": "~3.1.0-rc.2", + "@abp/highlight.js": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.2", + "@abp/markdown-it": "~3.1.0-rc.2", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 36bd77ca99..cbb79c574c 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.1", + "@abp/core": "~3.1.0-rc.2", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 6b7594825e..981b8a1680 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 5c75512406..96a3d5d12e 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "3.1.0-rc.1", + "version": "3.1.0-rc.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.1.0-rc.1", - "@abp/prismjs": "~3.1.0-rc.1" + "@abp/clipboard": "~3.1.0-rc.2", + "@abp/prismjs": "~3.1.0-rc.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 0faf2470d2..960aea4afb 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,11 +12,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.0.5", - "@abp/ng.identity": "~3.0.5", - "@abp/ng.setting-management": "~3.0.5", - "@abp/ng.tenant-management": "~3.0.5", - "@abp/ng.theme.basic": "~3.0.5", + "@abp/ng.account": "~3.1.0-rc.2", + "@abp/ng.identity": "~3.1.0-rc.2", + "@abp/ng.setting-management": "~3.1.0-rc.2", + "@abp/ng.tenant-management": "~3.1.0-rc.2", + "@abp/ng.theme.basic": "~3.1.0-rc.2", "@angular/animations": "~10.0.10", "@angular/common": "~10.0.10", "@angular/compiler": "~10.0.10", @@ -30,7 +30,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.1.0-beta.2", + "@abp/ng.schematics": "~3.1.0-rc.2", "@angular-devkit/build-angular": "~0.1000.6", "@angular-devkit/build-ng-packagr": "~0.1000.6", "@angular/cli": "~10.0.6", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index e0fde322e1..7103162cc8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index a0fc6e0f98..57c957a100 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 6b42637f58..2aff27f377 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index b714e08268..c836cc49cb 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index e0fde322e1..7103162cc8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index b714e08268..c836cc49cb 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index e0fde322e1..7103162cc8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index a0fc6e0f98..57c957a100 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index c206ba8c69..fd316e5807 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.0.5", - "@abp/ng.identity": "~3.0.5", - "@abp/ng.setting-management": "~3.0.5", - "@abp/ng.tenant-management": "~3.0.5", - "@abp/ng.theme.basic": "~3.0.5", + "@abp/ng.account": "~3.1.0-rc.2", + "@abp/ng.identity": "~3.1.0-rc.2", + "@abp/ng.setting-management": "~3.1.0-rc.2", + "@abp/ng.tenant-management": "~3.1.0-rc.2", + "@abp/ng.theme.basic": "~3.1.0-rc.2", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", @@ -33,7 +33,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.1.0-beta.2", + "@abp/ng.schematics": "~3.1.0-rc.2", "@angular-devkit/build-angular": "~0.1000.0", "@angular-devkit/build-ng-packagr": "~0.1000.0", "@angular/cli": "~10.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index b2b574a659..3de5eb4cbd 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.0.5", - "@abp/ng.theme.shared": ">=3.0.5" + "@abp/ng.core": ">=3.1.0-rc.2", + "@abp/ng.theme.shared": ">=3.1.0-rc.2" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 6b42637f58..2aff27f377 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index b714e08268..c836cc49cb 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index e0fde322e1..7103162cc8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index b714e08268..c836cc49cb 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index e0fde322e1..7103162cc8 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index 183cefac3e..f1a5b49588 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.1.tgz#fd545133049b015e02820d5500bf92a09fa5dcb6" - integrity sha512-Xtohi+W2OUJcWf5GykCsrXJo7VV+bPNw5r3rMTO+nFioOs9nOunYBA+8usEa4AfU/WL6oRG7S4P3Tw8h8m4ULw== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.1.tgz#0c4bb2653e8c93043f68ced23a8ef3f3c34ebb23" - integrity sha512-eCrpjEigpmFIjXnv9/6pz6cdoTBTZZw+aChSOIi8RdsDCbjUZrgfuarUoLjGFHUvyXd7DWXvc2PzjcGE7szBaw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.1" - "@abp/bootstrap" "~3.1.0-rc.1" - "@abp/bootstrap-datepicker" "~3.1.0-rc.1" - "@abp/datatables.net-bs4" "~3.1.0-rc.1" - "@abp/font-awesome" "~3.1.0-rc.1" - "@abp/jquery-form" "~3.1.0-rc.1" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.1" - "@abp/lodash" "~3.1.0-rc.1" - "@abp/luxon" "~3.1.0-rc.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.1" - "@abp/select2" "~3.1.0-rc.1" - "@abp/sweetalert" "~3.1.0-rc.1" - "@abp/timeago" "~3.1.0-rc.1" - "@abp/toastr" "~3.1.0-rc.1" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.1.tgz#e4300c82fedd2d45147e98e81fc3e72ffe21a616" - integrity sha512-xsJGb8HCP5ovUy9+2gHtFOFxO6mWQah/jjN1RsBnJTt5EnwKEiqOXrO+18PaRlczj7fLXOw1V0bNtHeeoy8bCg== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" + integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" + integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" + "@abp/bootstrap" "~3.1.0-rc.2" + "@abp/bootstrap-datepicker" "~3.1.0-rc.2" + "@abp/datatables.net-bs4" "~3.1.0-rc.2" + "@abp/font-awesome" "~3.1.0-rc.2" + "@abp/jquery-form" "~3.1.0-rc.2" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" + "@abp/lodash" "~3.1.0-rc.2" + "@abp/luxon" "~3.1.0-rc.2" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" + "@abp/select2" "~3.1.0-rc.2" + "@abp/sweetalert" "~3.1.0-rc.2" + "@abp/timeago" "~3.1.0-rc.2" + "@abp/toastr" "~3.1.0-rc.2" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" + integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.1.tgz#12bab980bb5d0c882f823a392d765286d6d74c9e" - integrity sha512-ZN2xv0wTzB18jAM/cKQNuq3VdYjrqtPqnoreLAebUcy1R/sAUxHZ06xIpGaSkSTwB+0GHGWjR3/SlUnnn/HFcw== +"@abp/bootstrap-datepicker@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" + integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.1.tgz#ae71f1af5cbde21af08a5ca891fa7e118bde7f1e" - integrity sha512-2LnJOqxHjTwC/Z9cnSrChaJCL1k++QQDA90Nv9a3VVwbJ5pgwXtdWUZrLdK9lOEkZ17CE8WaD0tkSvSNt3FUNw== +"@abp/bootstrap@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" + integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.1.tgz#9192061da6b4cd6d5d80998366d0c31b1ee400d6" - integrity sha512-BJhVruTQBPeJRqFig2ZiJJrWOlX3dKYno4MxAMeIJGpLBRM79Bl3v5/081WRnwltfU7s0DvhLhqYGBQfKAst6w== +"@abp/core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" + integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== dependencies: - "@abp/utils" "^3.1.0-rc.1" + "@abp/utils" "^3.1.0-rc.2" -"@abp/datatables.net-bs4@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.1.tgz#af3b3cfa4396d2877ad8c8a71cb92b2e166eb4a0" - integrity sha512-vFWQr0J5BUFnUO0eL/hfyzO0N6hXKI5IP8G3iaeFMgIvIRiwyWw34mwOYaP1vJN22tliOr14uyrX9Hex2oR2Ug== +"@abp/datatables.net-bs4@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" + integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== dependencies: - "@abp/datatables.net" "~3.1.0-rc.1" + "@abp/datatables.net" "~3.1.0-rc.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.1.tgz#60e391a39fad262a58497bd03087c7734dcee5d1" - integrity sha512-oKxHaVApFPm0Y5VMLXfQQsqaaxpXF/tCAz8dKOkBYDHhaGK0BNd/fi7hAu/uJBuQC/09ggGwqgdm96c9jfGBiw== +"@abp/datatables.net@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" + integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.1.tgz#0376d3db580155c02fe3152c80bb23edd35c7020" - integrity sha512-VCh3cvkGis1efno15iqY6fNB54LBGXZFC/m1eMGYm95Vni8S9ke0svzqAoQl8qFuI5XHNFNMur1XkAXXI+YPUA== +"@abp/font-awesome@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" + integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.1.tgz#eef048968b74803e870749e2c051f9910df54b87" - integrity sha512-+ePC75rVivoVyfaf68IZrZ+FEcHm/5m/YFUlhuD8pi6rFTW/YHkUVYlVBS3m+whXOcV4pJlAGNXcAKKmAEJGpg== +"@abp/jquery-form@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" + integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.1.tgz#2b8cf680fde18b8ef33daa7b07e5c2d22c49f0f1" - integrity sha512-9EWGCJjFG/Hi/a+LMhif7u+jZ1P0an1PveRV/bOT+4l7+3+GkFaQiwv6WQkgCH7Xu3/YFn/ijOd5WWzlieekFg== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" + integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.1" + "@abp/jquery-validation" "~3.1.0-rc.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.1.tgz#968055ed850e1a30c7f7dede135fadf5cb9d2ba5" - integrity sha512-jiwHj4NeVEa2Fscw0h7Y1kiqL3/Xg54PJV/jl8BGXjGvV++3Q8KjZNeW+dNTPU2jAJpDy3VQ2InoMTT3zrGw8g== +"@abp/jquery-validation@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" + integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.1.tgz#b08c608eb1157fe35e9c9c8b888c3606b3f61ef4" - integrity sha512-L7pRgW9OveYgMqHSKIFXUJaz4+nfCHWlwBtdFB/BQf9bKcv3gw/UEYGFOzTfZqPTxWyyFfSpB1DU+8QpDtOj6w== +"@abp/jquery@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" + integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.1.tgz#001247b438fbce87b87fc1189b0e95647087508a" - integrity sha512-2MvMowujQ3VfcjjJ164IKyJnbWjSnWSeHFaGbsUi6duZrCr9z94VKv+gQ64aUcPR2U70PoZLvggWF6lH+JMxtA== +"@abp/lodash@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" + integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.1.tgz#2c58b1c41a206a8963b0bd0936819ab6701f63fe" - integrity sha512-0hCVvUJRtCh01qpZkGciE1+Sl393oI3I472C1pSwxo0EQxxWFd57SzsozBSnBmOp/f+LhlbKEUNQqvv/Wb1TUQ== +"@abp/luxon@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" + integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.1.tgz#c8a78a3f099c10251d8b58864536e8a0d6008cab" - integrity sha512-XQiQ9sLN/QJDOBFCQOK3uMn2FWWJyCGMoWEagPFCfbxkp6zfgOF4YbLfL0esL7AchlJlkW3cGBMFY/fH2TMQ5w== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" + integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.1.tgz#5f396b8dbbc5d0b2f144cc249f73038d7804a518" - integrity sha512-Vk0uqMhJcmUaehUt+0uZQaZBP+ppcVI5UYEUD3Hna0AZIgjwUVioQEhVAokelSkSAJXWn5J2tPEhk8mzZQXv3Q== +"@abp/select2@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" + integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.1.tgz#cef625218795f1cb18d0ff09d1085d0e11d2bb19" - integrity sha512-kk0K33dPft3jP6PwEcoi6GP4xFxqxeFP7G29TKVg0JZ4b/a0rB4+nm14McG5bqWk1YjYNGKMx5hMlDLWxs0BIA== +"@abp/sweetalert@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" + integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== dependencies: - "@abp/core" "~3.1.0-rc.1" + "@abp/core" "~3.1.0-rc.2" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.1.tgz#033e459d152535f235a311f066d8f6de1660786b" - integrity sha512-jYfmMgEm7sox+UKplALHzdawjZeNiCtvSHdDkvntUQkHzUvyAPqT9IpOZNxv5QqQqSlarqIcLqVIRKms46sJeg== +"@abp/timeago@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" + integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.1.tgz#07cf64c4fe5c4cc6e8f273c502ca403da82bef51" - integrity sha512-29T8dj+pWxZOZ42zmvm/Kgcxmd0g9/L2bjNqNQVhJEFDF5c+CrKYcqEfVKePf1mc80fWXe209I45VOzHCzzTnQ== +"@abp/toastr@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" + integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== dependencies: - "@abp/jquery" "~3.1.0-rc.1" + "@abp/jquery" "~3.1.0-rc.2" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.1": - version "3.1.0-rc.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.1.tgz#15cffd28c9f5209bf3cdc805d55b54e4a749f4d1" - integrity sha512-FnbJprUHl3y0ShVqJJdKmZDuDrNEY70vuzhSt6DTHfRbtHo+i4+B9Tpt9vynGJkkug5sZEdjlRZSazoZfWlZ7A== +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== dependencies: just-compare "^1.3.0" From 2a784d2de0e5d1f798a06e458c5bfaf67c7b56b0 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 26 Aug 2020 13:51:25 +0300 Subject: [PATCH 29/98] Cli: fix UpdateChannel.Prerelease update info --- framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index ef6eb79042..3918a18657 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -190,8 +190,7 @@ namespace Volo.Abp.Cli break; case UpdateChannel.Prerelease: - Logger.LogWarning($"dotnet tool uninstall {toolPathArg} Volo.Abp.Cli"); - Logger.LogWarning($"dotnet tool install {toolPathArg} Volo.Abp.Cli --version {latestVersion}"); + Logger.LogWarning($"dotnet tool update {toolPathArg} Volo.Abp.Cli --version {latestVersion}"); break; case UpdateChannel.Nightly: From c043450d1da779e6665b167099a8efcf8b2d8789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Wed, 26 Aug 2020 21:00:14 +0300 Subject: [PATCH 30/98] Update abp.resourcemapping.js --- npm/packs/cropperjs/abp.resourcemapping.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/npm/packs/cropperjs/abp.resourcemapping.js b/npm/packs/cropperjs/abp.resourcemapping.js index 68cc55b64e..0a2f369710 100644 --- a/npm/packs/cropperjs/abp.resourcemapping.js +++ b/npm/packs/cropperjs/abp.resourcemapping.js @@ -1,6 +1,6 @@ module.exports = { - mappings: { - "@node_modules/cropperjs/dist/cropper.min.js": "@libs/cropperjs/js/", - "@node_modules/cropperjs/dist/cropper.min.css": "@libs/cropperjs/css/" - } -} \ No newline at end of file + mappings: { + "@node_modules/cropperjs/dist/cropper.min.js": "@libs/cropperjs/js/", + "@node_modules/cropperjs/dist/cropper.min.css": "@libs/cropperjs/css/", + }, +}; From d3da53a81111307fb23f660e068aa1ff93e780ac Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 27 Aug 2020 10:54:32 +0300 Subject: [PATCH 31/98] Create abp.luxon.js --- .../wwwroot/libs/abp/luxon/abp.luxon.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/luxon/abp.luxon.js diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/luxon/abp.luxon.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/luxon/abp.luxon.js new file mode 100644 index 0000000000..b04de7cadf --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/abp/luxon/abp.luxon.js @@ -0,0 +1,46 @@ +var abp = abp || {}; +(function () { + + if (!luxon) { + throw "abp/luxon library requires the luxon library included to the page!"; + } + + /* TIMING *************************************************/ + + abp.timing = abp.timing || {}; + + var setObjectValue = function (obj, property, value) { + if (typeof property === "string") { + property = property.split('.'); + } + + if (property.length > 1) { + var p = property.shift(); + setObjectValue(obj[p], property, value); + } else { + obj[property[0]] = value; + } + } + + var getObjectValue = function (obj, property) { + return property.split('.').reduce((a, v) => a[v], obj) + } + + abp.timing.convertFieldsToIsoDate = function (form, fields) { + for (var field of fields) { + var dateTime = luxon.DateTime + .fromFormat( + getObjectValue(form, field), + abp.localization.currentCulture.dateTimeFormat.shortDatePattern, + {locale: abp.localization.currentCulture.cultureName} + ); + + if (!dateTime.invalid) { + setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) + } + } + + return form; + } + +})(jQuery); From ed0cecb15f4a0566840b30ac3aad6beb22aeb0f5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 27 Aug 2020 11:02:28 +0300 Subject: [PATCH 32/98] Cli: Running switch commands in aspnet-core folder should switch angular project as well if it exist resolves https://github.com/abpframework/abp/issues/5191 --- .../ProjectModification/NpmPackagesUpdater.cs | 8 ++- .../PackagePreviewSwitcher.cs | 68 ++++++++++++++++--- 2 files changed, 66 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index 2db480506b..c71e9591c0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -236,7 +236,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - if (version == currentVersion) + if (string.IsNullOrEmpty(version) || version == currentVersion) { return false; } @@ -275,6 +275,12 @@ namespace Volo.Abp.Cli.ProjectModification ? versionList.First() : versionList.FirstOrDefault(v => !SemanticVersion.Parse(v).IsPrerelease); + if (string.IsNullOrEmpty(newVersion)) + { + _fileVersionStorage[package.Name] = newVersion; + return newVersion; + } + var newVersionWithPrefix = $"~{newVersion}"; _fileVersionStorage[package.Name] = newVersionWithPrefix; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs index 60c7fd21b9..66f39fa12f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/PackagePreviewSwitcher.cs @@ -31,6 +31,7 @@ namespace Volo.Abp.Cli.ProjectModification { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); await _nugetPackagesVersionUpdater.UpdateSolutionAsync( solutionPath, @@ -40,42 +41,74 @@ namespace Volo.Abp.Cli.ProjectModification solutionFolder, false, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + false, + true); + } } public async Task SwitchToNightlyPreview(CommandLineArgs commandLineArgs) { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); _packageSourceManager.Add(solutionFolder, "ABP Nightly", "https://www.myget.org/F/abp-nightly/api/v3/index.json"); - await _nugetPackagesVersionUpdater.UpdateSolutionAsync( - solutionPath, - true); + if (solutionPath != null) + { + await _nugetPackagesVersionUpdater.UpdateSolutionAsync( + solutionPath, + true); + } await _npmPackagesUpdater.Update( solutionFolder, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + true); + } } public async Task SwitchToStable(CommandLineArgs commandLineArgs) { var solutionPath = GetSolutionPath(commandLineArgs); var solutionFolder = GetSolutionFolder(commandLineArgs); + var solutionAngularFolder = GetSolutionAngularFolder(solutionFolder); _packageSourceManager.Remove(solutionFolder, "ABP Nightly"); - await _nugetPackagesVersionUpdater.UpdateSolutionAsync( - solutionPath, - false, - false, - true); + if (solutionPath != null) + { + await _nugetPackagesVersionUpdater.UpdateSolutionAsync( + solutionPath, + false, + false, + true); + } await _npmPackagesUpdater.Update( solutionFolder, false, false, true); + + if (solutionAngularFolder != null) + { + await _npmPackagesUpdater.Update( + solutionAngularFolder, + false, + false, + true); + } } private string GetSolutionPath(CommandLineArgs commandLineArgs) @@ -99,7 +132,7 @@ namespace Volo.Abp.Cli.ProjectModification } } - Logger.LogError("There is no solution or more that one solution in current directory."); + Logger.LogWarning("There is no solution or more that one solution in current directory."); return null; } @@ -112,6 +145,23 @@ namespace Volo.Abp.Cli.ProjectModification ?? Directory.GetCurrentDirectory(); } + private string GetSolutionAngularFolder(string solutionFolder) + { + var upperAngularPath = Path.Combine(Directory.GetParent(solutionFolder)?.FullName ?? "", "angular"); + if (Directory.Exists(upperAngularPath)) + { + return upperAngularPath; + } + + var innerAngularPath = Path.Combine(solutionFolder, "angular"); + if (Directory.Exists(innerAngularPath)) + { + return innerAngularPath; + } + + return null; + } + public static class Options { public static class SolutionDirectory From 5ffcad5ef920731f78873ee9968ebd3e63387dd9 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Thu, 27 Aug 2020 11:31:58 +0300 Subject: [PATCH 33/98] deprecated licenceUrl fix for nuget --- LICENSE => LICENSE.md | 0 common.props | 7 ++++--- nupkg/pack.ps1 | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) rename LICENSE => LICENSE.md (100%) diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md diff --git a/common.props b/common.props index 185ff859c9..4855f1cd9c 100644 --- a/common.props +++ b/common.props @@ -1,15 +1,16 @@ latest - 3.1.0-rc.2 + 3.1.0 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png - https://abp.io - https://github.com/abpframework/abp/blob/master/LICENSE + https://abp.io/ + LICENSE.md git https://github.com/abpframework/abp/ + \ No newline at end of file diff --git a/nupkg/pack.ps1 b/nupkg/pack.ps1 index 925e697300..8b593dd2a2 100644 --- a/nupkg/pack.ps1 +++ b/nupkg/pack.ps1 @@ -11,6 +11,8 @@ foreach($solution in $solutions) { foreach($project in $projects) { $projectFolder = Join-Path $rootFolder $project + + Copy-Item (Join-Path $rootFolder "LICENSE.md") -Destination $projectFolder # Create nuget pack Set-Location $projectFolder @@ -26,7 +28,8 @@ foreach($project in $projects) { $projectName = $project.Substring($project.LastIndexOf("/") + 1) $projectPackPath = Join-Path $projectFolder ("/bin/Release/" + $projectName + ".*.nupkg") Move-Item $projectPackPath $packFolder - + + Remove-Item (Join-Path $projectFolder "LICENSE.md") } # Go back to the pack folder From 51934a994925f69bb1c2e313eb396dcb52bac44a Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 11:52:10 +0300 Subject: [PATCH 34/98] feat: add "Clear" to AbpUi localization resource --- framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json | 1 + framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json | 1 + 2 files changed, 2 insertions(+) diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json index a4fdf7afbd..d6f24833a9 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json @@ -17,6 +17,7 @@ "Error": "Error", "AreYouSure": "Are you sure?", "Cancel": "Cancel", + "Clear": "Clear", "Yes": "Yes", "No": "No", "Ok": "Ok", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json index bf558bb763..f4fffd3f7f 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json @@ -17,6 +17,7 @@ "Error": "Hata", "AreYouSure": "Emin misiniz?", "Cancel": "Vazgeç", + "Clear": "Temizle", "Yes": "Evet", "No": "Hayır", "Ok": "Tamam", From fc9912e0e61d31c1980d9907a0ca41ca92d4e609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 27 Aug 2020 12:17:25 +0300 Subject: [PATCH 35/98] fix: #5162 --- .../MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml index 0b33f99e2a..65417cf55e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/Pages/Index.cshtml @@ -21,9 +21,7 @@

@L["LongWelcomeMessage"]

@if (!CurrentUser.IsAuthenticated) { -
- -
+ @L["Login"] }

abp.io

From 9feacbf241b451c32b9a6aacea4b0f7be20dcec5 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 27 Aug 2020 12:58:43 +0300 Subject: [PATCH 36/98] Update NuGetService.cs --- .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs index c962ceaf92..79f54eb8e2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs @@ -86,8 +86,7 @@ namespace Volo.Abp.Cli.NuGet versions = versions.Where(x => !x.IsPrerelease).ToList(); } - var semanticVersions = versions.ToList(); - return semanticVersions.Any() ? semanticVersions.Max() : null; + return versions.Any() ? versions.Max() : null; } } From da4db91537a4c7b39c6842ba98dbe57b287df0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 27 Aug 2020 15:32:04 +0300 Subject: [PATCH 37/98] Introduce @abp/star-rating-svg npm package --- .../StarRatingSvgScriptContributor.cs | 16 ++++++++++++++++ .../StarRatingSvgStyleContributor.cs | 13 +++++++++++++ npm/packs/star-rating-svg/abp.resourcemapping.js | 6 ++++++ npm/packs/star-rating-svg/package.json | 12 ++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgScriptContributor.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgStyleContributor.cs create mode 100644 npm/packs/star-rating-svg/abp.resourcemapping.js create mode 100644 npm/packs/star-rating-svg/package.json diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgScriptContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgScriptContributor.cs new file mode 100644 index 0000000000..f1ce671aa8 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgScriptContributor.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Packages.JQuery; +using Volo.Abp.Modularity; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.StarRatingSvg +{ + [DependsOn(typeof(JQueryScriptContributor))] + public class StarRatingSvgScriptContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/star-rating-svg/js/jquery.star-rating-svg.min.js"); + } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgStyleContributor.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgStyleContributor.cs new file mode 100644 index 0000000000..47e8d100e1 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo/Abp/AspNetCore/Mvc/UI/Packages/StarRatingSvg/StarRatingSvgStyleContributor.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Packages.StarRatingSvg +{ + public class StarRatingSvgStyleContributor : BundleContributor + { + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.AddIfNotContains("/libs/star-rating-svg/css/star-rating-svg.css"); + } + } +} \ No newline at end of file diff --git a/npm/packs/star-rating-svg/abp.resourcemapping.js b/npm/packs/star-rating-svg/abp.resourcemapping.js new file mode 100644 index 0000000000..bb8a398f9b --- /dev/null +++ b/npm/packs/star-rating-svg/abp.resourcemapping.js @@ -0,0 +1,6 @@ +module.exports = { + mappings: { + "@node_modules/star-rating-svg/dist/*.min.js": "@libs/star-rating-svg/js/", + "@node_modules/star-rating-svg/src/css/*.css": "@libs/star-rating-svg/css/", + }, +}; diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json new file mode 100644 index 0000000000..820cfb1978 --- /dev/null +++ b/npm/packs/star-rating-svg/package.json @@ -0,0 +1,12 @@ +{ + "version": "3.1.0-rc.2", + "name": "@abp/star-rating-svg", + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@abp/jquery": "~3.1.0-rc.2", + "star-rating-svg": "^3.5.0" + }, + "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" +} From 6a81530abd391e05c848d178130b1befd2b4c541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 15:41:16 +0300 Subject: [PATCH 38/98] Added blog post: Introducing the Angular Service Proxy Generation --- .../POST.md | 405 ++++++++++++++++++ .../abp-generate-proxy-output.png | Bin 0 -> 42515 bytes .../swagger-book-list.png | Bin 0 -> 9573 bytes 3 files changed, 405 insertions(+) create mode 100644 docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md create mode 100644 docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/abp-generate-proxy-output.png create mode 100644 docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/swagger-book-list.png diff --git a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md new file mode 100644 index 0000000000..e0543fb915 --- /dev/null +++ b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md @@ -0,0 +1,405 @@ +# Introducing the Angular Service Proxy Generation + +Angular Service Proxy System **generates TypeScript services and models** to consume your backend HTTP APIs developed using the ABP Framework. So, you **don't manually create** models for your server side DTOs and perform raw HTTP calls to the server. + +ABP Framework has introduced the **new** Angular Service Proxy Generation system with the version 3.1. While this feature was available since the [v2.3](https://blog.abp.io/abp/ABP-Framework-v2_3_0-Has-Been-Released), it was not well covering some scenarios, like inheritance and generic types and had some known problems. **With the v3.1, we've re-written** it using the [Angular Schematics](https://angular.io/guide/schematics) system. Now, it is much more stable and feature rich. + +This post introduces the service proxy generation system and highlights some important features. + +## Installation + +### ABP CLI + +You need to have the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) to use the system. So, install it if you haven't installed before: + +````bash +dotnet tool install -g Volo.Abp.Cli +```` + +If you already have installed it before, you can update to the latest version: + +````shell +dotnet tool update -g Volo.Abp.Cli +```` + +### Project Configuration + +> If you've created your project with version 3.1 or later, you can skip this part since it will be already installed in your solution. + +For the solution was created before v3.1, follow the steps below to configure your angular project: + +* Add `@abp/ng.schematics` package to the `devDependencies` of the Angular project (run the following command in the root folder of the angular application): + +````bash +npm install @abp/ng.schematics --save-dev +```` + +- Add `rootNamespace` entry into the `/apis/default/` section in the `/src/environments/environment.ts`, as shown below: + +```json +apis: { + default: { + ... + rootNamespace: 'Acme.BookStore' //<-- ADD THIS + }, +} +``` + +`Acme.BookStore` should be replaced by the root namespace of your .NET project. This ensures to not create unnecessary nested folders while creating the service proxy code. + +## Basic Usage + +### Project Creation + +Assuming you've created your project with the Angular UI. + +Example (using the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI)): + +````bash +abp new AngularProxyDemo -u angular +```` + +#### Run the Application + +The backend application must be up and running to be able to use the service proxy code generation system. + +> See the [getting started](https://docs.abp.io/en/abp/latest/Getting-Started?UI=NG&DB=EF&Tiered=No) guide if you don't know how create and to run the project. + +### Backend + +Assume that we have an `IBookAppService` interface: + +````csharp +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace AngularProxyDemo.Books +{ + public interface IBookAppService : IApplicationService + { + public Task> GetListAsync(); + } +} +```` + +That uses a `BookDto` defined as shown: + +```csharp +using System; +using Volo.Abp.Application.Dtos; + +namespace AngularProxyDemo.Books +{ + public class BookDto : EntityDto + { + public string Name { get; set; } + + public DateTime PublishDate { get; set; } + } +} +``` + +And implemented as the following: + +```csharp +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace AngularProxyDemo.Books +{ + public class BookAppService : ApplicationService, IBookAppService + { + public async Task> GetListAsync() + { + //TODO: get books from a database... + } + } +} +``` + +It simply returns a list of books. You probably want to get the books from a database, but it doesn't matter for this article. + +### HTTP API + +Thanks to the conventional API controllers system of the ABP Framework, we don't have too develop API controllers manually. Just **run the backend (*HttpApi.Host*) application** that shows the [Swagger UI](https://swagger.io/tools/swagger-ui/) by default. You will see the GET API for the books: + +![swagger-book-list](swagger-book-list.png) + +### Service Proxy Generation + +Open a command line in the root folder of the Angular application and execute the following command: + +````bash +abp generate-proxy +```` + +It should produce an output like the following: + +````bash +CREATE src/app/shared/models/books/index.ts (142 bytes) +CREATE src/app/shared/services/books/book.service.ts (437 bytes) +... +```` + +> `generate-proxy` command can take some some optional parameters for advanced scenarios (like [modular development](https://docs.abp.io/en/abp/latest/Module-Development-Basics)). You can take a look at the [documentation](https://docs.abp.io/en/abp/latest/UI/Angular/Service-Proxies). + +It basically creates two files; + +src/app/shared/services/books/**book.service.ts**: This is the service that can be injected and used to get the list of books; + +````typescript +import { RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; +import type { BookDto } from '../../models/book'; + +@Injectable({ + providedIn: 'root', +}) +export class BookService { + apiName = 'Default'; + + getList = () => + this.restService.request({ + method: 'GET', + url: `/api/app/book`, + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} + +```` + +src/app/shared/models/books/**index.ts**: This file contains the modal classes corresponding to the DTOs defined in the server side; + +````typescript +import type { EntityDto } from '@abp/ng.core'; + +export interface BookDto extends EntityDto { + name: string; + publishDate: string; +} +```` + +You can now inject the `BookService` into any Angular component and use the `getList()` method to get the list of books. + +### About the Generated Code + +The generated code is; + +* **Simple**: It is almost identical to the code if you've written it yourself. +* **Splitted**: Instead of a single, large file; + * It creates a separate `.ts` file for every backend **service**. **Model** (DTO) classes are also grouped per service. + * It understands the [modularity](https://docs.abp.io/en/abp/latest/Module-Development-Basics), so creates the services for your own **module** (or the module you've specified). +* **Object oriented**; + * Supports **inheritance** of server side DTOs and generates the code respecting to the inheritance structure. + * Supports **generic types**. + * Supports **re-using type definitions** across services and doesn't generate the same DTO multiple times. +* **Well-aligned to the backend**; + * Service **method signatures** match exactly with the services on the backend services. This is achieved by a special endpoint exposed by the ABP Framework that well defines the backend contracts. + * **Namespaces** are exactly matches to the backend services and DTOs. +* **Well-aligned with the ABP Framework**; + * Recognizes the **standard ABP Framework DTO types** (like `EntityDto`, `ListResultDto`... etc) and doesn't repeat these classes in the application code, but uses from the `@abp/ng.core` package. + * Uses the `RestService` defined by the `@abp/ng.core` package which simplifies the generated code, keeps it short and re-uses all the logics implemented by the `RestService` (including error handling, authorization token injection, using multiple server endpoints... etc). + +These are the main motivations behind the decision of creating a service proxy generation system, instead of using a pre-built tool like [NSWAG](https://github.com/RicoSuter/NSwag). + +## Other Examples + +Let me show you a few more examples. + +### Updating an Entity + +Assume that you added a new method to the server side application service, to update a book: + +```csharp +public Task UpdateAsync(Guid id, BookUpdateDto input); +``` + +`BookUpdateDto` is a simple class defined shown below: + +```csharp +using System; + +namespace AngularProxyDemo.Books +{ + public class BookUpdateDto + { + public string Name { get; set; } + + public DateTime PublishDate { get; set; } + } +} +``` + +Let's re-run the `generate-proxy` command to see the result: + +```` +abp generate-proxy +```` + +The output of this command will be like the following: + +````bash +UPDATE src/app/shared/services/books/book.service.ts (660 bytes) +UPDATE src/app/shared/models/books/index.ts (217 bytes) +```` + +It tells us two files have been updated. Let's see the changes; + +**book.service.ts** + +````typescript +import { RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; +import type { BookDto, BookUpdateDto } from '../../models/books'; + +@Injectable({ + providedIn: 'root', +}) +export class BookService { + apiName = 'Default'; + + getList = () => + this.restService.request({ + method: 'GET', + url: `/api/app/book`, + }, + { apiName: this.apiName }); + + update = (id: string, input: BookUpdateDto) => + this.restService.request({ + method: 'PUT', + url: `/api/app/book/${id}`, + body: input, + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} +```` + +`update` function has been added to the `BookService` that gets an `id` and a `BookUpdateDto` as the parameters. + +**index.ts** + +````typescript +import type { EntityDto } from '@abp/ng.core'; + +export interface BookDto extends EntityDto { + name: string; + publishDate: string; +} + +export interface BookUpdateDto { + name: string; + publishDate: string; +} +```` + +Added a new DTO class: `BookUpdateDto`. + +### Advanced Example + +In this example, I want to show a DTO structure using inheritance, generics, arrays and dictionaries. + +I've created an `IOrderAppService` as shown below: + +````csharp +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace AngularProxyDemo.Orders +{ + public interface IOrderAppService : IApplicationService + { + public Task CreateAsync(OrderCreateDto input); + } +} +```` + +`OrderCreateDto` and the related DTOs are as the followings; + +````csharp +using System; +using System.Collections.Generic; +using Volo.Abp.Data; + +namespace AngularProxyDemo.Orders +{ + public class OrderCreateDto : IHasExtraProperties + { + public Guid CustomerId { get; set; } + + public DateTime CreationTime { get; set; } + + //ARRAY of DTOs + public OrderDetailDto[] Details { get; set; } + + //DICTIONARY + public Dictionary ExtraProperties { get; set; } + } + + public class OrderDetailDto : GenericDetailDto //INHERIT from GENERIC + { + public string Note { get; set; } + } + + //GENERIC class + public abstract class GenericDetailDto + { + public Guid ProductId { get; set; } + + public TCount Count { get; set; } + } +} +```` + +When I run the `abp generate-proxy` command again, I see two new files have been created. + +src/app/shared/services/orders/**order.service.ts** + +````typescript +import { RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; +import type { OrderCreateDto } from '../../models/orders'; + +@Injectable({ + providedIn: 'root', +}) +export class OrderService { + apiName = 'Default'; + + create = (input: OrderCreateDto) => + this.restService.request({ + method: 'POST', + url: `/api/app/order`, + body: input, + }, + { apiName: this.apiName }); + + constructor(private restService: RestService) {} +} +```` + +src/app/shared/models/orders/**index.ts** + +````typescript +import type { GenericDetailDto } from '../../models/orders'; + +export interface OrderCreateDto { + customerId: string; + creationTime: string; + details: OrderDetailDto[]; + extraProperties: string | object; +} + +export interface OrderDetailDto extends GenericDetailDto { + note: string; +} +```` + +NOTE: 3.1.0-rc2 was generating the code above, which is wrong. It will be fixed in the next RC versions. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/abp-generate-proxy-output.png b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/abp-generate-proxy-output.png new file mode 100644 index 0000000000000000000000000000000000000000..0a77d8e40fe256f7443fe81b4552d310414f31f5 GIT binary patch literal 42515 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 literal 0 HcmV?d00001 From dd298f3301cc330a6817d7d5f2a59ac7ae9c03c0 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 15:50:56 +0300 Subject: [PATCH 39/98] feat: accept __default as placeholder for default param --- .../packages/schematics/src/commands/api/index.ts | 4 +++- .../packages/schematics/src/commands/proxy/index.ts | 6 ++++-- npm/ng-packs/packages/schematics/src/utils/common.ts | 10 ++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 956e91e0b1..24e0f816af 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -23,13 +23,15 @@ import { getRootNamespace, interpolate, ModelGeneratorParams, + removeDefaultPlaceholders, resolveProject, serializeParameters, } from '../../utils'; import * as cases from '../../utils/text'; import { Schema as GenerateProxySchema } from './schema'; -export default function(params: GenerateProxySchema) { +export default function(schema: GenerateProxySchema) { + const params = removeDefaultPlaceholders(schema); const moduleName = strings.camelize(params.module || 'app'); return chain([ diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts index d597f720cd..ddbbd68caa 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts @@ -13,11 +13,13 @@ import { createApiDefinitionSaver, getApiDefinition, getSourceUrl, + removeDefaultPlaceholders, resolveProject, } from '../../utils'; import { Schema as GenerateProxySchema } from './schema'; -export default function(params: GenerateProxySchema) { +export default function(schema: GenerateProxySchema) { + const params = removeDefaultPlaceholders(schema); const moduleName = strings.camelize(params.module || 'app'); return chain([ @@ -32,7 +34,7 @@ export default function(params: GenerateProxySchema) { data, `${targetPath}/shared/api-definition.json`, ); - const createApi = schematic('api', params); + const createApi = schematic('api', schema); return branchAndMerge(chain([saveApiDefinition, createApi])); }, diff --git a/npm/ng-packs/packages/schematics/src/utils/common.ts b/npm/ng-packs/packages/schematics/src/utils/common.ts index 8a5aa5fd93..ff01bd27c5 100644 --- a/npm/ng-packs/packages/schematics/src/utils/common.ts +++ b/npm/ng-packs/packages/schematics/src/utils/common.ts @@ -23,3 +23,13 @@ export function readFileInTree(tree: Tree, filePath: string): ts.SourceFile { const text = buffer.toString('utf-8'); return ts.createSourceFile(filePath, text, ts.ScriptTarget.Latest, true); } + +export function removeDefaultPlaceholders(oldParams: T) { + const newParams: Record = {}; + + Object.entries(oldParams).forEach(([key, value]) => { + newParams[key] = value === '__default' ? undefined : value; + }); + + return newParams as T; +} From d3f0f3c603663a05a74be4bda32528baac5232c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 15:52:44 +0300 Subject: [PATCH 40/98] Update POST.md --- .../POST.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md index e0543fb915..d16540872f 100644 --- a/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md +++ b/docs/en/Blog-Posts/2020-09-07 Angular-Service-Proxies/POST.md @@ -26,34 +26,34 @@ dotnet tool update -g Volo.Abp.Cli > If you've created your project with version 3.1 or later, you can skip this part since it will be already installed in your solution. -For the solution was created before v3.1, follow the steps below to configure your angular project: +For a solution that was created before v3.1, follow the steps below to configure the angular application: -* Add `@abp/ng.schematics` package to the `devDependencies` of the Angular project (run the following command in the root folder of the angular application): +* Add `@abp/ng.schematics` package to the `devDependencies` of the Angular project. Run the following command in the root folder of the angular application: ````bash npm install @abp/ng.schematics --save-dev ```` -- Add `rootNamespace` entry into the `/apis/default/` section in the `/src/environments/environment.ts`, as shown below: +- Add `rootNamespace` entry into the `apis/default` section in the `/src/environments/environment.ts`, as shown below: ```json apis: { default: { ... - rootNamespace: 'Acme.BookStore' //<-- ADD THIS + rootNamespace: 'Acme.BookStore' }, } ``` -`Acme.BookStore` should be replaced by the root namespace of your .NET project. This ensures to not create unnecessary nested folders while creating the service proxy code. +`Acme.BookStore` should be replaced by the root namespace of your .NET project. This ensures to not create unnecessary nested folders while creating the service proxy code. This value is `AngularProxyDemo` for the example solution explained below. ## Basic Usage ### Project Creation -Assuming you've created your project with the Angular UI. +> If you already have a solution, you can skip this section. -Example (using the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI)): +You need to [create](https://abp.io/get-started) your solution with the Angular UI. You can use the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) to create a new solution: ````bash abp new AngularProxyDemo -u angular @@ -63,7 +63,7 @@ abp new AngularProxyDemo -u angular The backend application must be up and running to be able to use the service proxy code generation system. -> See the [getting started](https://docs.abp.io/en/abp/latest/Getting-Started?UI=NG&DB=EF&Tiered=No) guide if you don't know how create and to run the project. +> See the [getting started](https://docs.abp.io/en/abp/latest/Getting-Started?UI=NG&DB=EF&Tiered=No) guide if you don't know details of creating and running the solution. ### Backend @@ -124,13 +124,13 @@ It simply returns a list of books. You probably want to get the books from a dat ### HTTP API -Thanks to the conventional API controllers system of the ABP Framework, we don't have too develop API controllers manually. Just **run the backend (*HttpApi.Host*) application** that shows the [Swagger UI](https://swagger.io/tools/swagger-ui/) by default. You will see the GET API for the books: +Thanks to the [auto API controllers](https://docs.abp.io/en/abp/latest/API/Auto-API-Controllers) system of the ABP Framework, we don't have to develop API controllers manually. Just **run the backend (*HttpApi.Host*) application** that shows the [Swagger UI](https://swagger.io/tools/swagger-ui/) by default. You will see the **GET** API for the books: ![swagger-book-list](swagger-book-list.png) ### Service Proxy Generation -Open a command line in the root folder of the Angular application and execute the following command: +Open a **command line** in the **root folder of the Angular application** and execute the following command: ````bash abp generate-proxy From 32b3fded5733b1496f48e3629fd8841f132fcf77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:06:58 +0300 Subject: [PATCH 41/98] GenerateProxyCommand should pass __default for unset options. --- .../Abp/Cli/Commands/AddPackageCommand.cs | 1 - .../Abp/Cli/Commands/GenerateProxyCommand.cs | 43 +++++++++++++++---- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs index 7ea20eccf4..36530a7979 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddPackageCommand.cs @@ -115,7 +115,6 @@ namespace Volo.Abp.Cli.Commands throw new CliUsageException(sb.ToString()); } - public static class Options { public static class Project diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs index ab680ce4b8..fa605bdce7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -2,7 +2,6 @@ using System; using System.IO; using System.Text; using System.Threading.Tasks; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Utils; @@ -17,7 +16,11 @@ namespace Volo.Abp.Cli.Commands CheckAngularJsonFile(); CheckNgSchematics(); - CmdHelper.RunCmd("npx ng g @abp/ng.schematics:proxy"); + var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? "__default"; + var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? "__default"; + var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? "__default"; + + CmdHelper.RunCmd($"npx ng g @abp/ng.schematics:proxy --module {module} --source {source} --target {target}"); return Task.CompletedTask; } @@ -29,20 +32,21 @@ namespace Volo.Abp.Cli.Commands if (!File.Exists(packageJsonPath)) { throw new CliUsageException( - "package.json file not found" + - Environment.NewLine + - GetUsageInfo() + "package.json file not found" + + Environment.NewLine + + GetUsageInfo() ); } - var schematicsPackageNode = (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; + var schematicsPackageNode = + (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; if (schematicsPackageNode == null) { throw new CliUsageException( - "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + - Environment.NewLine + - GetUsageInfo() + "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + + Environment.NewLine + + GetUsageInfo() ); } } @@ -82,5 +86,26 @@ namespace Volo.Abp.Cli.Commands { return "Generates Angular service proxies and DTOs to consume HTTP APIs."; } + + public static class Options + { + public static class Module + { + public const string Short = "m"; + public const string Long = "module"; + } + + public static class Source + { + public const string Short = "s"; + public const string Long = "source"; + } + + public static class Target + { + public const string Short = "t"; + public const string Long = "target"; + } + } } } From f4ad9b9eab9086649a3b13503fab9182efa0f81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:22:23 +0300 Subject: [PATCH 42/98] Add prompt parameter to the GenerateProxyCommand --- .../Abp/Cli/Commands/GenerateProxyCommand.cs | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs index fa605bdce7..5e88417b4a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -16,11 +16,31 @@ namespace Volo.Abp.Cli.Commands CheckAngularJsonFile(); CheckNgSchematics(); - var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? "__default"; - var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? "__default"; - var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? "__default"; + var prompt = commandLineArgs.Options.ContainsKey("p") || commandLineArgs.Options.ContainsKey("prompt"); + var defaultValue = prompt ? null : "__default"; - CmdHelper.RunCmd($"npx ng g @abp/ng.schematics:proxy --module {module} --source {source} --target {target}"); + var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? defaultValue; + var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? defaultValue; + var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? defaultValue; + + var commandBuilder = new StringBuilder("npx ng g @abp/ng.schematics:proxy"); + + if (module != null) + { + commandBuilder.Append($" --module {module}"); + } + + if (source != null) + { + commandBuilder.Append($" --source {source}"); + } + + if (target != null) + { + commandBuilder.Append($" --target {target}"); + } + + CmdHelper.RunCmd(commandBuilder.ToString()); return Task.CompletedTask; } @@ -73,9 +93,12 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(""); sb.AppendLine(" abp generate-proxy"); sb.AppendLine(""); - sb.AppendLine("Examples:"); + sb.AppendLine("Options:"); sb.AppendLine(""); - sb.AppendLine(" abp generate-proxy"); + sb.AppendLine("-m|--module (default: 'app') The name of the backend module you wish to generate proxies for."); + sb.AppendLine("-s|--source (default: 'defaultProject') Angular project name to resolve the root namespace & API definition URL from."); + sb.AppendLine("-t|--target (default: 'defaultProject') Angular project name to place generated code in."); + sb.AppendLine("-p|--prompt Asks the options from the command line prompt (for the missing options)"); sb.AppendLine(""); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); @@ -106,6 +129,12 @@ namespace Volo.Abp.Cli.Commands public const string Short = "t"; public const string Long = "target"; } + + public static class Prompt + { + public const string Short = "p"; + public const string Long = "prompt"; + } } } } From ee718ffb3a6a7f6464dc4c37a0a4e3deea751d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:34:13 +0300 Subject: [PATCH 43/98] Resolved #5205: Add "--skip-cli-version-check" option to ABP CLI. --- docs/en/CLI.md | 6 ++++++ .../src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 99808c3ba5..ff828b91a3 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -16,6 +16,12 @@ To update an existing installation: dotnet tool update -g Volo.Abp.Cli ```` +## Global Options + +While each command may have a set of options, there are some global options those can be used with any command; + +* `--skip-cli-version-check`: Skips to check the latest version of the ABP CLI. If you don't specify, it will check the latest version and shows a warning message if there is a newer version of the ABP CLI. + ## Commands Here, the list of all available commands before explaining their details: diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index ef6eb79042..a984d79771 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -41,9 +41,13 @@ namespace Volo.Abp.Cli { Logger.LogInformation("ABP CLI (https://abp.io)"); - await CheckCliVersionAsync(); - var commandLineArgs = CommandLineArgumentParser.Parse(args); + + if (!commandLineArgs.Options.ContainsKey("skip-cli-version-check")) + { + await CheckCliVersionAsync(); + } + var commandType = CommandSelector.Select(commandLineArgs); using (var scope = ServiceScopeFactory.CreateScope()) @@ -72,7 +76,7 @@ namespace Volo.Abp.Cli var currentCliVersion = await GetCurrentCliVersion(assembly); var updateChannel = GetUpdateChannel(currentCliVersion); - Logger.LogInformation($"Version {currentCliVersion} ({updateChannel} channel)"); + Logger.LogInformation($"Version {currentCliVersion} ({updateChannel})"); try { From 28b13d3af39598bde9644f7e5d871a5fcf3eced4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:35:48 +0300 Subject: [PATCH 44/98] Add options to GenerateProxyCommand --- .../Abp/Cli/Commands/GenerateProxyCommand.cs | 76 ++++++++++++++++--- 1 file changed, 65 insertions(+), 11 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs index ab680ce4b8..5e88417b4a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -2,7 +2,6 @@ using System; using System.IO; using System.Text; using System.Threading.Tasks; -using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Volo.Abp.Cli.Args; using Volo.Abp.Cli.Utils; @@ -17,7 +16,31 @@ namespace Volo.Abp.Cli.Commands CheckAngularJsonFile(); CheckNgSchematics(); - CmdHelper.RunCmd("npx ng g @abp/ng.schematics:proxy"); + var prompt = commandLineArgs.Options.ContainsKey("p") || commandLineArgs.Options.ContainsKey("prompt"); + var defaultValue = prompt ? null : "__default"; + + var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? defaultValue; + var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? defaultValue; + var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? defaultValue; + + var commandBuilder = new StringBuilder("npx ng g @abp/ng.schematics:proxy"); + + if (module != null) + { + commandBuilder.Append($" --module {module}"); + } + + if (source != null) + { + commandBuilder.Append($" --source {source}"); + } + + if (target != null) + { + commandBuilder.Append($" --target {target}"); + } + + CmdHelper.RunCmd(commandBuilder.ToString()); return Task.CompletedTask; } @@ -29,20 +52,21 @@ namespace Volo.Abp.Cli.Commands if (!File.Exists(packageJsonPath)) { throw new CliUsageException( - "package.json file not found" + - Environment.NewLine + - GetUsageInfo() + "package.json file not found" + + Environment.NewLine + + GetUsageInfo() ); } - var schematicsPackageNode = (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; + var schematicsPackageNode = + (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; if (schematicsPackageNode == null) { throw new CliUsageException( - "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + - Environment.NewLine + - GetUsageInfo() + "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + + Environment.NewLine + + GetUsageInfo() ); } } @@ -69,9 +93,12 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(""); sb.AppendLine(" abp generate-proxy"); sb.AppendLine(""); - sb.AppendLine("Examples:"); + sb.AppendLine("Options:"); sb.AppendLine(""); - sb.AppendLine(" abp generate-proxy"); + sb.AppendLine("-m|--module (default: 'app') The name of the backend module you wish to generate proxies for."); + sb.AppendLine("-s|--source (default: 'defaultProject') Angular project name to resolve the root namespace & API definition URL from."); + sb.AppendLine("-t|--target (default: 'defaultProject') Angular project name to place generated code in."); + sb.AppendLine("-p|--prompt Asks the options from the command line prompt (for the missing options)"); sb.AppendLine(""); sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); @@ -82,5 +109,32 @@ namespace Volo.Abp.Cli.Commands { return "Generates Angular service proxies and DTOs to consume HTTP APIs."; } + + public static class Options + { + public static class Module + { + public const string Short = "m"; + public const string Long = "module"; + } + + public static class Source + { + public const string Short = "s"; + public const string Long = "source"; + } + + public static class Target + { + public const string Short = "t"; + public const string Long = "target"; + } + + public static class Prompt + { + public const string Short = "p"; + public const string Long = "prompt"; + } + } } } From 43c18d0322cf3c1fc60495233383cc4e961c7171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:45:14 +0300 Subject: [PATCH 45/98] Added Conclusion section --- .../Using-DevExtreme-In-ABP-Based-Application.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md index 1b2c2b3e33..c62db89fc0 100644 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md +++ b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md @@ -1,9 +1,11 @@ ## Using DevExtreme with ABP Based Applications -Hi, in this step by step article, I will show you how to integrate DevExtreme components into ABP Framework based applications. +Hi, in this step by step article, I will show you how to integrate [DevExtreme](https://js.devexpress.com/) components into ABP Framework based applications. ![both-example-result](both-example-result.png) +*(A screenshot from the example application developed in this article)* + ## Create the Project ABP Framework offers startup templates to get into the business faster. We can download a new startup template using [ABP CLI](https://docs.abp.io/en/abp/latest/CLI): @@ -300,3 +302,7 @@ Html.DevExtreme().DataGrid() .Key("OrderID") ) ``` + +## Conclusion + +In this article, I've explained how to use [DevExtreme](https://js.devexpress.com/) components in your application. ABP Framework is designed so that it can work with any UI library/framework. \ No newline at end of file From df7cd0ebad9aff27d20dbef4dce6be6f8add22e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 16:46:13 +0300 Subject: [PATCH 46/98] Update Using-DevExtreme-In-ABP-Based-Application.md --- .../Using-DevExtreme-In-ABP-Based-Application.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md index c62db89fc0..19cac81e76 100644 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md +++ b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md @@ -1,4 +1,4 @@ -## Using DevExtreme with ABP Based Applications +## Using DevExtreme Componenets With the ABP Fremework Hi, in this step by step article, I will show you how to integrate [DevExtreme](https://js.devexpress.com/) components into ABP Framework based applications. @@ -305,4 +305,4 @@ Html.DevExtreme().DataGrid() ## Conclusion -In this article, I've explained how to use [DevExtreme](https://js.devexpress.com/) components in your application. ABP Framework is designed so that it can work with any UI library/framework. \ No newline at end of file +In this article, I've explained how to use [DevExtreme](https://js.devexpress.com/) components in your application. ABP Framework is designed so that it can work with any UI library/framework. From 8d03319c9ebfd9461e3e758ed4faa266cd454b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 17:27:02 +0300 Subject: [PATCH 47/98] Set dependencies and versions. --- npm/packs/cropperjs/package.json | 3 ++- npm/packs/luxon/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 9ce511e71b..6255727a26 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,10 +1,11 @@ { - "version": "3.0.5", + "version": "~3.1.0-rc.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { + "@abp/core": "~3.1.0-rc.2", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index de348d7b21..b26f1b6ba6 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -5,7 +5,7 @@ "access": "public" }, "dependencies": { - "@abp/core": "~3.0.5", + "@abp/core": "~3.1.0-rc.2", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" From 9b95e6d398fe1a2cfddaf3fdc7eee72ad13b8177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 17:28:33 +0300 Subject: [PATCH 48/98] Fix version --- npm/packs/cropperjs/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 6255727a26..0895ebcace 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "~3.1.0-rc.2", + "version": "~3.0.5", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.0.5", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" From 7db0f4fe9ceb3b20950004bd5cd8ac69529cc432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 17:30:28 +0300 Subject: [PATCH 49/98] Fix version --- npm/packs/cropperjs/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 0895ebcace..9764f89545 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,5 +1,5 @@ { - "version": "~3.0.5", + "version": "3.0.5", "name": "@abp/cropperjs", "publishConfig": { "access": "public" From f5594ec3973a9991f6c590806f36eaaeb8c37fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yekta=20Burcu=20G=C3=B6kta=C5=9F?= <58883990+YektaGoktas@users.noreply.github.com> Date: Thu, 27 Aug 2020 17:40:31 +0300 Subject: [PATCH 50/98] Update Using-DevExtreme-In-ABP-Based-Application.md Some grammatical correctness. --- .../Using-DevExtreme-In-ABP-Based-Application.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md index 19cac81e76..eb93041228 100644 --- a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md +++ b/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md @@ -1,6 +1,6 @@ -## Using DevExtreme Componenets With the ABP Fremework +## Using DevExtreme Components With the ABP Fremework -Hi, in this step by step article, I will show you how to integrate [DevExtreme](https://js.devexpress.com/) components into ABP Framework based applications. +Hi, in this step by step article, I will show you how to integrate [DevExtreme](https://js.devexpress.com/) components into ABP Framework-based applications. ![both-example-result](both-example-result.png) @@ -153,7 +153,7 @@ namespace DevExtremeSample.Web.Bundling } ``` -As you see, the `DevExtremeScriptContributor` is depends on `JQueryScriptContributor` which adds JQuery related files before the DevExpress packages (see the [bundling system](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification) for details). +As you see, the `DevExtremeScriptContributor` depends on `JQueryScriptContributor` which adds JQuery related files before the DevExpress packages (see the [bundling system](https://docs.abp.io/en/abp/latest/UI/AspNetCore/Bundling-Minification) for details). #### Create DevExtremeJsViewComponent @@ -186,7 +186,7 @@ namespace DevExtremeSample.Web.Components.DevExtremeJs ``` -Your final Web project should be like as the following: +Your final Web project should be like the following: ![devextreme-js](devextreme-js.png) @@ -206,7 +206,7 @@ Configure(options => #### Known Issue: Uncaught TypeError: MutationObserver.observe: Argument 1 is not an object. -> This issue does exists in the ABP Framework v3.0 and earlier versions. If you are using ABP Framework v3.1 or a latter version, you can skip this section. +> This issue does exist in the ABP Framework v3.0 and earlier versions. If you are using ABP Framework v3.1 or a later version, you can skip this section. When you run your `*.Web` project, you will see an exception (`Uncaught TypeError: MutationObserver.observe: Argument 1 is not an object.`) at your console. @@ -267,7 +267,7 @@ I've used an in-memory list to store data for this example, instead of a real da #### JSON Serialization -You can see some `JsonProperty` attributes on the DTO properties. I uses these attributes because DevExtreme example expects `PascalCase` property names in the serialized JSON that is sent to the client. But ABP Framework & ASP.NET Core conventionally uses `camelCase` property names on JSON serialization. Adding these `JsonProperty` attributes ensures that the related properties are serialized as `PascalCase`. +You can see some `JsonProperty` attributes on the DTO properties. I use these attributes because DevExtreme example expects `PascalCase` property names in the serialized JSON that is sent to the client. But ABP Framework & ASP.NET Core conventionally uses `camelCase` property names on JSON serialization. Adding these `JsonProperty` attributes ensures that the related properties are serialized as `PascalCase`. #### DevExtreme Components vs Application Service Methods From 9f69970f3d5559bd1b71a8007c437a543447992e Mon Sep 17 00:00:00 2001 From: berkansasmaz Date: Thu, 27 Aug 2020 17:54:53 +0300 Subject: [PATCH 51/98] Localization added for new features added to the Community. --- .../Community/Localization/Resources/en.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index 6ed5d8c778..651af64675 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -65,6 +65,22 @@ "HeightAndWidthMustNotExceed": "Height and Width must not exceed 1920*1080.", "CoverImage": "Cover Image", "ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!", - "Optional": "Optional" + "Optional": "Optional", + "UpdateUserWebSiteInfo": "Example: https://abp.io", + "UpdateUserTwitterInfo": "Example: https://twitter.com/abpframework", + "UpdateUserGithubInfo": "Example: https://github.com/abpframework/abp", + "UpdateUserLinkedinInfo": "Example: https://www.linkedin.com/company/volosoft", + "UpdateUserCompanyInfo": "Example: Volosoft Computer & Technology", + "UpdateUserJobTitleInfo": "Example: Software Engineer Intern", + "UpdateUserBiographyInfo": "About you", + "UserName": "UserName", + "Company": "Company", + "PersonalWebsite": "Personal Website", + "RegistrationDate": "Registration Date", + "Social": "Social", + "Biography": "Biography", + "HasNoPublishedArticlesYet": "has no published articles yet", + "Author": "Author", + "MyAccount": "My account" } } From d874b4d927aac9a502523252d6946c8b7b962911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 27 Aug 2020 17:59:40 +0300 Subject: [PATCH 52/98] File Rename --- ...DevExtreme-Components-With-The-ABP-Fremework.md} | 0 .../both-example-result.png | Bin .../data-grid-app-contract.png | Bin .../data-grid-application.png | Bin .../data-grid-final.png | Bin .../data-grid-web.png | Bin .../devexp-result.gif | Bin .../devextreme-js.png | Bin .../gulp.png | Bin .../initial-project.png | Bin .../tree-list-app-contract.png | Bin .../tree-list-application.png | Bin .../tree-list-final.png | Bin .../tree-list-web.png | Bin .../wwwroot-lib.png | Bin 15 files changed, 0 insertions(+), 0 deletions(-) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md} (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/both-example-result.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/data-grid-app-contract.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/data-grid-application.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/data-grid-final.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/data-grid-web.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/devexp-result.gif (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/devextreme-js.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/gulp.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/initial-project.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/tree-list-app-contract.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/tree-list-application.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/tree-list-final.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/tree-list-web.png (100%) rename docs/en/Community-Articles/{2020-08-18-DevExtreme-With-ABP => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework}/wwwroot-lib.png (100%) diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/Using-DevExtreme-In-ABP-Based-Application.md rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/both-example-result.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/both-example-result.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/both-example-result.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/both-example-result.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-app-contract.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-app-contract.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-app-contract.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-application.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-application.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-application.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-final.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-final.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-final.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-web.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/data-grid-web.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-web.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devexp-result.gif b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devexp-result.gif similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devexp-result.gif rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devexp-result.gif diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-js.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devextreme-js.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/devextreme-js.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devextreme-js.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/gulp.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/gulp.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/gulp.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/gulp.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/initial-project.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/initial-project.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/initial-project.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/initial-project.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-app-contract.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-app-contract.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-app-contract.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-application.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-application.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-application.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-final.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-final.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-final.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-web.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/tree-list-web.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-web.png diff --git a/docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/wwwroot-lib.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/wwwroot-lib.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-DevExtreme-With-ABP/wwwroot-lib.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/wwwroot-lib.png From 9c8f7528454f4ef191bf521e58e6c9d23af6309f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Aug 2020 20:50:57 +0300 Subject: [PATCH 53/98] Add options of the generate-proxy command. --- docs/en/CLI.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/en/CLI.md b/docs/en/CLI.md index ff828b91a3..91e7b6669d 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -187,6 +187,13 @@ Usage: abp generate-proxy ```` +#### Options + +* `--module` or `-m`: Specifies the name of the backend module you wish to generate proxies for. Default value: `app`. +* `--source` or `-s`: Specifies the Angular project name to resolve the root namespace & API definition URL from. Default value: `defaultProject`. +* `--target` or `-t`: Specifies the Angular project name to place generated code in. Default value: `defaultProject`. +* `--prompt` or `-p`: Asks the options from the command line prompt (for the unspecified options). + > See the [Angular Service Proxies document](UI/Angular/Service-Proxies.md) for more. @@ -202,7 +209,7 @@ abp switch-to-preview [options] #### Options -`--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. +* `--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. ### switch-to-nightly @@ -217,7 +224,7 @@ abp switch-to-nightly [options] #### Options -`--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. +* `--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. ### switch-to-stable @@ -230,7 +237,7 @@ abp switch-to-stable [options] ```` #### Options -`--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. +* `--solution-directory` or `-sd`: Specifies the directory. The solution should be in that directory or in any of its sub directories. If not specified, default is the current directory. ### translate From 53defa8c724536c1f62107f9359c061c722bd611 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 22:20:58 +0300 Subject: [PATCH 54/98] feat: resolve dictionary types in schematics --- .../packages/schematics/src/utils/type.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/type.ts b/npm/ng-packs/packages/schematics/src/utils/type.ts index d6e451f202..9734b96af5 100644 --- a/npm/ng-packs/packages/schematics/src/utils/type.ts +++ b/npm/ng-packs/packages/schematics/src/utils/type.ts @@ -15,13 +15,18 @@ export function createTypeSimplifier() { ); return type.split('.').pop()!; }); - return (type: string) => parseType(type).join(' | '); + + return (type: string) => { + const parsed = parseType(type); + const last = parsed.pop()!; + return parsed.reduceRight((record, tKey) => `Record<${tKey}, ${record}>`, last); + }; } export function createTypeParser(replacerFn = (t: string) => t) { const normalizeType = createTypeNormalizer(replacerFn); - return (originalType: string) => flattenUnionTypes([], originalType).map(normalizeType); + return (originalType: string) => flattenDictionaryTypes([], originalType).map(normalizeType); } export function createTypeNormalizer(replacerFn = (t: string) => t) { @@ -32,14 +37,10 @@ export function createTypeNormalizer(replacerFn = (t: string) => t) { }; } -export function flattenUnionTypes(types: string[], type: string) { +export function flattenDictionaryTypes(types: string[], type: string) { type - .replace(/^{/, '') - .replace(/}$/, '') - .replace(/{/, '(') - .replace(/}/, ')') + .replace(/[}{]/g, '') .split(':') - .filter(Boolean) .forEach(t => types.push(t)); return types; From c1207c25b4044ec0f4f79bf2dc082b78bd1721ec Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 22:21:46 +0300 Subject: [PATCH 55/98] feat: add interface for Volo.Abp.NameValue as constant --- .../packages/schematics/src/constants/volo.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/npm/ng-packs/packages/schematics/src/constants/volo.ts b/npm/ng-packs/packages/schematics/src/constants/volo.ts index 00fde72c79..a6726594ee 100644 --- a/npm/ng-packs/packages/schematics/src/constants/volo.ts +++ b/npm/ng-packs/packages/schematics/src/constants/volo.ts @@ -1 +1,22 @@ +import { Interface, Property } from '../models'; + export const VOLO_REGEX = /^Volo\.Abp\.(Application\.Dtos|ObjectExtending)/; + +export const VOLO_NAME_VALUE = new Interface({ + base: null, + identifier: 'NameValue', + ref: 'Volo.Abp.NameValue', + namespace: 'Volo.Abp', + properties: [ + new Property({ + name: 'Name', + type: 'string', + refs: ['System.String'], + }), + new Property({ + name: 'Value', + type: 'string', + refs: ['System.String'], + }), + ], +}); From 8974ed94429ee702e4d1f4ab2b02ad6692853746 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 22:23:05 +0300 Subject: [PATCH 56/98] feat: handle unique case of Volo.Abp.NameValue --- npm/ng-packs/packages/schematics/src/utils/model.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/model.ts b/npm/ng-packs/packages/schematics/src/utils/model.ts index 22e2b55347..19435f5f76 100644 --- a/npm/ng-packs/packages/schematics/src/utils/model.ts +++ b/npm/ng-packs/packages/schematics/src/utils/model.ts @@ -1,5 +1,5 @@ import { strings } from '@angular-devkit/core'; -import { VOLO_REGEX } from '../constants'; +import { VOLO_NAME_VALUE, VOLO_REGEX } from '../constants'; import { Interface, Model, Property, Type, TypeWithEnum } from '../models'; import { parseNamespace } from './namespace'; import { relativePathToModel } from './path'; @@ -40,8 +40,11 @@ export function createImportRefsToModelReducer(params: ModelGeneratorParams) { const index = models.findIndex(m => m.namespace === _interface.namespace); if (index > -1) { if (models[index].interfaces.some(i => i.identifier === _interface.identifier)) return; + models[index].interfaces.push(_interface); } else { + if (_interface.ref === VOLO_NAME_VALUE.ref) _interface = VOLO_NAME_VALUE; + const { namespace } = _interface; models.push( @@ -59,6 +62,7 @@ export function createImportRefsToModelReducer(params: ModelGeneratorParams) { model.interfaces.forEach(_interface => { const { baseType } = types[_interface.ref]; + if (baseType && parseNamespace(solution, baseType) !== model.namespace) toBeImported.push({ type: baseType.split('<')[0], From 59934d009e024df939ec0de2fffd845d9e5040c6 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 22:23:41 +0300 Subject: [PATCH 57/98] fix: improve namespace parsing by removing generics --- npm/ng-packs/packages/schematics/src/utils/namespace.ts | 4 ++-- npm/ng-packs/packages/schematics/src/utils/type.ts | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/namespace.ts b/npm/ng-packs/packages/schematics/src/utils/namespace.ts index 78ee91a02a..88c574db8a 100644 --- a/npm/ng-packs/packages/schematics/src/utils/namespace.ts +++ b/npm/ng-packs/packages/schematics/src/utils/namespace.ts @@ -1,7 +1,7 @@ -import { createTypeParser } from './type'; +import { createTypeParser, removeGenerics } from './type'; export function parseNamespace(solution: string, type: string) { - const parseType = createTypeParser(); + const parseType = createTypeParser(removeGenerics); let namespace = parseType(type)[0] .split('.') .slice(0, -1) diff --git a/npm/ng-packs/packages/schematics/src/utils/type.ts b/npm/ng-packs/packages/schematics/src/utils/type.ts index 9734b96af5..25751f475d 100644 --- a/npm/ng-packs/packages/schematics/src/utils/type.ts +++ b/npm/ng-packs/packages/schematics/src/utils/type.ts @@ -51,6 +51,10 @@ export function normalizeTypeAnnotations(type: string) { return type.replace(/\?/g, ''); } +export function removeGenerics(type: string) { + return type.replace(/<.+>/g, ''); +} + export function removeTypeModifiers(type: string) { return type.replace(/\[\]/g, ''); } From 7c480461e38ffe7d2aa6fb121da413057cb41a63 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 27 Aug 2020 23:32:38 +0300 Subject: [PATCH 58/98] feat: generate Volo.Abp.NameValue as generic type --- .../packages/schematics/src/constants/volo.ts | 10 +++++----- npm/ng-packs/packages/schematics/src/utils/model.ts | 11 +++-------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/constants/volo.ts b/npm/ng-packs/packages/schematics/src/constants/volo.ts index a6726594ee..12aa166d66 100644 --- a/npm/ng-packs/packages/schematics/src/constants/volo.ts +++ b/npm/ng-packs/packages/schematics/src/constants/volo.ts @@ -4,19 +4,19 @@ export const VOLO_REGEX = /^Volo\.Abp\.(Application\.Dtos|ObjectExtending)/; export const VOLO_NAME_VALUE = new Interface({ base: null, - identifier: 'NameValue', + identifier: 'NameValue', ref: 'Volo.Abp.NameValue', namespace: 'Volo.Abp', properties: [ new Property({ - name: 'Name', + name: 'name', type: 'string', refs: ['System.String'], }), new Property({ - name: 'Value', - type: 'string', - refs: ['System.String'], + name: 'value', + type: 'T', + refs: ['T'], }), ], }); diff --git a/npm/ng-packs/packages/schematics/src/utils/model.ts b/npm/ng-packs/packages/schematics/src/utils/model.ts index 19435f5f76..2ac5949050 100644 --- a/npm/ng-packs/packages/schematics/src/utils/model.ts +++ b/npm/ng-packs/packages/schematics/src/utils/model.ts @@ -40,10 +40,11 @@ export function createImportRefsToModelReducer(params: ModelGeneratorParams) { const index = models.findIndex(m => m.namespace === _interface.namespace); if (index > -1) { if (models[index].interfaces.some(i => i.identifier === _interface.identifier)) return; + if (_interface.ref.startsWith(VOLO_NAME_VALUE.ref)) return; models[index].interfaces.push(_interface); } else { - if (_interface.ref === VOLO_NAME_VALUE.ref) _interface = VOLO_NAME_VALUE; + if (_interface.ref.startsWith(VOLO_NAME_VALUE.ref)) _interface = VOLO_NAME_VALUE; const { namespace } = _interface; @@ -135,13 +136,7 @@ export function createImportRefToInterfaceReducerCreator(params: ModelGeneratorP prop.refs.forEach(type => !types[type]?.isEnum && refs.push(type)); return refs; }, []) - .concat( - base - ? parseGenerics(typeDef.baseType!) - .toGenerics() - .join('') - : [], - ) + .concat(base ? parseGenerics(typeDef.baseType!).toGenerics() : []) .reduce(reduceRefsToInterfaces, interfaces); } } From 012137a4853bfb8f04468bcdec82ae15d0590712 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 00:47:41 +0300 Subject: [PATCH 59/98] feat: add proxy config interface to schematics --- npm/ng-packs/packages/schematics/src/models/index.ts | 1 + npm/ng-packs/packages/schematics/src/models/proxy-config.ts | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 npm/ng-packs/packages/schematics/src/models/proxy-config.ts diff --git a/npm/ng-packs/packages/schematics/src/models/index.ts b/npm/ng-packs/packages/schematics/src/models/index.ts index 900b58b4f1..36eadc54d9 100644 --- a/npm/ng-packs/packages/schematics/src/models/index.ts +++ b/npm/ng-packs/packages/schematics/src/models/index.ts @@ -3,5 +3,6 @@ export * from './import'; export * from './method'; export * from './model'; export * from './project'; +export * from './proxy-config'; export * from './service'; export * from './util'; diff --git a/npm/ng-packs/packages/schematics/src/models/proxy-config.ts b/npm/ng-packs/packages/schematics/src/models/proxy-config.ts new file mode 100644 index 0000000000..226833da12 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/models/proxy-config.ts @@ -0,0 +1,5 @@ +import { ApiDefinition } from './api-definition'; + +export interface ProxyConfig extends ApiDefinition { + generated: string[]; +} From fa59ee8602532b2cb110a33729cdcf8f54949eea Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 00:48:37 +0300 Subject: [PATCH 60/98] feat: convert api definition reader to proxy config reader --- .../packages/schematics/src/utils/source.ts | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index 8a41776955..294b84e63e 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -1,7 +1,7 @@ import { SchematicsException, Tree } from '@angular-devkit/schematics'; import got from 'got'; import { Exception } from '../enums'; -import { ApiDefinition, Project } from '../models'; +import { ApiDefinition, Project, ProxyConfig } from '../models'; import { getAssignedPropertyFromObjectliteral } from './ast'; import { interpolate } from './common'; import { readEnvironment } from './workspace'; @@ -71,23 +71,28 @@ export function getSourceUrl(tree: Tree, project: Project, moduleName: string) { return assignment.replace(/[`'"]/g, ''); } -export function createApiDefinitionReader(targetPath: string) { +export function createProxyConfigReader(targetPath: string) { return (tree: Tree) => { try { const buffer = tree.read(targetPath); - const apiDefinition: ApiDefinition = JSON.parse(buffer!.toString()); - return apiDefinition; + return JSON.parse(buffer!.toString()) as ProxyConfig; } catch (_) {} throw new SchematicsException(interpolate(Exception.NoApiDefinition, targetPath)); }; } -export function createApiDefinitionSaver(apiDefinition: ApiDefinition, targetPath: string) { +export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) { + const readPreviousConfig = createProxyConfigReader(targetPath); + return (tree: Tree) => { - tree[tree.exists(targetPath) ? 'overwrite' : 'create']( - targetPath, - JSON.stringify(apiDefinition, null, 2), - ); + if (tree.exists(targetPath)) { + const generated: string[] = []; + try { + readPreviousConfig(tree).generated.forEach(m => generated.push(m)); + } catch (_) {} + + tree.overwrite(targetPath, JSON.stringify({ generated, ...apiDefinition }, null, 2)); + } else tree.create(targetPath, JSON.stringify(apiDefinition, null, 2)); }; } From eff4ad50f5cd37ae2a451a58858a137c0048cc9f Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 00:49:22 +0300 Subject: [PATCH 61/98] feat: add constant for proxy-config.json path --- npm/ng-packs/packages/schematics/src/constants/index.ts | 1 + npm/ng-packs/packages/schematics/src/constants/proxy.ts | 1 + 2 files changed, 2 insertions(+) create mode 100644 npm/ng-packs/packages/schematics/src/constants/proxy.ts diff --git a/npm/ng-packs/packages/schematics/src/constants/index.ts b/npm/ng-packs/packages/schematics/src/constants/index.ts index 01053d9333..cd95fb5201 100644 --- a/npm/ng-packs/packages/schematics/src/constants/index.ts +++ b/npm/ng-packs/packages/schematics/src/constants/index.ts @@ -1,3 +1,4 @@ export * from './api'; +export * from './proxy'; export * from './system-types'; export * from './volo'; diff --git a/npm/ng-packs/packages/schematics/src/constants/proxy.ts b/npm/ng-packs/packages/schematics/src/constants/proxy.ts new file mode 100644 index 0000000000..a864da6f24 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/constants/proxy.ts @@ -0,0 +1 @@ +export const PROXY_CONFIG_PATH = '/proxy/proxy-config.json'; From a4d9df215c4e7728fe09dff2f3d7d011a6f05c50 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 00:50:11 +0300 Subject: [PATCH 62/98] feat: use proxy config reader and saver in commands --- .../packages/schematics/src/commands/api/index.ts | 9 +++++---- .../packages/schematics/src/commands/proxy/index.ts | 11 ++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 24e0f816af..9554c54506 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -9,15 +9,16 @@ import { Tree, url, } from '@angular-devkit/schematics'; +import { PROXY_CONFIG_PATH } from '../../constants'; import { Exception } from '../../enums'; import { ServiceGeneratorParams } from '../../models'; import { applyWithOverwrite, buildDefaultPath, - createApiDefinitionReader, createControllerToServiceMapper, createImportRefsToModelReducer, createImportRefToEnumMapper, + createProxyConfigReader, EnumGeneratorParams, getEnumNamesFromImports, getRootNamespace, @@ -40,9 +41,9 @@ export default function(schema: GenerateProxySchema) { const target = await resolveProject(tree, params.target!); const solution = getRootNamespace(tree, source, moduleName); const targetPath = buildDefaultPath(target.definition); - const definitionPath = `${targetPath}/shared/api-definition.json`; - const readApiDefinition = createApiDefinitionReader(definitionPath); - const data = readApiDefinition(tree); + const definitionPath = targetPath + PROXY_CONFIG_PATH; + const readProxyConfig = createProxyConfigReader(definitionPath); + const data = readProxyConfig(tree); const types = data.types; const modules = data.modules; if (!types || !modules) throw new SchematicsException(Exception.InvalidApiDefinition); diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts index ddbbd68caa..fc405b5a58 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts @@ -6,11 +6,11 @@ import { SchematicContext, Tree, } from '@angular-devkit/schematics'; -import { API_DEFINITION_ENDPOINT } from '../../constants'; +import { API_DEFINITION_ENDPOINT, PROXY_CONFIG_PATH } from '../../constants'; import { ApiDefinition } from '../../models'; import { buildDefaultPath, - createApiDefinitionSaver, + createProxyConfigSaver, getApiDefinition, getSourceUrl, removeDefaultPlaceholders, @@ -30,13 +30,10 @@ export default function(schema: GenerateProxySchema) { const targetPath = buildDefaultPath(target.definition); const data: ApiDefinition = await getApiDefinition(sourceUrl + API_DEFINITION_ENDPOINT); - const saveApiDefinition = createApiDefinitionSaver( - data, - `${targetPath}/shared/api-definition.json`, - ); + const saveProxyConfig = createProxyConfigSaver(data, targetPath + PROXY_CONFIG_PATH); const createApi = schematic('api', schema); - return branchAndMerge(chain([saveApiDefinition, createApi])); + return branchAndMerge(chain([saveProxyConfig, createApi])); }, ]); } From 87e61eb268124e1aee4528186b15a571bd8d2f67 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 00:52:54 +0300 Subject: [PATCH 63/98] feat: rename shared directory as proxy in schametics --- .../enums/__namespace@dir__/__name@kebab__.ts.template | 0 .../{shared => proxy}/models/__namespace@dir__/index.ts.template | 0 .../services/__namespace@dir__/__name@kebab__.service.ts.template | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename npm/ng-packs/packages/schematics/src/commands/api/files-enum/{shared => proxy}/enums/__namespace@dir__/__name@kebab__.ts.template (100%) rename npm/ng-packs/packages/schematics/src/commands/api/files-model/{shared => proxy}/models/__namespace@dir__/index.ts.template (100%) rename npm/ng-packs/packages/schematics/src/commands/api/files-service/{shared => proxy}/services/__namespace@dir__/__name@kebab__.service.ts.template (100%) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/files-enum/shared/enums/__namespace@dir__/__name@kebab__.ts.template b/npm/ng-packs/packages/schematics/src/commands/api/files-enum/proxy/enums/__namespace@dir__/__name@kebab__.ts.template similarity index 100% rename from npm/ng-packs/packages/schematics/src/commands/api/files-enum/shared/enums/__namespace@dir__/__name@kebab__.ts.template rename to npm/ng-packs/packages/schematics/src/commands/api/files-enum/proxy/enums/__namespace@dir__/__name@kebab__.ts.template diff --git a/npm/ng-packs/packages/schematics/src/commands/api/files-model/shared/models/__namespace@dir__/index.ts.template b/npm/ng-packs/packages/schematics/src/commands/api/files-model/proxy/models/__namespace@dir__/index.ts.template similarity index 100% rename from npm/ng-packs/packages/schematics/src/commands/api/files-model/shared/models/__namespace@dir__/index.ts.template rename to npm/ng-packs/packages/schematics/src/commands/api/files-model/proxy/models/__namespace@dir__/index.ts.template diff --git a/npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template b/npm/ng-packs/packages/schematics/src/commands/api/files-service/proxy/services/__namespace@dir__/__name@kebab__.service.ts.template similarity index 100% rename from npm/ng-packs/packages/schematics/src/commands/api/files-service/shared/services/__namespace@dir__/__name@kebab__.service.ts.template rename to npm/ng-packs/packages/schematics/src/commands/api/files-service/proxy/services/__namespace@dir__/__name@kebab__.service.ts.template From 992932a8131b5efa22fab8347d74e3001126a068 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:17:10 +0300 Subject: [PATCH 64/98] feat: add file write exception in schematics --- npm/ng-packs/packages/schematics/src/enums/exception.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/schematics/src/enums/exception.ts b/npm/ng-packs/packages/schematics/src/enums/exception.ts index 6c2e635edf..40ef6487f5 100644 --- a/npm/ng-packs/packages/schematics/src/enums/exception.ts +++ b/npm/ng-packs/packages/schematics/src/enums/exception.ts @@ -1,5 +1,6 @@ export const enum Exception { FileNotFound = '[File Not Found] There is no file at "{0}" path.', + FileWriteFailed = '[File Write Failed] Cannot write file at "{0}".', InvalidModule = '[Invalid Module] Backend module "{0}" does not exist in API definition.', InvalidApiDefinition = '[Invalid API Definition] The provided API definition is invalid.', InvalidWorkspace = '[Invalid Workspace] The angular.json should be a valid JSON file.', From 3a8fba25e1a9d450a33dcff210b629385448bc98 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:17:35 +0300 Subject: [PATCH 65/98] feat: add type alias for file write operation --- npm/ng-packs/packages/schematics/src/models/index.ts | 1 + npm/ng-packs/packages/schematics/src/models/tree.ts | 1 + 2 files changed, 2 insertions(+) create mode 100644 npm/ng-packs/packages/schematics/src/models/tree.ts diff --git a/npm/ng-packs/packages/schematics/src/models/index.ts b/npm/ng-packs/packages/schematics/src/models/index.ts index 36eadc54d9..fb5e9f5639 100644 --- a/npm/ng-packs/packages/schematics/src/models/index.ts +++ b/npm/ng-packs/packages/schematics/src/models/index.ts @@ -5,4 +5,5 @@ export * from './model'; export * from './project'; export * from './proxy-config'; export * from './service'; +export * from './tree'; export * from './util'; diff --git a/npm/ng-packs/packages/schematics/src/models/tree.ts b/npm/ng-packs/packages/schematics/src/models/tree.ts new file mode 100644 index 0000000000..3c17cfcb10 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/models/tree.ts @@ -0,0 +1 @@ +export type WriteOp = 'create' | 'overwrite'; From 8870976ead658ee45b6f25726472ceb2596bbb90 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:17:41 +0300 Subject: [PATCH 66/98] feat: improve proxy config write op in schematics --- .../packages/schematics/src/utils/source.ts | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index 294b84e63e..f6a9857866 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -1,7 +1,7 @@ import { SchematicsException, Tree } from '@angular-devkit/schematics'; import got from 'got'; import { Exception } from '../enums'; -import { ApiDefinition, Project, ProxyConfig } from '../models'; +import { ApiDefinition, Project, ProxyConfig, WriteOp } from '../models'; import { getAssignedPropertyFromObjectliteral } from './ast'; import { interpolate } from './common'; import { readEnvironment } from './workspace'; @@ -83,16 +83,37 @@ export function createProxyConfigReader(targetPath: string) { } export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) { + const createProxyConfigJson = createProxyConfigJsonCreator(apiDefinition); const readPreviousConfig = createProxyConfigReader(targetPath); + const writeNewConfig = createProxyConfigWriter(targetPath); return (tree: Tree) => { + const generated: string[] = []; + let op: WriteOp = 'create'; + if (tree.exists(targetPath)) { - const generated: string[] = []; + op = 'overwrite'; + try { readPreviousConfig(tree).generated.forEach(m => generated.push(m)); } catch (_) {} + } + + writeNewConfig(tree, op, createProxyConfigJson(generated)); + }; +} - tree.overwrite(targetPath, JSON.stringify({ generated, ...apiDefinition }, null, 2)); - } else tree.create(targetPath, JSON.stringify(apiDefinition, null, 2)); +export function createProxyConfigWriter(targetPath: string) { + return (tree: Tree, op: WriteOp, data: string) => { + try { + tree[op](targetPath, data); + return tree; + } catch (_) {} + + throw new SchematicsException(interpolate(Exception.FileWriteFailed, targetPath)); }; } + +function createProxyConfigJsonCreator(apiDefinition: ApiDefinition) { + return (generated: string[]) => JSON.stringify({ generated, ...apiDefinition }, null, 2); +} From fe3aa265eb2953ed181b1695d1f5289cc8be85d4 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:33:39 +0300 Subject: [PATCH 67/98] refactor: enable creating rule from proxy config writer --- .../packages/schematics/src/utils/source.ts | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index f6a9857866..3652836ed7 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -85,7 +85,7 @@ export function createProxyConfigReader(targetPath: string) { export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) { const createProxyConfigJson = createProxyConfigJsonCreator(apiDefinition); const readPreviousConfig = createProxyConfigReader(targetPath); - const writeNewConfig = createProxyConfigWriter(targetPath); + const createProxyConfigWriter = createProxyConfigWriterCreator(targetPath); return (tree: Tree) => { const generated: string[] = []; @@ -99,12 +99,16 @@ export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: } catch (_) {} } - writeNewConfig(tree, op, createProxyConfigJson(generated)); + const json = createProxyConfigJson(generated); + const writeProxyConfig = createProxyConfigWriter(op, json); + writeProxyConfig(tree); + + return tree; }; } -export function createProxyConfigWriter(targetPath: string) { - return (tree: Tree, op: WriteOp, data: string) => { +export function createProxyConfigWriterCreator(targetPath: string) { + return (op: WriteOp, data: string) => (tree: Tree) => { try { tree[op](targetPath, data); return tree; @@ -114,6 +118,10 @@ export function createProxyConfigWriter(targetPath: string) { }; } -function createProxyConfigJsonCreator(apiDefinition: ApiDefinition) { - return (generated: string[]) => JSON.stringify({ generated, ...apiDefinition }, null, 2); +export function createProxyConfigJsonCreator(apiDefinition: ApiDefinition) { + return (generated: string[]) => generateProxyConfigJson({ generated, ...apiDefinition }); +} + +export function generateProxyConfigJson(proxyConfig: ProxyConfig) { + return JSON.stringify(proxyConfig, null, 2); } From c0fd167c19b8c7aaed38cae9d44b05abff519ef6 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 01:35:16 +0300 Subject: [PATCH 68/98] feat: store generated module names in proxy config --- .../packages/schematics/src/commands/api/index.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 9554c54506..178c72f376 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -19,7 +19,9 @@ import { createImportRefsToModelReducer, createImportRefToEnumMapper, createProxyConfigReader, + createProxyConfigWriterCreator, EnumGeneratorParams, + generateProxyConfigJson, getEnumNamesFromImports, getRootNamespace, interpolate, @@ -43,6 +45,7 @@ export default function(schema: GenerateProxySchema) { const targetPath = buildDefaultPath(target.definition); const definitionPath = targetPath + PROXY_CONFIG_PATH; const readProxyConfig = createProxyConfigReader(definitionPath); + const createProxyConfigWriter = createProxyConfigWriterCreator(definitionPath); const data = readProxyConfig(tree); const types = data.types; const modules = data.modules; @@ -81,7 +84,14 @@ export default function(schema: GenerateProxySchema) { modelImports, }); - return branchAndMerge(chain([generateServices, generateModels, generateEnums])); + if (!data.generated.includes(moduleName)) data.generated.push(moduleName); + data.generated.sort(); + const json = generateProxyConfigJson(data); + const overwriteProxyConfig = createProxyConfigWriter('overwrite', json); + + return branchAndMerge( + chain([generateServices, generateModels, generateEnums, overwriteProxyConfig]), + ); }, ]); } From 333f848ddf9c6ebcadf9966c1141779c42cfd3fb Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Fri, 28 Aug 2020 09:33:54 +0300 Subject: [PATCH 69/98] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 4855f1cd9c..f1a0cf5890 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.1.0 + 3.1.0-rc.3 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 747701130cfb03cdffa1e72a01573b7549a1ffa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Fri, 28 Aug 2020 11:15:37 +0300 Subject: [PATCH 70/98] Update Using-DevExtreme-Components-With-The-ABP-Fremework.md --- .../Using-DevExtreme-Components-With-The-ABP-Fremework.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md index eb93041228..93ed01d05c 100644 --- a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md +++ b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md @@ -1,4 +1,4 @@ -## Using DevExtreme Components With the ABP Fremework +## Using DevExtreme Components With the ABP Framework Hi, in this step by step article, I will show you how to integrate [DevExtreme](https://js.devexpress.com/) components into ABP Framework-based applications. From f7658a34f252b3c59e6ac7a30e6ee1efa3ade42b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Fri, 28 Aug 2020 11:18:03 +0300 Subject: [PATCH 71/98] rename --- ...DevExtreme-Components-With-The-ABP-Framework.md} | 0 .../both-example-result.png | Bin .../data-grid-app-contract.png | Bin .../data-grid-application.png | Bin .../data-grid-final.png | Bin .../data-grid-web.png | Bin .../devexp-result.gif | Bin .../devextreme-js.png | Bin .../gulp.png | Bin .../initial-project.png | Bin .../tree-list-app-contract.png | Bin .../tree-list-application.png | Bin .../tree-list-final.png | Bin .../tree-list-web.png | Bin .../wwwroot-lib.png | Bin 15 files changed, 0 insertions(+), 0 deletions(-) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/Using-DevExtreme-Components-With-The-ABP-Framework.md} (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/both-example-result.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/data-grid-app-contract.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/data-grid-application.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/data-grid-final.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/data-grid-web.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/devexp-result.gif (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/devextreme-js.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/gulp.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/initial-project.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/tree-list-app-contract.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/tree-list-application.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/tree-list-final.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/tree-list-web.png (100%) rename docs/en/Community-Articles/{2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework => 2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework}/wwwroot-lib.png (100%) diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/Using-DevExtreme-Components-With-The-ABP-Framework.md similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/Using-DevExtreme-Components-With-The-ABP-Fremework.md rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/Using-DevExtreme-Components-With-The-ABP-Framework.md diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/both-example-result.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/both-example-result.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/both-example-result.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-app-contract.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-app-contract.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-application.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-application.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-final.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-final.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/data-grid-web.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/data-grid-web.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devexp-result.gif b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devexp-result.gif similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devexp-result.gif rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devexp-result.gif diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devextreme-js.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/devextreme-js.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/devextreme-js.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/gulp.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/gulp.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/gulp.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/initial-project.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/initial-project.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/initial-project.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-app-contract.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-app-contract.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-app-contract.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-application.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-application.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-application.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-final.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-final.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-final.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-web.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/tree-list-web.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/tree-list-web.png diff --git a/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/wwwroot-lib.png b/docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png similarity index 100% rename from docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Fremework/wwwroot-lib.png rename to docs/en/Community-Articles/2020-08-18-Using-DevExtreme-Components-With-The-ABP-Framework/wwwroot-lib.png From 617795ca0ea58337419b0ca1f014fd339577876b Mon Sep 17 00:00:00 2001 From: EngincanV Date: Fri, 28 Aug 2020 11:26:11 +0300 Subject: [PATCH 72/98] Update en.json --- .../Community/Localization/Resources/en.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index 651af64675..639e4c7676 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -81,6 +81,8 @@ "Biography": "Biography", "HasNoPublishedArticlesYet": "has no published articles yet", "Author": "Author", - "MyAccount": "My account" + "MyAccount": "My account", + "LatestGithubAnnouncements": "Latest Github Announcements", + "SeeAllAnnouncements": "See All Announcements" } } From baf4c0392d68c8601e279a97f2edb0147085909f Mon Sep 17 00:00:00 2001 From: erolarkat Date: Fri, 28 Aug 2020 11:58:45 +0300 Subject: [PATCH 73/98] npm packages 3.1.0-rc.3 --- .../package.json | 2 +- .../yarn.lock | 222 ++++++------ .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 330 +++++++++--------- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 236 ++++++------- modules/cms-kit/angular/package.json | 10 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 236 ++++++------- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 236 ++++++------- .../host/Volo.CmsKit.Web.Unified/package.json | 2 +- .../host/Volo.CmsKit.Web.Unified/yarn.lock | 236 ++++++------- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 296 ++++++++-------- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 20 +- npm/ng-packs/packages/account/package.json | 4 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 163 ++++----- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 2 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/virtual-file-explorer/package.json | 6 +- templates/app/angular/package.json | 12 +- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 236 ++++++------- templates/module/angular/package.json | 12 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- .../package.json | 2 +- .../yarn.lock | 236 ++++++------- 88 files changed, 2074 insertions(+), 2105 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 60d92094ba..00021c8fb2 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^3.1.0-rc.2", + "@abp/aspnetcore.mvc.ui.theme.shared": "^3.1.0-rc.3", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index fe5adc6229..664291812e 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.shared@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,144 +34,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 66d620dc75..b2bc192cea 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index f1b72d84a6..0c2e9764b1 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 3329e0c9b4..f608db303b 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2", - "@abp/blogging": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3", + "@abp/blogging": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 259516d463..c69f117723 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,213 +41,213 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/blogging@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.1.0-rc.2.tgz#89f056ce6218cbeffeefbc96138d98596db6dd91" - integrity sha512-SrAsp6S/1FM9IRnpsOKLSxT/Cx0mENS7LmLYm/rMc8YwYTUZDg9s9DJhs6WqFgghadByvul6bgJ8NDLrktKJcA== +"@abp/blogging@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.1.0-rc.3.tgz#5c21c1dc57d832de35e89621fd81653599e676ad" + integrity sha512-8iAe29fzdCH4YAp3+8JSMrT0E0/OfUSQ9sIxGXrlV4GyEX2iGZrszRyKsKA+bgQmBOQdnT36RrmSOl0K/A+Mxw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - "@abp/owl.carousel" "~3.1.0-rc.2" - "@abp/prismjs" "~3.1.0-rc.2" - "@abp/tui-editor" "~3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + "@abp/owl.carousel" "~3.1.0-rc.3" + "@abp/prismjs" "~3.1.0-rc.3" + "@abp/tui-editor" "~3.1.0-rc.3" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.2.tgz#73a8dbc1f98cfb64d374b463dcd16b186bb694bb" - integrity sha512-Q1Z9pcs3gpptjE8Cjm/38bPKwKncjoVYSO0TknyEZLM3QG+PtZwa9UCkaK+Truz/U3QoZqbPuNbPKr5cz7o+lw== +"@abp/clipboard@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.3.tgz#40f0a95298cf9d7097d8e7f96e42c181e5a9907b" + integrity sha512-efCjrAHN3d7zmq4eVzlT4H/s6K11I9K7hv4fIJP6fbZKDoXi5hzTv2+dt9JRDWAra+s87PdBJq7AEWNs6ONiGg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" clipboard "^2.0.6" -"@abp/codemirror@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.1.0-rc.2.tgz#020d6207094293109a0752b046064c2592056c27" - integrity sha512-TmbfAP+CpzbWly03iibi7x9dW655Zxcu50tifAyi3LSTwrQIbhB6jo1aksdA2X97qTSLBhvOt3avcqj91sKRhQ== +"@abp/codemirror@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.1.0-rc.3.tgz#db68462bc6618734daa30f928feb65e0cca8cf53" + integrity sha512-TJz21MreoVePouWjnQKQ6gD9cXWQkS7xTl4V93i69C6m9f/ozoaoJvm3Va3GGGZMKf6u2B8G+XX7d6QGz406hg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" codemirror "^5.54.0" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.1.0-rc.2.tgz#4c796617471ec571dd6be2fc5327ae02e720ea1f" - integrity sha512-EUBRx7kDRmWEZx4bx1tHRjs0goMV1TzvuBQj7Wrq41CUqhpz2cBk9ZUI5AFGQJTSf0tz1SFqZhr4xDMpo8szTw== +"@abp/highlight.js@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.1.0-rc.3.tgz#d1e92b44ebd6cc6fc49a18cf350bf24b12be2792" + integrity sha512-rb9/ryoEK2krMh3DLYQcqTyvSaI7BYlOd6+awDYl5iWXu8TK+M1NP9zSM8ZoYr0kkLoD1dGHsF4ondCfCYjxPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.1.0-rc.2.tgz#cd9e84d4188c1adaad4f37ce5f9a1fa028fb5405" - integrity sha512-CufWWxhceJqzKxnTbFXMB+SVi2Ikp2CH8tQ5wvrsDwqJV6ViOCyhBLMIwcV1/oAY9lHzCI+abPiEUZdN7AzhYQ== +"@abp/markdown-it@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.1.0-rc.3.tgz#74a1e2c20654988159f332a01790a74d7ffb6b92" + integrity sha512-6k5e+WRfE4I0vp4KmV44FLQXvT8u+UUtdzPJOotWERWePuCVLJqM0u0hht0s5uEoTOhfCONIYwqQoGjzfP/8lg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" markdown-it "^11.0.0" -"@abp/owl.carousel@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.1.0-rc.2.tgz#c17e34dd4a38aef12f59ad0ef9ad20715880aa98" - integrity sha512-065bHPn7XJHs2ABKdUx3hunnRmKuedjyZZuIMZNvavH4hJyiV3MI0F6RjWLohgMFIvmp0iM259bQwoCkvGFrBA== +"@abp/owl.carousel@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.1.0-rc.3.tgz#c419eccaeb18150dab5b7fdd2da102a26a6d6013" + integrity sha512-lLJuhCJ5/879juIHqLPrNos+zOyBb7cuvpzAF+IE+6/Jb9yP5Xn9O8004F2ELXRag0bHZVzCgCbtPmDDF+LkNQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" owl.carousel "^2.3.4" -"@abp/prismjs@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.2.tgz#767d58c07e94c6e5056fd187d4e398efa108f67e" - integrity sha512-HCX/nw6noslnlw7xh94IaybI7xNYrjVOIld1C+J7p9AHizLhxh4kRbwVTpLhFzUWsSrTe8+VssgryimLQvTmjg== +"@abp/prismjs@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.3.tgz#d13885bf613871f6cd003f58ae01ee4587ad15ad" + integrity sha512-gaKxJ3d78oR1wGZhnPzM5EJIAsibh3VT9MFithFt/YAQdrMMOqS1fEdGsm1zO/A7Veyho9Ba/144RmPkFXH5gQ== dependencies: - "@abp/clipboard" "~3.1.0-rc.2" - "@abp/core" "~3.1.0-rc.2" + "@abp/clipboard" "~3.1.0-rc.3" + "@abp/core" "~3.1.0-rc.3" prismjs "^1.20.0" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/tui-editor@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.1.0-rc.2.tgz#48a1f78b4aca6a82daeb243b2d192c1dbe01710f" - integrity sha512-w9mNBY4c1DXAsIwLpLLKXHoIZMMaQhY2xONhD771v503ZGyNKHU+0donbyowLUzznf3PX7LcVVx/vpYxCnWybw== +"@abp/tui-editor@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.1.0-rc.3.tgz#31c66f06b938ec416276907e539f51da389be01c" + integrity sha512-V3drpSK2l+WwfHWnK+9BFB33Ww+ruo6GFuOhyzDXjmXhOOMeiM2c/r205v+Bm/uEB0GaCW1m/r3yfogFfMipIw== dependencies: - "@abp/codemirror" "~3.1.0-rc.2" - "@abp/highlight.js" "~3.1.0-rc.2" - "@abp/jquery" "~3.1.0-rc.2" - "@abp/markdown-it" "~3.1.0-rc.2" + "@abp/codemirror" "~3.1.0-rc.3" + "@abp/highlight.js" "~3.1.0-rc.3" + "@abp/jquery" "~3.1.0-rc.3" + "@abp/markdown-it" "~3.1.0-rc.3" tui-editor "^1.4.10" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index 1c05d0716c..ba93a68173 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 8d9afafbf8..c2b1f9abfe 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index ecc40c2236..85a81a84fe 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.1.0-rc.2", - "@abp/ng.identity": "~3.1.0-rc.2", - "@abp/ng.setting-management": "~3.1.0-rc.2", - "@abp/ng.tenant-management": "~3.1.0-rc.2", - "@abp/ng.theme.basic": "~3.1.0-rc.2", + "@abp/ng.account": "~3.1.0-rc.3", + "@abp/ng.identity": "~3.1.0-rc.3", + "@abp/ng.setting-management": "~3.1.0-rc.3", + "@abp/ng.tenant-management": "~3.1.0-rc.3", + "@abp/ng.theme.basic": "~3.1.0-rc.3", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 0f6c8018c3..ea7a45336c 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.1.0-rc.2", - "@abp/ng.theme.shared": ">=3.1.0-rc.2" + "@abp/ng.core": ">=3.1.0-rc.3", + "@abp/ng.theme.shared": ">=3.1.0-rc.3" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 2aff27f377..726d61c566 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index c836cc49cb..46ec79f40e 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 7103162cc8..f53cfbaa36 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index be0f989fd7..56e0030b46 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 7103162cc8..f53cfbaa36 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index f1a5b49588..27339975b7 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 0db7e0be4e..b3e3660c63 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2", - "@abp/docs": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3", + "@abp/docs": "^3.1.0-rc.3" } } diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index 22df5982ca..66321e210a 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.1.0-rc.2.tgz#3f445de4884bbe4a7be2bada7db56a376e9fba5e" - integrity sha512-qBFBy8tcinL7YWFy7iPprXTaFowgc7cvyO8mEKG2HG6/LdObm6KBASgAXGLRv2Jhxbdfyrisbcr+TdM8gzrWog== +"@abp/anchor-js@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-3.1.0-rc.3.tgz#839562d155fe9d026328da64a14e354c00090856" + integrity sha512-5NhcK1wZQlfE9gJ679DD3KsnYOigCHCqSGdwOQZn7gzGWNKnhCnzsnjAyh32lL9tNHTHMKkydVr6kJ5LU6Yr1Q== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -49,180 +49,180 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.2.tgz#73a8dbc1f98cfb64d374b463dcd16b186bb694bb" - integrity sha512-Q1Z9pcs3gpptjE8Cjm/38bPKwKncjoVYSO0TknyEZLM3QG+PtZwa9UCkaK+Truz/U3QoZqbPuNbPKr5cz7o+lw== +"@abp/clipboard@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.1.0-rc.3.tgz#40f0a95298cf9d7097d8e7f96e42c181e5a9907b" + integrity sha512-efCjrAHN3d7zmq4eVzlT4H/s6K11I9K7hv4fIJP6fbZKDoXi5hzTv2+dt9JRDWAra+s87PdBJq7AEWNs6ONiGg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" clipboard "^2.0.6" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/docs@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.1.0-rc.2.tgz#d46ec3c7b71fb7ad35e076ea6fd0b0bb9e09d27f" - integrity sha512-jGqxJTOQQb+xxNhasvy4S5qHGOesZwL4BruVdUXVbhUqc1M2lof6iJF4GxYaTndPigg4rOUpc+4WcSD8LUqWQw== +"@abp/docs@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-3.1.0-rc.3.tgz#b5bab272c4094de8f38c04015cf7219f0931c8c5" + integrity sha512-o1R9Kvw2VKqyjHYmNXYGUhiJue1FaqgRIJmmR6z0ncND7swsz4Qb/2gQvws4bHo/dIl28yrzJeKNzXbE74hHgQ== dependencies: - "@abp/anchor-js" "~3.1.0-rc.2" - "@abp/clipboard" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/popper.js" "~3.1.0-rc.2" - "@abp/prismjs" "~3.1.0-rc.2" + "@abp/anchor-js" "~3.1.0-rc.3" + "@abp/clipboard" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/popper.js" "~3.1.0-rc.3" + "@abp/prismjs" "~3.1.0-rc.3" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.1.0-rc.2.tgz#26bd792c33b9a8cf347d14be4e08a4d42eb189c8" - integrity sha512-xWsOIzndRkvwdD5LOan8zf4vtceW0RIjCWSWdRtso4+V/fTLzWw9ofG3utvMaeJvu1Rfdr2mb2tLzYDNezNDAg== +"@abp/popper.js@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-3.1.0-rc.3.tgz#7b12694e65866edeaa8e8543a23ef238682f34cb" + integrity sha512-QyoRm8y4bjemPGwqTHHO30H5/g+uJ4vsX6eB+lxiqPYBW/2OCTccjWkRwPl1YXKdMMyS2IMARDtYDtrNoQ8Z5g== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" popper.js "^1.16.0" -"@abp/prismjs@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.2.tgz#767d58c07e94c6e5056fd187d4e398efa108f67e" - integrity sha512-HCX/nw6noslnlw7xh94IaybI7xNYrjVOIld1C+J7p9AHizLhxh4kRbwVTpLhFzUWsSrTe8+VssgryimLQvTmjg== +"@abp/prismjs@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.1.0-rc.3.tgz#d13885bf613871f6cd003f58ae01ee4587ad15ad" + integrity sha512-gaKxJ3d78oR1wGZhnPzM5EJIAsibh3VT9MFithFt/YAQdrMMOqS1fEdGsm1zO/A7Veyho9Ba/144RmPkFXH5gQ== dependencies: - "@abp/clipboard" "~3.1.0-rc.2" - "@abp/core" "~3.1.0-rc.2" + "@abp/clipboard" "~3.1.0-rc.3" + "@abp/core" "~3.1.0-rc.3" prismjs "^1.20.0" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/npm/lerna.json b/npm/lerna.json index fd6fc21eb1..c7e316ca8b 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "packages": [ "packs/*" ], diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index 83d38bb0df..c872eedc50 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "packages": [ "packages/*" ], diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 843beb71bb..afee0f022a 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -25,16 +25,16 @@ "postinstall": "npm run compile:ivy" }, "devDependencies": { - "@abp/ng.account": "~3.1.0-rc.2", - "@abp/ng.core": "~3.1.0-rc.2", - "@abp/ng.feature-management": "~3.1.0-rc.2", - "@abp/ng.identity": "~3.1.0-rc.2", - "@abp/ng.permission-management": "~3.1.0-rc.2", - "@abp/ng.setting-management": "~3.1.0-rc.2", - "@abp/ng.tenant-management": "~3.1.0-rc.2", - "@abp/ng.theme.basic": "~3.1.0-rc.2", - "@abp/ng.theme.shared": "~3.1.0-rc.2", - "@abp/utils": "^3.1.0-rc.2", + "@abp/ng.account": "~3.1.0-rc.3", + "@abp/ng.core": "~3.1.0-rc.3", + "@abp/ng.feature-management": "~3.1.0-rc.3", + "@abp/ng.identity": "~3.1.0-rc.3", + "@abp/ng.permission-management": "~3.1.0-rc.3", + "@abp/ng.setting-management": "~3.1.0-rc.3", + "@abp/ng.tenant-management": "~3.1.0-rc.3", + "@abp/ng.theme.basic": "~3.1.0-rc.3", + "@abp/ng.theme.shared": "~3.1.0-rc.3", + "@abp/utils": "^3.1.0-rc.3", "@angular-builders/jest": "^10.0.0", "@angular-devkit/build-angular": "~0.1000.6", "@angular-devkit/build-ng-packagr": "~0.1000.6", diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 1f3b34dcab..f1b35ab34c 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.account", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index f3bb738a91..f28f0bdccc 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.components", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=3.1.0-rc.2", + "@abp/ng.core": ">=3.1.0-rc.3", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 3f5bd24e97..13a5835319 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^3.1.0-rc.2", + "@abp/utils": "^3.1.0-rc.3", "@angular/localize": "~10.0.10", "@ngxs/router-plugin": "^3.6.2", "@ngxs/storage-plugin": "^3.6.2", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 8b304d13c7..1dd7f4f92a 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index e259cdea9f..77586f3536 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~3.1.0-rc.2", - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.permission-management": "~3.1.0-rc.3", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 5d258540ea..42d7f8ef9b 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index 9c7df23b83..075a987af7 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index 97b644d782..30716290e8 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.setting-management", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 735d905a5d..5aa95e42dd 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~3.1.0-rc.2", - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.feature-management": "~3.1.0-rc.3", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 666cd7fd5c..24215426c8 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.basic", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~3.1.0-rc.2", + "@abp/ng.theme.shared": "~3.1.0-rc.3", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 91a875c0dd..e50100e544 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~3.1.0-rc.2", + "@abp/ng.core": "~3.1.0-rc.3", "@fortawesome/fontawesome-free": "^5.14.0", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.11", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index cd90d0ffb9..eff77be002 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,102 +2,109 @@ # yarn lockfile v1 -"@abp/ng.account@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.0.5.tgz#3f359e07be021c5743f42f32abc8371f93552df1" - integrity sha512-isG8VmENHookDJoq73dJfPbAdLxmzPGAJMDvg5Yn124yfHVkZQONszLGZxDNUFWti0S07Xose5dripNzcK2Clg== +"@abp/ng.account@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-3.1.0-rc.2.tgz#bcd93452e0ccae43d8387863a3249aa32e3f5826" + integrity sha512-eMu9W4fuvFd1Vk6KY3hLQDTcAhlH6FJkVs7joO3ks4andv4S+SuqBU44R6eNyGSTrB3NphZ05kOSLwmP+oDbJw== dependencies: - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.core@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.0.5.tgz#8956c4e27689e80d981bae66e173524c79ca8678" - integrity sha512-PTluEXyea1d5oPtvkNx/SbmX3kBaHtdiJyN88vJoZXbdd5/OIZeeR5cL4Q58+kYG5xf1z6xkq7wNSAzRjTG7VA== +"@abp/ng.core@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-3.1.0-rc.2.tgz#fee3bff9c2505b25d88d9daf999a9ca0ed9ce45e" + integrity sha512-uOMqMCghYspKCUmmdF89e/rcl/peREY4owH9ld0jSrsyhXpTAYpZ2U402yCGjk8jidQvDN26DEtiwNvfjOfpcA== dependencies: - "@abp/utils" "^3.0.4" - "@angular/localize" "~9.1.11" + "@abp/utils" "^3.0.5" + "@angular/localize" "~10.0.10" "@ngxs/router-plugin" "^3.6.2" "@ngxs/storage-plugin" "^3.6.2" "@ngxs/store" "^3.6.2" - angular-oauth2-oidc "^9.2.2" + angular-oauth2-oidc "^10.0.0" just-clone "^3.1.0" just-compare "^1.3.0" snq "^1.0.3" - ts-toolbelt "^6.9.9" + ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.0.5.tgz#d947f9f05e9edd7c972c42ea903bf05d89efe8da" - integrity sha512-TUrKF5U2hjQ92/Ocig7uULNCew++dfIpCyoHdXrcWZHdhLiFcuuNLc0UElPjFe7WrIuPkka/28MEWHylKFAk4Q== +"@abp/ng.feature-management@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-3.1.0-rc.2.tgz#79967fa06370dd8893a8a75f99e72653eff61a46" + integrity sha512-vB9Kf1DziR8mfG1HTDY6C0UrK54QujLulNf0s7hV5XmAm7Vw4zyor8996LRuEmls3BcySZgGTab2pM4Z3wnI6w== dependencies: - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.identity@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.0.5.tgz#474119e9d3ce2529f0b03a3241d41ed1d49faa65" - integrity sha512-v6hxUniSyIknOidXYuYFvV2edNksDIBgiB7LvqY/csmddH+fHJhct0W0bdk//83aj5N/Fy3FO5BvkeiGYSFMRg== +"@abp/ng.identity@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-3.1.0-rc.2.tgz#fcc529dcb0296cd8d65db69b678ddd443166363e" + integrity sha512-lNuCVgrtw5NRVYCN8SRNVGT05yi1BzCKF1Db2rNPDHqKneDknDuTGn3fikYSID5dHFn4Ms+L46oDEYMggMBu8A== dependencies: - "@abp/ng.permission-management" "~3.0.5" - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.permission-management" "~3.1.0-rc.2" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.permission-management@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.0.5.tgz#2d496872be5af52e8f50022a5c36b3db989c9bc4" - integrity sha512-ukXX/v/ECU0R4SNKNwwdLG1+bbbS8r2GabaefX8IHYxq084VWXWlM7gTgStDIsvgC3Trh8Itoi7uVJHCU6bb0Q== +"@abp/ng.permission-management@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-3.1.0-rc.2.tgz#1a6d8751bac0eb848261fb020b121a37e95a76bd" + integrity sha512-vP62H3vWtIDWmgvn9ATwSz6hxsMc8qT8Qb37XlXC47ZXySxhaQ05EQWWreSiEvzMwNl4fVZ1n+BkMfsFJji8kA== dependencies: - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.setting-management@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.0.5.tgz#57cc71d3357b73fe4f8890c077916c616301ee97" - integrity sha512-Cd6hTXS9XfIVmzwStICijEzaELDn4++xVUmVncWLJn9dWW5T9Mau+kkn7SeElzmv6U/iSEZH8/UHshktCvJ3Tg== +"@abp/ng.setting-management@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-3.1.0-rc.2.tgz#720cdca35d33115148ef845c441f386d4e45db3c" + integrity sha512-atQFPlYiTja2edf3pzIlzg2Z08TKoOOmCJ3XmYcO0hoofySoJE2j5YvxaKyRnLFRKPvSj2aTquAbkK8jvOQOMg== dependencies: - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.tenant-management@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.0.5.tgz#ade0e26b26dcea5445842a21f5a1f675705dfa50" - integrity sha512-2etqlpCB2iXCXSTX1D/YSl5WIXgTvPMFUaOQ8r1CFVxdOhsmWgS/8JZEEZMO5oJDKMyw/jibqtY9WeqgdsnJQg== +"@abp/ng.tenant-management@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-3.1.0-rc.2.tgz#cf4519091ab58b5db188ae64440713ea8149759f" + integrity sha512-TktojUpQXIDwBthngjySRNQkmS8v3ZbFT/7TJHKc9W1AAnySHGpPm8qOACtNsYZ2fPMlLVVahBjjQdYOQEgwCg== dependencies: - "@abp/ng.feature-management" "~3.0.5" - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.feature-management" "~3.1.0-rc.2" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.basic@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.0.5.tgz#13d3da2547fde92a66eb5fc9f9798892226e63b2" - integrity sha512-COeCirRKpLcY2OE4cs9CrKObA1XRRaHXbRcKnMovPUcxC4xb47tQ5snZ4n4C9VYkRnlpSh8p2w51a8SQuxQjMg== +"@abp/ng.theme.basic@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-3.1.0-rc.2.tgz#d6ebdabfe7617f85bffecdb0a08b62a9ade8be91" + integrity sha512-/Y2eBc9HyYiTTsbfDk8ZnB+F32IfuvtAdLohNAIhq+oCR1an9Yl48gIRfd64FNM0Ay8uhibQuLhSi0PewbWXcw== dependencies: - "@abp/ng.theme.shared" "~3.0.5" + "@abp/ng.theme.shared" "~3.1.0-rc.2" tslib "^2.0.0" -"@abp/ng.theme.shared@~3.0.5": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.0.5.tgz#7d0187621d5e27bcc171d21d8ab0e5f7241edef4" - integrity sha512-LAokCastVsEIMH+HfQjkkt6OotKNrIFMCMlDs7Y7i74sXGGhhe+v4hHsWlAT4yQ0EydNYr1W10XoI7B3pzH1MQ== - dependencies: - "@abp/ng.core" "~3.0.5" - "@fortawesome/fontawesome-free" "^5.13.1" - "@ng-bootstrap/ng-bootstrap" "^6.1.0" - "@ngx-validate/core" "^0.0.10" - "@swimlane/ngx-datatable" "^17.0.0" +"@abp/ng.theme.shared@~3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-3.1.0-rc.2.tgz#f970614d80fb4f96b9ca30bd6abc905d047b4d34" + integrity sha512-6oykIW27Es53Sn4cAuVWdL6g8L2buvi/nn5IoJ/XtD1pylkkD4FWKF/2VtPRHBhGH+5T81bwQM0KWTOfv49cIg== + dependencies: + "@abp/ng.core" "~3.1.0-rc.2" + "@fortawesome/fontawesome-free" "^5.14.0" + "@ng-bootstrap/ng-bootstrap" "^7.0.0" + "@ngx-validate/core" "^0.0.11" + "@swimlane/ngx-datatable" "^17.1.0" bootstrap "^4.5.0" chart.js "^2.9.3" tslib "^2.0.0" -"@abp/utils@^3.0.4", "@abp/utils@^3.0.5": +"@abp/utils@^3.0.5": version "3.0.5" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.0.5.tgz#66b3da953500e73ff1f23d1b41168cde8216ce49" integrity sha512-X9V1xLIEazItaf93nFSA4p94WT6QK3yA4eIyvU7GyyEkkOQdaakNwPbRwy930sd+I+/oXnIqM1vDsJu9QDhgvg== dependencies: just-compare "^1.3.0" +"@abp/utils@^3.1.0-rc.2": + version "3.1.0-rc.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" + integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== + dependencies: + just-compare "^1.3.0" + "@angular-builders/jest@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@angular-builders/jest/-/jest-10.0.0.tgz#1d4f80c15544a2a13de9e335b0d2d8f076026388" @@ -354,15 +361,6 @@ glob "7.1.2" yargs "15.3.0" -"@angular/localize@~9.1.11": - version "9.1.12" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-9.1.12.tgz#60377a644c620be4ac408b77db9c547f44ac1514" - integrity sha512-31OalfES+dLrxN0VXCxxtT5dWoOSlQ40KYmzMS8X+mQ20gy9eFiZK4qf3DEq3JPqRltBMdEDnwR38uGIMAu2gQ== - dependencies: - "@babel/core" "7.8.3" - glob "7.1.2" - yargs "15.3.0" - "@angular/platform-browser-dynamic@~10.0.10": version "10.0.10" resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.10.tgz#0ae069a67c3fa7d593af554a333dd2b69d12903c" @@ -1373,7 +1371,7 @@ unique-filename "^1.1.1" which "^1.3.1" -"@fortawesome/fontawesome-free@^5.13.1", "@fortawesome/fontawesome-free@^5.14.0": +"@fortawesome/fontawesome-free@^5.14.0": version "5.14.0" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" integrity sha512-OfdMsF+ZQgdKHP9jUbmDcRrP0eX90XXrsXIdyjLbkmSBzmMXPABB8eobUJtivaupucYaByz6WNe1PI1JuYm3qA== @@ -2286,11 +2284,6 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@ng-bootstrap/ng-bootstrap@^6.1.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-6.2.0.tgz#0506d612ca6002bd8fa398d006fa2641013e11d4" - integrity sha512-wqwhnJFyEwvzWQJjXrEt+7oBTSvu2qPbdYvUFYhDVzOJLWB5M7YEhDAkMrfHQJ0pZNBMGr580FqYue+XiURY0Q== - "@ng-bootstrap/ng-bootstrap@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-7.0.0.tgz#3bfa62eb52fdb891b1ce693ea11c39127e2d1ab7" @@ -2317,13 +2310,6 @@ rxjs "6.5.5" webpack-sources "1.4.3" -"@ngx-validate/core@^0.0.10": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@ngx-validate/core/-/core-0.0.10.tgz#a9ff36e5645533f5bc2d4850a980582bdfee8033" - integrity sha512-/uq22KteDF3WcJEMNaK7C9eT6Mxw8rlPqJfq2XteO2g3utzx/n/gKDdb0GzD/2eefjmO1qq98XQKgpFzQXoTag== - dependencies: - tslib "^1.9.0" - "@ngx-validate/core@^0.0.11": version "0.0.11" resolved "https://registry.yarnpkg.com/@ngx-validate/core/-/core-0.0.11.tgz#bec771546a09f2a5f44305fcdd1186851b4df152" @@ -2594,7 +2580,7 @@ dependencies: type-detect "4.0.8" -"@swimlane/ngx-datatable@^17.0.0", "@swimlane/ngx-datatable@^17.1.0": +"@swimlane/ngx-datatable@^17.1.0": version "17.1.0" resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-17.1.0.tgz#ef2f91c3783526e7e89ac7a62a53e7bc9e1c90d5" integrity sha512-zYUS7uNO9OJ5UQZFuuTRjlPu6vdKA+FHYLfeEs7PgSuUiDCcbl2SWoUdS/3zIoWn/qQyws767ueWiAvvWUbpEw== @@ -3180,20 +3166,13 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -angular-oauth2-oidc@^10.0.3: +angular-oauth2-oidc@^10.0.0, angular-oauth2-oidc@^10.0.3: version "10.0.3" resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz#612ef75c2e07b56592d2506f9618ee6a61857ad9" integrity sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg== dependencies: tslib "^2.0.0" -angular-oauth2-oidc@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-9.2.2.tgz#2b888337953a8773e0269b5ef1709f30316448f1" - integrity sha512-aMQXeujzhubvxGw3ujw9FGwTC+L8m7CXnzVntpNJRkJsgMiuZFrXzgeiG87tvAE61J+PlOVIb/UkJjYDgDVU6Q== - dependencies: - js-sha256 "^0.9.0" - ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -8415,11 +8394,6 @@ jquery@3.5.0: resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.0.tgz#9980b97d9e4194611c36530e7dc46a58d7340fc9" integrity sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ== -js-sha256@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" - integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -13246,11 +13220,6 @@ ts-toolbelt@6.15.4: resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.4.tgz#f7fad584e197d0f495f77b5e3ee75a8f4c4dd3da" integrity sha512-Ifp2yNo4I8q5UwNARUBMnBiFpv5DEtTbCtS8RCjjLOz+PNcThbjUsPJCK3hRnz0dTygM1Fi3Mgvnt/DoKUTU2g== -ts-toolbelt@^6.9.9: - version "6.15.5" - resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" - integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== - tsickle@^0.38.1: version "0.38.1" resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.38.1.tgz#30762db759d40c435943093b6972c7f2efb384ef" diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 0d38ce5e2d..726da38362 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 06274bbeed..78755293bb 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/aspnetcore.mvc.ui.theme.basic", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index bb1a173dcc..5d47164fc1 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,24 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/aspnetcore.mvc.ui.theme.shared", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~3.1.0-rc.2", - "@abp/bootstrap": "~3.1.0-rc.2", - "@abp/bootstrap-datepicker": "~3.1.0-rc.2", - "@abp/datatables.net-bs4": "~3.1.0-rc.2", - "@abp/font-awesome": "~3.1.0-rc.2", - "@abp/jquery-form": "~3.1.0-rc.2", - "@abp/jquery-validation-unobtrusive": "~3.1.0-rc.2", - "@abp/lodash": "~3.1.0-rc.2", - "@abp/luxon": "~3.1.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.2", - "@abp/select2": "~3.1.0-rc.2", - "@abp/sweetalert": "~3.1.0-rc.2", - "@abp/timeago": "~3.1.0-rc.2", - "@abp/toastr": "~3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui": "~3.1.0-rc.3", + "@abp/bootstrap": "~3.1.0-rc.3", + "@abp/bootstrap-datepicker": "~3.1.0-rc.3", + "@abp/datatables.net-bs4": "~3.1.0-rc.3", + "@abp/font-awesome": "~3.1.0-rc.3", + "@abp/jquery-form": "~3.1.0-rc.3", + "@abp/jquery-validation-unobtrusive": "~3.1.0-rc.3", + "@abp/lodash": "~3.1.0-rc.3", + "@abp/luxon": "~3.1.0-rc.3", + "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.3", + "@abp/select2": "~3.1.0-rc.3", + "@abp/sweetalert": "~3.1.0-rc.3", + "@abp/timeago": "~3.1.0-rc.3", + "@abp/toastr": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index ba1ea2b672..7aacb6b184 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/aspnetcore.mvc.ui", "publishConfig": { "access": "public" diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 03f11931ee..6054e72f85 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.2", - "@abp/owl.carousel": "~3.1.0-rc.2", - "@abp/prismjs": "~3.1.0-rc.2", - "@abp/tui-editor": "~3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.shared": "~3.1.0-rc.3", + "@abp/owl.carousel": "~3.1.0-rc.3", + "@abp/prismjs": "~3.1.0-rc.3", + "@abp/tui-editor": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index 8e8fe67d5a..1b72d96b5d 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/bootstrap-datepicker", "publishConfig": { "access": "public" diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index ce970434c3..d4d3415e70 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/bootstrap", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "bootstrap": "^4.5.0", "bootstrap-v4-rtl": "4.4.1-2" }, diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index b483d36ac9..7529deb7f4 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 62df2bf8db..8a8dd891c0 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index 03afdc0370..83cee9677a 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index de6ed27ccd..682bbb8592 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/core", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^3.1.0-rc.2" + "@abp/utils": "^3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index ff1d91a8ef..ede20a11bb 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/datatables.net-bs4", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~3.1.0-rc.2", + "@abp/datatables.net": "~3.1.0-rc.3", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 836ed61126..d0f8693c31 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/datatables.net", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 3be2ff3c24..6ba9c58bca 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~3.1.0-rc.2", - "@abp/clipboard": "~3.1.0-rc.2", - "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.2", - "@abp/popper.js": "~3.1.0-rc.2", - "@abp/prismjs": "~3.1.0-rc.2" + "@abp/anchor-js": "~3.1.0-rc.3", + "@abp/clipboard": "~3.1.0-rc.3", + "@abp/malihu-custom-scrollbar-plugin": "~3.1.0-rc.3", + "@abp/popper.js": "~3.1.0-rc.3", + "@abp/prismjs": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index bc07d361ed..a3f47c0227 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index 0635634a31..57f8de0ebf 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/font-awesome", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index d07ba815a2..31448744ad 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2" + "@abp/core": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 0b285ba858..c388597cbe 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/jquery-form", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 3d398b767f..388d02041c 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/jquery-validation-unobtrusive", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~3.1.0-rc.2", + "@abp/jquery-validation": "~3.1.0-rc.3", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 22bf237ec6..47239f0c38 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/jquery-validation", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 76337adfa3..a7f343f88c 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/jquery", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "jquery": "~3.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index 246209ed16..00992c0a2d 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index 18c555a3f2..8594527be2 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/lodash", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 39ef414fff..26e8cc80f8 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,5 +1,5 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/luxon", "publishConfig": { "access": "public" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 1dd9459497..9e64887184 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/malihu-custom-scrollbar-plugin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 306a58f6b8..0191e7ba18 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index e1f3151561..02f179f6b3 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 43f07f85eb..6569164983 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/popper.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "popper.js": "^1.16.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 459d0d75a5..94bb705499 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.1.0-rc.2", - "@abp/core": "~3.1.0-rc.2", + "@abp/clipboard": "~3.1.0-rc.3", + "@abp/core": "~3.1.0-rc.3", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index 85ac78874b..8c0ab85b2a 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/select2", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index d240950fa2..630afb38bf 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert/package.json b/npm/packs/sweetalert/package.json index e4e8f96e63..2164a04e96 100644 --- a/npm/packs/sweetalert/package.json +++ b/npm/packs/sweetalert/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/sweetalert", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "sweetalert": "^2.1.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index 20a773e5c6..b7dc927a58 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/timeago", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index ae79e0eaaf..a6033b7f57 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/toastr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~3.1.0-rc.2", + "@abp/jquery": "~3.1.0-rc.3", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index f727468814..c537e0c9b2 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~3.1.0-rc.2", - "@abp/highlight.js": "~3.1.0-rc.2", - "@abp/jquery": "~3.1.0-rc.2", - "@abp/markdown-it": "~3.1.0-rc.2", + "@abp/codemirror": "~3.1.0-rc.3", + "@abp/highlight.js": "~3.1.0-rc.3", + "@abp/jquery": "~3.1.0-rc.3", + "@abp/markdown-it": "~3.1.0-rc.3", "tui-editor": "^1.4.10" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index cbb79c574c..9c49680aba 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~3.1.0-rc.2", + "@abp/core": "~3.1.0-rc.3", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 981b8a1680..c22be374d7 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 96a3d5d12e..a565102771 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "3.1.0-rc.2", + "version": "3.1.0-rc.3", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~3.1.0-rc.2", - "@abp/prismjs": "~3.1.0-rc.2" + "@abp/clipboard": "~3.1.0-rc.3", + "@abp/prismjs": "~3.1.0-rc.3" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 960aea4afb..c6c71dc7ad 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,11 +12,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.1.0-rc.2", - "@abp/ng.identity": "~3.1.0-rc.2", - "@abp/ng.setting-management": "~3.1.0-rc.2", - "@abp/ng.tenant-management": "~3.1.0-rc.2", - "@abp/ng.theme.basic": "~3.1.0-rc.2", + "@abp/ng.account": "~3.1.0-rc.3", + "@abp/ng.identity": "~3.1.0-rc.3", + "@abp/ng.setting-management": "~3.1.0-rc.3", + "@abp/ng.tenant-management": "~3.1.0-rc.3", + "@abp/ng.theme.basic": "~3.1.0-rc.3", "@angular/animations": "~10.0.10", "@angular/common": "~10.0.10", "@angular/compiler": "~10.0.10", @@ -30,7 +30,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.1.0-rc.2", + "@abp/ng.schematics": "~3.1.0-rc.3", "@angular-devkit/build-angular": "~0.1000.6", "@angular-devkit/build-ng-packagr": "~0.1000.6", "@angular/cli": "~10.0.6", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index 7103162cc8..f53cfbaa36 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock index 57c957a100..98e42393f6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 2aff27f377..726d61c566 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index c836cc49cb..46ec79f40e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index 7103162cc8..f53cfbaa36 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock index c836cc49cb..46ec79f40e 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index 7103162cc8..f53cfbaa36 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock index 57c957a100..98e42393f6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index fd316e5807..b4b79f49a0 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.1.0-rc.2", - "@abp/ng.identity": "~3.1.0-rc.2", - "@abp/ng.setting-management": "~3.1.0-rc.2", - "@abp/ng.tenant-management": "~3.1.0-rc.2", - "@abp/ng.theme.basic": "~3.1.0-rc.2", + "@abp/ng.account": "~3.1.0-rc.3", + "@abp/ng.identity": "~3.1.0-rc.3", + "@abp/ng.setting-management": "~3.1.0-rc.3", + "@abp/ng.tenant-management": "~3.1.0-rc.3", + "@abp/ng.theme.basic": "~3.1.0-rc.3", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", @@ -33,7 +33,7 @@ "zone.js": "~0.10.2" }, "devDependencies": { - "@abp/ng.schematics": "~3.1.0-rc.2", + "@abp/ng.schematics": "~3.1.0-rc.3", "@angular-devkit/build-angular": "~0.1000.0", "@angular-devkit/build-ng-packagr": "~0.1000.0", "@angular/cli": "~10.0.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 3de5eb4cbd..e28ea10a59 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.1.0-rc.2", - "@abp/ng.theme.shared": ">=3.1.0-rc.2" + "@abp/ng.core": ">=3.1.0-rc.3", + "@abp/ng.theme.shared": ">=3.1.0-rc.3" }, "dependencies": { "tslib": "^2.0.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 2aff27f377..726d61c566 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock index c836cc49cb..46ec79f40e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index 7103162cc8..f53cfbaa36 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock index c836cc49cb..46ec79f40e 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index 7103162cc8..f53cfbaa36 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.2" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.1.0-rc.3" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock index f1a5b49588..27339975b7 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.2.tgz#b72eee4a441619caa8222941c797c8afd3cae09b" - integrity sha512-8zczo69E6ACjFaL+3UNP7VoUXeoSVViKAyhoub0Uw6CrLUxAYxT/Yuw/apIY7AW3cVoB5ULBfjMN7xWSJML9eg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.2.tgz#db34b0414ded4bd52420d1faa3a5fab03b68783f" - integrity sha512-tnTDCkExlUT+OyPls/VfZsBlbgu02P9zqpT58F7bDo2WtaxzrSvo6xwC+9a6+c3CpKy/xezI2S/r8H9lb2vd5w== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.2" - "@abp/bootstrap" "~3.1.0-rc.2" - "@abp/bootstrap-datepicker" "~3.1.0-rc.2" - "@abp/datatables.net-bs4" "~3.1.0-rc.2" - "@abp/font-awesome" "~3.1.0-rc.2" - "@abp/jquery-form" "~3.1.0-rc.2" - "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.2" - "@abp/lodash" "~3.1.0-rc.2" - "@abp/luxon" "~3.1.0-rc.2" - "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.2" - "@abp/select2" "~3.1.0-rc.2" - "@abp/sweetalert" "~3.1.0-rc.2" - "@abp/timeago" "~3.1.0-rc.2" - "@abp/toastr" "~3.1.0-rc.2" - -"@abp/aspnetcore.mvc.ui@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.2.tgz#395e101891d8fa7d1532defd125712c7846ee22a" - integrity sha512-dUvOXwUX7I08ZO5q30I9/1qv7s3c9FvKLVrjMexZL1auP83C5hnCh6EBOSWhKKe5Wfe5Rq2sxiinFi/xXibTsw== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.1.0-rc.3.tgz#d7e3ad928a72efb7c76a585ef051fce860efb7bf" + integrity sha512-cc2Wp/6hr1j89Ap/474HlH54WhAIgCya1buuXxrxXSMdYqDKNxK61aMYC/mnYGMiyPqoz6TWWUJB2h2dZeTgzQ== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.1.0-rc.3.tgz#54a92d673f5158ee222d0d95ebfbca6c63b20a4f" + integrity sha512-czS+8+wuNxuNIogI3FI/T72dCumpbsXp9Fke9pwQEzkCZZCG11cJdOCr1pLJKT1G54x+zfgwVVFIL36sFcq50A== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.1.0-rc.3" + "@abp/bootstrap" "~3.1.0-rc.3" + "@abp/bootstrap-datepicker" "~3.1.0-rc.3" + "@abp/datatables.net-bs4" "~3.1.0-rc.3" + "@abp/font-awesome" "~3.1.0-rc.3" + "@abp/jquery-form" "~3.1.0-rc.3" + "@abp/jquery-validation-unobtrusive" "~3.1.0-rc.3" + "@abp/lodash" "~3.1.0-rc.3" + "@abp/luxon" "~3.1.0-rc.3" + "@abp/malihu-custom-scrollbar-plugin" "~3.1.0-rc.3" + "@abp/select2" "~3.1.0-rc.3" + "@abp/sweetalert" "~3.1.0-rc.3" + "@abp/timeago" "~3.1.0-rc.3" + "@abp/toastr" "~3.1.0-rc.3" + +"@abp/aspnetcore.mvc.ui@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.1.0-rc.3.tgz#e26f8ff9d7beaedf2050b9d6319e6368c990c373" + integrity sha512-qglA2lW0eQFzZlGeAev+vGuWsHNFmDeSCGAHPhd4Z07zjnphPnIOXSa+rXhb+4y6DevQP7OY/KSMQdX6ZMU3RQ== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,144 +41,144 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.2.tgz#5ecca3e7150d4a75577d9abf0f226813fe40cff5" - integrity sha512-SebgagX0TszhsmIfQhM+A+M+cThbELSRmbDb+48DgLflVHH1bw6wCGXVMVQA65vYWkiHaALbxDgYOHLSFsWpag== +"@abp/bootstrap-datepicker@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.1.0-rc.3.tgz#279d9603cd916a884bac125cb525ee44fb809762" + integrity sha512-qZolOk2Pw+IvXh6Ko7wJddzMVPbS8silGecBZMYe0DVRNovg0515Px8zR3GJ16wcVQuvG6ByBn4fdeKFmYfokQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.2.tgz#691e4f609895e8914cf6903a26ad5d51f629c596" - integrity sha512-SaT7JN5C2RqzTgA8YdoON/eaeL4gl54vp7DTGPXXVvTYS20ZSxExKgVXEuOMEJVITKu4OeXqLYZyThz888I9iQ== +"@abp/bootstrap@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.1.0-rc.3.tgz#a1368df757995f52c19dd76ef1846d19a067def6" + integrity sha512-r8XRTYJBEa33FVxF+Mg0ALYNhmTjVBw1NQIQY8Ub5ZR+HIZoaDqA0X5zfAKvGQlmfXLiZJDkvCV5EIQWsIgnrA== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.2.tgz#707cec3323020b9ee4cc7c5a7fee21b418457eff" - integrity sha512-2VSCPIWEEM4iwcgRfgFempjPV0zLaWf81cp1ZrwuilqsljUXjMQL8Pf07TEaSa8+uN3VKkCsQtyq3A+DhUlVhA== +"@abp/core@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.1.0-rc.3.tgz#7e1bd9ac9aaecfc66863e8e319975358885a3ca2" + integrity sha512-wIvm4l8ZDQ+eiNN1a+v07EjUhngrxwPWvfDf9bPQpepfnIKiAktJziihh0oBJAbqXNqmI7f6FGN76spvNop/EA== dependencies: - "@abp/utils" "^3.1.0-rc.2" + "@abp/utils" "^3.1.0-rc.3" -"@abp/datatables.net-bs4@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.2.tgz#d98f47e4e286a7299ba42da1c394594f4b4581c7" - integrity sha512-VrcgFq3qq6azpCJEpk00R4fWA6GBzoDgHJT0K9bQtg4AqG8oamJa2QWX60g2OXzWpbI74bxleBAOLXzC4OJIrw== +"@abp/datatables.net-bs4@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.1.0-rc.3.tgz#f46c4474635918c16ca7edbe4930c07317930592" + integrity sha512-FeN53p5U2hIyYyM3G3AuGSwBZFBGbx4yHb/ymW/DEGtJ6XtynHlsFPz00/PktLe0OKOjUxOUf2LQLqKJi83WQQ== dependencies: - "@abp/datatables.net" "~3.1.0-rc.2" + "@abp/datatables.net" "~3.1.0-rc.3" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.2.tgz#e73fee8f323e33094bfe49cbed520a4b9f382c18" - integrity sha512-+Bo8C7tslTasH7kMUnXQ5JESzg+ciy7jmvWPbJo32f0VFuiSPDBBr6nacBmE6IHPqG54ZAjqOkvE8eWL39dN2A== +"@abp/datatables.net@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.1.0-rc.3.tgz#c3a8f81d5ee571445b01d2db0e05ed555b1459b8" + integrity sha512-sOWuVwvSoQlXqC9CC9HGH6HzdHb5vVX8CbqzIUYBJEzY4NBRUqeclFJQrA/thjMNtefdLD2AiVwPFmAdGBeDSg== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" datatables.net "^1.10.21" -"@abp/font-awesome@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.2.tgz#4d0ef35abe67b86a6cbb8c7008a50f26eadbaa6e" - integrity sha512-r1iLq+1avQ8lsDqNAsu0TAQn5+JlYhUnjTVpnb/xcDMtbJv+eBZpqVLTbXelHV0q2Czq/gDzloqkHFNv5Cxceg== +"@abp/font-awesome@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.1.0-rc.3.tgz#38f63ad4fadc4986a73116fa29d5ef56812c483c" + integrity sha512-BnrI9XaKxEvI0d6Fa9tbw1J/VAsVUqTyAHva4WTUUa+neB9gaK62ZUjgDdF8Eo6gj7UOO8DYvsXehzpVpZKlPQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.2.tgz#f08ceb6be4a23d79f855d59b46c5fea5a6bf37ee" - integrity sha512-3UlUGXmvoT5xz4Hjz2gRX2rL+YbL4JprGaZvBrIbASJ6VSV3yHYbjma8YBqj2Wu2IQv6wpNhAYV+tALjPnFEgw== +"@abp/jquery-form@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.1.0-rc.3.tgz#7b74828f32a641c0b1ef1fd8b0389bf994a09e16" + integrity sha512-G+YRnDRZe5Mw81NAEnnr8scGjupndcu9xZ1dw+hCFGg30yypiUIfHtrMR4iR94y7M198fAgQP+0k7RvDqnALiw== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.2.tgz#1802ffd0dc8aa710bfb81f6f5e6654a44227334f" - integrity sha512-2iWFp8a4Iths5dbf3v/gcTFrOXUX6CkwS5JiO3YsA0ujbZgF2HGbnPD7vzrfuRJAIKPKCIiovLDBY3yKN6boQw== +"@abp/jquery-validation-unobtrusive@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.1.0-rc.3.tgz#aef83e8f11791ae7be449eab6655a73075f98b45" + integrity sha512-uWu6qdZasSZEFJC1IhEtj8NZq5kXX8W/zlK2tVpFhjxE/QYiJlPj8pVy2I7cuEIBghzAO2omwI+5En8TSagrGA== dependencies: - "@abp/jquery-validation" "~3.1.0-rc.2" + "@abp/jquery-validation" "~3.1.0-rc.3" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.2.tgz#adc314584261ef5bcdfa240c5e2df9f1bb4dcb2f" - integrity sha512-L2GoAUxMCAd8pXt54UqI2CEV4nWS0ww2dTNctEUcnJ2UZc7Ce+QFqBgvyRNmuSULMebfdtUYkodCGFdzzjRXfg== +"@abp/jquery-validation@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.1.0-rc.3.tgz#40dcb28ce5a3a87fc69972053e48a456c84e3225" + integrity sha512-uaL+ZS/NTf103Hq3ehayFT1qvq/Y2T5PAFY9ijBvX+7phCtPwGiIPfUvyuwYnKbdTa15odC275e7pY2CssHWIA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" jquery-validation "^1.19.2" -"@abp/jquery@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.2.tgz#05857739e5ec9e519194fe9b80b426be0b40addb" - integrity sha512-+qPHJpV/s9GGWwdH6gj8BdDhg4t4w8pI9hx41UlIpPdrtO4kzaPU85/f7vX0QYzOrsYYxmWXHu3H0pL8QyDwQA== +"@abp/jquery@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.1.0-rc.3.tgz#8c35b9e7de888516e2acc5227092ca2fed991475" + integrity sha512-DT2uBNfW3+Xc1Bz62WHdIC3JfAb2Qcc4p86LyDG5pNRAd3FpImA1VnRPsMRX9Mig7HYRjMYiuYXTeovM6YS0fg== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" jquery "~3.5.1" -"@abp/lodash@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.2.tgz#80fc560277e903b94cf90146e05cb6e6e62b0ee3" - integrity sha512-TQ8HqvW9skMFDfJv7wNX4Ahi/HjCBfD/ZDePvfyTLwdsnNPwDg6zERwYTGk48ep/6CUsK3MMQzvShl4yaYIFYQ== +"@abp/lodash@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.1.0-rc.3.tgz#a312975824fa3bebc00f5eca35cededc5ec3af4b" + integrity sha512-siv5cMWlUHEX2RtvKCGoX2cEh4h1hniluKlFgmVmYY4hdGYdAG4T2d9QQAbPODwdzrJ8jzI36hXT/P4IrzhWZw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" lodash "^4.17.15" -"@abp/luxon@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.2.tgz#6a7db2fd1cc1674e73df6c982657c791a94fc65b" - integrity sha512-vrtiuMnQDP0rC+yrQawqVu3F4pcZrv3wsx0ZqaIWWakQJ4X17aSTM0Xhxa95jnHh4WFFUDN00mYxkPxNr8JqvA== +"@abp/luxon@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.1.0-rc.3.tgz#9b9d5c9827a0c661458094134cafd80f35537a69" + integrity sha512-cKj/irXJhTJ6WiSyjzcZcsDjKFji1Q/0nV7IYhY9e2wzpg3qEB8Z8k8fDLPDAUriUKxBoI6mQ/CVC0ah7eg/LA== dependencies: luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.2.tgz#3805b260bd3442353a946de5c7508e98cc7cefdd" - integrity sha512-bp+S43ZIWQpkhx7ni2DThwDZ2A+q6ZaAUaESWz+yCHXWwYacnfHeq4p+mkS07OdVteP33NWAxJpjtDl6fPBo8A== +"@abp/malihu-custom-scrollbar-plugin@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.0-rc.3.tgz#218eb620532af8bdde6a46388a3d5349974fab44" + integrity sha512-z3IzgSYtpZ2FlWNmM2A1wbP3CHB3P5a8k/JR0JSWwtl+D/LiYC348VQIXen+pIJoEjMlY48iSi5XNyBIz4X9hw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.2.tgz#6b16301cb7c4ad4e2b39400a5f9cf336c700a343" - integrity sha512-qbj6csa9/0+xF5fzcm1WJSzUiBvSgwiYPRpH5wyG/FZYf7YxK2dAv/Lmi5RE4eAb8Ib9ueB7nPkzJYUJhJ1wgQ== +"@abp/select2@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.1.0-rc.3.tgz#493afc27f29da1c9926ee02e8f7b641e8ee4b67e" + integrity sha512-fym9GmQbl34CyTCVzfo4jGe77nSeDuRPYMzAYO8p0uKdDB8t9jNZNqhYJ9Ee5KQXJyg4lmFFPkLcRZF14E+cWw== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" select2 "^4.0.13" -"@abp/sweetalert@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.2.tgz#a152eb5632cd0eee50d5fed2c156bc4b6daf6829" - integrity sha512-6pjzFwr/HKgNYcsx76GZdcm0qZ8NfcdYqFOwj91w3bGmtPZYRRJLV01k9kDIOQHYnmCReO+ThF46wZCyt/8xvg== +"@abp/sweetalert@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.1.0-rc.3.tgz#1c1421e2baaa57cc24e0f9334a5173836819cc24" + integrity sha512-WrYRutXM2f6VRECEkWhjfqtQXlnEw88MCkYicAhyMH7ZYYWg7r9xVg9TRJJI4UwGMLSyR3EB+ZdTmnD8aSC0yQ== dependencies: - "@abp/core" "~3.1.0-rc.2" + "@abp/core" "~3.1.0-rc.3" sweetalert "^2.1.2" -"@abp/timeago@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.2.tgz#0c3fe13f15319c943186eff861f0e9a790b6651b" - integrity sha512-BJzvJGJk6uPkpR5MMIX7DF/WsYZbvss2B82RTcr2Dkto7VtfRUYqcpWBcUIHCJ7hLh4SMS000fC8tfRXo7e0EA== +"@abp/timeago@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.1.0-rc.3.tgz#0a7a369ba29633f00b19206b257c6f1f59f182a4" + integrity sha512-FDgaQCJmwWplCcdJYa9kyCcMxJFrKf+zDEFzT5hWfhMzq+sYJYX7QDQtbF5OJnMSWuPyI0/RU0bocuGaJ584VQ== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" timeago "^1.6.7" -"@abp/toastr@~3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.2.tgz#1b149684a4f7751df48cd9cbac5ce0ce7526042c" - integrity sha512-4U2spuDnl2F3AzGDvHyhGJtZT0Kv4LmdUYwdq/aKneHSTzJ9v5bUpjjU1Gth6fyi0iqH61DAyaoTsbgy0kFQqQ== +"@abp/toastr@~3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.1.0-rc.3.tgz#89af6aa864a9aac76bc9bf21b7f9bc6763ca7573" + integrity sha512-AeKH5imy8W9yMAlzRv9VdkRHApySpR2BKfrQYk3q9LubgwaxLvOFc/l38aIEKuyosN7dHTMFBQlEwLxWFwaoPA== dependencies: - "@abp/jquery" "~3.1.0-rc.2" + "@abp/jquery" "~3.1.0-rc.3" toastr "^2.1.4" -"@abp/utils@^3.1.0-rc.2": - version "3.1.0-rc.2" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.2.tgz#c3774246f01f4b032b2d229457c3bd93f7d14048" - integrity sha512-lgHy/OAEBau2Qyr0mZUjOWU8uBFBFIBvGnUKgSqKRxTqf5GyNvkKO8GPpqGSmyIsYUfW2UUsRhaLW7K85T9CZw== +"@abp/utils@^3.1.0-rc.3": + version "3.1.0-rc.3" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.1.0-rc.3.tgz#3cbc50c1f8fdf6592d66f8ea4b5a9c4249a5e46a" + integrity sha512-45KXx5zlxm5gK2EFwzM+hMjT8q8pD3PejyNfVP6HBbGE2N36LGKYtI59s6vFm5yV2qFxQyVPrk4mi3Y+neqlBw== dependencies: just-compare "^1.3.0" From 787f20a5883cee24ae6162ec6ba80212b4af8641 Mon Sep 17 00:00:00 2001 From: erolarkat Date: Fri, 28 Aug 2020 12:01:55 +0300 Subject: [PATCH 74/98] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index f1a0cf5890..4855f1cd9c 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.1.0-rc.3 + 3.1.0 $(NoWarn);CS1591 https://abp.io/assets/abp_nupkg.png https://abp.io/ From bb0489be9aeb8f2129d3e00214088014e853c956 Mon Sep 17 00:00:00 2001 From: berkansasmaz Date: Fri, 28 Aug 2020 13:33:18 +0300 Subject: [PATCH 75/98] New localization items have been added and some localization items have been changed. --- .../Community/Localization/Resources/en.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index 639e4c7676..9451e616ff 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -37,7 +37,7 @@ "CreateArticleTitleInfo": "Title of the article to be shown on the article list.", "CreateArticleUrlInfo": "Original GitHub/External URL of the article.", "CreateArticleSummaryInfo": "A short summary of the article to be shown on the article list.", - "CreateArticleCoverInfo": "For creating an effective article, add a cover photo. Only 16:9 aspect ratio pictures will be accepted!", + "CreateArticleCoverInfo": "For creating an effective article, add a cover photo. Upload 16:9 aspect ratio pictures for the best view.", "ThisExtensionIsNotAllowed": "This extension is not allowed.", "TheFileIsTooLarge": "The file is too large.", "GoToTheArticle": "Go to the Article", @@ -61,14 +61,14 @@ "Oops": "Oops!", "CreateArticleSuccessMessage": "The Article has been successfully submitted. It will be published after a review from the site admin.", "ChooseCoverImage": "Choose a cover image...", - "PictureUploadedIsNotInExpectedAspectRatio": "The picture you uploaded is not in 16:9 aspect ratio!", - "HeightAndWidthMustNotExceed": "Height and Width must not exceed 1920*1080.", "CoverImage": "Cover Image", "ShareYourExperiencesWithTheABPFramework": "Share your experiences with the ABP Framework!", "Optional": "Optional", + "UpdateUserNameInfo": "Name", + "UpdateUserSurnameInfo": "Surname", "UpdateUserWebSiteInfo": "Example: https://abp.io", - "UpdateUserTwitterInfo": "Example: https://twitter.com/abpframework", - "UpdateUserGithubInfo": "Example: https://github.com/abpframework/abp", + "UpdateUserTwitterInfo": "Example: abpframework", + "UpdateUserGithubInfo": "Example: volosoft", "UpdateUserLinkedinInfo": "Example: https://www.linkedin.com/company/volosoft", "UpdateUserCompanyInfo": "Example: Volosoft Computer & Technology", "UpdateUserJobTitleInfo": "Example: Software Engineer Intern", @@ -83,6 +83,7 @@ "Author": "Author", "MyAccount": "My account", "LatestGithubAnnouncements": "Latest Github Announcements", - "SeeAllAnnouncements": "See All Announcements" + "SeeAllAnnouncements": "See All Announcements", + "LatestBlogPost": "Latest Blog Post" } } From 738909c26b784637d96c2410c8565577a065b5ed Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:20:41 +0300 Subject: [PATCH 76/98] feat: add a shared GenerateProxySchema model --- .../src/models/generate-proxy-schema.ts | 16 ++++++++++++++++ .../packages/schematics/src/models/index.ts | 1 + 2 files changed, 17 insertions(+) create mode 100644 npm/ng-packs/packages/schematics/src/models/generate-proxy-schema.ts diff --git a/npm/ng-packs/packages/schematics/src/models/generate-proxy-schema.ts b/npm/ng-packs/packages/schematics/src/models/generate-proxy-schema.ts new file mode 100644 index 0000000000..59c4e6adab --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/models/generate-proxy-schema.ts @@ -0,0 +1,16 @@ +export interface GenerateProxySchema { + /** + * Backend module name + */ + module?: string; + + /** + * Source Angular project for API definition URL & root namespace resolution + */ + source?: string; + + /** + * Target Angular project to place the generated code + */ + target?: string; +} diff --git a/npm/ng-packs/packages/schematics/src/models/index.ts b/npm/ng-packs/packages/schematics/src/models/index.ts index fb5e9f5639..176c9c6617 100644 --- a/npm/ng-packs/packages/schematics/src/models/index.ts +++ b/npm/ng-packs/packages/schematics/src/models/index.ts @@ -1,4 +1,5 @@ export * from './api-definition'; +export * from './generate-proxy-schema'; export * from './import'; export * from './method'; export * from './model'; From 6789471bee4d0f3aee26682bedc146004a193487 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:21:30 +0300 Subject: [PATCH 77/98] feat: update proxy constants in schematics --- npm/ng-packs/packages/schematics/src/constants/proxy.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/constants/proxy.ts b/npm/ng-packs/packages/schematics/src/constants/proxy.ts index a864da6f24..ee105029c4 100644 --- a/npm/ng-packs/packages/schematics/src/constants/proxy.ts +++ b/npm/ng-packs/packages/schematics/src/constants/proxy.ts @@ -1 +1,2 @@ -export const PROXY_CONFIG_PATH = '/proxy/proxy-config.json'; +export const PROXY_PATH = '/proxy'; +export const PROXY_CONFIG_PATH = `${PROXY_PATH}/generate-proxy.json`; From 70f80895a5101e6c8b5f97610e601d3698f21bad Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:21:46 +0300 Subject: [PATCH 78/98] feat: update exceptions in schematics --- npm/ng-packs/packages/schematics/src/enums/exception.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/enums/exception.ts b/npm/ng-packs/packages/schematics/src/enums/exception.ts index 40ef6487f5..98c92493d6 100644 --- a/npm/ng-packs/packages/schematics/src/enums/exception.ts +++ b/npm/ng-packs/packages/schematics/src/enums/exception.ts @@ -1,12 +1,13 @@ export const enum Exception { + DirRemoveFailed = '[Directory Remove Failed] Cannot remove "{0}".', FileNotFound = '[File Not Found] There is no file at "{0}" path.', FileWriteFailed = '[File Write Failed] Cannot write file at "{0}".', InvalidModule = '[Invalid Module] Backend module "{0}" does not exist in API definition.', InvalidApiDefinition = '[Invalid API Definition] The provided API definition is invalid.', InvalidWorkspace = '[Invalid Workspace] The angular.json should be a valid JSON file.', NoApi = '[API Not Available] Please double-check the URL in the source project environment and make sure your application is up and running.', - NoApiDefinition = '[API Definition Not Found] There is no API definition file at "{0}".', NoProject = '[Project Not Found] Either define a default project in your workspace or specify the project name in schematics options.', + NoProxyConfig = '[Proxy Config Not Found] There is no JSON file at "{0}".', NoTypeDefinition = '[Type Definition Not Found] There is no type definition for "{0}".', NoWorkspace = '[Workspace Not Found] Make sure you are running schematics at the root directory of your workspace and it has an angular.json file.', NoEnvironment = '[Environment Not Found] An environment file cannot be located in "{0}" project.', From f0146805fc43b26e7a2ed8d6c83781ab274753a2 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:24:19 +0300 Subject: [PATCH 79/98] feat: add utility fn for generating multiple APIs --- npm/ng-packs/packages/schematics/src/utils/api.ts | 11 +++++++++++ npm/ng-packs/packages/schematics/src/utils/index.ts | 1 + 2 files changed, 12 insertions(+) create mode 100644 npm/ng-packs/packages/schematics/src/utils/api.ts diff --git a/npm/ng-packs/packages/schematics/src/utils/api.ts b/npm/ng-packs/packages/schematics/src/utils/api.ts new file mode 100644 index 0000000000..f772666b4b --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/utils/api.ts @@ -0,0 +1,11 @@ +import { chain, schematic } from '@angular-devkit/schematics'; +import { GenerateProxySchema } from '../models'; + +export function createApisGenerator(schema: GenerateProxySchema, generated: string[]) { + return chain( + generated.map(m => { + const apiSchema = { ...schema, source: schema.target, module: m }; + return schematic('api', apiSchema); + }), + ); +} diff --git a/npm/ng-packs/packages/schematics/src/utils/index.ts b/npm/ng-packs/packages/schematics/src/utils/index.ts index badfaa79ee..304c2294b0 100644 --- a/npm/ng-packs/packages/schematics/src/utils/index.ts +++ b/npm/ng-packs/packages/schematics/src/utils/index.ts @@ -1,4 +1,5 @@ export * from './angular'; +export * from './api'; export * from './ast'; export * from './common'; export * from './enum'; From 722145cf072eb4041711c1a0799acc186c94b8cf Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:25:00 +0300 Subject: [PATCH 80/98] feat: add chainAndMerge utility rule creator --- npm/ng-packs/packages/schematics/src/utils/rule.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/npm/ng-packs/packages/schematics/src/utils/rule.ts b/npm/ng-packs/packages/schematics/src/utils/rule.ts index 6748f30fab..39b14cec78 100644 --- a/npm/ng-packs/packages/schematics/src/utils/rule.ts +++ b/npm/ng-packs/packages/schematics/src/utils/rule.ts @@ -1,6 +1,8 @@ import { apply, + chain, forEach, + MergeStrategy, mergeWith, Rule, SchematicContext, @@ -16,6 +18,14 @@ export function applyWithOverwrite(source: Source, rules: Rule[]): Rule { }; } +export function chainAndMerge(rules: Rule[]) { + return (host: Tree) => async (tree: Tree, context: SchematicContext) => + host.merge( + (await (chain(rules)(tree, context) as any).toPromise()) as Tree, + MergeStrategy.AllowDeleteConflict, + ); +} + export function overwriteFileIfExists(tree: Tree): Rule { return forEach(fileEntry => { if (!tree.exists(fileEntry.path)) return fileEntry; From 7dd5aa74ef8027feb3fc122dd543be88bc0da519 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:25:53 +0300 Subject: [PATCH 81/98] feat: create 3 separate commands for proxy generation --- .../packages/schematics/src/collection.json | 18 +++++-- .../schematics/src/commands/api/index.ts | 9 ++-- .../schematics/src/commands/api/schema.ts | 16 ------ .../src/commands/proxy-add/index.ts | 48 +++++++++++++++++ .../commands/{proxy => proxy-add}/schema.json | 12 ++--- .../src/commands/proxy-refresh/index.ts | 37 ++++++++++++++ .../src/commands/proxy-refresh/schema.json | 39 ++++++++++++++ .../src/commands/proxy-remove/index.ts | 43 ++++++++++++++++ .../src/commands/proxy-remove/schema.json | 39 ++++++++++++++ .../schematics/src/commands/proxy/index.ts | 39 -------------- .../schematics/src/commands/proxy/schema.ts | 16 ------ .../packages/schematics/src/utils/source.ts | 51 ++++++++++++++++--- 12 files changed, 273 insertions(+), 94 deletions(-) delete mode 100644 npm/ng-packs/packages/schematics/src/commands/api/schema.ts create mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts rename npm/ng-packs/packages/schematics/src/commands/{proxy => proxy-add}/schema.json (50%) create mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts create mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json create mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts create mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json delete mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy/index.ts delete mode 100644 npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts diff --git a/npm/ng-packs/packages/schematics/src/collection.json b/npm/ng-packs/packages/schematics/src/collection.json index 9b21d174ca..5c2df8ea36 100644 --- a/npm/ng-packs/packages/schematics/src/collection.json +++ b/npm/ng-packs/packages/schematics/src/collection.json @@ -1,9 +1,19 @@ { "schematics": { - "proxy": { - "description": "ABP Proxy Generator Schematics", - "factory": "./commands/proxy", - "schema": "./commands/proxy/schema.json" + "proxy-add": { + "description": "ABP Proxy Generator Add Schematics", + "factory": "./commands/proxy-add", + "schema": "./commands/proxy-add/schema.json" + }, + "proxy-refresh": { + "description": "ABP Proxy Generator Refresh Schematics", + "factory": "./commands/proxy-refresh", + "schema": "./commands/proxy-refresh/schema.json" + }, + "proxy-remove": { + "description": "ABP Proxy Generator Remove Schematics", + "factory": "./commands/proxy-remove", + "schema": "./commands/proxy-remove/schema.json" }, "api": { "description": "ABP API Generator Schematics", diff --git a/npm/ng-packs/packages/schematics/src/commands/api/index.ts b/npm/ng-packs/packages/schematics/src/commands/api/index.ts index 178c72f376..646f2170ea 100644 --- a/npm/ng-packs/packages/schematics/src/commands/api/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/api/index.ts @@ -9,9 +9,8 @@ import { Tree, url, } from '@angular-devkit/schematics'; -import { PROXY_CONFIG_PATH } from '../../constants'; import { Exception } from '../../enums'; -import { ServiceGeneratorParams } from '../../models'; +import { GenerateProxySchema, ServiceGeneratorParams } from '../../models'; import { applyWithOverwrite, buildDefaultPath, @@ -31,7 +30,6 @@ import { serializeParameters, } from '../../utils'; import * as cases from '../../utils/text'; -import { Schema as GenerateProxySchema } from './schema'; export default function(schema: GenerateProxySchema) { const params = removeDefaultPlaceholders(schema); @@ -43,9 +41,8 @@ export default function(schema: GenerateProxySchema) { const target = await resolveProject(tree, params.target!); const solution = getRootNamespace(tree, source, moduleName); const targetPath = buildDefaultPath(target.definition); - const definitionPath = targetPath + PROXY_CONFIG_PATH; - const readProxyConfig = createProxyConfigReader(definitionPath); - const createProxyConfigWriter = createProxyConfigWriterCreator(definitionPath); + const readProxyConfig = createProxyConfigReader(targetPath); + const createProxyConfigWriter = createProxyConfigWriterCreator(targetPath); const data = readProxyConfig(tree); const types = data.types; const modules = data.modules; diff --git a/npm/ng-packs/packages/schematics/src/commands/api/schema.ts b/npm/ng-packs/packages/schematics/src/commands/api/schema.ts deleted file mode 100644 index 0c26ce461f..0000000000 --- a/npm/ng-packs/packages/schematics/src/commands/api/schema.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface Schema { - /** - * Backend module to generate code for - */ - module?: string; - - /** - * Angular project to resolve root namespace & API definition URL from - */ - source?: string; - - /** - * Angular project to generate code in - */ - target?: string; -} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts new file mode 100644 index 0000000000..3ac5053851 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts @@ -0,0 +1,48 @@ +import { strings } from '@angular-devkit/core'; +import { chain, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { GenerateProxySchema } from '../../models'; +import { + buildDefaultPath, + chainAndMerge, + createApiDefinitionGetter, + createApisGenerator, + createProxyClearer, + createProxyConfigReader, + createProxyConfigSaver, + removeDefaultPlaceholders, + resolveProject, +} from '../../utils'; + +export default function(schema: GenerateProxySchema) { + const params = removeDefaultPlaceholders(schema); + const moduleName = strings.camelize(params.module || 'app'); + + return chain([ + async (host: Tree, _context: SchematicContext) => { + const target = await resolveProject(host, params.target!); + const targetPath = buildDefaultPath(target.definition); + const readProxyConfig = createProxyConfigReader(targetPath); + let generated: string[] = []; + + try { + generated = readProxyConfig(host).generated; + const index = generated.findIndex(m => m === moduleName); + if (index < 0) generated.push(moduleName); + } catch (_) { + generated.push(moduleName); + } + + const getApiDefinition = createApiDefinitionGetter(params); + const data = { generated, ...(await getApiDefinition(host)) }; + data.generated = []; + + const clearProxy = createProxyClearer(targetPath); + + const saveProxyConfig = createProxyConfigSaver(data, targetPath); + + const generateApis = createApisGenerator(schema, generated); + + return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); + }, + ]); +} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json similarity index 50% rename from npm/ng-packs/packages/schematics/src/commands/proxy/schema.json rename to npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json index f0b76bbdf6..f9e762c597 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.json +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-add/schema.json @@ -6,33 +6,33 @@ "properties": { "module": { "alias": "m", - "description": "Backend module to generate code for", + "description": "Backend module name", "type": "string", "$default": { "$source": "argv", "index": 0 }, - "x-prompt": "Please enter name of the backend module you wish to generate proxies for. (default: \"app\")" + "x-prompt": "Please enter backend module name. (default: \"app\")" }, "source": { "alias": "s", - "description": "Angular project to resolve root namespace & API definition URL from", + "description": "Source Angular project for API definition URL & root namespace resolution", "type": "string", "$default": { "$source": "argv", "index": 1 }, - "x-prompt": "Plese enter Angular project name to resolve root namespace & API definition URL from. (default: workspace \"defaultProject\")" + "x-prompt": "Plese enter source Angular project for API definition URL & root namespace resolution. (default: workspace \"defaultProject\")" }, "target": { "alias": "t", - "description": "Angular project to generate code in", + "description": "Target Angular project to place the generated code", "type": "string", "$default": { "$source": "argv", "index": 2 }, - "x-prompt": "Plese enter Angular project name to place generated code in. (default: workspace \"defaultProject\")" + "x-prompt": "Plese enter target Angular project to place the generated code. (default: workspace \"defaultProject\")" } }, "required": [] diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts new file mode 100644 index 0000000000..2c4e20d7d2 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/index.ts @@ -0,0 +1,37 @@ +import { SchematicContext, Tree } from '@angular-devkit/schematics'; +import { GenerateProxySchema } from '../../models'; +import { + buildDefaultPath, + chainAndMerge, + createApiDefinitionGetter, + createApisGenerator, + createProxyClearer, + createProxyConfigReader, + createProxyConfigSaver, + removeDefaultPlaceholders, + resolveProject, +} from '../../utils'; + +export default function(schema: GenerateProxySchema) { + const params = removeDefaultPlaceholders(schema); + + return async (host: Tree, _context: SchematicContext) => { + const target = await resolveProject(host, params.target!); + const targetPath = buildDefaultPath(target.definition); + + const readProxyConfig = createProxyConfigReader(targetPath); + const { generated } = readProxyConfig(host); + + const getApiDefinition = createApiDefinitionGetter(params); + const data = { generated, ...(await getApiDefinition(host)) }; + data.generated = []; + + const clearProxy = createProxyClearer(targetPath); + + const saveProxyConfig = createProxyConfigSaver(data, targetPath); + + const generateApis = createApisGenerator(schema, generated); + + return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); + }; +} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json new file mode 100644 index 0000000000..f9e762c597 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-refresh/schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "http://json-schema.org/schema", + "id": "SchematicsAbpGenerateProxy", + "title": "ABP Generate Proxy Schema", + "type": "object", + "properties": { + "module": { + "alias": "m", + "description": "Backend module name", + "type": "string", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "Please enter backend module name. (default: \"app\")" + }, + "source": { + "alias": "s", + "description": "Source Angular project for API definition URL & root namespace resolution", + "type": "string", + "$default": { + "$source": "argv", + "index": 1 + }, + "x-prompt": "Plese enter source Angular project for API definition URL & root namespace resolution. (default: workspace \"defaultProject\")" + }, + "target": { + "alias": "t", + "description": "Target Angular project to place the generated code", + "type": "string", + "$default": { + "$source": "argv", + "index": 2 + }, + "x-prompt": "Plese enter target Angular project to place the generated code. (default: workspace \"defaultProject\")" + } + }, + "required": [] +} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts new file mode 100644 index 0000000000..83cc43c0b8 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/index.ts @@ -0,0 +1,43 @@ +import { strings } from '@angular-devkit/core'; +import { SchematicContext, Tree } from '@angular-devkit/schematics'; +import { GenerateProxySchema } from '../../models'; +import { + buildDefaultPath, + chainAndMerge, + createApiDefinitionGetter, + createApisGenerator, + createProxyClearer, + createProxyConfigReader, + createProxyConfigSaver, + removeDefaultPlaceholders, + resolveProject, +} from '../../utils'; + +export default function(schema: GenerateProxySchema) { + const params = removeDefaultPlaceholders(schema); + const moduleName = strings.camelize(params.module || 'app'); + + return async (host: Tree, _context: SchematicContext) => { + const target = await resolveProject(host, params.target!); + const targetPath = buildDefaultPath(target.definition); + + const readProxyConfig = createProxyConfigReader(targetPath); + const { generated } = readProxyConfig(host); + + const index = generated.findIndex(m => m === moduleName); + if (index < 0) return host; + generated.splice(index, 1); + + const getApiDefinition = createApiDefinitionGetter(params); + const data = { generated, ...(await getApiDefinition(host)) }; + data.generated = []; + + const clearProxy = createProxyClearer(targetPath); + + const saveProxyConfig = createProxyConfigSaver(data, targetPath); + + const generateApis = createApisGenerator(schema, generated); + + return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); + }; +} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json new file mode 100644 index 0000000000..f9e762c597 --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-remove/schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "http://json-schema.org/schema", + "id": "SchematicsAbpGenerateProxy", + "title": "ABP Generate Proxy Schema", + "type": "object", + "properties": { + "module": { + "alias": "m", + "description": "Backend module name", + "type": "string", + "$default": { + "$source": "argv", + "index": 0 + }, + "x-prompt": "Please enter backend module name. (default: \"app\")" + }, + "source": { + "alias": "s", + "description": "Source Angular project for API definition URL & root namespace resolution", + "type": "string", + "$default": { + "$source": "argv", + "index": 1 + }, + "x-prompt": "Plese enter source Angular project for API definition URL & root namespace resolution. (default: workspace \"defaultProject\")" + }, + "target": { + "alias": "t", + "description": "Target Angular project to place the generated code", + "type": "string", + "$default": { + "$source": "argv", + "index": 2 + }, + "x-prompt": "Plese enter target Angular project to place the generated code. (default: workspace \"defaultProject\")" + } + }, + "required": [] +} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts deleted file mode 100644 index fc405b5a58..0000000000 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { strings } from '@angular-devkit/core'; -import { - branchAndMerge, - chain, - schematic, - SchematicContext, - Tree, -} from '@angular-devkit/schematics'; -import { API_DEFINITION_ENDPOINT, PROXY_CONFIG_PATH } from '../../constants'; -import { ApiDefinition } from '../../models'; -import { - buildDefaultPath, - createProxyConfigSaver, - getApiDefinition, - getSourceUrl, - removeDefaultPlaceholders, - resolveProject, -} from '../../utils'; -import { Schema as GenerateProxySchema } from './schema'; - -export default function(schema: GenerateProxySchema) { - const params = removeDefaultPlaceholders(schema); - const moduleName = strings.camelize(params.module || 'app'); - - return chain([ - async (tree: Tree, _context: SchematicContext) => { - const source = await resolveProject(tree, params.source!); - const target = await resolveProject(tree, params.target!); - const sourceUrl = getSourceUrl(tree, source, moduleName); - const targetPath = buildDefaultPath(target.definition); - const data: ApiDefinition = await getApiDefinition(sourceUrl + API_DEFINITION_ENDPOINT); - - const saveProxyConfig = createProxyConfigSaver(data, targetPath + PROXY_CONFIG_PATH); - const createApi = schematic('api', schema); - - return branchAndMerge(chain([saveProxyConfig, createApi])); - }, - ]); -} diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts b/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts deleted file mode 100644 index 0c26ce461f..0000000000 --- a/npm/ng-packs/packages/schematics/src/commands/proxy/schema.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface Schema { - /** - * Backend module to generate code for - */ - module?: string; - - /** - * Angular project to resolve root namespace & API definition URL from - */ - source?: string; - - /** - * Angular project to generate code in - */ - target?: string; -} diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index 3652836ed7..89d1fd17d8 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -1,13 +1,26 @@ +import { strings } from '@angular-devkit/core'; import { SchematicsException, Tree } from '@angular-devkit/schematics'; import got from 'got'; +import { API_DEFINITION_ENDPOINT, PROXY_CONFIG_PATH, PROXY_PATH } from '../constants'; import { Exception } from '../enums'; -import { ApiDefinition, Project, ProxyConfig, WriteOp } from '../models'; +import { ApiDefinition, GenerateProxySchema, Project, ProxyConfig, WriteOp } from '../models'; import { getAssignedPropertyFromObjectliteral } from './ast'; import { interpolate } from './common'; -import { readEnvironment } from './workspace'; +import { readEnvironment, resolveProject } from './workspace'; -export async function getApiDefinition(url: string) { - let body: any; +export function createApiDefinitionGetter(params: GenerateProxySchema) { + const moduleName = strings.camelize(params.module || 'app'); + + return async (host: Tree) => { + const source = await resolveProject(host, params.source!); + const sourceUrl = getSourceUrl(host, source, moduleName); + return await getApiDefinition(sourceUrl); + }; +} + +async function getApiDefinition(sourceUrl: string) { + const url = sourceUrl + API_DEFINITION_ENDPOINT; + let body: ApiDefinition; try { ({ body } = await got(url, { @@ -17,9 +30,10 @@ export async function getApiDefinition(url: string) { })); } catch ({ response }) { // handle redirects - if (response?.body && response.statusCode < 400) return response.body; + if (response.statusCode >= 400 || !response?.body) + throw new SchematicsException(Exception.NoApi); - throw new SchematicsException(Exception.NoApi); + body = response.body; } return body; @@ -72,13 +86,33 @@ export function getSourceUrl(tree: Tree, project: Project, moduleName: string) { } export function createProxyConfigReader(targetPath: string) { + targetPath += PROXY_CONFIG_PATH; + return (tree: Tree) => { try { const buffer = tree.read(targetPath); return JSON.parse(buffer!.toString()) as ProxyConfig; } catch (_) {} - throw new SchematicsException(interpolate(Exception.NoApiDefinition, targetPath)); + throw new SchematicsException(interpolate(Exception.NoProxyConfig, targetPath)); + }; +} + +export function createProxyClearer(targetPath: string) { + targetPath += PROXY_PATH; + + return (tree: Tree) => { + try { + tree.getDir(targetPath).subdirs.forEach(dirName => { + if (!['enums', 'models', 'services'].includes(dirName)) return; + + tree.delete(`${targetPath}/${dirName}`); + }); + + return tree; + } catch (_) { + throw new SchematicsException(interpolate(Exception.DirRemoveFailed, targetPath)); + } }; } @@ -86,6 +120,7 @@ export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: const createProxyConfigJson = createProxyConfigJsonCreator(apiDefinition); const readPreviousConfig = createProxyConfigReader(targetPath); const createProxyConfigWriter = createProxyConfigWriterCreator(targetPath); + targetPath += PROXY_CONFIG_PATH; return (tree: Tree) => { const generated: string[] = []; @@ -108,6 +143,8 @@ export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: } export function createProxyConfigWriterCreator(targetPath: string) { + targetPath += PROXY_CONFIG_PATH; + return (op: WriteOp, data: string) => (tree: Tree) => { try { tree[op](targetPath, data); From c91206de42f51953a8b823677fab9d0771d5cd3f Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 17:26:19 +0300 Subject: [PATCH 82/98] build: update files to copy after schematics build --- npm/ng-packs/scripts/build-schematics.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/scripts/build-schematics.ts b/npm/ng-packs/scripts/build-schematics.ts index 5e95248415..3a14d2f03c 100644 --- a/npm/ng-packs/scripts/build-schematics.ts +++ b/npm/ng-packs/scripts/build-schematics.ts @@ -20,7 +20,9 @@ class FileCopy { const PACKAGE_TO_BUILD = 'schematics'; const FILES_TO_COPY_AFTER_BUILD: (FileCopy | string)[] = [ - { src: 'src/commands/proxy/schema.json', dest: 'commands/proxy/schema.json' }, + { src: 'src/commands/proxy-add/schema.json', dest: 'commands/proxy-add/schema.json' }, + { src: 'src/commands/proxy-refresh/schema.json', dest: 'commands/proxy-refresh/schema.json' }, + { src: 'src/commands/proxy-remove/schema.json', dest: 'commands/proxy-remove/schema.json' }, { src: 'src/commands/api/files-enum', dest: 'commands/api/files-enum' }, { src: 'src/commands/api/files-model', dest: 'commands/api/files-model' }, { src: 'src/commands/api/files-service', dest: 'commands/api/files-service' }, From 47b1aa13fb0595cabeac63e00c50eb172d8deaff Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 28 Aug 2020 18:05:46 +0300 Subject: [PATCH 83/98] feat: add a warning about generated proxies in markdown --- .../src/commands/proxy-add/index.ts | 5 +++- .../schematics/src/constants/proxy.ts | 16 ++++++++++++ .../packages/schematics/src/utils/source.ts | 25 ++++++++++++++++++- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts index 3ac5053851..1400cfca1c 100644 --- a/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts +++ b/npm/ng-packs/packages/schematics/src/commands/proxy-add/index.ts @@ -9,6 +9,7 @@ import { createProxyClearer, createProxyConfigReader, createProxyConfigSaver, + createProxyWarningSaver, removeDefaultPlaceholders, resolveProject, } from '../../utils'; @@ -40,9 +41,11 @@ export default function(schema: GenerateProxySchema) { const saveProxyConfig = createProxyConfigSaver(data, targetPath); + const saveProxyWarning = createProxyWarningSaver(targetPath); + const generateApis = createApisGenerator(schema, generated); - return chainAndMerge([clearProxy, saveProxyConfig, generateApis])(host); + return chainAndMerge([clearProxy, saveProxyConfig, saveProxyWarning, generateApis])(host); }, ]); } diff --git a/npm/ng-packs/packages/schematics/src/constants/proxy.ts b/npm/ng-packs/packages/schematics/src/constants/proxy.ts index ee105029c4..fbf7f127bd 100644 --- a/npm/ng-packs/packages/schematics/src/constants/proxy.ts +++ b/npm/ng-packs/packages/schematics/src/constants/proxy.ts @@ -1,2 +1,18 @@ export const PROXY_PATH = '/proxy'; export const PROXY_CONFIG_PATH = `${PROXY_PATH}/generate-proxy.json`; +export const PROXY_WARNING_PATH = `${PROXY_PATH}/README.md`; + +export const PROXY_WARNING = `# Proxy Generation Output + +This directory includes the output of the latest proxy generation. +The \`services\`, \`models\`, and \`enums\` folders will be overwritten when proxy generation is run again. +Therefore, please do not place your own content in those folders. + +In addition, \`generate-proxy.json\` works like a lock file. +It includes information used by the proxy generator, so please do not delete or modify it. + +Finally, the name of this folder should not be changed for two reasons: +- Proxy generator will keep creating this folder and you will have multiple copies of the same content. +- ABP Suite generates imports from this folder and uses the path \`/proxy\` when doing so. + +`; diff --git a/npm/ng-packs/packages/schematics/src/utils/source.ts b/npm/ng-packs/packages/schematics/src/utils/source.ts index 89d1fd17d8..b495e75c20 100644 --- a/npm/ng-packs/packages/schematics/src/utils/source.ts +++ b/npm/ng-packs/packages/schematics/src/utils/source.ts @@ -1,7 +1,13 @@ import { strings } from '@angular-devkit/core'; import { SchematicsException, Tree } from '@angular-devkit/schematics'; import got from 'got'; -import { API_DEFINITION_ENDPOINT, PROXY_CONFIG_PATH, PROXY_PATH } from '../constants'; +import { + API_DEFINITION_ENDPOINT, + PROXY_CONFIG_PATH, + PROXY_PATH, + PROXY_WARNING, + PROXY_WARNING_PATH, +} from '../constants'; import { Exception } from '../enums'; import { ApiDefinition, GenerateProxySchema, Project, ProxyConfig, WriteOp } from '../models'; import { getAssignedPropertyFromObjectliteral } from './ast'; @@ -116,6 +122,19 @@ export function createProxyClearer(targetPath: string) { }; } +export function createProxyWarningSaver(targetPath: string) { + targetPath += PROXY_WARNING_PATH; + const createFileWriter = createFileWriterCreator(targetPath); + + return (tree: Tree) => { + const op = tree.exists(targetPath) ? 'overwrite' : 'create'; + const writeWarningMD = createFileWriter(op, PROXY_WARNING); + writeWarningMD(tree); + + return tree; + }; +} + export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: string) { const createProxyConfigJson = createProxyConfigJsonCreator(apiDefinition); const readPreviousConfig = createProxyConfigReader(targetPath); @@ -145,6 +164,10 @@ export function createProxyConfigSaver(apiDefinition: ApiDefinition, targetPath: export function createProxyConfigWriterCreator(targetPath: string) { targetPath += PROXY_CONFIG_PATH; + return createFileWriterCreator(targetPath); +} + +export function createFileWriterCreator(targetPath: string) { return (op: WriteOp, data: string) => (tree: Tree) => { try { tree[op](targetPath, data); From d3b28845b8181272d889f27640cc0946dbd3a6e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arma=C4=9Fan=20=C3=9Cnl=C3=BC?= <36102404+armgnunlu@users.noreply.github.com> Date: Fri, 28 Aug 2020 18:34:30 +0300 Subject: [PATCH 84/98] Resolved #4874 --- .../Pages/Index.cshtml | 71 ++++---- .../CmsKitCommonWebModule.cs | 21 ++- .../CmsKit/Reactions/StandardReactions.cs | 6 +- .../Volo/CmsKit/CmsKitDomainModule.cs | 8 +- .../Components/Commenting/Default.cshtml | 162 +++++++++--------- .../ReactionSelection/Default.cshtml | 44 ++--- .../Components/ReactionSelection/default.css | 17 +- .../Components/ReactionSelection/default.js | 2 +- 8 files changed, 171 insertions(+), 160 deletions(-) diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml index 253016f03b..95faf6c6ee 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Pages/Index.cshtml @@ -8,52 +8,45 @@ @using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.ReactionSelection @model IndexModel @inject IStringLocalizer Localizer -

CMS Kit DEMO

+

CMS Kit DEMO

- - - -

- Any fool can write code that a computer can understand. Good programmers write code that humans can understand. + + + +

+ "Any fool can write code that a computer can understand. Good programmers write code that humans can understand."

-
- Martin Fowler -
+

- Martin Fowler

- - @if (GlobalFeatureManager.Instance.IsEnabled()) - { - @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new {entityType = "quote", entityId = "1"}) -
- } - @if (GlobalFeatureManager.Instance.IsEnabled()) - { - @await Component.InvokeAsync(typeof(CommentingViewComponent), new {entityType = "quote", entityId = "1"}) - } -
- - - -

- Writing code is very simple, but writing simple code is the hardest thing there is! +@if (GlobalFeatureManager.Instance.IsEnabled()) +{ + @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new { entityType = "quote", entityId = "1" }) +} +@if (GlobalFeatureManager.Instance.IsEnabled()) +{ + @await Component.InvokeAsync(typeof(CommentingViewComponent), new { entityType = "quote", entityId = "1" }) +} +


+ + + +

+ "Writing code is very simple, but writing simple code is the hardest thing there is!"

-
- Halil ibrahim Kalkan (inspired from Johan Cruyff) -
+

- Halil ibrahim Kalkan Inspired from Johan Cruyff

- - @if (GlobalFeatureManager.Instance.IsEnabled()) - { - @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new { entityType = "quote", entityId = "2" }) -
- } - @if (GlobalFeatureManager.Instance.IsEnabled()) - { - @await Component.InvokeAsync(typeof(CommentingViewComponent), new { entityType = "quote", entityId = "2" }) - } -
+ +@if (GlobalFeatureManager.Instance.IsEnabled()) +{ + @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new { entityType = "quote", entityId = "2" }) +} +@if (GlobalFeatureManager.Instance.IsEnabled()) +{ + @await Component.InvokeAsync(typeof(CommentingViewComponent), new { entityType = "quote", entityId = "2" }) +} +
\ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs index 54743b948f..53b4359ca7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs @@ -18,14 +18,18 @@ namespace Volo.CmsKit.Web { Configure(options => { - options.ReactionIcons[StandardReactions.Smile] = new LocalizableIconDictionary("/cms-kit/icons/smile.png"); - options.ReactionIcons[StandardReactions.ThumbsUp] = new LocalizableIconDictionary("/cms-kit/icons/thumbsup.png"); - options.ReactionIcons[StandardReactions.Confused] = new LocalizableIconDictionary("/cms-kit/icons/confused.png"); - options.ReactionIcons[StandardReactions.Eyes] = new LocalizableIconDictionary("/cms-kit/icons/eyes.png"); - options.ReactionIcons[StandardReactions.Heart] = new LocalizableIconDictionary("/cms-kit/icons/heart.png"); - options.ReactionIcons[StandardReactions.Hooray] = new LocalizableIconDictionary("/cms-kit/icons/hooray.png"); - options.ReactionIcons[StandardReactions.Rocket] = new LocalizableIconDictionary("/cms-kit/icons/rocket.png"); - options.ReactionIcons[StandardReactions.ThumbsDown] = new LocalizableIconDictionary("/cms-kit/icons/thumbsdown.png"); + options.ReactionIcons[StandardReactions.Smile] = new LocalizableIconDictionary("fas fa-smile text-warning"); + options.ReactionIcons[StandardReactions.ThumbsUp] = new LocalizableIconDictionary("fa fa-thumbs-up text-primary"); + options.ReactionIcons[StandardReactions.Confused] = new LocalizableIconDictionary("fas fa-surprise text-warning"); + options.ReactionIcons[StandardReactions.Eyes] = new LocalizableIconDictionary("fas fa-meh-rolling-eyes text-warning"); + options.ReactionIcons[StandardReactions.Heart] = new LocalizableIconDictionary("fa fa-heart text-danger"); + options.ReactionIcons[StandardReactions.HeartBroken] = new LocalizableIconDictionary("fas fa-heart-broken text-danger"); + options.ReactionIcons[StandardReactions.Wink] = new LocalizableIconDictionary("fas fa-grin-wink text-warning"); + options.ReactionIcons[StandardReactions.Pray] = new LocalizableIconDictionary("fas fa-praying-hands text-info"); + options.ReactionIcons[StandardReactions.Rocket] = new LocalizableIconDictionary("fa fa-rocket text-success"); + options.ReactionIcons[StandardReactions.ThumbsDown] = new LocalizableIconDictionary("fa fa-thumbs-down text-secondary"); + options.ReactionIcons[StandardReactions.Victory] = new LocalizableIconDictionary("fas fa-hand-peace text-warning"); + options.ReactionIcons[StandardReactions.Rock] = new LocalizableIconDictionary("fas fa-hand-rock text-warning"); }); Configure(options => @@ -35,3 +39,4 @@ namespace Volo.CmsKit.Web } } } + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Reactions/StandardReactions.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Reactions/StandardReactions.cs index 69a2d4c73a..532971502d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Reactions/StandardReactions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Reactions/StandardReactions.cs @@ -8,7 +8,11 @@ public const string Confused = "_CF"; public const string Eyes = "_EY"; public const string Heart = "_HE"; - public const string Hooray = "_HO"; + public const string HeartBroken = "_HB"; + public const string Wink = "_WI"; + public const string Pray = "_PR"; public const string Rocket = "_RO"; + public const string Victory = "_VI"; + public const string Rock = "_RC"; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index 7659c40126..b1937dd6e0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -16,14 +16,18 @@ namespace Volo.CmsKit { Configure(options => { - options.Reactions.AddOrReplace(StandardReactions.Smile); options.Reactions.AddOrReplace(StandardReactions.ThumbsUp); options.Reactions.AddOrReplace(StandardReactions.ThumbsDown); + options.Reactions.AddOrReplace(StandardReactions.Smile); + options.Reactions.AddOrReplace(StandardReactions.Wink); options.Reactions.AddOrReplace(StandardReactions.Confused); + options.Reactions.AddOrReplace(StandardReactions.Victory); + options.Reactions.AddOrReplace(StandardReactions.Rock); options.Reactions.AddOrReplace(StandardReactions.Eyes); options.Reactions.AddOrReplace(StandardReactions.Heart); - options.Reactions.AddOrReplace(StandardReactions.Hooray); + options.Reactions.AddOrReplace(StandardReactions.HeartBroken); options.Reactions.AddOrReplace(StandardReactions.Rocket); + options.Reactions.AddOrReplace(StandardReactions.Pray); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index 790a66fcd4..e8a26db102 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -15,101 +15,107 @@ @{ Func GetCommentTitle(CmsUserDto author, DateTime creationTime) => - @ - - @((string.IsNullOrWhiteSpace(author.Name) + @ + + @((string.IsNullOrWhiteSpace(author.Name) ? author.UserName : author.Name + " " + author.Surname).Trim()) - @creationTime.ToString() - ; + @creationTime.ToString() + ; } @{ Func GetCommentArea(Guid? repliedCommentId, bool cancelButton = false) => - @
-
- -
- - + @
+ + +
+
+
+ +
- @if (cancelButton) - { - @L["Cancel"] - } - @L["Send"] - -
; +
+
+ @if (cancelButton) + { + @L["Cancel"] + } + @L["Send"] +
+
+
+ +
; } @{ Func GetCommentContentArea(Guid id, string text) => - @
-
-

- @text -

-
-
; + @
+
+

+ @text +

+
+
; } @{ Func GetCommentActionArea(Guid id, Guid authorId, bool isReply, string text) => - @
-
- @if (!isReply) + @
+
+ @if (!isReply) + { + @if (CurrentUser.IsAuthenticated) { - @if (CurrentUser.IsAuthenticated) - { - - @L["Reply"] - - } - else - { - @L["LoginToReply"] - } + + @L["Reply"] + } - @if (authorId == CurrentUser.Id) + else { - @if (!isReply) - { - | - } + @L["LoginToReply"] + } + } + @if (authorId == CurrentUser.Id) + { - - @L["Delete"] - + + @L["Delete"] + - | - - @L["Edit"] - - } -
- + ; +
+
; }
- -
-

- @L["Comments"] -

+
+
+ @L["Comments"] +
@foreach (var comment in Model.Comments) { -
-
+
+
@GetCommentTitle(comment.Author, comment.CreationTime).Invoke(null)
@@ -119,7 +125,7 @@ @if (cmsKitUiOptions.Value.CommentsOptions.IsReactionsEnabled && GlobalFeatureManager.Instance.IsEnabled()) { @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), - new {entityType = "comment", entityId = comment.Id.ToString()}) + new { entityType = "comment", entityId = comment.Id.ToString() }) } @GetCommentActionArea(comment.Id, comment.Author.Id, false, comment.Text).Invoke(null) @@ -131,28 +137,28 @@ @if (comment.Replies.Any()) { -
- @foreach (var reply in comment.Replies) - { -
-
+ @foreach (var reply in comment.Replies) + { +
+
+
-
+
@GetCommentTitle(reply.Author, reply.CreationTime).Invoke(null) -
+ @GetCommentContentArea(reply.Id, reply.Text).Invoke(null) @if (cmsKitUiOptions.Value.CommentsOptions.IsReactionsEnabled && GlobalFeatureManager.Instance.IsEnabled()) { @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), - new {entityType = "comment", entityId = reply.Id.ToString()}) + new { entityType = "comment", entityId = reply.Id.ToString() }) } @GetCommentActionArea(reply.Id, reply.Author.Id, true, reply.Text).Invoke(null)
- } -
+
+ } }
@@ -166,7 +172,7 @@ } else if (!string.IsNullOrWhiteSpace(Model.LoginUrl)) { -
+ } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml index 9096f8f154..cc9f29af27 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml @@ -1,25 +1,29 @@ @inject ICurrentUser CurrentUser @using Volo.Abp.Users @model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.ReactionSelection.ReactionSelectionViewComponent.ReactionSelectionViewModel - +
+
+ - @if (CurrentUser.IsAuthenticated) - { - - - } - @foreach (var reaction in Model.Reactions.Where(r => r.Count > 0)) - { - - - @(reaction.Count) - - } - +
\ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.css b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.css index 8e27846c5c..7ce8d0fc02 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.css +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.css @@ -1,13 +1,8 @@ -.cms-reaction-select-icon -{ +.cms-reaction-select-icon, .cms-reaction-icon { cursor: pointer; } -.cms-reaction-icon -{ - cursor: pointer; - padding: 3px 5px 5px; -} -.cms-reaction-icon-selected -{ - background-color: #eef; -} +.cms-reaction-selection-popover-content i.fa-2x{ + width: 25%; + display: inline-block; + float: left; +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js index 3214d3af6b..7107fd5a81 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js @@ -47,7 +47,7 @@ function init() { $selectIcon.popover({ - placement: 'right', + placement: 'left', html: true, trigger: 'focus', title: l('PickYourReaction'), From 2d0082a6d7ea01abbc442f0d38d145b2802eef89 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 31 Aug 2020 13:25:51 +0800 Subject: [PATCH 85/98] Added kafka integration document --- ...Distributed-Event-Bus-Kafka-Integration.md | 167 ++++++++++++++++++ docs/en/Distributed-Event-Bus.md | 1 + docs/en/docs-nav.json | 4 + ...Distributed-Event-Bus-Kafka-Integration.md | 163 +++++++++++++++++ docs/zh-Hans/Distributed-Event-Bus.md | 1 + docs/zh-Hans/docs-nav.json | 4 + 6 files changed, 340 insertions(+) create mode 100644 docs/en/Distributed-Event-Bus-Kafka-Integration.md create mode 100644 docs/zh-Hans/Distributed-Event-Bus-Kafka-Integration.md diff --git a/docs/en/Distributed-Event-Bus-Kafka-Integration.md b/docs/en/Distributed-Event-Bus-Kafka-Integration.md new file mode 100644 index 0000000000..e4796adf55 --- /dev/null +++ b/docs/en/Distributed-Event-Bus-Kafka-Integration.md @@ -0,0 +1,167 @@ +# Distributed Event Bus Kafka Integration + +> This document explains **how to configure the [Kafka](https://kafka.apache.org/)** as the distributed event bus provider. See the [distributed event bus document](Distributed-Event-Bus.md) to learn how to use the distributed event bus system + +## Installation + +Use the ABP CLI to add [Volo.Abp.EventBus.Kafka](https://www.nuget.org/packages/Volo.Abp.EventBus.Kafka) NuGet package to your project: + +* Install the [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) if you haven't installed before. +* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.EventBus.Kafka` package. +* Run `abp add-package Volo.Abp.EventBus.Kafka` command. + +If you want to do it manually, install the [Volo.Abp.EventBus.Kafka](https://www.nuget.org/packages/Volo.Abp.EventBus.Kafka) NuGet package to your project and add `[DependsOn(typeof(AbpEventBusKafkaModule))]` to the [ABP module](Module-Development-Basics.md) class inside your project. + +## Configuration + +You can configure using the standard [configuration system](Configuration.md), like using the `appsettings.json` file, or using the [options](Options.md) classes. + +### `appsettings.json` file configuration + +This is the simplest way to configure the Kafka settings. It is also very strong since you can use any other configuration source (like environment variables) that is [supported by the AspNet Core](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/). + +**Example: The minimal configuration to connect to a local kafka server with default configurations** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "localhost:9092" + } + }, + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName" + } + } +} +```` + +* `MyGroupId` is the name of this application, which is used as the **GroupId** on the Kakfa. +* `MyTopicName` is the **topic name**. + +See [the Kafka document](https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.html) to understand these options better. + +#### Connections + +If you need to connect to another server than the localhost, you need to configure the connection properties. + +**Example: Specify the host name (as an IP address)** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092" + } + }, + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName" + } + } +} +```` + +Defining multiple connections is allowed. In this case, you can specify the connection that is used for the event bus. + +**Example: Declare two connections and use one of them for the event bus** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092" + }, + "SecondConnection": { + "BootstrapServers": "321.321.321.321:9092" + } + }, + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName", + "ConnectionName": "SecondConnection" + } + } +} +```` + +This allows you to use multiple RabbitMQ server in your application, but select one of them for the event bus. + +You can use any of the [ClientConfig](https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.ClientConfig.html) properties as the connection properties. + +**Example: Specify the socket timeout** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092", + "SocketTimeoutMs": 60000 + } + } + } +} +```` + +### The Options Classes + +`AbpRabbitMqOptions` and `AbpRabbitMqEventBusOptions` classes can be used to configure the connection strings and event bus options for the RabbitMQ. + +You can configure this options inside the `ConfigureServices` of your [module](Module-Development-Basics.md). + +**Example: Configure the connection** + +````csharp +Configure(options => +{ + options.Connections.Default.BootstrapServers = "123.123.123.123:9092"; + options.Connections.Default.SaslUsername = "user"; + options.Connections.Default.SaslPassword = "pwd"; +}); +```` + +**Example: Configure the consumer config** + +````csharp +Configure(options => +{ + options.ConfigureConsumer = config => + { + config.GroupId = "MyGroupId"; + config.EnableAutoCommit = false; + }; +}); +```` + +**Example: Configure the producer config** + +````csharp +Configure(options => +{ + options.ConfigureProducer = config => + { + config.MessageTimeoutMs = 6000; + config.Acks = Acks.All; + }; +}); +```` + +**Example: Configure the topic specification** + +````csharp +Configure(options => +{ + options.ConfigureTopic = specification => + { + specification.ReplicationFactor = 3; + specification.NumPartitions = 3; + }; +}); +```` + +Using these options classes can be combined with the `appsettings.json` way. Configuring an option property in the code overrides the value in the configuration file. \ No newline at end of file diff --git a/docs/en/Distributed-Event-Bus.md b/docs/en/Distributed-Event-Bus.md index bd85613011..b1444d8eba 100644 --- a/docs/en/Distributed-Event-Bus.md +++ b/docs/en/Distributed-Event-Bus.md @@ -8,6 +8,7 @@ Distributed event bus system provides an **abstraction** that can be implemented * `LocalDistributedEventBus` is the default implementation that implements the distributed event bus to work as in-process. Yes! The **default implementation works just like the [local event bus](Local-Event-Bus.md)**, if you don't configure a real distributed provider. * `RabbitMqDistributedEventBus` implements the distributed event bus with the [RabbitMQ](https://www.rabbitmq.com/). See the [RabbitMQ integration document](Distributed-Event-Bus-RabbitMQ-Integration.md) to learn how to configure it. +* `KafkaDistributedEventBus` implements the distributed event bus with the [RabbitMQ](https://kafka.apache.org/). See the [Kafka integration document](Distributed-Event-Bus-Kafka-Integration.md) to learn how to configure it. Using a local event bus as default has a few important advantages. The most important one is that: It allows you to write your code compatible to distributed architecture. You can write a monolithic application now that can be split into microservices later. It is a good practice to communicate between bounded contexts (or between application modules) via distributed events instead of local events. diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 411cced68d..4c7703ff70 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -198,6 +198,10 @@ { "text": "RabbitMQ Integration", "path": "Distributed-Event-Bus-RabbitMQ-Integration.md" + }, + { + "text": "Kafka Integration", + "path": "Distributed-Event-Bus-Kafka-Integration.md" } ] } diff --git a/docs/zh-Hans/Distributed-Event-Bus-Kafka-Integration.md b/docs/zh-Hans/Distributed-Event-Bus-Kafka-Integration.md new file mode 100644 index 0000000000..f621a95fae --- /dev/null +++ b/docs/zh-Hans/Distributed-Event-Bus-Kafka-Integration.md @@ -0,0 +1,163 @@ +# 分布式事件总线Kafka集成 + +> 本文解释了**如何配置[Kafka](https://kafka.apache.org/)**做为分布式总线提供程序. 参阅[分布式事件总线文档](Distributed-Event-Bus.md)了解如何使用分布式事件总线系统. + +## 安装 + +使用ABP CLI添加[Volo.Abp.EventBus.Kafka[Volo.Abp.EventBus.Kafka](https://www.nuget.org/packages/Volo.Abp.EventBus.Kafka)NuGet包到你的项目: + +* 安装[ABP CLI](https://docs.abp.io/en/abp/latest/CLI),如果你还没有安装. +* 在你想要安装 `Volo.Abp.EventBus.Kafka` 包的 `.csproj` 文件目录打开命令行(终端). +* 运行 `abp add-package Volo.Abp.EventBus.Kafka` 命令. + +如果你想要手动安装,安装[Volo.Abp.EventBus.Kafka](https://www.nuget.org/packages/Volo.Abp.EventBus.Kafka) NuGet 包到你的项目然后添加 `[DependsOn(typeof(AbpEventBusKafkaModule))]` 到你的项目[模块](Module-Development-Basics.md)类. + +## 配置 + +可以使用配置使用标准的[配置系统](Configuration.md),如 `appsettings.json` 文件,或[选项](Options.md)类. + +### `appsettings.json` 文件配置 + +这是配置Kafka设置最简单的方法. 它也非常强大,因为你可以使用[由AspNet Core支持的](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/)的任何其他配置源(如环境变量). + +**示例:最小化配置与默认配置连接到本地的Kafka服务器** + + +````json +{ + "Kafka": { + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName" + } + } +} +```` + +* `MyGroupId` 是应用程序的名称,用于Kafka的**GroupId**. +* `MyTopicName` 是**topic名称**. + +参阅[Kafka文档](https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.html)更好的了解这些选项. + +#### 连接 + +如果需要连接到本地主机以外的另一台服务器,需要配置连接属性. + +**示例: 指定主机名 (如IP地址)** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092" + } + }, + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName" + } + } +} +```` + +允许定义多个连接. 在这种情况下,你可以指定用于事件总线的连接. + +**示例: 声明两个连接并将其中一个用于事件总线** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092" + }, + "SecondConnection": { + "BootstrapServers": "321.321.321.321:9092" + } + }, + "EventBus": { + "GroupId": "MyGroupId", + "TopicName": "MyTopicName", + "ConnectionName": "SecondConnection" + } + } +} +```` + +这允许你可以在你的应用程序使用多个Kafka服务器,但将其中一个做为事件总线. + +你可以使用任何[ClientConfig](https://docs.confluent.io/current/clients/confluent-kafka-dotnet/api/Confluent.Kafka.ClientConfig.html)属性作为连接属性. + +**示例: 指定socket超时时间** + +````json +{ + "Kafka": { + "Connections": { + "Default": { + "BootstrapServers": "123.123.123.123:9092", + "SocketTimeoutMs": 60000 + } + } + } +} +```` + +### 选项类 + +`AbpKafkaOptions` 和 `AbpKafkaEventBusOptions` 类用于配置Kafka的连接字符串和事件总线选项. + +你可以在你的[模块](Module-Development-Basics.md)的 `ConfigureServices` 方法配置选项. + +**示例: 配置连接** + +````csharp +Configure(options => +{ + options.Connections.Default.BootstrapServers = "123.123.123.123:9092"; + options.Connections.Default.SaslUsername = "user"; + options.Connections.Default.SaslPassword = "pwd"; +}); +```` + +**示例: 配置 consumer config** + +````csharp +Configure(options => +{ + options.ConfigureConsumer = config => + { + config.GroupId = "MyGroupId"; + config.EnableAutoCommit = false; + }; +}); +```` + +**示例: 配置 producer config** + +````csharp +Configure(options => +{ + options.ConfigureProducer = config => + { + config.MessageTimeoutMs = 6000; + config.Acks = Acks.All; + }; +}); +```` + +**示例: 配置 topic specification** + +````csharp +Configure(options => +{ + options.ConfigureTopic = specification => + { + specification.ReplicationFactor = 3; + specification.NumPartitions = 3; + }; +}); +```` + +使用这些选项类可以与 `appsettings.json` 组合在一起. 在代码中配置选项属性会覆盖配置文件中的值. \ No newline at end of file diff --git a/docs/zh-Hans/Distributed-Event-Bus.md b/docs/zh-Hans/Distributed-Event-Bus.md index 8416ef953d..68b7466f8a 100644 --- a/docs/zh-Hans/Distributed-Event-Bus.md +++ b/docs/zh-Hans/Distributed-Event-Bus.md @@ -8,6 +8,7 @@ * `LocalDistributedEventBus` 是默认实现,实现作为进程内工作的分布式事件总线. 是的!如果没有配置真正的分布式提供程序,**默认实现的工作方式与[本地事件总线](Local-Event-Bus.md)一样**. * `RabbitMqDistributedEventBus` 通过[RabbitMQ](https://www.rabbitmq.com/)实现分布式事件总线. 请参阅[RabbitMQ集成文档](Distributed-Event-Bus-RabbitMQ-Integration.md)了解如何配置它. +* `KafkaDistributedEventBus` 通过[Kafka](https://kafka.apache.org/)实现分布式事件总线. 请参阅[Kafka集成文档](Distributed-Event-Bus-Kafka-Integration.md)了解如何配置它. 使用本地事件总线作为默认具有一些重要的优点. 最重要的是:它允许你编写与分布式体系结构兼容的代码. 您现在可以编写一个整体应用程序,以后可以拆分成微服务. 最好通过分布式事件而不是本地事件在边界上下文之间(或在应用程序模块之间)进行通信. diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index 26a526dd10..df72d6e3df 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -180,6 +180,10 @@ { "text": "RabbitMQ 集成", "path": "Distributed-Event-Bus-RabbitMQ-Integration.md" + }, + { + "text": "Kafka 集成", + "path": "Distributed-Event-Bus-Kafka-Integration.md" } ] } From 65e9e29720bdc66d4ce8c13410d912ea85fa21c8 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 31 Aug 2020 14:06:43 +0800 Subject: [PATCH 86/98] Update Customizing-Application-Modules-Overriding-Services.md --- docs/en/Customizing-Application-Modules-Overriding-Services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Customizing-Application-Modules-Overriding-Services.md b/docs/en/Customizing-Application-Modules-Overriding-Services.md index ce3729c1ac..d0d8c8a8a1 100644 --- a/docs/en/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/en/Customizing-Application-Modules-Overriding-Services.md @@ -61,7 +61,7 @@ In most cases, you will want to change one or a few methods of the current imple ````csharp //[RemoteService(IsEnabled = false)] // If you use dynamic controller feature you can disable remote service. Prevent creating duplicate controller for the application service. [Dependency(ReplaceServices = true)] -[ExposeServices(typeof(IIdentityUserAppService), typeof(IdentityUserAppService))] +[ExposeServices(typeof(IIdentityUserAppService), typeof(IdentityUserAppService), typeof(MyIdentityUserAppService))] public class MyIdentityUserAppService : IdentityUserAppService { //... From ad288cd75ad23d70f7abe39cef890f41439debed Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 31 Aug 2020 14:07:19 +0800 Subject: [PATCH 87/98] Update Customizing-Application-Modules-Overriding-Services.md --- .../Customizing-Application-Modules-Overriding-Services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md index cf40590d61..21245cec16 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md @@ -61,7 +61,7 @@ context.Services.Replace( ````csharp //[RemoteService(IsEnabled = false)] // 如果你在使用动态控制器,为了避免为应用服务创建重复的控制器, 你可以禁用远程访问. [Dependency(ReplaceServices = true)] -[ExposeServices(typeof(IIdentityUserAppService), typeof(IdentityUserAppService))] +[ExposeServices(typeof(IIdentityUserAppService), typeof(IdentityUserAppService), typeof(MyIdentityUserAppService))] public class MyIdentityUserAppService : IdentityUserAppService { //... From 584ca0e2b1785c40104a8db2539ef6f93473fab4 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 31 Aug 2020 09:31:14 +0300 Subject: [PATCH 88/98] CmsKit: fix minor bugs --- .../ReactionSelection/Default.cshtml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml index cc9f29af27..f49cfde336 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/Default.cshtml @@ -1,29 +1,35 @@ @inject ICurrentUser CurrentUser @using Volo.Abp.Users @model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.ReactionSelection.ReactionSelectionViewComponent.ReactionSelectionViewModel + +@if (CurrentUser.IsAuthenticated || Model.Reactions.Count(r => r.Count > 0) > 0) +{
@if (CurrentUser.IsAuthenticated) { - + + + } @foreach (var reaction in Model.Reactions.Where(r => r.Count > 0)) { - + @(reaction.Count) }
-
\ No newline at end of file +
+} From 97027b170163876a550af3bcba105fdadeda26ec Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 31 Aug 2020 15:39:42 +0300 Subject: [PATCH 89/98] fix: remove source param overwrite in createApisGenerator --- npm/ng-packs/packages/schematics/src/utils/api.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/api.ts b/npm/ng-packs/packages/schematics/src/utils/api.ts index f772666b4b..39483c2aa9 100644 --- a/npm/ng-packs/packages/schematics/src/utils/api.ts +++ b/npm/ng-packs/packages/schematics/src/utils/api.ts @@ -2,10 +2,5 @@ import { chain, schematic } from '@angular-devkit/schematics'; import { GenerateProxySchema } from '../models'; export function createApisGenerator(schema: GenerateProxySchema, generated: string[]) { - return chain( - generated.map(m => { - const apiSchema = { ...schema, source: schema.target, module: m }; - return schematic('api', apiSchema); - }), - ); + return chain(generated.map(m => schematic('api', { ...schema, module: m }))); } From 737e08c3362e98ac8739d305ff8f679dbf6571da Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Mon, 31 Aug 2020 15:50:16 +0300 Subject: [PATCH 90/98] adding user navigation in Suite --- .../POST.md | 31 ++++++++++++++++++ .../add-simple-property.jpg | Bin 0 -> 86112 bytes .../add-user-navigation.jpg | Bin 0 -> 228015 bytes .../create-appuserdto.jpg | Bin 0 -> 184536 bytes .../create-mapping.jpg | Bin 0 -> 309087 bytes .../create-note-entity.jpg | Bin 0 -> 156350 bytes .../final-page.jpg | Bin 0 -> 94289 bytes 7 files changed, 31 insertions(+) create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-user-navigation.jpg create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-appuserdto.jpg create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-mapping.jpg create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg create mode 100644 docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/final-page.jpg diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md new file mode 100644 index 0000000000..b0c743b36f --- /dev/null +++ b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md @@ -0,0 +1,31 @@ +# How to add the user entity as a navigation property? + +In this post, I'll show you how to add the user as a navigation property in your new entity. + +To do this, open the ABP Suite. Create a new entity called `Note`. + +![create-note-entity](create-note-entity.jpg) + +Then add a string property called `Title`. + +![add-simple-property](add-simple-property.jpg) + +To be able to add a user navigation, we need to create a user DTO to map from entity. To do this, create a new folder called "Users" in `*.Application.Contracts` then add a new class called `AppUserDto` inherited from `IdentityUserDto`. + +![create-appuserdto](create-appuserdto.jpg) + +Create the mapping for `AppUserDto`. To do this, open `YourProjectApplicationAutoMapperProfile.cs` and add the below line: + +```csharp +CreateMap().Ignore(x => x.ExtraProperties); +``` + +![create-mapping](create-mapping.jpg) + +Get back to ABP Suite, go to **Navigation Properties** tab. Click **Add Navigation Property** button. Browse `AppUser.cs` in `*.Domain\Users` folder. Then choose the `Name` item as display property. Browse `AppUserDto.cs` in `*.Contracts\Users` folder. Choose `Users` from Collection Names dropdown. + +![add-user-navigation](add-user-navigation.jpg) + +That's it! Click **Save and generate** button to create your page. You'll see the following page if there's everything goes well. + +![final-page](final-page.jpg) \ No newline at end of file diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/add-simple-property.jpg new file mode 100644 index 0000000000000000000000000000000000000000..346335d2f411458cce0aa0a87101b6ceff7d999c GIT binary patch literal 86112 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�H}i2yvA(Basf%-Kmz)S+JsR*UTM78Uxd7o|7o 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�z?@3L}H$<$j4E|wt*El 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�-ht`8H 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

    Ke&)ES)vT$3f1Ne->_vmm^QH@a zcTUs;=B{k?WE-*m&!K^a;X->I&C{a2eaGjT?DU8yu9|;n>+5v3unrmc&P2a+%g)na zrPR(xrqawbyHu%^t*UtFusQc-_@%Vo94@#ip*C06& zZGj4DXI?PuRVP0Pbr$sK&N9_Wd*2Z-ER1%NAP=Kyi!gi(i-l32aw-X(oDkh+F-?;t z5p%oVjh9RdHo*;3Gkr?qQHEbFE*vI}r@LWp_t+3uD}bgp4l{B6+ccR&&t|HCiki+9 zw4d~aXZmq%rz%CoT|=0YwDrUzk0EMiJ8c~Yc$k1=Gzqr>ydP}FSHwDkwFpfUqg0uF zp~A!5?77cUDU$Xr2! z%b+1ZYJfG%#ZM%P=~swBjmiOL>ll?q%bMEK4pQx=5jjW%a62J0NYR{ntbJE}=*x-SzOT&&r>J8Px?jC?XduQd@z0y_yx03)u8(!{sdl;@NN9ab zYwSm;_RlZz^^|JoWE!NGdgOHpJyxV)<{F!IN^9Z~UXKoeq!f!y`ZUaa-XvpGj=@ZK z=v$6FELns{64H~HYlsd|Nro+gg4>YXxO2?Pc^kAz<{>HUs12FxwC2Pwgl|{0k--VQ zE?B;8%=su-Pp>NUMldlB30COu+PtaH4=POdLOBnzAT_E=ordRuKk7 z?kwh|iv9RJj3F}yqdym}iZe!LVYI;3pnViJ6uX=y&Di| zcSAhsA;kmI4nnOMXtJFhr*RXj{qd7DDHcwV*(u)`;5o=#fwt{Dd7@>$ub8ZDlkRr} z#@JF9gfxDM5Y*XRpmy9yw1=9R3uQaM7I895z${b&RaZ299ch>b++5JNUTE$* z(BP4?lzZj-d0?9lv0TqDh{JA_+l)B7CyTu|xoj02)i|>3qC1xKB_+=4B`zk9JQDzH zmRdnfVA*sb;Cva9z)qPvq40}XdQIXg%4!A&H}ZKUNP+}M*%G*Z^wg*!ZnFH8=y*Y*(6QL z>t@l?nmJ=D$ek_IFlVDtW6rp{gp6RwxI|2#2RaK6;mPK2wd2N}L7KRWU%J`ELVrk`b1jJujxkTTvk zQePq3UGHC8eJI?)xzm&-s%vQV<4k|?{OVF@qUZJ9N~RDw=`P(5Uz&0TSsCM)Hf%we z5O?J+Tm-ogcR-WEi#dkEepXrecGQMY0zffmxIx~t63Uep8-3yUG;m*$+uBW&a_)^* zG2Q%u>hi zXj4MQFVM~pHzdjggBN`(Ujp(tC8@5ncy`Q9C0Gs^r$MzNjC5erK+KjUZ_OF zWZ8cCRyaU{P_DZS^2N=kl~l>a{vLC1_o1TqVP(H42P-y#7blN}&htWGeF>gLQ&o}w zsxB%|dq&b5RoXFgdv*}UW#LRX4CeNl~Zd*lw1 z@|j+8)`NLk8~0ibiuzCDit8Ba9&n8d@>yQ$IgME#JR;^tStlT^O!s9^GC!qfQ*o5@ zkK5;YkMzE~#2)?q!F75m*RkBgzuqk+=>hzj|F!;2k;*Hx3IX!=uhj>wN{a|ljaT2D zw%rou;m2}2SIgEfh%OcBZ0Q(%VS3zO`-?$vDXxi6UIcj=;L%mx3M;BfqvW=lTFLe~ z(4iY{?y;Q(Z--S7O@0o$CeedpL-_2sHw;Jx++v*+l$l2+f+7 zAvIvnbj^{z9{mx9{{6VFpu8QU^6ve(2;dRPm;{PGSf?7sN)r{uq)o(&a3^FfrNCh# zj3&_nrU2S_r^vncDW20R50KFFLE*GtnT>ixCp~Ps5D{2a@QYu-#{khUe!ZVx9XwKQ;CRYA zmu~moeWR;&vr|CK!2NTQ+)Ql%0~NYdZad#`=655Kk7ce4KnoVZwkm8yE~;ktg8q+~~txu|`Z zeBN?vRjO*)QNiEeRc zuh-k|Up0f>wug^ohj_S!H@8ObDHyt(VLG+O+QhwaL$_0PiasN8-Fdx>TRf_w?&y^T zXLzhN_@2+>K6MZP>sbU-7EI}@kLBzf_zIRRecvSytIFdpZFgHsT<@8{)Xr$`yH8uQ ztv}+LPKDEp2I%XJ?Vm0sZS^{v!1DEc9MgW_O~|*WeNgsCzZV}CM~~DFym}S%_I&G5 zx25%BBh_Vri35dr6v*TnCaVEq-FMzU%NE(#-NQlx^egq}Aw~vQo)89Fguy!yjRS-t zS9<^vv=-4)bxo%Kvur+$?9I;OPFw?7-YF<;>dgB#u!5+vk!VsH^Qo_%{jEI5T|9sN z8>#2#u4w9elyWO`NRzTbaq%r~;wjFU8;cX27t8l5t2wI`W{3e;rR zgy0T>Q5rARdzCI%RBxmtiX>0S125X5eZz)|pBIisK0~vmo3*OLp`o0}o{U0^;^`Bt znJ?&{7Xz0(c*U|eWoF%*dkV2=1(^J$Wnk46JCRa2Uw~_7%(PP_jB7wa9}nAfT)?6r z^wrwN=`ppJ6ypJfca9uqHCvDF^YVVYL9>3rKF>WbZvHt& z7!$nw&RaNB&c-kW1x`_HjKuyz3YMQirr|h&*pPdgAhLYfqLpXWhKCIP z1J%+i6~7Lv_9Hg!#)M3KCmyuq>p5GT%fA%a_0SrVId93@?9bN`n-jeZI?*mTBf&Ns zHOe&N=0rfu3>K0aBPn(kYR4G#lf1p)VtM651n)h3^2&$)h92!WR3etXm@$EpiMdkI=3YQ!GotWRgktuPv`h~ol3gf~33a{;J zH-%d5zm;Nkyw|t%*Zq%0u|>CBt1OPuboLh*Kd8v6NEg0I|7~(UmUR0Vd*(xNSn|x) zK$r0f+}E4;o-0S0P9z68eNbTsi0VO)$FGaOG0aBw? zbH5J1<%Li{%wVp=MKywGLS@9U(EU#KGG2dlVedFXnFLg?;aa=PHHTcwYE|#J8i2Y0 zx(z3EN7!;0gnZ@@R#2Q2m+>MEJW?o`MB?w0&=a9T-r&jTGfly!$szT`IIY1C*Yjax^( zrrJezeXcA>qBR56p~eK4F_#3YeJXT6X|uOvA(x!`h>RbgSmGV7f>q3FsHs?nQu~s7 z?m?_-JFqcfx42eRQQHq-cOm`17IbxlnIWMP6K)1`6?K9I5C?_jhy_8LfLwk#j#a(@ zkDaW;(T>h1vD@~PzWTS8B5fc=gfIkH%i&qY+8UCOP^jA2N>~-mg!0EpR6a(}V&Ft& zVEFTxUY@Kf)lW~)-&=dVA9sM}r|7((;s;6DOL+3O-Zm%LMvCe{pr}$E2nrEsBJES*iWda{~Imw%kS~t(sZO%y=WvE5RNSOvAQWejbn?@#7 z#7!VAVrL+CbZ8?i8K^`A{ku|nZd(dV)uqycJ4+#^+z`U^dsdS?WM~1^0P*%6rbf(( zsG-XHjhW;qSPjf*$R<@tgd0MSc{KVtD1L|z4R;!p=svqxGL46K_+>i%v#bpGtL>F# zXyAJ;lxMu%f*4gQerr~;v3isNl{Ns7P&2TOAX>QAn!dF0GnlzCfhS#x&uk*7*`+4( z7QvQy)>#l{2f~L#Z6xTN)n)6`B#nb@`y_XJHpcFjIL#V*=otBaB7{^w^7VP_W&3Sp z(#Tp(EhDKk_I8d-2q$nT%2E549hL)=m9So z&a>U!c6@@3A{ELU_{AFSl)X^*3so8`gp|!2-#v(Niz`Laeoga%@ig0!#?+mQbNDQf z>2XQ(?)yER>Y$lbuMExi`gd}(!hGWcN+zw~)jkB~JXhTITtrg6|@O{7&e zN=?fTA%zXgArNk>wFZevj`uhWF*?wr;3!*14vc$1-dz|7UAVmnrh11;NyJXDc&6vs zRpEY#E7|{In5a06x|(zsXB5jZgcgRlb;5SBuBwOdlnH`P(VZc zGp{68Mg@LDX`!sL_pbalz;M2Qm-TFub0uNzLGQ8?4WAx&nz}6=P>q#nA>&|$krQSO zy{E20$&VwIVBK1>l^FzMf;yQ}R62Ei8$l*s6{t9qB@fjB3q51~7qy@OW`tjU*x-22 z6g7a^S~-H+Fx6>)$6D3FZ5pQI;^wZMP&f~f_ryTB&VnFu$Gb*xnyDq+nO&{;4+MN` zD1|3r^2Ol|!9XCd>$ldo@yU04)MC-8n?z($SXxbR?6`?1HSk$)0`cL`V%)?%@dmb8 zzsoQ~fhvvR>{0$J)=89K>HYC&{)Jz^baTyM=td&lU{sQz^W~uTI{owF_{*O8Z@P+ddg}87VFdPMOtQ3Kx-s24?Nh zK+Mx21Hi93to<}or;Rw#v;M#2od740@7Z6iP*<5gZ+nvM0u6E1GQ;~Z{yU3Po!+o} z=*b^F)=%#`(il>Zu6}d!@`;}99xIGVuY4-L;x!o^5s%s~6%KB_<-DpRtV<&(cU^@} z#%ICf4OQ7bo5qaE9$A&{K0jl9n3}sMAKUKcdEsVt!wdUKaV_(3T_+?f*>=nQC(D@m zKoekL-t3k#X{yy!(Ta&1$f#`Rl}IV~8g@M~i?foT3mOtm1@YX)awH$D=JVR@h?_ne zr?XgNg9UYxY)@~m*5<}%B^sIAXh#UeV8A*ja+Na?GuUBbAx*VO)q`42F+=dOijEgJ ziNTe&<6zKL0S4;q4IbYOMUjw8iT5n&yH#24yYR>bbs0|iT! z44sDB%&~l@;!}1Yxm2j2OGXT1};`wVR#dHJw%E|z(qjO!l48(y88Kl^&)J&9FcNnm!( zm0K2-Je@qt%^q57CZ+^~rRudb%Y~;ol6S%-Kj14e;CoOr2n}3N=8q63lG~UY$o^1Y zydO^F%`X!3e}kDcyB8_$&!9*EQ9~h76VedH;X1t5R1BaqHq&b62^w*i!df33nu>6F zHgHNxjnx_@N+w@&)se?t64eVRO*$tOYa!VZbNW_fc?#U@3=uM=#B8b_c7tMH|NNYO zc_tV@XNK8Ah3P+>;i`61vw`_^z=hK9YkaZ%k47AHBSxniqIRH=o$St00M07;7kUCF znjU=yw23Yis{vFmP8|%15|Ml_{8beuO;VU+`!n8ddSo82MY?-@P@%(~ z61{pWTR(MDUq88Qlhwm-MYoG|KlHI?zprc7%x&+{4l7RZU$^;;R}{uipXPXPuWED! zu2KfY2INK>`_$Fm$gfGKS=wG@A5Xjtggy510E@R3^rYc>LFDTcRuD&P!{f`FT#Qcc z@?n|}h&4eM#8wlOD*PGpnl{9F$$})CC=}#Fbm0(ygnW4bhAHY_=ewOHC7EyqZ;^fl zFfk_iD790tUBPpxiqH%@4bo~R0GWjTYoROb+bGXjyl^$SN*vd!ti+uT*4hN>)7%BX zzTDX*^-r^ENX2)ev=UU-3S1N1bM436hAC5%z9dcO4vx;L6N%e=3T5c12HZelVRewhr(3I^7_UW&o zo&=;*5qGBjA&Ji)#$tvr+nBm-TVXYR%bU{jcVEOCBHlL48HdE`pTI>gBt@aauXH5- zdgEACo?v4Cy}VeT&6mXf_rGJh^zOYbcAS@Z*+SYZx22%BEHCpl!gt>WxlJA6p@BUM z*Lf0ngmclo`d)NzdZ1Oa^~;ZYB$9QWDVR?;r%%SdeR;C(He-OO2a+GZ(q&>bGN!*R z5TX!trc~y=4OCrHuz;$61`y%K&>oQB{ z^b{c9FrPP$88|g8?N{hXowVGBfuBf6Fx-du3$%eq(Yvv6DB&SA&iO0wQ1oI(GhiQy z>r#Z>cn?s3M#6LO0H1v#&%C8Jl5YQoYru z!(*+EsHbl_yf(1l`*GM^*Uaqy4vbUDh)^X(8F$OK&b(tg%Wy+Hc?9HEqM1 zt+Uj!vfH#8H`;f92(|Wvw%{$_uhJr0esxkRyu#{BU@Op46tI1HJ92Xs=J%0c9jc-SAWu(}t*ZtlMehWUMjT%uNgFOKMQP-aUv{8h5)XY{X{!fBQHHJ`0YIOk& z7OEz)aW43+tt7b$c-X~Y)j&+A7=c4m*iqwu^jV*zw>lnkI0`C4YkzJ@r`04sp2BWN z1aQ=nw@07EKE+WugsR8!h}sGxNG%Hxxw6N=D)-nh)=AZm)2-S0Hi1}MT?TY;om7#5 zG)lnK7fp75G#ZdaMXa+I!%+^vPRaGoxeqEF<27?igNv zA#8Rl;{2I@9d{PVVVBjB6}sPw0-p6B&#~Dhg&vdcZBKV|lc91K^D^OVPvnq9i!P#f z?1>$f_-AqUlHSFHZS8Fc1r@xUnY5_(XM^VIe!`M|S`E@8W#;Ue4@L1Wgqg#HKQZVC z7KtDb$=NcEh%(WaAoi;wu|k*V0X5HzmMUUl@fC#{MDL{RL4Ly7^3=BqZMa!}<=@=^ z9W(%F9x4;1OV+E314y<*ob(#xayw-c!wm_noLU^4ODEgFW;GbM$DdVep&KN*>_lH< zF@9W&-Z-a5dGAkgj9)<*1RKkKc@jkDM}REE-v;JAP1-p&$SN5#3v1t>)T1koX=*-3 zx-cvR1<{D~U_)peA@$I2g}#sxG;=8v1`XV18*j*xJ)$EsNLTEExB}Dl4ahzjGn=`R zdWI`%mfwO>(o|bW`2wsl2xFwK1CZ=P%2KnZeMHLE7^)`uoRmoC9E5~dDfR)eU)bQE zFy|_SQi9f0iFVfbwA*kvT$|rLhXEUWw@#M-aran;oqL!t12&A`TQEs)=-Oj28&a@c z^H*9FjYK**z-sjM^lFP{`M;BW8+6C^dM|bw=(IQ1J$vWgFz1ftXDDgL#iUMCUbTvy z;akZ&hm}IZ0w-;b#%HDxXB(*ynWY{NgtcOX@f*Ug zjYetBV4NYJo^j6_aw{~X_jc)ecmRCGv`cmCqDGov^gY|7(&Es zVkB_OiI~lgCWiq z1TD|(1x0n0IGyn!riGEwz({NPmvF_PiR{^6AuX@3K@!_5Jce0NK`XT!N1J<|i;_Em zMi-w&QA6fs@388C;4(~YDx~9Lz>TH_#CXjDl{Hk5Ju$bM@`}0vce-X9P&r_RC_N@(Z1)b-=loJhPj~U# z-$iYB%BVgd3zY@sZP&=?e$uG7Mre>;R)8Tkm4Dx~?o0UQ{Xg-=0|JlT-5=e(D|WdD z=3?^qRu!7lLvEBFKkWnU_s}K-v}}5sJcSkL0p9MS2>DfzD)I9n*8NmQ9Abcy zAT{x2QR*P44Ksuu^*%gIJ)^-K@!%P7mzf-cUcCNN;*cifHk1QNV&0|NYSn76>_$Ol z+$f-KE3pC8lW5aTeRi5VwTuvE7)<4jIk<4KTN?VflI=`h(ckBm3}z2PcmEYV8Ap$= zgBrhPhd+)Hn@~?PGi~tf_u`;;_H>9S&-zz6-XXv4Q4!Np!;c+SnLtOXBJaPHS4Jh* zhQ!E4>GHzxJ#Sbs-vF53R1r`p|8tma8%#~pCTqZxvr$mLybFM=cF*HC27pCAE*EP| z#zBm00N43hrP%;&9!^uZlunD-{INCNFzy7xx*scY0EfRG$i!1nHRmtio>7FR8V0|9 zvF0Sv7;PswlGtmPc8}zqYwp*j>{&tUJeQCd8(U(tR}iVY|5Ctz2Rp-e4LqJMT%J*k zx@=@@le^0S_9`*iTjPGrFGhOq&b9q*>>@YGUecM!GjAGEkyknnDobG-4`QXG+#sCG~8aE{dFgKW@Q=*ja#o zq}R3)`#eSR;?n5R;L3(nmpx;EMN6%pq?27`cr_$V*4+L=Lm<{{+xM6>Dm71UWM->DFiQ$;FPr z%-0OSSalFEbGXe>;4_?)ps!Mv$1R9;xD!R(HJo)wJ!qti8;dWyagcKpJy|$ITx>2n z07j?%nAMTcJ5C`PL+tRl$|(%V&u%qVhRgp`ESfvyssD-;gUc3Vmo{)&Zu=g-yx|>=wl;L{B#B zA=OZT&;U?&$hRXSkQyFg)l7qEKaL5hzheVJ@A!*!*}V;6O107{%b@QF6U+sWsB)Lb zW5^j2y<<}akBgWwI?*f1>$u3FN>HVK1v05=0F-RNrHc*PoR>~f-Vuxe;o#Ef1fx?7 zUY7=By9s;-?kQK$vv!KANj=S`6ZCudq3eax3&oIYCwIdh%pSAZdBDOy#6~FN!>+Lp zKUx!GZ>c97&xsW(o7_^JHLNadyBED=0S0n@f7As8Jv%U5ktckU91{s(Zs!-Dxj!E~ zo>pN@6b&Zr^)*|qs##_6bBIX4Wn5d)SOcsx7W|2GN#{0}LpQ^NwK4^Kt!tg$0$gt} z9@(un<6W&diR^~FdDMoKcE)DXzbtFIf>^6KFpSZLsS=0GHuJ{-ovckt;blu$0}bL$ zU8$*3w&C>Rr;2it!I8H~HIa(LmnVp*k+n5wvdy`82bYwkShD_LB!q2-?h3)mpL0-Q zGf3GNP5p(llQah&F|j)7qe`3nD?HG&=)h0Kbr_?s(KGfWcy~~2xxH=MYl6q(7EK!^ zF$&kxxD(NfwKUP7oc^iA9034K#bHFaWJ|sP`}2t-Vvixr@`)aijl}$4$T4+R4F*aU zQ${<=BpG$h;Sx0q)K{w~<)P3UmUNbiZ$|v&BKB3gIr{jr{=2G;8;44q3YXBvj5n9e zU*biDPC<0Dx&ZNeO zjmf_tD47lsV5X!54TWv5YFCWP0)D~Buq#$O0tq{Ei5?Mgko1X40r^a;zT!~@{hglf z7R{Y`sq4>I z{#uS&o?C43Wv`lhsNV?-Xtw1tIfR7J$^LYMfce9|IIJ8pI!gA zn=b5s+f8?3bIv4$B}tjHJdhmqor zgT8&~#d=|<@##C27W_)vP?+f5o##jPpJQNd2IuG;pS-UZ}Y7E;un-~MV6f!btF5auPqo-MJLCNxduR|E2GeN z%BDpncOSUciZYUG)HOkj5$#sBShFL*L(v9PgEZ03wynu{MWIMNs^DJlD}h) zEcbb{w~r^|G%~zdW`_@-2zc+zdu*wdA#iz1)9bBp_qB9?@jGASn|M?C@b#_-Pn;58 zQU2dSRVjB<5o`)(tiWYubMoV0SQ_hZJ~oy5eB`#dGUK z<4q;T&~S$0*G0eEh5pl}pN+?>hopRW&a<>Xk->kKZMy(;Ns)0A1}Zj@uJ=LQ2*w53 zB~Aq3Isl#dN-N4H0M-X52jjv&%M8zuO<@1du$@Tq#GJ{OW}s%>Pc|58FyW#|u97)H zE|KRy)DqRH0mx*Ra)2_%pLj7<@-FF6>mifW!1-dEF-cqVihEJI``-)qmEAfn2>-t8 zSf?~D9C{Y;>1@}&Tj$SUEe*1ZF*`Lh^13BgUP{lsYZ=&k+t{$^cAMuV-CYAUYahLj zmR9I>pD55W2}-vE2HQH@y|=2upZv3IVP8hNqe0(z-=0Cz*1YJ?dGN>?ZCz2+q@d)j0bDj9T?Km4r!}soh3+eL=4bolrA;sQ8 zVQ^m~di`{hgM4pjjPW%;g@J%5>S@QW0E(aeWP7OgIh4|=+M#@iiHeA;h;CubYC&u; zJk8#Uc&12j8>jooCjpHbtlo%HR9?#|V@{!Db~R2@aiFnvzg^lE4u4 z>5?FkR4xulz3{5x;t5Z6@yk#BuejL@7&KjF7+#-awhpKB;l1;<%DbfNH@dX%ohx^_ z4vw<(ZT2bY6RK_e@JD{_(kFqT?my1wq%=r3&28z7x~({M_Ra-Y!VccadJLg3qeHgI z#_UMWmv0|Ox{q=m@CU2>NY(Z`Yu2$#Y(Au0i~#a>fpI=7i)LC@llyl#eibd?Ow>rr zFjzAlAQ7cr`A}2`p+T#C^9tGO7q#XzTXeePuz>hW40U5Nd!yTf&)^y1i||*7jh`{c zA58B13P9|-LYd{DYv;va^np3M8V`!~Gd};h{M$F))cCh?qdk*ZN09GQ z^O-}kInyvoFU33ns~r=zACWD^sa|p$avU=`Lu~76m8t3#torXl*iML2FFibA>FKxR z|8$U|Ne*R7if;sBGi^vhPwoJkj7pReb=u1);gr8|`c^DuYm%n^QpY$7p+^t_Y-9!a zZ}3p{s|$gK^_Nju^Ndn9XN0ij>Ci$Bun-wige___w{T!mtiZOuO(6T*&1GUORAVZ0 zBp!W@vKu57we6d5(g+>q7?XEF!_Rq?HIRehS+@4%&(*2LQ3t+mn7H%l{o$M8iJS6Q zf1ZrH3Sr#goBM9(tUBW$$D%Nm_s$BAmb36R(&)4DNanGgvJ6s~Nyo=KpL`+1eV<+;cg z33KG`1hGTR2;29TOpr3yldYk~$t*k6Ix?=`b~Z|Ax?|}OpBQzYg!dS-V`#-V0LupP zEAXvai+zTZQk}kjJ-L)n5qW0EGX|e*_J3Wbdx~KAJYQlU|5_>uE>4utdHBpQJy@Lg z5E5Ran36iDWnQIa0VD?rJ$*iv&;d<577CtgWhpcbV&U&K$6o{>_@1NqJs#T^K%;%dtcBNI$FwW%09ziOo41+f@y%1SZ0qI92uTp z;UuQnZa(>j_sUk-G%&A`9qMqbr9Ww@wZ^?)hR;DkN7?I0^}#Uh7W9aeD5(GqAy_I? z4HO5X&RMgibAWcm$2Bx(;G*#~ZUdp6o3$9?*cE#Up-QMgZ7iN{@naCB#r8e?rXlPG z2uH&>s9jC+MB$;yZ>dJlJ{?HTyv8axAhS4G;fAYrp1Qd6Vs@_j@rCD;456z|Pz`X6_Q(7cd*Ry-IUeIxoutxN1S7t1*GrKDupV7y z>R?gia1iZb^N3C7Yz5TXhDtJk6D>~Ma&1FjS ziG_CbX5_ALL9DT@wFOEt7V`0HNhyHQlu8V*37N)j?t3_pTrANvH?F5Q2mIZ-QsOzD zj;@xR-QOY8-@Wv#O>>h_FR%S_knIa8_Gtq$C4x26NIt# zX}znLS0muG)5z}VMGPd|T#i;8x2_Q+hIz{12{elAHGt8tBcD;$f=kiwI`D(Bg1jH5 zwWd~)(%M__*UXK{j;Hgbq4+@V)BcLjrHyke%>K8?IK>-2#N#hv5~SLBzZ*utNs8#vt|0fwKyF$k~X;1q{w& z@DIXp;qV;j{IR>qu1ZE*xMWGWy632p$&FSmu*KZril1+ZL(G$CI* zFy>PFi?1!5T}Z2>^=EuzaE*R@lE&uqU+f$P;;U_I@SnI06u3*{@j8_E)Ou#;91W*| ziyQ+vPcNC8VB?-XUM2(aiD0P!envhXnT&^8#Dbu1E_isgRG_ljh%qk@BP~PJf41Su zUco_f6e@fA@S|y*)`h?Qc3*DXds94@T8lO@=JdbMVquz%HtmS=GktSQ-KP%8u?rY@ zB>e>W#P~h_JRn#~t+Uu&dAx9sU4HmJy?a!WI!|)>E-@`JFYBbLs;kzjBW7o!l8Uja4>aRu^6ZVDwCP&f%z3j78=sEDF zszzbmFwBBGZP4+q z?ITsmQxE_F7ime+?LAk;2B0%cUX+F)*aT`=UOvsbHSz)HEXL_%U|++pd)(xLAnfSO8W&9g&TX zhbz_|DJlcKAi+N;)~6zjL=6v1{vzFr^IHkA+rAU!-xbPE1}a*uGr-K#NU9M*2}JIC<~8qV=_5A9Lh$K>FK^ze0{Fw`X^^coT;(0VxIY@D7C2+>X$}k*fG>dHo{9d2H?OFkx{519_GM=Iw+FGP4M}2?n3f;<`=(0t>g!-N8oRONJBUugog7O6A(<51XJ+Hv%!_KU5^>1b z3KiyZ>|+Qhj&3Y!jbgL3ir!lWIF?zI9YLh0#MKD3L+6zgttDKaTNP(tl*6w5{JP+8 zQSo2QPpAwKIM#D58w4&8faB$^Gt&>GFf=Ii`zc$ICHZya6+rdpz~d^V@3}*v~M=-QyY@iGP8A0(ycuvA;l@Nf# z`WXi*%>3bL(%Dpa!BLl~**K@^A;Ia5i$52gjCyta2;kL!OnWf($T!y_p*G4Q8Mf9g zuxN};+TZLpc+KhNeFy|52N{8@q1AF~Q| z73>x~1ZWwRc0rU^{4hlE8+0`~=*1GL@MY6t6VSKiBh5z)T2=<-RaOMLJ=)Vf+i*ew z!@NsK?pQe_IWRKr0uJ=KGW$<|@~j zUY6pZ@(yr6qUeDxUR+)^kmGoFHpi;(9a?Gu|1$x=Gzj6I}P zb1Nu)jvl1pcH{m325=cgQ&xiX>4TDP_eo(v=;SPVX`ia!_`;nfO|q>rN2RU$8(>AW z-i-=z>lD;-XP7O&jnqKYu+}Cd6#6$4Xl(PjAXUnh&(U{dSpTY9;b8 zmMSt%9xBA8S*O3A9z6enhW>^1<_RR-RH%`A^<&NK)7N)$s-k>fG_D@Rn1n30x*B`YG#FU{n>6Tr{=gTfet{p0IE0*p(|FIYy!C(Oh?5h~B;*|AgE=1;4IKq6& zl1BcK+V$lT-Zn4$*;a%x&@%oD^H{A2gV-}m;1m+6O)%0aPNc8AJ>Ko8l|VEJUce~9 zoKZ|ZxPTdUD0PM1pxrdV2%+&JO5;vic5ioSYtCOX@g3Q!>S_IUDTA|Dv4hz@Zivv; z1Soon=`y&fQZlC1UUHxrX457iM)o|{FwS1J2`b2y5I4G1Vj0rS!Gf@@ZNUHOQ2xcB zu(0K8V{$wz=4>dTN3T`oj5Mp(w!-Ee%qFc4boTf@2%WC7C8H1t%$-2Zt^k&9Z%}#V zsm2KPKft3O3EkyU*I?{he49bMTK>zR$r-_t56D}+JW-KO*#bxrQG(@AVd${67juGb zI3g%VTz`Xg->3XLq4gJ1S16(p7g;JnNKj8up%9e(27J0%idOrwIG0m$5NHL6>HliY z$T7<7q;56$HfTrCNpcW!5%ve0veR(QgR##X(}uTgM7Bo-skzgUmKnaj(Kf<-Q_V>; zV{dj2OIde zw<9g`Xn~F+p~iJ*OAhS|2npMkYtf%|gBM=sp?N9R=VKOcsEXG0-I#RL%UW-@>Vc|T z+{nHLZt)F@1PBBzZX!n_iIrqcn3}FY*Nl=+L-8O!j<9hA5x;Cfbr9DeY-i|R$<~3k zbCNOhAc&oj)YS~E0bm~KfaKpF$A}17ZEE+Y?7s(tXTHf`_TKJ)N!8;F^@L2 zglf4C%|`&SxrF2zyISK#kNNeWtu$+m-@b^2BS& z8cX0o)Btu&oPlZ&!hcz^965Xz49D8kBY=2=Nudk`*14<$KPI&cQ06f-42p-X6jY$RQ9`Q-Da;xx*3 zl9(@6!|n)G>_y5Tf8M3VFQAl-l7O-K$p+Yf-nOM+aVBi@Aa?7Nh@PhUlPTY(d|-?E zQ>-!9W^V8jRKp_lOF}at3zsm>NT& zQ%lNuo)QK7s#duGz}BWOCrJ6e2w|cMrymxBMPHTqlloc-Q?ex^c$UY1?eomJLhNPgA*$J6R$jO!TX|6_mnTL5KaDvR1Q zU?PvY?BCo}AT>`BQcXt#!$<}b6lq|lcGMQ3sX#m*1S@ze4 z+#u2GRMe5StSOntK=_r1H(q}{sd%J(4B$s4VpANzz$~Cl0Qo^IS?H*-0i_Hdnx4=C zr`^c6VU;>@=_2L7roTXmh-C*sH@TRIf2$xap%o^1J@Q%vc%To-%(HAg#Ouk)2pal2 zc_iN0LuqlUU$u?I;1`*x;LuD1bCUWWWlR36|zn9#7MphZ`Bjabbpi z^B^|I>@&;ob*;J{?n0f>(DqfK7JuE_`)-YNpW!9n>61PY>gOJorFHrXy;+%j=~=rv zn=S~+xu9PXn*FBr18tj+NzKgDtOG5{=I%a`{)P~uK3{o)SLs`I;zU*O-j{tZeJj%i z&N^3lL+l{KO{pPXp^LaE7$x~yD(fanLg@^QQ7TZJhHdI4M@VsWeafz0Yp~oPxpp+S zl;4qv_2MX6w4VxR7AcW1kmMPM?@jJfI%?YZz5re#50lEtC#`wbZ@5k>V}ve6XW}Nx za1AS4h%*Zln@uL@G+_2+(n>T3fb63NKas)!*pBlsy|dU-Xu5lF2jXJT!QLFRsLzD^ zCsJr_dbKW6@wzzix*3ei1ZeL0A+Ua~LykGDCoe0D5tr%}G9ZqIhGz+$M_lb%- zGU!=QNw@0T2EiXskTa2MyU$CXAXx`yYzj2=X!q_ht<4P%$8EAZYG-CPXMUnQ^h$>` ze0KY##1a#OjE->2BU*PgGWdh-Cw0%=4mrB*xQp((|5KS#|IhCMH`rBBI<6iSh??@x z$vuDVUs^Gcw zs~SP;=D}OI9ALe&94A?3!NI$ab zU;}ybb03X3<@KnP#;cOio;yQF#wlmC(?1_zXTj)Y_3I7!Z^-}*rax-K^HFs{+&r$- z^xTevXWy~rTSgWXzY*3s)%tqe9g&`&o6l<=+NbyA7WXNP^OGZZmIUL$`_%uaK2QG@ z`f3%b2BrdmWA#rTwqLeR&oMHo0|l9 zJ$A$JS5uvE3Twg_;~+;FofX$#oK$Q>t_X0`Y=b|Zf6s9N$re)LypRE^DOFwfe4Cmg z@_F;X)7OXyMmyj>Ye2@6BgSajYmI-KH(OT`*p|O(Xy5@{C@r(zKeR@>cEv7 z@CSce$1{xlEBAWqFEPfuBCl_~A(7>d?UC%W>VLXBlD6|%!J3sf{?cCeoxkSvYPSf_ zH@G6U8tITq!(_>Y+8zO@6e0t8y7I0a;ZMR7|Cf9GWmLsh(={j))iTnfXug233~Qyp zz6HvJ!*3}l5a?>(C}n1FEQZ?f4`T?hMW0jR0tgZS=R0D*OWWP zdXO-DscF&dQ!?xFkLLM^#lY$pgwS3LF1A@DuVZ~K!0!(>`^0_}6w|~$x6N(af0_;I zopp}F0?UVoyPmpkU$xaR*ZpU+yZ~0q1R$p#brP2^FN*wtHG#cD#ezqpVP4zwkH596 z`Q`Nm`{t(0X9knA|9d)gJWh;fJ^lT<>p4x~^$w$k^BAVdU9bJOtaM|1*}IOHZ0+S^ zTr5cU@J}jE+?;mR_%(Uo{tDxU_cAx3=vPG-*WzVc*Ixb~5oSixD2t?@<(0b!<%zc} z!upQi`(xVY7|ZCHr%N|B@QiXZXJ=5zE6dNO#;{hlZNp!J)m+IEcQq%I0zb}X%uE-1 z3tB=Jt_ORasxOjSddJIKFW){{snR&Me3=}LrTYwCp_Z1G9oi}WNy{E@^e(e6|p;>PPc@F?dl^tXwg5l{GRNQ zYu)2dTO1Po(W|W0zw0-kEqItyXmeQZcIx@n-SLuro)(^{F@ky^fv2@?f7^M4FZHSW zJ;(Im$wH}X_KvK8F*mnu1@?j4u50YL{9{3XgSDex;l2 zVgs^nGvn0odb6c|Wj7v9AMP(Zxa6pN!dEB9C-U_R(<~KPfsa`FbxNPxSa^kk8dHs$ z?ip?*=82azY9Y~8hq$9M$@0~^agZv3Gts>T#Tnz zP&QyT6H2jan5$|{XD zurFMU92AaA%;$>^xIYbhC7p8DE+3mbc!H+x`$ZCN=2gD4fpz=D#iWb7Pjv6SeN?!Q zH%wALV09$?+hE~S(udk{^@m@&U+wDLm-J-*kza?G^~1A2D!i%-wvJarz8~rB!&f`; z2K1MzisLSNr_yzg|7X?z!7tP#+C|rY{>o1hI3t%UXTaZ}piu6o9+%Ah1S)R1T0ibb zmioJDsuuOXE1dsX_5=&29S@KB2@>zt6h2T~1&D?4kQ9)J3{*#$gwuW9POKgUen>s*zEn;=Nff|tD2 zk9FhTq}rP2ZYr6EnbjVY2L16TyQhygcKZfKL^!^!3ai1Lgx&2TyE15-C(etW#oFKt z@=Q7Fi!UXWuJSA2&8-;*)yqex`u~w+{EsB#e(cg4k}00kDQ zf#c*vunJ*M6lN#&EF*g$g%dR%FO9Vr$)2v>eZni%ia$<53z_7IhhZ_s*w#xRBU+fA ztVs-pPOZS}H<3nw}cDQ*HmlzhUIvWVqpqoT7YSwSiu6O4}cG&n8gA7baMxB zZOA*aQ%gVDK{jjpI)1yW%A4V3V#(Y=@BkB&k zk9YIs54691{l}N;qx+J}oadM#rb^vlX{$;Ywj7KK$#IAT>Oax|61$me6x#2R>1Wl#5v@pvx8`ULmLc^dOOnpb6xXle`i?~8u{le@LOL1a=8pYI7B>g+# zibc~2jcR-%Q1Eu*HjZ#)%OnP;)zJEd!JoAm0GD8k@>%0tHf|L+E?#Q_1WBYmCZB~W+PS$nu&c`DEJKFn zcaYX|5aTe^+`%;_83-1mI*2r8!ye{LOtN&Et@Afm^GB|Zkh5|StRQ;Ue;GILvwIXD zui6s8SRrc8**5s#5zpPaCd8DG$=>zsb%B~*hC~z~8i_l1uPirT8kGD^Et@~+b6yni z_+Y2aXe1I;+xWkzd()t%vbWva838fMJf{^AWQq!iVo3gK0|G*nSrF2w$RyGTNR*hg zGK85{1X>UxA|PW#CdHUQ!qAGy3<63>(kP?s?GU$Q=(BvP-Vg8dd_C`b>U;pIQkIqM zy|dQ6?)$oam$g%+?IkzG?SXk}MlZ2mn}vDCXAAG0!)^(i&GQahijK`Ya~^8mU+tV7 zl%BMAnhqPu6b?feer1*ni>zDZ@>H>>>p=90JoreH3K8@Tb2zOrD?<9DMz;0ZicpFI zg0Fp#^qy#d(K(Y}PC?=Q!Hk!Dg5qY}4#eT}R9EYPNWmV7-9m{rnChM1=O7=%$N+t1QO?X{WAV!N6z06V$Akk%@AS~i-{d@JcebB>c zN5i`2_kGOa$*GqI0U#{`bRK+;KuzD$>^PY(_-0AU>g0G;9`eykC4uqw+4T1l$MD)IgCC=xLcazl=DDsc50YM67$ zvWdTc|JqRS!Q&-7LEFZ)?&`@ONU=0)r=Atm9Bs?i2IB63Q`L57tGg=zv zS(A6++rrQtBUEr9e;!&ktC2Uk9P{Y$(}iZs@bsE0?WP(*xJQ>qX~92Vdd8%!19%WR z6VpXi+YLlC)Jc~aG$3YAbqM@xfK^Pc8$&DX={j!C)TmpS)`qh>d8pWx?Po|W##keP z-THt5tc&HmqJDDSTw6BZ~Bfk0>yVWwx<6k0F%m`+CXr3PIr zb7-84%A{{)US}Xg4(pf3=8;&m3Ms<@s!aVB>G&%oYpvv+CWdLhsf>)Q4EK)DZ#@ui zc_dneEi72d0|3P^aB{9YOr-zB26L$s;u#-_nukomT6}`hg;pYc=>qfKG9V59wGmkX z%eF=nw35owVz&dOwJEZN9Q4LKHhUJqb^AX)*qfsvyah0s&Top*=^mwg`p z7A>SL$BE@+uMg;34dd2OUQ@T!g7$YF74(Hdh>5nm4h#T>2y!}6z=StJ-^$YL6`<3o z8eh!`GauXSRQS!srBFKX|FE|(bp-760@*>hCoAr{D+@E{6R1h^fhnpl>P}efXB({m zERn@dt2)DeY3c2cz7jpB7{Bs8)QI3)fAjN4%5}L~TQAN!$|cu*yND_CKsl70%jP&g zPtlMo={2d!I4K&g)WvTXekKRtYr43L)&TH-0vGS0<6MVTSNEL=_ENj(tx)I8W)V^U zuDOVsFa>rT>?zoiPXr=mTd;>k&0N3G!(~|`H^78X7{w)MkqkOyzl_X2rnwF4=sJ`qk!?je+IEG*ZFvbzS6n2Y>;=eeX;FD;(TF% zw50Uf*{ma@|bUM61!>zqM$h>wt51U4L0ivBjF8KxbP-jl4aLb#oD=oDkBOs1gn z0C+s2Ae!Kn#Bq#i$N)F>JlSkGE-D$P-YlkO%tGKp>zCLJ#r1+5jsFV*cHQ}>>ii+#FZn5J6NcE7lsN5&DPgwc*btA)RMYuRs{*Mo~1V` zpoVh!(Y%YC%Y{kC!w)J`yUqMOchGwI$CPqXjFcY_#nrg~Q`dVVqjRj(tu0$!xyvxM z*l%RMJ4I!}y_g!|S81VMFtXsXt@;Drx8_DwGRG|V5m&{QglUPD9_4yJellwHe9G13 z#7Lcav(n*H!=Hkfk4MZfJ6tjjPnq_{-=1C=T9`imvE|uKryV6)%D%<7^0L~#@RH7T z)j(zZRQP)`h(xFAp=c~ceJjW($xjZdOqBRxZ7OoWjE{?ojJbMIrVm0~M14l~5ed&9 z>9{tv>^sx1b=rTRhN0!Gx{p+?TB&_!PGCAz>8`eC3{W9!jE_dw*|%ArJ6LY$o*Vn2 z@QzM~qlI$qBLDZ%g`=Je-rT_&+n7rC%=tIv2j85`)2{L=H-7o_Rk3IFkxH%dU7U2| z`k4FwPw)Q!$(^5bQGVDP|EfM{d=^)g-Az>U%X7X{ zm0-3>M=c=cX!7ZpHs^a+&G%FqSIz}rwFse~(^uTXy&k2etz18!aM4cDJ&7+*psRRi z*%`Vk<`M3G3D}(*(Mz4Fqkj%&Zv;h0jRbUpM^C{!Swyfmg5~SwJF-34k1oUUvfBP6 z>t!C~iPr=as8eEHi8UxplKi^^^<*5R0~(rI4%{;UIA3Pp=r;VQu29zC{eDqR&az^t ztm}h|#oH_P@#n<^dJ>FAcHkw&J)K0c4Mu~y@ESQreDb@^wqRWk{#FCr-_g{-R}KAE ztM#S}NG+y$wf@k|qD-jeh)SdFHbVK)SB$wuxh1+Ivsx~~FH4Pjxp3^|cips6_-SyG zXykgi_PdgCCGD^OuDN=&+|T_(xwrCn6X$pDo;2mUtady|H=XJK&G-TP?h0Z-muL_i zrOC0^{Y7V`e>F#%cH&!5sj-jP{2eeVFRW&c*w~U>>u1iBlP5 zL%!+T$|r-hAuVuJMr8T$>_99=?LP@x2>^kfLMUB*o`wJ(zK6M+d-sx5i-4Q%2 zGk)0(J3Bd>*QxkfzszQUf25UG@!%tkBQWi7wUM*+taLYVI@qc%xO4lCzfU88vxU?z zRuTIwvnQyNU*{>QpjUSu>8oU`fL=O_4E)x25Fc|Ea5`9BtLa5jcXc+y^A0mngd^RV*EulY| zh2lJH++t1M0@x2v(|y}Mmm9iZ>S)nK&rX4X@z~W8i>=O{1{$dI!Ap; zptQ)bkMrKC7EUl8*fY!F!!ohvqhzN+?T^JA0qSrn( zU&TyVQP+|V_w2`F%scmY2+#@?W3n?6CiasJ(OWK+Ze*_dbW?9o8)!X*v}rVa-f#4M z4|iokrxUNw4nw8L^q5fJJ--ihjYQ@#Xk`XS&-$~_+pK;pV~<3}2owqF*MeIza12IR zYhegQJwgquN~LXaC3EEiYw4dL-%JZ59l~Z<>GP`+6}{wkK?7r7jkd40>SxJ^+l+*3fCX(aTV-d7-4p;<>-_DpXYknDrPjX#AzmFd=p57!-yBqDo! z{$Q;m|1JeH@QXT8sWLT02W|!VYErSSC{pDy(??UJbaVCZM@H_CFw7q|jO^}yan-$@pr;*wiiK+KJHfB0t76PZYi|&+qlah}n zt@NQHjwx3X)Et`S+?6?Q)|ll;ds)#S@g|U~^z%`O(JZ^GSVeSRdWRi?+4OFX{)D$= zQ$MGHM&Z;E6rWXBNBSbl2dN*15)~)eFAGg1+-ZIvA>wK068No(F zpWiH=9%t#2x50AlXvFc8L~e$dgl@6vLCcd5jbno!g3%*7sotlPs3$X{o?BSeqjes# zdS<4@(q1?$-2Hg4+cv)D+o20z?=2Y7%Dh>Qx?X4A*9eO16|!T`q8o)7bW+Tv-!L8*ENL>7qry4m7KdB6!Usljd7R5orsfNj!FuRw@Yrhl3h)M z_()#n6`T%OuRHO{xI<%L={6M{Xcb(KItJ~5e6m)oiMr$+V zT~H3bIUxt9y-bfOJW=pE6SUF9vdWB`w*TG6%|ZJ#{~oRJ`}9yx_u^h^lc$f+s2e?H zDY(=K5kzT_0|Q))nW!u*ReVUYRr&<$Dh9Hk9^5+EC{3n5?Mt?Vc&W>*^#~bp6Lv?b z>g!7@tfq<;1xbEJsS-y)1vR-C&hdkJ~Jh)E6svb4x@bW!g9fn?)`}~x- zXCH&_PD*FhQ^EeFOFlVVPK)Bc($v!yVJACBvTRvACEb!T&Pb(6oDt!`>&IIDPF4#h z2=;=luiw|}xu<%5v((+N;L*u9`Bkd-fKBh8@(`6lbp^|I0!*f#E2F1h6*NI)!~B4i z+njBL_# z31Gh%H5xXHpGMs$$BTcL4Xnm@0THygBc9zD3`ku46GEVY$i=BvCNr#1sn^E4qcQ_^ zrH`2A(AH1W1SL|D11v2_1|Yq8zy7Xb=P&JrNz-eP#0m)^Ta#%JU50ETDouktsEMH9 zZ+{Iw`Mt`U$$uq9jwxX;1>ER`pVSZv@6BJxi@_f57=E~LR@cDK{b8Bw%RGF%caw@o z7FIWUZy|6%J~ZakTPo2iai`x@$W0EEr&bv%Y_IaeGeuXbFmFvvKg;pQm&?S?fc$`` zMPZ$JjpgGUw7Tpa5T3Ly5zay1Ir_RtI>p*vgLAk)s~}JxDT@~#W}p`+s!gnh0i5Op zJDZ~Y5_-Qp3rPxyDpo6Lw!8f5=-lf@LiU7@sB)CDM%G7HP~rT$W(#Fozu-DJ3NHeI zJFj(6W)!ii_a?XQNS$l|kH#5EwhURY_8}kLn6Af8fy{`TAC~|yh051%&TxL-ERN4M zXo2Nq6SMWGLNa0DQVgAeOX9f0y zIk_C*Cn=;4sj2-?5{Jvi(9JXuA5!3)VGpA_`m?A_yMYH(Na&&JhUu$G3o#NyNCsA- z9FEI%wQt1jfmF^La74LD(#IrCUP`VZ6>(&`7J8F-v+#p{eiuoWU?ofKhvN)kN(VrSFr7p>r2YqM1HS#g zBK%rVJy8>KN0Gyo$hqz@b`vVu8g+A=su6n{_cIJb`2&(yMRM$7JPMF#j!J?6F|H9Y zn3-q(gp_n$xmHAW91DiZU$cz+q#5js_{j{xcp5uc9%tt-Szo{bYWk%*;Yv=4@(^V^ z$O}QIfDU(WCw|K}{7q5(BnB++LQLAU^)UHr8L8h1X^=h(jqO(?>3?r;%LaJX%}wJt zdOWn6k*?^WA`LMi+ys54zp6n|I#Z7k$_8TGRBcJnVsx0^#G)+&kf)`Qc})JZf&{nb{M@7K|S} z`tw1$@tXe)KkFs4a}UyGkMS4<;|G7>U!;SRVov`Esu~N3*S{#CWbLaVvRg;|)pGvd z!ixHsxF=tUfBqCGnkshb?;ap)@EO~Xo-V(-ie!F{LTDi)4eMA(e3spFe4xoi>zkdw z2lG!;)s}|GEhP(Aye@3-?DEQ9`<}4}S%kXrS;UPpQ^}43uY#k*G&%}|UIo>0b^3Py zDce1;5}Vp=n6hU%_^;D0u?0%1Hr|cL8=f4Ci!|K@&jxz!aA>Ns2yZBN_Z-eBj5&Ep zp0hu*{OYb}zyS2*_9dY|Bff}8EB5&CS#;Yy6VrM)^A2Tqp|>$enrW^k`!|eOSK$B* z0XfHKo1S1pDQwslL$eK+92;mReY#{8_kKN>qK0IFVn-J_yQv}jmFS~A;6xK>`WBB} z{oa7DB=^c>T}wmdeBevsdfDH+M#n6i5+dvgJP4ye$`pM=Ez@fzYCYooh0k01A|Psz zdXB<98Dz^xNUqnI%o;?Rp)+v$WOL>SZU-qtro3@*w(vWbWeB^zp`Rb8m?3wCig#;& z8KfZfk~790kMi};jQogobABi&Jv5wDJwp3b?a6Rfh23L?_Ku4R#V0H_HJQvjmZ4Ds zOEWir=ZZ+@*oOMcBIaN$|B$s-|Jzd~I`V-j`dOzvIYX6c<+ksd4vksvE3-YFZ3emp zcSQY${}VpJTbSMreYkOz--i!?H>Ew`AzXjz7R0&7d-S5!RKF^6+YaRqV@uG`Z1ZfV zWyG~fQUo{909Ks$I~zc(r`?aZ*65$1WU?yQx?bobNt?8h<}v;tuD)RD`s7l;{6>*t zLHb4w0l_trZ4F2agZv*Uonkj732K0%x`6#W;Lixg8$ssu4#q4)l(7>mqrO0m~W3m15DWBhMjlOrXH%7NR+sjdn_PX?# zPFfv}!#{VIYu4@c@-b2yXb}tjWoB{MCPi+2TF=?Vlbqi|&xW6ct>;bx2KVl==(6;C zKGx2@*vN3zaS5w)fa6`40xF_+-8)t1h%N~(71`n*d^38f58`&*B0C^?VtWvddKD5; zwIZln@53Ln!N*(A3EWa7K&3RB$2-928#`eKHUL!qn%fbaoB2E1v4pA@4d4zem z{w?oqN8H2k?fwu^jU9pCfS?5ErI*kYr|n}0PY1~r{RtOm)fYclz&GJJY?{oB#<%7r zNn99Ca0Z{9h;^!Br&4U^{|sLx(wa0SHjrR!<>d2L_z=9ohCR_{`1vJNp0fnP)(|2{ z3XS87^)zP2)4)lGtth!Bt*0EAka$Bj%K`9nQP2=hWs%rK=*~%{t9-5Dt?LL8TgnEn z5xU;v?C?G6`TBc++xrXuV;W8^aC+`Q^kN&PQ^zo?OoYkdZN^{XX^^5sdxx?69?JUA zTG${+uIuOR-U~e888BLi@5KCJ4r>SsZZhS;w`>#gfXk6>gfy03z&%cbSUW-Qidvtb z=z8?GsojIKPFAMW^+kl;GR!-Og+_u>-t4`zS3<~*-l|*?DR6KxbBOM~tL}KCYw#5` zF|Cn^WGJPS`pczv1jm^UzS=iEoEpPS)G9d#-{J&M=#g{f(_h1sKm(P`-(TlxTUPcK zgjnxi%|LnAofbTPTiCRpMe4t;T600QMB6vqE#E}*T6T-gzGSSrR!{@|0=OzYOME^% z&6dzX-%c68Z-_-@YKxwhXb!Mc7l~?2`ErTV7}IHY#(m^A9uW$_JBtX>AldQ$LdK$8``_DTkOYdYeW*nMm=JK_oSkZ)&4ZOKkBUgmjipf5Nr4f zFfTftU)|Lw)H?uBqc5QA{b@|XrmP>y;=K~zCk3MA0W1F%6%tjTm&KN-qC|t#&6L;L z#AUr1MIeoA{GP)M5wIsUxYPTj44K*NEd0I=_jv z9VrLw0jTGXujcWAz`tI`4g4sN7_`3&;xHZQ|7eNg?g^hByBSgxz3Ei)>&qu}%8Kh1 z+hNo0lig?csy*htMaZ8kqPc4O3-fTTX{FqW{OiYX**o~8D3$z>yFTqfV|$L?3ms$J zD0hwv^SM;eQbzac?5;C@rM57djAd+0OV*C98avrN%5}&$*zQ0ZW0&?%+6XICs28Gc zuvLKhujdGGyps<>&pG2I#v|l?pq@A}+)URcs`!jjF<}T_CFegENJ!z93e}HB<|g69-md?qv4!x~vH2!55~Y zR>W0E$VRVadO!dpURoMPF&YQ`EsjWsr@TphFzl@|~hN z5SMXSao4c^l*fpLdF=b6i>||;J~f*XvT%E;9s8O41btE6+CH38et!y>|9gn-0A6{v zxU-F&!8{^hZ;=g6{{qwn+Ok3FCYkB{?~CSDx!^3D49aUVnp!{aXU9&Dox*RO@cKeu7STT1PL`0 z$mSQlcbp9!?}bJhh^06Ts4g7&q5?1`gIBuo$&}55l&uq?s|8(s=fEnojcLfQ!|*TA z1v;_J0gTKbT>A|JAnY^DFAw>CYD!?JxKDHtr0-p)BKdp%y1PG zyR<8pJ8H<=AyA#(lx!F8LF7a^&wl#!3wi)d#jy*M!PdZSp5rN=MQ&W8Z!?7GIbZ3C zyba8F5Z}ooo27qR>==kZD`5@!?@a|8zr9Flj;TfBopVo(#V1+a3xA{k{@ng0m1LW1 zs;tK3_Fk1t-^xz{$SOwH`|!r)(BX3T6ph{aVQJ;sS6fsRQ(nb<5A!USZ`;oi!0vZO zYu?0~en>A_zmV4U7uog1CX_|baE;&PvcQ(;Efop}nVU==KE+JBh(=+|(mZSfln}@9 zXZt4`g*1r;M#XW4m?ArX*wxFr#{dPyCa32Q=5_e+Nyx7YZWKL7tc9*?}nTY1y}&4B7s~pNgB6X1r23x)HOi1)bGFZ?O+9 zUr_(vwt$ogR#H}GTShN6`EMLBi|c(j!aLRSc&Hg)D8rI5(q_<+ik7{h>aa8=X3~N< zKyO$F{Fy!+jcYkM_;7TF{wDBWxZ;Jyt(--wS_D|WQ4+jZM{*o0xqEeH{fy}cNS0&N z74eo#!PIRktCiSI?ei`FG{W(qz7RcSUJMr#E}Pu>{O?pIUhp|LFLd{j~HaHeU@HL24(S}IKWt+6)P%*)t4zRvIA=UR28?qpoN+vy4e z70p*x(AUR2;ym@|W?3f*83RLOB@NLZh+&OvK&Cb9)+oULF-ZgvsBpBF1Yee+XX9a8 z-wL%22Nv{bdly>0k8m7O`X-}oeAF=7G}VZ?bvuY`sC zP^Kr(ApcCmaAg|9(4|D#H*uNHsc1%;0lb%#JpfGdfHKa0B5H)t?bE-| zIDrR{iE=UpIrWHa0Iq&L+94ZY_VyrvIq{OI1NNY81fx_YUf1?OUF~G}e%A9c6MxI_ zD@Un+QFa1|2u>NZ^aZdushr5I*Zl<=-NTT-D?$^3a226Z4`$M`v%~_5;_y;I@Ou!n z^*L-K@@g{fV-GuJ6~M^R zu(kk1BpD4_MQKk4yq$9=9~fs^W0E933DgH+X>>z-?Nja<`CBupOTDeC+MeC38t;7S z;9EUfHSp@ak@q%{dsRjjIr88Dcce1^)R)V$Ya{2d?s0LDZGWOPr{i?V&}X2B#nG0%jeJl9P}s z(5@x&F{6pbI1!ZMV-qHm$-kosrjx&mTEMM&~>5PaS%_8@COJ{ea3u1T?Vq)Fm%&)^V# z<&EaP3m-e_O&eKhAX&zjB!uNPXNSJ{j>IKoJc=amsht}CTe~0RiwdT1h;d{! zbfZH7^idQ73THheN0buj_T5WbK@9~M;{P;(f^9igX4s6tbvcukLb*R;SF(62%rHzk z1JL`9&zlR08$x@3GBtur0jxg&^rEdz>H4SR=}qjV9`T8=$&e*$0ExCl0K709oNLZS z=>jv4>@KRCJ$VioE~M8!fnZ%O0WH}*Akz)I=6I8Ro-wID>AD}F`5I4*8N#wk!L2H= zG=+`(osn&6(=cUt_1@NGDiqjqxv7`WSR7EyZ*A!{xv;;k*jqHB;|X28a>{IH{>~h0 z^5^Qlz0b~n&Lscto;688WzF6(^1He_KDDDaKlVj7E?>Js$FSTs?%kn=iG168i# zB@0*Wr?z*qPV}#LV>VFZ!IAMV={>9toWNl>u4I6>fxd}T0}S)$o0|z6$lGBfumFcr zHJHH_1ZnjzBOvZ(+;hB+93s$>&rYsOWmsjYf1V~RMf#kliE%407j`0C=r+iRI496W zt5Wpd0Y&H}NL#^gA_;iiEFC%rhZ&Ou)lMNX96u1b;iUd>6`vXxrAA8mJbVP2E_xUk z7`WIrI@*#~-VsN|dawLI33$lvl}@@cDPDmjF;5%fllWe>TVaVs}V)R07gYoM#jaRTDcJhP?V zWS$FAFXHQ|bb3Vd6n<*ehn7vID-GNi_^w*A(T|$J^b#nk4Xdrlj;#?-t z+~FQtY;gpKwPV-qnJSYiI1lGF0vBgejxy6gsf~O;X7sfhnbF5 zZ%I=^6ktVN^TcU24r4Ip5-<3veUSJ!0XD;K8?8=k{Tqs?8@WnmBP z`2`-QVLb%AHHbgqrz%?$3F!#jHAJ=(Djoe2 z2=yd3FRQ=NQ&_4H)C6y325-T%{N13{RIn0WTd&n}Dp{bWIgn9h)+@%foXaRnDWzrk zRVVxXrEBSeI$G|X@z3jX4*kk=ADZ@VyPRIOWvIgEFTv%Eu_Djl{Gr!-W}xPMF?F_1 zp5?j@JKel$9C_a`Q+N>>s%R7+pCF%vS7RHJ`Ly@|VgtyHE;R{gAcoPB_`v;q8jYfYEQmhwPCajKgyK5`h+XQGZ6NKauRf>d z%+%CeVb|A2e?XBPEOQLLJV@RsAiU*@(m=Qn%TD414i_BujcFrkDa(#BNL8R%{v4S) zEARv^6mkgD#?@x8cfkpujpJ!ZnN3UVZ%`E#6;EGb{ zCu6e-gW`p=a9`Nz^vC$+XYk=8K;XX{=pl0M%LdR*m=5B4$^dUGZV!n{kOGBP7~}1F zS9t3UnA;P$8Lp&R7n=f6KoU-gq|wPT0pUcE27Fo~d95HzA23^jAs}bZI`R*a$y$fl zGmwPi0|2Pp>giXt6cnhLsdnhiHj%K-)hQOP0t7HxA`E*%HWt{ z>T9+;%TxyRlTSk0BkVLzBD3O?vNya<7qL#~9)?r&SO^1d?WnHsx&_z!3)<%W z84}krZnf`XL|KH=!+^I;(dzAazgtgk2c3(X4JQ?e%A|Lh8t^$#kgX-3``Lkn=soyU z?Z$r4$Eg(KZ?ld)psDM2TF*xYQgquLXq=e_6q3nT)-B-zbBEp2` zKAj+!%&;IEXH0T*g;AZT4huU0&rTNVtXX7X4GjXZOX{oaJNHgELYTL3rHE<2x~KVXwmT4|on0 zab}I&Tr^%HpGDm^AE-P2O;5#d z_-nxBf7iGro*0da&2k^=UbwnsAvf zsoBwNOU1M#XX6Jq{(rX#tI39mpEts-(q8JS&wZbd#gr7ve|zOxER}|~2kzjqJu9E3 zr};d{yZ^_29(ck4q{#*9}vl|QF% z3SWpB^es)`@s-IvgB;2PXl0Tsx-)PC96(FM?j+-|#~y$w_g3;%&~%#CWDk#bQS@OV z&FC}Mk?(5!esWP?fAnJg5@k5TuyrM=VbzP`2MAzIj2`^Nl<;GFRsz58V^T9diKX(B z{dSR_!)tQnMyW5@;!|{hiw5LT@!s}x>7fuYySev;jU!ah8MP@4uZi^%VC1PBmq-4j z!(BNbfAJ>vSWKx+>Q|mNiD2?|eyq$pEA-h=oxFRM>a2#b=b77Q2BHhwa>vY_qBIh; zMnMzLxlWYk<@=c6em9Os2)_VSgo|n`kl>_7k6f z*Bl)M4hcovW-6x{4#~pCR7p-Dw_rjS?jW>sgSm%VO+J#y&nggIxB-dX;ZKbFZ^P7y zTX5PEo8eqa8EnuwuJPTkxS}#4`on2^z1Q3P%n0-P8{qs~um+GNfnAEmAB+5o(IuTb z0$<6HOKmbIa#kg_KB-@y2M`Gv{?If#ta9<%rW(ESe_S4guD-~sD6e=gABl-9eVTrJ zyr!P?o3TT=NqxnE+PRk_<=--U_jP$B&AP?j8#Qwy{LtmPd0f)$k0$x+EWGOaG($wnx8yhbq4iX2jVT+nNM5Uvx zyHbeXd;}7AYiHN+vs6y9K_pgP@VHS6L8t9M zwXI7lfsOyhN1pZXGwj8*NKAAI!8oU*w6pAx| zaZRo>Lmz-%VvMgzA=aZ6rdP{X7WhnluXJudCn~{QDcb?I$=b48qhF|=+ z5B=r1wSjczu(!zS2lYIeDn3l<=c!{ig8o7>QI)lktc&D9Y>s>A7m^R3og>pkOuGZu zL9eIvhdx=^ts|m92iI?R8Gl*Z74_@$w!yFQ!%d49hGU->W#RtjhFSgD`YTRZViEw7 zSoMi1L{!QR*rLm-KXp6?{os?eN``zYSBm1U0G|s*XK*2?M}X7Pl&S|7sBPpZ=&&dfVt~FV z>B34^KF$Wl%61@lXtDDoDdbl=M}{7f1PG+2?c?U&mDX9sPL~r-xNyhgRHD$SQM+iE zXUlrma!cY1Jdz?lk5n0Z{gYXG#A*CVm2-tcvEfy&#i|r_c0_&sng%VVq0JuK2$XZ) zi5v~Tng_GackGh=Zs%CNpwHJgLpglMGy{Oa+lc_t5s}tivZ)CHQ-Ws3MkLBBr;Dz1 z5q?v~4|D@^ zkU!sx4a#M{vGxYE5=)(=(>^el*dxdN*j;u!gR8BcUl=7Z{KyGZ!x@W}!JJrrE!0nY zQzv3CMIK(_DOXC=VrEzk4^AUA{>KjXq>(_DgISXw|9&)Ol>@bFnI{$c)y3w3sGUt6wR{kKi5Gbq< zi@b*M;jVHbLSkU97tCs{M$p{Li(}K)2)cZJH6&eTNOJ4#F4+iurEbM~zzJMl6A^R; zTAN&>IIlsh?f6W5HVz#cUt$C}vzSaP|18Ds8h*sRQibModyY-^3HIi>hsRWDo`wGk zZ~7p7y>PPbui>7VdDkx|yDyvq71ZatEYY13<>)MQ#9@aN9mOqO&dvknDY7^1-l754 ztvuaIjeM`V%@nax!P(zE>J&)fP5$BvbP9c|xlEs)l>f79ts=+ChnO!TtY)V$KMuuK7Kqhqncc%yB65-G zIrQK7E$o>`pgk+0-uFeuJE@AGYl2Edqp-)she#hq6%aayVoEyJv2TvIouw+VAS&df z#gGWUBJnU9WJ;95=)?-RByl@9YW`#cJ!fnA2Rhc1t)p~E;R$x(i+^MAGv${7Kb8R| zv^>#G$ft|<2YQ1{S=P&L#AgFXM-p43iE&fgD3b@;l!PpzHgj#oLJI{*P&;$BOYCk= z3D(WCw=!)F;ezgB5OjsI09L2(0yDZ&3SFq@JY8ww{Pn$~vG<*7pRChWCbv3+^rPMO zy1i-aVFvmX&V&Y4b(47YM_(8^n@+hMev?NC4sePw@hDHu)2Uo$H$`8yP^b+H5S#oJ zg?PVO6q-J(#f+9ay{cVc+G*3PeCYBl_3-^3xsq( zz3j9YevP?~z_P#MIf>`o2+b~kxDioF`fK4z{;J{oH+iai&S4+p4F%{4y6AT}s*|u; z5(pEQq>u|h$E#D&Q(@|qbx0|QH^*%lW9=mE?&p5Dv1wDPOd>~Ah1%c@q4zCmSFgs$ zKRi+ve&tkHtBsH4MD6~5)7H*uWl*Tp1KLSJspMcAVh4o?>7bFME;&KSUhj-thoXF> zf5~<(XuI|=N#me*h^XHeB=)XMx-E(lis?s?N}Yi(D?Gi3_dL$y*U!MiEN7W!GbS>Rt^=Y>-DTnscTPzuF7YySh&DvKYZxz(6>Mu zuEL3eO3w0u?(2RlPOzuqO#g;JWJRzI+-6LdiX&euvUces`}f4lW$uN{yfZr7k>u7Y z!akCjxBkOeK%~CW7viYrOi5K;;Ks4VqQI&3lx4KZNF`mH_j}*QZO9MW|%@){9iW1`I?ZyGbESAVQ+A zRbs$a#s)~)V7Vf8Dk;7kRuLO?%Z$Lg1I|(CPlQ1b<6hKJIZnVo7)AtQ&Wqvr(BUze zE*T43lA0w>Gx$xU8xksCkxH9Bd_9V@s$V;84JlQ@^39NAhM%l^2E^m4_jFC09gt~{ zxqiryhw-T=t~kflxh&)F61TBus_Bh6OXD-*!~LlgW28VB8Q%$#{=%cy&iN5?$OQ2& z$uF=x4Uo$#s}WOyZlO=AY?s7MdQZ0XJ%Z-=ygh(x&%9Xin5R0I0_#F%>IFZr?kJz?0L&LQRnE8b`381_NjW ziNSq#QoYQ~Ui_b_X~4yoSq?QT8ThdfgRq$wPIcdoUnG0|9{a<$OHS8o*PLH7x@MSx zv+r{Qf>wW%r`eHk&rWxdqTeTy-zV#b^FE||f%@hztMeMP zC}HjgQ-{YV-Rg8ZJiA}zI=|Spa6xU)aAx>e&XBevcV!JiJwDFF-v^&kdv~Is=Doi= z7&1O2Mc5C==4@ZE{nq9eQLrj13JF%qZ%C+}?9ywgi+gk|8dnyjeeCM4!3U3ic;SFUJtjMoWMpRp~NnI3mBC})(}J`7AEsL7@Pb_Iif3rSTtnHFKGV?0=)6+efpJE zbA?`?=#aq9mC9Go=n&;!x%PlW4lCFeR`V!O+HCKMkN2PAzOQ`@ajG)}SqfgE-esHd zkLL&|!do}>s-yZtd3%oLU4yEM3mWrGF(KAoZp8(=@~(2qtMVz4dkk9fbrQfLn=oD>g}RxOQK*$;du6W@TO|fj55np4R-mqY|%m$WLGjUtQS*88^ zs(BeX-Ve%;Dr8~tyRK)M*_rLybGdROt<0f9U$roT7x=1~)Yo6=6+r&A`q`ToVFX9_ zOD#s*`waaxGHS9rJzcxKqT?D&wQT$IUs|V~ta09VDp}4gGt}Xp@lYo2T&~DSnzb7O zi<_Ly(k=16-We)wwd7eHqS$epyaDl+sX`8of-7kfmm0*8TgN~4kQC(sD|RR@7OYwq z=Z)14bdG<1r#X=QK`go=r8nbM7fKF|ur^9`N3ap~VXSR~&1_8~P_MZ1(&Mtwe9^Nq zq^RA`txBMnrR?f|a+tgw2Ip1{0 z#Gz>y_|3`Sa%uzND&51e2G(H?8L_!1zn@sD&C9zT?L2AR26r7SZ!X!ruhY7bp*beo z>5k1kfvkrN?2#G!08@9ON3q1eC43=7WaS>6CkO|lny2Kkdh_&t9}Y-kFO=PG?6#?3eMN`JZ{Das2NUFJuc>`+U#0q{U9vDvRzT5#^4_&cZ2m-lAc zy&X!9Ij<0GcVU1n}OjJsc&*#}2>(JdpNITKF1R=I&+kGkbwuIw(|e8lET z+2)?mhd?v?$A6vQ|2O=_zX=2lfyMQoAt3HuFMbOInTSOCpVcxh@AH}gU|2;}Q0Gh0Ja7qRU9YR#95+5N|U z$v&oF@M?Re)2=Mls9!u9&gY%GTjp?a)2*PqTTVebx0+tRFEhGoYQMPoi&N;g%&Q@N zhHW`!^-IqJUpE%C6&DR2F2C^g#q6h=`237|S|3`D9d<}&0-D4;PFBQ>Pd72K1cM~- ziJJjhl_qdqX8i~O-luBkgby))xe203RB(;pMH*08;f$wsdp;lWm#;t-j(9w z(tCRMYB(!aTF6o+)$nOaWTzT3VKkPwog9uZgppAKpRWFG$Q75~taZd~;VzL6NeLX8 zR@+F^djt0(4jzS-FC+Q4Q?zf3PYhp*x=6;wJ%5iI_87C?fVUsFzvQ)4rpd9)(spJy z-l-%k?$5C!4Hw-Tb&d^p_PrJ-5bC6%xLyReN&9&aZCQ>`ynYC7gIU9;>9-rR_DAEQnNb zg4NTm|8u?7aXfa)j_Ax3Tfer+=Y!w-Ca07mEFSMvk?$A@ZV!!g#g{S&cLoKAuZwJG2oAr7CbaJAL44_j28 zH_`m){yM6O*y6c44}kCd)Sd4?D7DZE zVj3d38`VJ-n}7$2{mqknoKXPAejttGb3A%Gb?F^5;NLYhmVBk_M}WrX;=gNh%@NS$ z3nuc%Wz{)pYM+5u?thS5$DTy}u+gH|1IMtNJI+Vr-!+DtbcSfMqL6Qi07p3MIQ(A? zPI4*C799kG;$vWkS_{_*?r2x08cK`5Qqx*+8jxyhX2}NFq6*gNq;Ddh4y#30em!F^ z=me1+EO{XGq9_kEN5|ctBt0>=?8<%XT92IL78FuPzk!9CW2M z2I2}T!4We%5R1@Ys`Ji8XGHCRWEUK@^krrdtx5jR@OIoNitBpp4DzjFo@EZ_m6l-E ztgR&Fc6#Se%O`dP8bU*Pbt{o^tns#1VdS+-T#rwFCOQ#C2~!CPy@&YEo1Ukb7WvnN zxhEtPT@{}G?P+Vt?$C;q(7Wf;eJ9FpANXJFy=hdF*&4Q~rIrFhL}V6Hiim&^5fFrs zlyU$8Au=lnDWntvVnjfqgrrpF@hAdLkV0f0BC}#hgfNsMGJ^(z3@S3o8@80`)p8LLTKS!e@m6g}N`#`-iIRnUwOI>Uf5=FtV zmk=e$tD_0cj{ymXA}yUv5GweM)_e_&2kIYG30ZZ*5~V`6gd?$?s1&4{MUGM!Q)f7q z4pPRIzbal>VRM9ImZ+_y8z3w4Ve5Di&?j$vExnHAO;LYBpMr2QHI~E_3AqQeCp%V25Z=~Lv4UF{ z`y+QnT#2EZx)LsEoM!KjN`W=tw2m+R6=$u_cWOL1d-@#GH0N=l>ZXkDGrN+Kbp6NX z{Hpi)Jn%VnqQw7zoA|ZI?T}UEd^Y8=s=53VXAd?T;io2jct4jtRI*g+36!o6xQGI`FlA z=e3Q<4oJ-4r`#;uv1g#XL~Ub76B4-J>(oBI4deuIUY!3&kxvb!10-Do{iDs^Lf|;Y zCS#0ARKb2~({XIm=QKKOBoOqJ3PFHxAdCovuhlv8aVfH2V5jQxRGCh=O%6MPl`=t- z!}Cm&AW=MO3rX+qW|{?F5q25*bwb*NjcAtU0F^DZI}WL6Nld$n>mp`~@QM65*L^sY!-*92`}qUJl2J@_A+?+dxrgs%b8gj2;Mv9Y6i%_FNy*;vlA z=Z__4Vc;|LXFz4wfJ=2?aR7QIdccA|RFjsS>mlzV1bmZE&$zcW7mtf45FUn2?;NzC zCDEWz17pkk~K$Ale{?&qn@C+a}kWab8D7erms5!#-FeW2yuX%)B~qWMC43ltql1W-dMCr24xsOLUVk>-egoQskv&FwDvV0I10&8##s((IRLWwPXPDYXvkN@`3vx-})p)AC%h7 zz+s^;0S!vpwGx2GWo;si`(G%nAb}b1_Jo)S*>G zDzD2e!(V$|y1l@=wCZAZyKK(0++LCGZN!@oiY1(>Z??Xy5f0xOTl;9Bk{F|d3vpFU zDP5Urm4MjugAz38Lp<{yrRb|w`lI?oQvbi-sOOrc}> zpQLC9mabWABOFm&xH%B2?M?b~`16I;0QzEIM#{+VBi16&;Rq*f2xx+Hv0XF{Li8v6 zQ~<2~Kfz{PJnWCL1Q7>IsNSGW)VF{@o{BLhs|#uD70}%K-?>h5VN6R1o4xvBqTs|R z+OTF$ci*$&{rW;?3ZFofxPgB#1&4s;f$tfR^CyARbD(P=Wkww>M~zJg2@&9vG3L;0 z4p~1wzU;JRS!pPNkCUJGugi&!EuSix#0RiRUpS}r>}{NO=jq-EaKmxhMq>4XaFadd z7CcYY2*2Ktl8oX#0wawAyk+m1Fu^_>Qu?JHpF*vAuOmx={!wKgv~Cw4j?c-zc)=2i z4fm?38FQhY>bvMweYD)t(5KT=bbGQaCy#*?o780qfIoVNBtbYS@asjS;uX+l!i)~4 zju6{*AAhZF=R}Y;JQfQvzjbL{razLXgWU2QcB{dWC$PsuY|^rcMTEj9M>>cxsUsh4 z_#|*x!ET^D$0)(hpx!(~ygsv&f+6o7Wo{?yLk7?LiQZ82Ku6?dV%CfTMJv431^|?- zgg4ybn~+!U)s3wf3rRN@Yxce5=&~QWuraLs;6!rk2EqdSoSvx`E28P{Y1=Z zeWha+kGLzE@k8kz6=f^rkx8R;SLIcSXI+(117l&aYUqMz=_%{c#1Dp*s0eok#%gb& z*4K&&wu_0Yf`77Zoz8IO(ad59%r7M>E6+s*Ylw6(1B-yaLwNXM|n-jZLbX+ZU@Jx@WxrBFN{*C~zTEiGr7NbIUel*!XzdJQ+Sb4m8>k-2G8 z*MX(#+R#A@>{~sz7HP2r1&qBD0#r9Kefkh&@JBN(MYd^JLf|dG6*vw_49ejW95hyt zL0oK}NusT%XiJWdy%#zRq$oYDgd@7CAkho@GSQ{gFRLzwjh*hhL3f~;@vokb@>Cry z#)?x)jjY35XUdaHZB!4eBSq_`?lSX*mFiRMys-!Mm#eR4`+i7Nt?WGD0K&VE{ND`j{=W+R{$CL6?Pns$(G0^Y zfl#kyB>XTUgQ!SCg86)g#6BwYY;46;$3qg)wQbz;RBe-ZUm1h>B)#W#T=MX^<^|I| zKFJ!>PCj;SS6Dq*c^I%7ud=0*HU^^Vq zK|{!PE86x>fK!WMA4w-6`RAF2H##wTLuh*l%b(~$DJUd3;x;dAy+>)R3*)>S&xou% zH5Yd^@OeAFY=Mh=BM_Yj$F^11G03aivbNO_W9+oMGeUTU_8vl4(wPx3Hx`y>kex3#&iz=IFj1VD zwPhR#(LZ>b&rdW(tIeJ#QSS++^6@*vChW!>HKK*R-3d0P4sO#*G@KBfX ziKnvzHce_;vAe&YjdPlZ4|jMyC_iF!XTPmW`iUY;PGi4W_YRNKDTBI}1R>FPjOLa5 zcWjRVoN|1G?7+|2niYX#!Snc4dHtl@v>T>$pp~o#5HDMFN0B36HoBqG8 zaz`Jf-QyH2sX##Pysj0_6XJVycfi`bD?r|&0sBYHWKNqy*lUsJB}cf1lHZy8hReq3 zXdE`#)HG(w3S6r)(M~AQg?6e2)N`$B;qzQMVPeH!0*-+sUv+c*JCIhVzT~t~B(s69 zg_eecT@D*T+)myO_!njHvcNBk?8cqNDZ=U?N7MrZBBq=IzI4u+nFxwnMt9sqE@4{d z7Jpt5>(rcr1FiZ-R+`L^zE}$4L)lE75fi2Yg+txWBG7k`yn1gD+FDA~GOB?OuyR5yj#@>G8Ey;@i?B`c2pmvha!O=Y1XER#^<`npv5+?$9 zEN*p16#lHZe&qE1lSxQi&av3hBHsBs$ElVKoOlamyamjfl%a*^MF*kN(~2pAfu$Lt zRWEZB^ml~%3CfGXd4<1&Hm6MisLH9Qmrq@M%X3Ag1(~(M&OEF-e4X9RT2G{tb)c0V znZD5Cn>xlWAHN0m>r#eiuT!}{00)Q_(&U$bc`g{px`*$vzdw#{QXx~QkQ z9xN#+n|~()))klXG`iG{3W;2wE)I0jb7TraziX2oMbjT*3eCGXV_!ZochwI!O%c~@ z*Yi?_zL2(Fwmm2e)jWFgICY29rW@=tU;M{bUOkiRvX(TaJXPtChU)h+sy8`V^-78B zvz~u^LY_e7d!?~oYXUFZ$Ni2WtA7QzCt11dXmkirU7YW{z3^M0-?eI&mD|B7uk{?G ziXCvuX&t`rvklQ0J-M_l*-$th046?^fFs7Q(S<`7N8!$;;W@#TVg6^OdHlK7C8EXk*W6ya@+EDt-8@o# z8Eh5L5WrXRGo6AV_@-O@wP3BGM}OcqQ~dLpxEY|_$S&2PAH!Qv!O z%jZMgL;PZa^6?+*ZUrI00y_gtIIZ1^MhiVf+7Qs?BvTB=SZ5Jh@Zc0>dZwjdQ5wue zXi)}OTQTxv+rsnMbGW4GtrOHx7RR%fy*Be4*mIA;R66+txOs=t=lw3dB^h*oYQrbR z;I<)a(W;Pw=mC_nbghbf6!IjgaF-Wn_&GYHgk|@ipal*9~U#L`+!E+0y zY$Ur#A295|>VJEq$9H;9?lB>SRVCRZ{S(A$uat+k`Q-p{IM!$UD_)&s{4tt^VC?EV z(Y-$-yZ(DK8JhyX`l2CWTXJ8~_I3%~b(1%%?_?=BDc%hw`+2xLT5(5qUR=7M*7@;n zesofwx%0WFp$g~jFa&!(7U%Sb2Uh}5X0~ok)d#c6q!V4fba_%$tnAr7>mKXyTRz3f zG2iPg2;2jC^{VEYy*f$71tGGBKuUT_Y$`cEiuQOUu?Aq=^^#x5&dKU<#b8i{9Sk@#x95^CWl@6pxjH!=;-p;oK?HVg-8a8cOcoy*qwWp=XFz6c_ z$q5DU>bE?i3OvglSlR$N@n^3ywypFEuo`4DxR#66g#$Vd`p@vbmxwq9$6{ooWEc&&D-B0hPzafeU(h7_|-QBzAc>9&H+K%GkfR5w;qAfZ8$;^ z?h~lp6!!75OQA*}18R%ZjEq63kdHJ7|1rINFt$1$B;t)L8vBeb5z8Xu9F?ER)t}94}M;5$_jCR zvhEHlM% zb|VD<@u|cB)j6XrIWTGxi{g~D3%99!P zQgA2!7Ld_7<0pH8|9LlzfV`X_TX?fG99bI(=k^AHf-bp+k106>5u;VLv)-&;QuW2b<3Xmzs<@9HBO?3H7Ed z@0aPFBsKabAaHOz)FAc}QgW2)g{G6_=<^c1O%aN+n`QlkUJWIZA|@%8&64xS{L_u$Im ziOxu?VDR_cLC!Zc=P%ycu2DK-2=o6pqGrJYndI^+?O2Hi&t*3a+;V4WDMj;wgwn-USVG1u2Y- zu(dAa)R6Q5yLni)ja1&Pm6M7h>r=~sgc=eYztQ0@p;%3nK`HMKC(JX>q9ZE5zuzOi;12bfNLAw6sLBt{raXYU8u+)zPGX=V!LgvE<8z8!0x-2C$FCyN$*!H~W7& z*dfgdj;|t$6>C;{Kgn!`y7fFHaAR~$BOycv#W2Eu@7*YBnFI~#&t8iGmtGQce%sco z1}Q|!UU-Bz@rOyXZOu(0DgzzOOVD(oHHVAX8$oqy4y1yW*mKKZYM_o*E7~S4LMH%{ zTM)nkTFVB%&1k=eJA^77tR}}?gPusoZ$1Ac*`9{gu%XKuBz3;(#5KkdlN@#+qGyFN zJgrDzs?6zX+(hpx4}yJ>O5mRCLq-ufCX5K-a|t1bTZ0FbM$Aa>B8R2$Q8+5I#41d5 z`fJTMkS|hIJBY=ooKoSSa8DZzJ$$9fjd0MMq{t_6! z*w;J%rm|1bor&KvmgRol_oo)4m|dQLQTMV4pVoii>l}B%ImZ7~D7!Tk)Z$!v-~+$ugvwwLChwV}6+Q0PA2DHWqE`4y^R0@WOdnEj2$&H;-U zqcH|js#M@US7`Qn?4Ik!V5~waINjX-IG%M3NH~Kf=&`>st;sY{pe!l!sn_w1_#5c6 z+#ChCwfi0uI9Vk6!r6|T4O4L4=Nb2rm_8f_XFnD*kjS(eAzHdl>Xy)aLVmJNVtZOLJtB7%qO%E_>qS&|d`N`8aO2au1VrU)t*UnA$rfDn{Zv{tkcLWYj{saSM&Gc za&VB^0yWFbHd!~a!Jq?~YU9_TsLoGWbQ6ZU2vd^Cc2K)%i7-I zpZcDUA}$SOo%b~@iu5&0`jB>;z=v*Cx@3mCB<*Lal)D`kg!_yQm+o{oi9gkcz#ZU+ zpH$WKi0&EeXrsL`%kz7IliPU~y%Uw$weLh_fJLQc-&VVw`>}zbV)%{nB4`U7!6Sm& zPzr==p+HTA6u!;^iXQdr6l0hM_~mXJc=Sv(=7L4_kvce_*PotNi$?JkHKrEY^y#9a z+^WF02_+|oi&rH5M~BXRrwcYqz-XnMtrLF|_$fBYtYyQj&R8H$nCPqkoB$UIY6|GRm|lcDixoGXL>0JJV#GJU5cs+ka$T;iIJu# zbQBK@j=&~^KNyFFIKFx++S#%hAr%mQ&HR~c1@;5h-wn~JODnvAZY;;Xx5##oX)aNOo%lKH z$eJ+7G{HZH8+qC$wjC_hn1R%3ozX2q(alQO-fd{L-AT5+*2tm8?U+|o=C0HW59XhY zm1;#jcXuxg3!XQ)(Zxn((fr&Jqk*@xM~3oMR6W}&js97l;vM4nHG;3> z{!8D1F{2YnSEG}aYAzYwk$Ce`%kPYI^6fsKjzuF)t>%~FM19hmXhS}014*HK2GE99 z!MjFE+?dek0%-Z~lAm&rj0OY;GO-$N8~Bw4F*A6?O{9!28)CX;dvuo?#Te@Dx%qHz z&3mm>LfJi}*#0QRyFq1-l=%$VP;z`R}bRT~NQ;LoazdH_izv4X$vzm|u{;;{1`aPMQ~^qb(pV zg$g(HFt@>heB5RU6-0>$|NN9oq70m5H5&fHdvf)WoA(2A|E8*mTak{1SGVxB-H(X~%Ey|Gw%IauTsxvTgH7d5ju~?mrwu&$OZUAlJ=jaS?KFfHbe|G{#Jb zNQ$iujKw7%ofrHnjO5R2oqgBLMK(+Xz-G`$FLopLH~a>A z2Knqm4(!B3W;1us wmB3D50J%4-UpM{0Y=AAHqYBINVYD4(BLEff6V#e{E1*53 z`)cbSG59+IDR_60%V{$Wtfj*cg8w;5Y)v*Bm+g{`EsH}W2gjIOWfRz@bI+7m{9Liy zCt6b~Y%ZW_e!@1YFV29y_~(?5aHu;}SkOyMr0kvma@}yhdRS}^S=KHmF9DjCOTnSN zX(WWd2vS%)ZP(`+hzu#$# zw?2BHR1U{^nVsOI5LBn*xV@Ka`2Ks&ctmh;YQ-EEx;3D?LCysvxzgqDobR!IV0tRC zKLo!z$)hcqfzLn~k?2)Rc1r)G$dOMCGk-y-(bmsXx5|u3D!o^!St);*?l(bSChNuX zBIA8pguj4pL}gh3sp-=&fQ@%rMOD19uaRcEK8wxmWrYn)(s=5NbEWLccb~A^WM;Jm zUCUd^#==GXh8QY>#GK%MZs${#B^FTEK}oRCw3SbngUz2?U5*1;(AwdKTsyC>UjA$v zU~Bsdv3~$o4eQ7t+N&ardS9zRvb~@e6f=G|&eu_pU`S=o&(RLtD=;Bf2|G;#oN$pU(aKVHcj@Nw=i5~xg`~zcn6ms2TdP4FK z*tgr&@uf??kG^w(l(PuAG2023Ce!Hx%dWf2?zBT>Jcxp(hUU z{ju)PvJwDRZ^cS3=PYFf$gbbZk^KyW%tDT&_2xGjtNO<}9Io7MIvx6tzs9y$64&Iz zv9NaZk9ECa?-PEkqtE|XH!^59&9eEiE@A-W#*{DV0aF=QshLMhU4TZouX7=LQ3-4* z{>RKG92%*@@ZjRJFc#9=5}!yeGDWKi)NQT0=Ex1P35f0@Y+`>cOzgDsucarJjF1Cs zKY_ElcZ4;m)hgX&iIgZl1?e-*?~6>OCFl)YY&uIG&^Xxq-EchLsz-|AD^)^`N5(7_ zo&ox33VS_I4joc9XLYOXZGYWKf6}DmXk-)4I@~}1z8XCtm}tk$s%U4tEF60@Mn{@l zs9_RaV~1il%rE~8V>@RMXgwZv9gGB6789URhvOX~S|Y=;BtXCDCb(rN!tuD);TSjd z<4rkok-=qzmi+O{|D-E-$fK&e|yhO)brspUw4dBp+mDkr8FWUw#iuKQo9WT zA`%#$HC9==q)Go_2~t#RrRPMShpBr70qK0yq3M(Fzm%sN zmQ1yr9AfWV0RAg^xSBhY&Qt?nZnTN?{=+%eBrURC_73_mn=2Yn3KyyUSodjMt9|TU z(b=g{Wy-wVA>zuONv&t}Ciw45zzwuY<)=1-EE$Sq+@Up-b_fadM;5>WK$i=b{jxnU zW6Pxdu*AM@u9ef)E>t_lA*;(z{2pLvzAbO~4O|=Ryy_aL*W-V=Ij*>IZ)<2V{LFov z9&@H>w-B4SbAJ4)Z+TpFSrw_Z19K2+Y+pRFo0Qv0(I32MU@i7s~$wQaEf z)9hi!3R*YP{?JM1kS|ZYPPSQBgz#Kyx16o-GBS-C*B!SER4@I9bY*ECzI&H{(ejJa z*1R5);fJvhck7f4z(V(PVB+a799!!Pn%un~T+Y3bo$RzE2mQUZssZ-&K2iqz+cdIi zM7BvbG$*9?Y>SAqNmRF?C989(Jp%wY$9q%LRO_P9e{q4fJ;s*aFrPc8b!FHjmhie< z^w<7H6wAsI*jo3ZdIGTOvLRzGP+u54gWcjD%3j<8jZOr^gUGkt2(_~o-->Z0mZ;(h ztSrQd4cKehg+%D`a+hpR0q@%%WM^J{V7wpX#LlSIbA1XaF=anB=5)_QkV$}JjSySH z9*k&Vs4rZ3mZxD7TWIe+!BB)!fN{eZp*R)!khZaQd4H^Nwb<2Z zI26!DW}hoZc-hW14p_T78au28Xk7i^xQepLu#f((j^I(`Ez+l$&9dRE55rh;mGm<`z2TX;Yl8_`>O-^LjX0EsdB^PNqr;00bDyLR03q7 zs<0OoQ(y`eNx+}?hM?%mqd6!vbmygM;*RjwMe6DWXP@|wCpq|*HzsQ*f0}4_5A$AY zF<-z;Dj0n|Q|0n#ZlpT!rT4`*nJpgGsHu@;J%u~7)(Q1#cz=$K)BA67N95s;e#3A2B$(Qn|}^CDWHT+K_-zEG1W$}K?h)z ze}Hk2ttVVauZa)Ue<-Xwf$nv^L51$7TThj@;6Ilj)D7CcGR8>pnsD;k$Vr z6P#@rLfe*vx4kaC=sDv4xUDUJA3ppZ$MaSuVYpn0;2vF|FMr}uxqmz1b@SEX#KS_3 z8aMwZ58Oi0jz-P?tKnn$F_ovDcxB{P`qv2Dm7NX!YHgT3Nk&nbh8~GkAWU5=bC(ms z(c;sIa(QpwrmuObT;DZWc{Fj;tE>5S_3!L=2y46AvPwH2RWuk4M8v+I3OKI%NB;Cj zjk;Y4L;X808SlIQA17{Z=^oBii^UN)i}5UrRX5vD;)G6c%gOM}ycKmT&doAr#NT4P zvQ`Tmzi>5J`7|~z_3!q9p2QFWZV#L~X@$2#YwOJRn8*z$MpuogTl)EKuHF8a`=#Mm zml#BzfUnVv-9*aoI|cRERY&oWiv8t1Xs0rQy~l9>(sDAjY4bIT*$cs6OfB+1F#B_P zIXM8oi8&mgxq3hPPguatIL~>VK6~Q&E4+T?vviBGrpAPaQ?CjRoC>!xKNaNkQ|6VY zSAH)YuwOXwVS=VO;7A(}A*QD^b)86Q!9Sa=bwp28Z+zGO!rlCvzI)TfRXx<@6J73^ z^#_VA76tw!k~@Q7>+T(5RAs7s2_G^Pq%5tkrVe^}0J8riO=f#qJ&Sn|XyK>8)7iw* zAhr4ouOiZ92eAl=LWF8-nk69?JRLdmq;gwzt$@#Uwc%2l9ZMrvaNw23O8 zickCLD<*>FOddR*o)cMF+$4oaqLVFU%9UUio z@M-F79(^ku?J{aPvkf$QwbsHoYBwGd4&9moJ@dxud8^ADN0Lu~CQl_N3V+e_ZRXJKtVy#D|{eOlYs7aGqQAD`M%Zl${M6b2D8a6V- z-+j^iJ3anWf{p{ZyIkVv=GCQMr1f}|amwyP{DNJteZ>ODBy-KTq?XV|q1AmVut{ zT+hW@bJkCuSq$GEd0YNSzl^zb%(2#L&c-Y0m|dw{PZZ<#``@k_3uZEAbkUlSI#2c# z^sQ!cLLuTGl0z}0x3mRjjkT9bdj6u*J#$X{;>{#(^dD@ zrluyIDWwL&qo9ihZ(_TVfRAQVo~xA{A0fhO$&Mb7sNgz7LgS3QP+_w z|FC<^(&C7Fl)F{${Ch*F2_@kz`Hg*;!Z@G|>Y;N~p8qWoVMoUEmwRwJGq4qJCi#Me zLSS4MF@m2EW$~SXeWdeh2?n z#-((x2ZWB+NAvDg#adC+@Jn>@o$esd>Tp8zGb4{&TBAp9A^++23vmzhK;&D*m5~Pq zI(DDj5Bhn!Nedi6w>VmK4?YVS9D)4OWX5D1UOtSf%>0F9z$0EGo?2Z3T2Y#=#Gze` zxIwlnnIv5v@ny6XoV@KEB^qnh3Zj)wPAzDaE@kJ2#>OKW{{414W)xZ3Tm{rJ;aPh} z&34QMFO0JLm$bfqI`ep}+{L$2>tv>#v%}HmL;QtzW0WtMW;=eYV;wDZ87&S%_B+O2 zT%9}mh$!b>>@V-`{jucpSHHx6fBm6v>~;IhWace>lH-GqPj~sp8V=uXe=}C;?3s7cE4SgnTu-yQ zr`d%QK7_-2svLi;i}U!;-7`p$m&0l0O=N)s61Rn9-vv4$z^;f)Ri`R29BRWrShU4F z<);yHbQz&-y0k8=Ux*p$*e*HrB!i9OO?e#!Mzc`gL>r?u%T z^W;-Q@5Iyl`jjo+=O)R=Ui@n0mpAjwQB`;{{9wh>ma(qjxu=HXW%mgc@s9V($||2W zhZ$w(h0pICn3|0_@FxAG)yJ5}t5pHFZoi{I51AftgfRXn%;F+81ENVRf6A!~vr+gh z`=-kuDvIx*8X}!5eY+73WcG|u$ce0CH0U|m6tt5?b z9x6QSqN{+8z2h`U$fOaLjVHou1=3mi?|)u$EPqR1-KS`tssRL>d0{5uK)+ z9?kA0S)YsdJ|*_Ys$U53s##8`b*W>0`Ak)?TW);OFG_fH)`&c1_b9|Ovs6LiVo7lB zne)E!t>B(y7c3Z@pnIC-%A4p8hCWlby@OHRD-nl+w1xS1 zD}-kPcM13ARDSX^q<_-#sg)(gR>!ZB^~HNBFWY81SUV*y zaJwKNUPq-H=@zaK(qGg!e_ccmyecCo1MIdA^?YhUbKzN1WgsL7`v3C^|T1 zaPC`>CP?Gp7OJ}qGYr}%HnH0;?HWPlj!H$FR56sdhCq1M6O&BfB_#A!yeQRm5>4JUFdmwc@I)+bf2 zl7{m9U23WhfmQK3KJ=CZ48L#Mg59^F8B+MM&aai7&IURsn>jpa!_R@Bh?McK#-LQ4 zV{MXYkox#`y~!5OD)z@Bwp%5|*!KHQ{@OHZIvfya6M1faTJdnK_MNiU$6{y3J7>ZQr@xUkf9Nxf2?!c(P-#Vx&GF`aWT{a92$iNE>|n?JCNWn8vtW{#pFx(lfMV=h*SRY7gs#E@fJYQ3M1(H27wI|}=el3x8522HN3Q;h`I`9;Ztv6j zd(wjcc*Oybo}*&k^BZCKWg~I%yi2wFrEaM`;!dIZ% zMei4Hx*ziRW=U=+{*86Bf1z^-wej)Wa!ZY#hlPmhGo|vb9G4TcW?T_wAkWy1wplha zgT(SKQ+hFqjiB{l3_8s`q+}Of1G7CKp;{2f&VhfekpxJqp;p08d>8}-r;|3VqScoB z(zK7^!%I!#o&GJU;@`!T-CtO+-eyUmdJcB+8VuUuzR1p(Vu00s`=1=U_e6NN?oDYk z&{-U57CXIVu--0r$LWUV&4z|{Yj9Qm>C+@Bv@3K~lHd3@8J6;XzRzH%_pa>=g_TuH{K^qZrW zGGi@~#5+>=Z2W5Wm9avU=s3F6F{i%7D8}vumay1fQ+xOYayU=*6Ak*~$GTB~Ro_Du zH-OJgoi_o^eysE@zG%gXH7j#^ryJ*R)j;wKb`>;$Um#_RC9-YEwG8TeAR4&r(GQIC zwD0R@W4|i{lbSN@0oq}i)F$NO2QKO-$(|hkrh#l~C<3&ao*w|V)qn!8VTP*Mj#S_U zlrnPg02`^@JhMH_Zw;6Bm8DG5mZ^TG*O3p6FqEqa6e~cvj9F55AC9Gh;R9ZnlKf*G z5O4C<|5#ViDm(UL-M6zxr{!A%QfnpylP=6A^FJ#1wj7DFY=4wL6nNTUJ#*#vWKO`O z^=EwtGq(Oz!?BkmU0S~j^dmlxeNE81JXu?_Ig4a)bc~GR&d9+Lfx;lVpqnkICM`Z|9(k8_`Rjk?elS>HDB7;9Kus03z?PFt1Si%Xmow`44fnLw+ z!z#c9_D_c}`tLd_3ibTPOg;$THNZ;a(169|Ghvn{=j@dVMkueb^*PtE=ZHGwUxmHN zlF(@WeU=u90-n3UldjNxZtEYw!M-q)QDgz*r`j&(rP84QmdIul%{_`oGO>J3DSzT76^iZ2Y0;9>pa3Ht00-MaanJkbl zz_8^>53QV2snw{`U$x$b|KOxjDnFI&k*Hd6&Yqca6wY=8poLV zleYy>mjV&If-JO-uuANn(>ab&6q?@Pe;vdxzKPZ{;M0o!KQfQh3@V_TIpPMTzHwDz8VCouyVDqdB9}V6oAT zr&kgZ>rGXE8?N4*{)$9I9v;5Uv+k^+j=l5_wvy|%S3mVy#p6T)H}p9!g{3aB7pjN? zhAeY3kk$iyPedTF)9k8kG-o;GSLagkm|PqV0{iXz7;+hHXCLZR4I;x26M#p`|= zzn3@AW#`)IDe(cSt}KI|tH))=(B49&Vy>b#9=gM2Zlk=yH%+8qe>1V=(=x!zS^}GV ziA=5=0OkD_N1zNIwPQwytOwUZtzAqkq?A_`{!h4QewlBO&4?C&8^|OU!PNa!q}B%Y zBtdm1Djp-N&gUhFsM?6jo}XAlDgR}i`QY+T0@A+cqtJjY(17wQY1QqyS<=-vW&DR# zXXbh4Rd;Z8K3+ZIot6gsy%*e@Pu&4SL!U~=l5+QlrP-xf7s)~&yKKy<#Eb7F!_}?| zHY4|{lS{3GL*?_rq(RmM@s=O!Y^Xb#NU&`x!(&hg`!Z6C8ctnD-Z@0s3h+ytuQLdx z5+i9lHew0q1FyykkzMz`^;lDk+{Cuzt59iw(qg_JbG_EzkmqpR22gmekKlP#lR}>B z?ttoU{z;;<{pqEWBSWkR*BtOO%_z2_kwBE*S|IX;QDTokfYC}RUSMq>=|(n%W?~MI zY`gB!76p;KggCdNNGhMw4jFfFva7l6VVK6c`3a;N7cif8Uq|eCb5a{Qjr^Bw+UZ}u z#qv{CgLEZgsMgBs`FI;b&x7z;)u}MQhGu+ZevfDIjm&Vif|k*BQqWc9`@NeD66s0w zQbI86@#p#Q`I>u~VPoa`rs3|{#PB*- zB|-}$>zjmb*C3N`ojSzlDiV8Xjme{?V54^DgAo??R3JzCzZ@)plzuD8Q*v&;H>PC`g8%csWmHBAad0cerYM)S5 zXpMH?{eZP!W*AOW0S4qt(#MzsFp`&&$+%KADeFNtj^{#bw;{&iI{Ycp0zW$oNVgkr z^>uJAmjsvL?d^IBsr-S>f$$Sf={u$>^!XWquXt{H=J-9$QptC~*J6S3xE>GLyAk9e z(&Wk5!PsTk0NFht?dp@(doJ^I{80!T{P1uh=o4G1=6;a@AGFajmIn^W!p{Pm%jU&?#y643{jA#oL<>%B8)|yi$oBAfJi7j&lBL5`%{n=AflkfIiDp%Wm zyUL^cXrXVFZ^s0C#Ospx+*ozW>wQNV{uvJp5KH%(Q3~Ds15dUdpBt^c23nSdTix{U z2G^6)sZW!w4C!fE`^tT5x3&}@JYo{QJDQ7b^42`lFDN=`W_PyHe7h%r;^_fO7kv`5yTq_S7$OQ`=|akgB#36N5BhRvR|-GKi|XH0G?^)jAm?gtx9LEB=DZ0 z->K0(IqZfbJd@~-%ioZ#7)$9r@_Hbm_C+GlA(7I0?vlA5r28zSl;c#LcpYGvD=oteeUk z3-qd9?bdvGulkN}SMZc|yrCDnPxIDC3q!X`=c~B+#NGg z{*gC2$Mw~v@2~cG&VNiQxZ-~MYzFW9d&`Kyk0)}weSD10X}ohg*_zcm-ZdezCf0gi zmrjvY|P1 zvZ)Ok+jP7dN{-x5wvUHrd~S3pA_r)iKn{x|lZ5o8Qr>OAXmNT(as_FP0&x`Vxx#&? zhHsh9<1PSkpVdjImbNI2`jZ?0Cka6=uBKR+8-mH%eu!Dju8~{SzJcrRziyiUwlR<@*eW(-$i{M`dcH=Tf86yeE7i;1H!fH2-)d~+t^XPK zmiy(ePH$g1F=g%KQ_t?9<&Cpr|9l$LvHPkcuUd~AhMCX-X!t{K5~+FRCkd@x@fbC;of@dE$D;n zLAJa6j&YP(B{sai=w*TGKJiYAix8Rd^!%ky?wIAr?|JEDtDWc6%m_RoJ$GT%*wO7Z zgK%VDJSqY;D{ur(%vk;;@y5&s6B%M24Co|>0cWyc>53pL+Fx2L+e`L`V@pWS0HvK` z1Y}D%u^AlU4|l{tUIJDsbMHby5kg3l7;sF+YfGlXwU$!=tQW5y&fNPf!L!$6td*%k zS`hscHrc#bsNS=@P7>QRh>?fAL=UBRF?++PKQmMS@qn7l@Zu+^`@+Yl=cu|Fh@U0s z8-c=!WXqgnU5)YIMr2kI(?5a9e-be9g;Vs0S0m^@2hD$LJ56oJ{V7YYeEjk4E2rmzFP==}3sJ_89^{r^OU5d@D$A2XlcS20%M;7ydfcmI!I*85gVHh! z%{q*cL$Pf9CS`)EOy%YRolz4j8B}4}u`~`U0P2vIOY};}F)3Xb4Y(AMZW-yt#U`O6 zO6@CP74JcYx$vb9(xFZGv9*#^&2F)xm?@|@H!5;2A8BbD_v=dds zy7vW}pI_Ll6>j}zv_$ezasu8U{*^@Q06|+qB70_M1XD|z&NQXG0^c1qbOGK^Wcb7j ziT0z|aQbzo@iTa6hg!*rG5XoRBaFhPRUt$gImEK`e`D`WgPKaacW+x;Q3fL-pdh3b z5oC%eh+;_E0cb&p$P7Xn5g8)l01_c23PPB96ahscBJ&uLNiifs0(n|QW)KiEwIY-3 ztrE8o@|?TR`{6zRs&h`As<+O!w@SZg8A8b!nldoi|52 z2|KC7TG5#_;K@C7P(A?m8B9qlK-z2n9jGR(gVDwE_c#0%k!T5ue)n@TpwHbD;nM}0 zRAUl&Kv|+ykwLruDBzM`mnXFckdjw+kWErk1=uCKZ=LTsz{3V2xbl{8)E) z;!bBR_X=he_eghxQRBXjt>wyx*0x};cwNFi-q&^ipI_Grg_rYiduwBcVfAU5i2S2d zpuw_&>?KwixE;uf6b9cg?%XTFdp*YySs;9IQDT+{`>aTQ{IiNlQ~nILEz1$563WHC z+KWyGz6h-*RLh@JN--TEO8q9w-fXlRAp%pnVXk<#Y${vXX z$>a7sl8r7(l@t>M8fu#|NLstPhCC__g%o&%^JnuVWT6v!+Qtw7XTZ z1F$Du7A}lsE~sGq>xcLJ6VjO2s6+U7zSJ??aUOquSi~9p!ZbCr(fl8;q*FxDS+DAA zU)|nToeyary#E`-)V_Do;@OKt=c>og8jXYAKi;5(Nwl^9C1<3Vo~gH0*v4QaL>UHD zxK=Fsohh&$yz?^0sNpYs{S-#Q=wCk$Di~njHREcHvQ+ckYSWjS&=F_v$^_&FkrkhY zmYJ>=)mRdC$cJg$zek|J9ctQCs~|c{B;%!($Uf0x3ULR;{^rU#GH%6r1Z)aB!DjUm zrWVDe9m7R~P3xm7kvZa|O4zZJ zYP$LqxAy~;E7-X8hcpb_{aLqL7%1GYh??{clvyf{L;ulNOWh+o2M?0&f{VR{Z3G?& zYBEv<$e=cr841pV?6;AGr*kS*@{iyW|F0VHvyat1U8ah2F)AsH=2c0x){d_5{Grmb z@EMv<>7&tZ^X=ltjA708ohG|B4wlW@ZFPfoS|*mGW3E?J4t8D{ zRvy?^diJWkkJqbaVEsMRgLqqh6ykK5u9NUHD0;;L>I7YEmjImo*MXpNLB;-e*mJ>D z%o%Iq1gjWu0e@kEZSX;M8BXk~WK!0`_Q{O12@%_z_dv?@XwZ{Z6>?-v}vgC?cD`&$5TWeUhlB_I$^Y|aayUnY0n(eq< zum$cYj7j!Dft_tOpjUCMQp|Ey)Wim9i!5V_P4pR96C4;veO|8q{2%MY`~T(O{gh+) zCcVt}eji8fiy5Us8X0+oZdLmB-UcyV~{6 zTN3|h+K@ACM|{sZmVILEuRX;C6#~A}Q^Cm=d!SwPx$+%$5TA=yBm=-MAh_Vq;}z%R z7OPJ=!3?^;%Id$^zc3SbK?Fdt36llOyOHUqS{IM|rI?FD^*`(WoN>ET)n9OFP~GH2 zftSO%C8Iw@XWgKC(!1pjrOKQw6_vtqo?2yZa&2;Bk&gLG)yq@zpACB(E!NC0w>2 zAwt^6|G~6=a~i;ILM2i4$C>jv@DCUGMwwYt6AXTICg^-JsoUVqrD9Wq&U{R&-ZL1J zBEv6V_XlU|M%1b;=d1mH*1R(OFK=^S=h-4c{@KXTSc4<%P`4(B?DW5Xy5`vL==7)s zRn7UisuyqlVi1;X%wW6SU^OPnC}-P{p03v*@F!6I<$0s5z-qqI{$8e5T6rSZwK%cJ z?mqTQ>UYBbLdz)qf0X5IHz)r$8nwMetep0@LP7uk?gt0j>$Lp$|NnLVR~PpG{PX#_ z&<{r1ZvP)f+INIouix4v+)DnwW-H;zn(RL1(Kr6vSD(pukn%Mb){6^h;F#PBp8waS zm*Z7H_!phW*~FxS(3OL+!WS%BIr8WvRN7o#MIIjq)hzdVrv*+M%mpY0lFtzZk=2U| zW3wjB{Mo_BJJ&dG{$gO2GkDb%=-78Kqk4MrzsJD~0S*C_r5+mgjAmF?kC3uIDG9h7+(;`gmbZ1TabVz?bhzEwWZr zO`;xriaU08I1tlA4q6Ixxq9Z4yT~V<6Rp)yu55cVK$7ehV*M;FM|AjI>7|3^e_wp? z__A)9_ma`&>e}>bhb99$&#leIwZzpU z`oIDnA;F|k{Gd-iUK6*lQ8E{Zm?YDa#QBOCou_cxoV2Xl*c(xQu#Cmu2}x*G>fX<} zH>@+h(5q*DXqh$DhWeZL*VRbEW4YFTWtC6;!f1}8)13M26=SkQWY42%fVL{9h++vb zQ<@^y%oMKkMbX)KIIFXb$k*x-q(rcSU^NN4lbEV|7yxw|&cT|Ql&IQMPeOBjP_o@E zTC{k|5s{;*-XE~~m$a*8A-L_U8|zqZA?*Wz6!S&hrZHqFCv408t6s?glSYH-2JRlO z`I}Oz_YD>u78{S0W6idnA^RMLmMDX&w+l{>6#U^Pm2%&-Z5P4rhFF|#l&&#qqidp8 zu8-FLCQRygx5B9#?XO|csY9t8Wv)naOKSqNV3d!Fv@ z!H>vs6HBm>oPgG>F~=3%^HN#4{^Ztc)r2Umoo8xAtY*K39mv5U)e9a2ok^~N}RC?R~VPJ;xJ1W zH(7u`M(04S^?m_>t z#oE`nBH%e$!&L33g=UR$c?>meVGErGxTc`Z=&~TFz5!xyBQbUA*J0{j6Dn#Xinf{D zY6t0Lw&7FVfr|uuH9O(rsYEyX$_fvOJCZq-t<)Br1y zyvnwuxQsM0>Hh2cS!m5fi<9vFmk?%lr$YOOqr4poTEUO)AC0^*guZAi5!QQbf7_ts zd^0KVK8&;aWrql!5jWf%;s5Q0U5_m`$dcxefrvr*zMs6)e{YsqfKRiwf+9jTYMKq4 z5zh2q0r`OYK0fTi73>ko_MInvynn?}-Mt34VSA;dUa{1~q+)2*6d7G{mmNU7Ax$x= zt5=2m=ru#_GWN*IA(_u=8L$-Kj|1Texrnq2QFr9Z37xH(4Z=x~CVG2OhQ7AUx%2&% zK<9HlAbzH%2*|mohF-ed-87|Nh2#1dMZ+BS2oJ zv}c5^9ZK7T4X%{G^}#2y)oAS)&`b3q2E82_fm~fIh>|DCvH!%!qlAFpiGm}<>g;NO z3T}<&_H3AQLUzX1&HI0?jtMJ^#juqCU*o23Vp0}Lv>CuTGYcc^#8giQ2_S?)#XTxZY3lbv_7JH6i`lZ%X^q z#z6WWu1kYBqUL%rI%ynWn4V*G-NFe|B0VT7%J)0(FX{92m)|Ex*%@w~;-FLM;H z#yU7@JAz^#tQd4EPOh@&PI@hr$Fm>782(}+UYV*!j+SWh!KbD~-GEqm4`MM_Y2t`v z#x{!j6SA5k@OlTVpDd(Dz-r#Z77Rra2K&{KR3h-2O1Av_j^9kmo&%-S7-XF^cJ&2T z9|WQZV9oioSV$mseTh_JxHL_fTHlf{aXdjhgV16{C|wX72@+@}tDff`NiEZOG4?4~ zd<6-rV?fKj?aQC?#7c(xtuK)b(ae}hb#*JUX(b@;k<=V{MH14+G8ZMp`D#%Fs1#MA z@CjOcJ}p%fy^-ZDT1=*HhKP4esrqD+q=wd@Dbp`hL2^VBw6!INmc#k;(_-x%GE<2l zSyv^i^G0Yz#*JyL;I`}_GymfK{V%grK0XY>s8LQ7<()sUxaGhl54{5->mxhA5m498 z>0G)Tk?-=?^ADr@JI?+aKdL;f@bK)L`kTF@NY?hxK~4K3Hj2%|b`VUis+YQ&@#A90 z14`}Abh%XK9nUn_vYL3f#nAp>wf*{}Of7dd^Kh3tt?@adT7Dnsu~bc1kVL@)U^O}W zcQ`MB;#(Zb)`P$jwsB496v&JL{-2sLE@0OEpf4@#{`AdZq%qv5L#(u57-91Hv{hKuq5ERH%81aL5wbN%tgSC5`H@)i336#{Ki7T=OtS&0XK&3Mkpc!_ZxB6 zr-_|V?oHO~nA$yRv2eXJI(qrzWL-v3_>=d7o+!YEo$1??mu;^UgHOCnalI*Gpe7N4 zeIM99GA__|Vs!eT5-F!ZJIuAlBnLGlE@fc2a?@eiKB1E*Z`?9tg#a+{<9YEc{kUpx zzRD87W`>r>;RNCWD-n7@A7V(KA)_!+!~ia5${BBONflbzRC<>>T(f93OT?)CY`dXq`Y6N+-|)6C!dyj;I8-~h`bkP#Ou zayMB%vgbLa@(h3aNSs4lj?qY_hWc+W%MD$xS1-l?dUj+i8Pj=4>7 zkAS}U4p1B+t~3tHtt}yMo?5ZbI{p&=lvftgicg}s=B*_MJP7((c67h^bY3F-fVxH~ zqY`e54!KXlcfS@i$>G1I?(L9Uc$@a zx-YV5aojpyOj3$So8)Ko?wjjN22T@&42DYcte&?{95YG#KruqPp#(|Gok2e1SDcZ| z3i(SIYN<527r#Sh1cPO!U5K-jr?Yv+iPPYQv3DE(9zA5D+?O_?&$2pH=EZ}{mU^c# zT*6qew73BzxBd_Nv=t)QlBuaWdzpKYnxcHi&M!CQlSh6|l zKl~IHWa74uQGRDQkD5eA>;y7gaEe7Nhzg+Y`B`WoWUu|}>(stZ=*QNxUE*u(-EW|m zI9;YXBn>yY==k8m*kx2mys^5}CNEK+w zHRcYS`zPE=f8bIr)4~bk-T(b_*}ZT6L*LW9_B_0bbzdR0ix^wwy}AkNfKG~oJ0i}~CM)F$M{;;H9D;naOHMVOaOa-H(^)-e##y99K=NM4D&*Tp^i zc-AUL^UjjC)9$^^zN8Evk|E~u_mv|CoMxBEJoAisz|o@2e{u+0Cpb4@+{Oq0&9_#j(krZe(U%-%h_X5 zV0OJ;FgqgOGZOwO&dTMF^1;T52PNUSC6@=|@ASaZW>O-uk^0-XY!4_8H_M+7Irw|QMj<|ABN6KZTS zPaMi!pICJKNSnzajk4XDfeZNO^2)~}afFHdpA>tL7Jcwc1RvH=!3k1xSb45foK~}175tvvJ8DXTc|f;0zzsy z8ghNB#Gtxsf{usUx%TUD?D3(2}Fu&65 zxfhc|MN!*vnuza;jjib7si?*AwGm_Gu86)>CdCh2yZ@}=36v1hnNf;vz6YmVW)5PT zYmj(MBCu*Ow@l3Z$S+KRCOULC*K-CVGd628RsPaVES{12MRY}sZ2|fEQa@<11Hb8* z2(1Ww;n8>G3L(q5mXb*%;dQf5MoT+N6JQ-;Xj~5BMMN!p&q@K@K3q#J*}c|eX>q+x z9YQMx59mg z#t`9^_a+|r{hh%Mi80T*T(|*{m(St+;g7DWnZ@7p?%qK>kb$EspXaVCV^YZfjG75$# zzwh^*=-GXf!6%MCdQIC%!30%&F4PB^kpj(GhMEiyRXcz!KB^69X$gBP#iXpQ2+a{L zO9`k$dR;X%{SQDGdeciRAxdbtE1NgoGFJ25(f1EbQ`!zxuQhr;QM`&5nZ1fFB5St` zHgiJaKuw(>KZ=}i8R3vn;}~g4zwDHRxF%%WDk*XV=5*mR*y{$^`k$9+X*e{ON!dH{ zeZinZSFaufZ$_C{&fFO9nXz`$z!_0{&^k|7?_mvAY$*DJpr#w_(#m~VL>?6LGjRr# zGvKK?;S0jMY+=WfNWX-(^>g26v;x~~R%?a)jqifow`{J&B#m-`CU(EMr;2~cq9XIO z1<5u0{%V2A4OhiR1EcH9UAoV^;q7m#*t)J+!^M9+`qQ`r$KPRxcHvdsHy()$4ZwCM z&jvk6Tylu4k2-LPujZ%|-*HjR?P}x4%#MI(jR!vPmFzX(I)d3-Lq~ObWnyFf;g|;$ zKSg8JUkeK7|FBq^+ktuh(`J1u6Y@@5}n^8?e6{;LpFq zaxbF*p=W^r*q+dvOpM~mq6X~IbRUZ+7~R@1KX#{EJHhqkRQwlf-y}gi#H#E~xS8sur$la|`wAQw2O-r4bfE)N_I`{G|fCYB3TdL21Y? zL5<~}P*lt7ijpCUlLWJ~g&v7sH&>|rY)IxSTHK0oxYnOxbqQEYx9S9#p}a(_cLh1W zm%DYwnnSPqqEfT0^X_2{kxVTYVkS1>!-zX&L47z71Oozy-4QEHJ4bOc4Bv?2b-^dE ze#RNXS!uF;62FL!K5BP(aXYS>RyUKYwRp#bMT*-@4_9CKNKd1j*mK4E93=scmF`Cx zAWi8dn3=97y#+^fp%FV;AkY!O!q$SCIFMpB&`54%>QKx_DN%JKn#va(nxYH|(g7~d z2`;uDWQyqG>5QiCM>Iv!l))>l@2#?I+gi!7W5Um)ASa>Z%J%8xJ0Hzr9+aoQs|w04 zc1SmJOaGYgI%pdlS#{i^!u4I4+hwm0CeQlD>jDexbxd&D3hAAF<%O<Rj)u{c$Sn0a5W@jO z!Nfk+rn(uqCfwEXRCWfkt1cm10V;Htp%WOy0*(8_7(;@#+4 zq^jE)d=+j1l>5B_!nXHg6Lz^V%F8AiKQukf?JG%I7Pi5(UP2~qEy()^Up#e+JCXo( zOJn=YmVouaK&Swoskf#S09uyi0&%?oevt!KXx5QpC^S{d^;($RQLdA zN?tjQctX=$d*KqjL)+#uK4l-I<^qEPZUJRIUWu`X(PeK6Zv@cG5i+x@);g`0Eid#tY~1tq?%3N%-}Bifl?fT=nUU#q=z ztUKrGhR_FYues_8xoD-7j%Gox#?NhgcKGe)P#>=kHp;d}bs48$>BJZ3ik`j5 z-_G)g^=N&2<$>bi!;UD-4WwxWILDRPTV)tn)=xP~)THIFj9PMi`& z_4z;)Is>gK*QD$oTv~bgeHDCMVp^8WK&WjRCLh-?{M3D_751+!X|I@^cs*kw9f`2$ zKRLH2x#Be=gKa9?yIP0)P5xJ*GGb6hu~~gwBfA-n;ZC5pInh>5$WH634n{H)ar+=b ziiPQk-$!Zz9nX7-u_a8`l&IJnTpj9@l_)b07ae+)6l)XQ*i&^;V0C7 z`4$K>zbYo~APLqs3KFKUND!!y(t$66a_}ix@!KD8SGmNcR(25Klu>(e2ZkxGrAS6o zb{WDvF+xSj@OdtIT-@g2uF3+#89GOeun``f5q;2$&%OD;E+c|;^Mnam(f#=w^Nds1 zW37=Io6`m(b9S!n9{e}#fFmwkS8mp({NS`rS~(RGBk(^D%e5a@48JiyQ%W$e%&a|; zeAU&h!X?*0Er}}*5r51Lm^-`Nvs2kHXlUPXWeTtNbL|OfJh1D?><8qVXBpb;Ei)WV z%YV;*?8j+@p|?_Y1jA^rG?&JEAT%u75wh)SLZ>usT$~Tc{o1o&@mKEbz&^9zFp3AW z3=!JOb?O_zR=GJc0X%C|D~dS_$rJW&d5`#@P^c9A=F65S?KxM3Cf};!(JPXJ&!F`` zYlyJPl$zIKW0t0GSr#e!$y}>Pb@_*hyMY#5U>_M@C$$BV{XxnNf_h6D%RCC2ARvFO zSjkR7$(+@vw2&;NF$B|r-bf(`@#^GW(S*Fme@mYp5X2O~G%VQywH3*>M;auPMAy+L zFNPa?R9H5p7}uB=U|{s_K!(Bgk)HkTKgFL%JB2o7ilvv#4Av7>YZ}aUS7uc^ zANCc6fN=KI*eaK+J8Is^-J7#>FKJ_7Xdh2_&}aMQ zVqy6L>WSy)T(FK1);CC9}&-(&F;5(ERY#$+nNHlS>6{H3xd4 z*5Y}sjQReRGn6wgR-0Isu-b71gf_Gbn(~rrA}8^@sSUs%uO#+Nmg&$$OuA3-Eel`2 z!1kEwc^G0k{oz6C4!=9;F7bsga+%uG4m!{h$B5t4@ ziJ-S8Wjrmpm*Lp;Be&3iML^xJJYE91&AKIOMP2!6iFMY?KR^y0E}Cyp4)?*%h>fs8 znpzKxP@5rv@A5)Xp39kFY4c5o9715;2;VdFAofZ*aeZogjoZFY?m_V#XKUvJ2^g;E zKot`9-TeKFKw49Pop+p8PD6+|j6npofS`ShiXwsbT?gSDM`na=M#~e&2N^w zB7hSio}%g0?@rXNH<%Rpuf*i3ZGBPQ3swM#$WIhC^?k9de%W|1*0PIY{Li$@s`Hvp z(_~>nRoEd9&z6uMxk|s4kSct2v2#5-RA*d*$~kKSJetzUF-C ziW^0r4SnFKupFUsaVoM|0-zqj2}{Hb-Tfn2gW6u`oAlnWd^^RKrhybri0ofa5S1Lo zoL^)PPPu<;Il#gDm}W#Ak$mddR|*bZ&TwxWnsIXc;0EoDBqKN|%O) zA&bRr1qVG2MTh0u{{2G*>Lk* zSR_+>uC6M`S%)`p0?4g#Kbu$sjVrHWZwHbC?shg#;4Hz*&-cP}A|f~h-k+!a;w#$? z|KM@Ph@wM9P;nP-Cmfw63xWi%*@lfEGrCua9PB-cJtzs+7Fl(wP{$>Xqb!}W4>S2U zDxp=q;mC~RKQAvvKI$f2wM1>FzG3W);;2#rq0E9%$ZlE`ys!@Dh!}jPy37GkmRUr6 zr+{wFkN*w1I0|M^y|@2FA`Ix1IF-cSj@mv8Da*AGvsL3v{S?#(W%ID5x(g!`jK!`!Ttf+g(A9c6w;}zL5|L@fQxRSRo$}5k+(57(mKgryLk$M$uA? zMOmrxb)&u9NrTg*rlBUnP8DPSS2(r7M(H!Q@5E&6yv9gI&<%s!gW-pIbFlc8ZDIKs zZp59lwxH_^Z{af($t%LTR}zL6ErQJP=(9vCQw||*HzjT7`L@k%gW;kVBN4Kr)w8X^ z69TTkE*m!eTWfuJa@2!MvLm92Nlmd}C-vW)M#e3wuDp+?#XbU-;i!hM{<%SRto$jn z0+vzqf;wRNUKpb8BERCddM2^X6k_{j>tR>!GKQOVD@NtJuF8<7MI9li?q>{q59tmVSsK%gOr1 z^8St!I}*WKN>${y&HK2L=gXLNjysaN`u;uVUb)jI#KfZhWpe<%2WkpC_BEjX;YGit z(~)tlg(y{e`%qfvnYY(>>aHa|YsD<+{Ijn72kg%QH70sP)T+|!{4WdioBN>`yl=OOuMXgSE6Cn8^TqGYDQH0jEUHs<-c zu=)>ibzcW2y1&)!vX{L;rXh?tA5_Agoy26kGAFog?V@kvYCLrfm=vf8Y1&9yCtBH( zp@NW2^#Z~aECvD8AlZSO~T-!=-)mUZbx)tp$$4pa;*qaUOeb> ziXGsBFZ9YuWMGl6h2|=0Yo`e7k%&sf-n|buDUR*&*UeA7>A*BD&dgok(rwrgS${;! zHSB&>Yp;4PFi5?N3~5=-UJ4P`N7bw6KmK`zb&9vW%A(wUU%5~1>83!@dOE)^Bjo(G z`BBy5HEpe~?E@Vb$vY3Z&WBaKnE!J4;YDw%rV_n;p7B|uWyMb3OVxs$6JTQ=O-HUm zrU7z8jW!@FXDxBS9Cm=ECU!F2+t3o{cno%zzub^m<7Kj($ynzf`s0VjoaNHvi@*Qa zUyYRWA|@i*aSFqjQ7&Euw~ulOye4$LgM()I!bD-`VtbaV%m(W1AZ{m;2PXc2$-o7@ z9q?}i+TLySTUaONBU&PRE4;8Ul12(Q%L%U#glYItK1_G?j@iw%FZa$5i`9gT^~fHI z!3Zscpb0vE2K17;Pu{PUN}iS+-&hI*^sgBu0Lo00a5PEQ-5*F+a>HSnQ>bWeW$$Q{ ziZQ{u>Cq|6PNuq?OH`Ks2I@4;R9R5beZ=NEh6$858warQ&|x;V!2R z%iuk;huzB+uXc>A4tt4a`E#6w!tUHM?HzelLxE97&ZWgOSbMee&&P%Uv?i(3GH;-) z(!@iz)O(m0l+6>1Tn~1`TiefgIlP~}-XZ>a$yrayBd65pd0H?#jMm7RpDUW9ZiBiw zutfNSPH~k~HXe=GfVlD)TPbMKqB`>Q8?SlXeVYD#6~)yWsSm81^~r4_)rB;KwuaX+ z^q0oN#-p<@cS%2-ssx_vMWHt=Z-E|DLXgwceMqpwi&5a39h7Te62R6w9+J~T%O}D{ zW8Sq01q)foAB_b@qYkXbp)Z!&tJYHkI=I>Kucvay$t9PSI*1L@yJa%B)go+w7z}C^ zd;oq-fVeid+TGooMXGq0Z{NXDP~&QS=%7I-zvAN9y9$v&Vg2~f6|v8a;2#IKTNX7@wfct&UL&kQ`C z<&b<_!ZNkU>6VAx3yL?6RNvydGgFyK<%S+TehNwL_DW|@VyQjcQ+2d!1jFV%0tgf{9O3HD4k* zG&q{j;N<8qOk6RnIdkIbJaMBON6wa%14H(9iX##r;@m0J8>*p@Bm!mG(H4MN4vA0! z%@;E(GC~o_j5GKhwkv`IMOKMy{R#4Ea9lAjizpv znSiXDq}9?Tup58J({Gq+M2Up+I(yfKrqzWlUo0H4ZULps8uE3!ewJ@FLrL)Av*vXY zPL-uqFp~8Ysna=ny0y8jG0UU%TOV{=pI@U?(B}rsA}o5G--MUHdG)-taMS)9e_SDbE$o&a z1{Ww|EE_B<`-xXDiQ~jf{6$)dMxk+^1p{~|3>MZ2oz{uj^e7QQm+a`7=8p72bHX27 zLK<;>)B>=!s7Q;7dqk$1Vx6S&)qh3$QIAAsZ6)%{;#OBIWyV>;#g2@F9j3w_tJg8L z?_P=p+mP&I1MGt`=hY%p29IqDo0T(3K0_Q$xp@dx8%dFv+VeD{Yiq+=04BmDxMgUu zZvM%NdsCxTi;a3{A3MN8vR*mDY;(bmt}DwmGcL7G-Q(^#-epxo@s*o~b2f?El8o}J zz1@-?+66owsm%$14~Jqco}1WQx`EM7>=Ky|Uk`DJyvlf0e!DcU?@XnGX2Sv1B=5QR{g2(9?Havmvjne=;P!Tt>40VW3OSbLtS| z*R%$F+IM^sN9z-u#R~@wM&eTMKLfPax~eof^$@g7u9gyqA|GkLA}Gp8aj{_7eyXYG z21&)7tuxC$G-%t;VmBob%ZxL1myGV^W@jF1+HQaO5_bR1sIaI@OO*HNc4m2vgt6}T z*KGF9jMXM2{6&u8pxIM2OiFf1&o=@#>jq0P{M!UEV~m#wxe9421sAHUX5^VhgnAhNFq#{t|3xX#IGU( zs!OP7HLy#dLNR_it5RkkVOA6xTLmnV^air0l#cu&;b_cKe}U}zn1rbV@JL$mUt-h1 zc7Ju`p%Bn-TTVeTyMH^@%~E#`Sib5x&$UmV^|_Mm+S-u%*XE)NT34kN*j@!>*UEOX z-fP^xVfkLNbixIu@$SM65^zZwf2GY2yGSTnkfTJ8*e;i_wTXdmSvp zDZnRVP{~+FVec<9K7Fl2Sl4icWRQa%?ZFv20^)McPsDjjO<%3%H)RXsQ2gsMJi-t; zfvKhLt^Cf++trlQ!%-QoM9yxM}X204t8GYrtP0bVN>o-+-c$en$Y7yH*{)9jb!OK@aW+;5o2c6{!7o?q zX+ef;ZLo>|k+HA~0&96!g}$YOSQlX55HE5kiQIg8GmzrBOJ@z-M- zSw(*S+{&=)J->S7er>Ek^>9!$;ge;28aM#aJE%kBEWz`4Ii=pA8ut(dZVYCDA*?;& zJd6#mM$Tf?LKqvVCbBi5kLT%YKX}lUi#nWRY4pC+(Im;+PQB94tvcmhQObSel_R2$9(CyTIi6AG=7riOnNfC` zX6dsZU;HJ$S$UqEpq}xD^rq_d$1|_5s-Nqu$x}0WknXN^1TA%|63&h02H6#8y^xJ> zgSLkZc7Dn^V6-%IURV2Idw)k18mz8{pmc#r1~25KQ_)DMkh9}+Yf=$3i$;g$(>o_P zD1S1^8A%bN6p`~IKiaM7boLI)u|BHaxzO?Q)UBs>zZ}M@mH^PrL(bsRnA6Z13=a9T%&cI=aN34yn!w>}{N{iUk^x@#x9L`LYWuJm9 zuI!@xiFCue390_OAws+?AObcJ(h}vWGB3m`7%0vo_=eF0*%8nszvD=19cFb5y723$ zn&TLL)+TcGX(Xk3X1p)~CWxZ%2>y8Fd@$5gC0Lw6a&Gy;bX10iL;G_K?%W(XRA7C# zYNjQ(d%bh>T8qh>Ly?v5+Kd`U^tM(xqRzfbI@EkWP}l3z%LT0RoGVvC3M@RqT`H#Y zKfWkU;(prNIa*xkRt4<{H*q##>dz~U7519?%SE;>gC?epwN`|I z`6n79G2t1diKWlGE#@Lf!N1;+LMA`fmp`!G7P>w6;(>o_QtrIm%k=#9r(4OBkB0j! zH#rz>z3)n?b4i~y{HxkZ{Yc4o*L$9{a0hpNhsRYN`zsBPyYJfMeC5su*T(@z28)k$ z9cWFTw!2?)?^?N23kbMW*H7H$^85P#!{2Ci`5^J@dbnk^o3`xv#B;iUngp1W|K(3& zB58CqkS0os_bq;1^%e>KCtwrcVQ=5`pEZAf!R-d*%a`O=AcZZsLu)zVf0Dumq<&-< zURJ>85m&4*nzY%s$O&TY1;N+L2l3}3Hx9;Elr zrH?Nr7cRDQnxf~!#St5kAAEmhL{Kb$hi*|BogXfu;0Hg#cGYl%gvU|m2pO%kBsPkK z-u%e5zmbzXr350nB3OYWNgLX4#6riogNkY%ksEQ+D4T9V(q2AQYqhJ+(FH=sFVVEf zzGAaVQJmTt02QzxXdu_y_w z5C$lEvsSKC+#$lkt`%F^Wkgd%R0-v*pO6MZ^xIfZ37)RI1$h*~480LewI0TNglaQ* zL{&>N^|x%1+u%~DviVHckJByBIhj+RoQ_V=0<-A&W@Z9#9yktzPDmZeJ_l_s7Pa|L zbd0o)cHtE$C+cy#9!WTzlM#ehgBEy{Ocl8qRUQs)t}JrYEzp zj{@RikCGj1pU8453A0v6!CHz<4|MzXVUInT)5s28ZceES8NaV-eWSJ{ELT$vEXRhg zHgy&(lzj6&$2B=%ZDm>u9wjc~KV*)mWDtgAGb)11Z`b0sle)i1Az6%I`ECi+bYAZmVguj?p=b^nSlmHZ#O?OO)(%I=!uae<{9t zh}YjCx}K^I4e+|u3O1dWx5dYI9#=OCD87^E+4U6+>B~;Mf|H=u9Q;=RAkfXpUhG82b zbg@DT>lCWP(Me4@iSPqO9277*yGja39q6@eJrdPm)ZWuDESi$0d7eJ_@28*%Y4~aZRpms9uk1HO0SG|u9N^p&8EXBCR$*(9wO{vrPT(tW zr@M;(NaJd0grfV5Pd5HJMcZ_-TL=)GcGOc zsPpb9++C`bx_$YDCOy;CHRI^{FcFfy-cwCq)8LEnTa87iXvW(68c$RuF3uZp-{(>i zU^GxRVOzpO<^PRP?yS#?LT1b%_*r{+qCuTYX^wix%IM@0X7;)S?*i zv_?X_B@KMA>nNcT@a*XoMlakIM~r`a%{~HYf<*|Z`72k%NRruyLul@FN3`xi@)PLC zf_d48&%|xJ`?2<7y!t_z=>RrDbfkxqe39%*5N zqDA04-KY#Q5ZK!gHGTsby`WOg0t{?=x42fpou+cLw`7KZks5p7%qR<;|9Qxx3)lQj zWYy7QM@Sx+MXTV@f^L}Z(A38^bG#`OZ1y_^JD#ZTH=|ev6;tePejkm{p7EgWY-9DA zMlP!9I1dO;zIr+EG|?nDSE1%)T$72d(T!5Y=e^}lzWF6VnY<$xW=8WYpS`>YavJMU z@83nux+D_oEPZN}pQ({AIV-lsj=JgoK3DQHz;)IlaOYQ}{EvA}J@q)jjuYxy-*Hc8 z`+%zei&He`Q9Wkx%~lK5AkHuk$TXN+=rt6*3V^D`!~vh&VrEnt_!1l`9Ca9$>rs@z z?$` z>JR5W)GZMESx<`;y52{Hdo|}N``~94l0iDq7`Kz7iq(T-J82C++A(S}Z-f?J;*BVY z>B#_atLB5G2p{25A3jWdK2)d**Ofl`faGy+jO%~=I5~B9Lq_G8ZP|y(bG;Xzbz|!$ zZ5Zu~cVcK#&G$GB%8`0-x)8hMyO4(>Mm?g(JtTlKL6Z|L{m&YiK5dHy#^5wzK1&;6 z$hUH~(K=3u+wk+t(kAfj-OE`mrCndGuUIYix#qwMbNf_%O1$eVYwyo$xA@DMdSj#K z{#B~%XL30>D@jK*>-PHM{cF}Fos2gJmS0l!a?a*+T}#TleRBQi9d?o8%KqHl8T!5x z?{dm<(HZT+{Y_yVjUEO@yo;3q(2IFnBUrYg#pFheMN2uW9Ja-rr~j@5u8+aIAAmMq zLT=OQ5N21Q_0XO;W3VgNRuQJ*|KFH<)2O7@J`S`|D{~%mfKyhMLsV*(BE02EOH)#F z9yn&@l#xe0k|9(MIHbOvQcs#vnvyw?sad9=fO5(TXH!cAPMK5gT}t~X^4_QW?XLUf zuDkAs`@vePR$0LF?En8aqKG=PAj7^uOl2=Q!3|&z3 ziqE=4@p(v&2ZamIVdb$u>)y`I94JIa{;95Pj+oh_eZl zO7A9U=8w7va0i}2W^*oZd`D}3`Xb28R_Gw-Cq?SiVRTapt24x{1Fzi%+-C#b`qW?S zJ#H3Py_{s_2C8yW>*Oal7FMu`a@7ILCgPm?1x79y>H=V4H@G5a#Sz^r!gT6EnACwm z_LAsw)i^1DdAGt5*RjfydBEgC1Y({@yKeF2!a4+0qUw<3juMXQIQgBU1;01}ui54k zP76CkuQ!eCkMWMQPZ|rgU%iG?n#DJMt%H=stm_JGxj{cA2u4qW@h5YPeqEu8IJph5 zcg}J)Da=71=k3~$ z3Rb=ri5GJ=1Bux}$3m)N14O?@aZiyF){*@>Ia}rWVwx&q(QRLv(NGy3Y6%t6%OeZz zBj{N7M^T`=PN_776)Ag`T=_BMMQwmEaTl9;)p*sv*z-}tt;)l^BI|1JjSjALP*dE$ zYGFnD0vkNjvAV{%@WNwlF5NrAc=mn&)4ElLdE$$TtgcUF`L4+C$6eDY zG?n33v%Up^9tjwt82gFE{C@ zT_BG3xDC+4g`+F7o3Jbgs6_P;I(KY=4qD^`i=SUHC%i!Z$pGt?-S?W+Z}OAG_K z67oZt+XECb6>hNETG}$1m&lefY6#G`!kjFchNnIu}lZ-iGCD~ih zicgo*CO_Iq7SjHTN(Q>4OwM`6XnvOrzcqoQM}0?JEBCCDYeh09f8xq%c=hI&=rq!X z;xkX|ct-ASypcnSwUOt0n@;W^Z4o^D>z}?w<}o8e(|%#4;tjF!LKf&^M!p|kEn_Q3 zfkcD5YMfXY-JMM2lGa8kERgFYNt3_aQ#n_DJnH`O8l)bri6;Ww9madI1%JgwT(LeTC;4OkFNcauYQRXk(by&E&$--du?!EYn zfGeZE32f;OB4mhkEU8*88EvsEdyo-XzWWubnhV?#0DI73{SK`tLzBGbNe4z=@mqS% z;uXtFE?HD`OI|F7vTb>9x#BIYk(nX406}s*&Kl~LNZh7j>?WMvj6$`Ks*C8mLG{(p zt3-9pnI34?6I#kkSGtuldGs;D>uUWA%6)r}jW(obQ(Tg504p(@e6J`FrH-tJOo7W? zu0JVSL(xG_PLeiJ>|ou6n>ZBNyYr{B)ZH z!~HuAE2}_OrY_ZD7OnZ2U=T3RpN>`AbTErW;27)xO5FbK%i$*bGil*PH;fK4wJa+6hS*;}DYFHkvp&0@@!lN)c~ z>68Pt$Hgo)!Q)8#qmBK|n-*1d_s#DPG3Or@Y)P!{<#yX@u`)WR+McHQ9CkV+*@{X^ z7hE`V&#(Dmc>`kZAH3^`cW2m>1v?smO9fu6jIZgZ?D_qPdtTRXG5ELjd0@e=BWHgP zJ{0+VYlV5u5xXnDmB^YK3VcoVGrK)I{qlC)<_c%=g^Jy)Pw~ zaveOMt_DFxa}6s8$jag$H>p}=eOcU3XgnRS8Mw;+MSc(};;PdpjFA*+)ldSGQ0mzh zKKT~S8>Sk=4$*-j&Fm6tV*4RvB1#60ez;Ny?~M5s=z5-BL*i@YD0HLx+&7#ilKmZg z`=d}3MGuJul_FCigIG*Vr9U}(B>;4Vni8R#Gf8D84ZTfnj$3AaoGMG%G2+r+H;0-q z!S!wblGa|hyOP{_#=Ci6fSuaKjUK=J9q(7j_J610Z>i*y(_@-{b64iuPx+NOZ>qWV zO826F?>y;Q=3XxlQ}#PRv=?uzQDF_Y3_r^@3$e$1t>90&ftJy7h|x|MJ;hD+O; zsIC{SFv^+ST@$0sMXzCXSB}WlYmwIr+%hG|?;7Xg!Z;4CIh%Z_RGb?WI*|AfDXEA? z9fUp(whR;1n%wYPqL-glEVZO5Hc~VpoxrWAjffq@>by+$?de)3rHdg3Pq+#B9iuue z(jYC)`w5;IZcWDBx=`#`l)L1PJ~7xvjA7Qbp>}cl7iZsIa2U@qirVoH)r9(r_LRj{ z%2H@4-iR6(xKpWoS?HnbY!iwB5}czoZ9*w%=b8SB5qyd9`1wR>E8gu4W#q-R^O( zL8HFr@qeptR5-VE<2J3{$6rEc6Q72#=G`I5z$78(D;qP7R%;_dtjUEmwkE>jhgu>Q zlR_JPUj+L1GdAggm^0yb9zK$k(rOq8J!asdk9oCe_)}+Iwv6m9@&&Zrt*`3s2nb;@ zga~vSv@+S6*NRS~n2JNt9?*{rtc5st2k$@76x~J@)o-C{>eQRyXg)D;s&6r6U-u@< zrg>{ZbIa3)rVNXi$Q>CrM{AGx*!SEX{XSfYb=-GF5{kM3?26pB^P#TKGrbs=(|*-Q z!w+cJWfj_K2j*J7RK5PX@?)gy!Ou5x6TLjl^P8*p_9x7`sJp)|)i;m3WA2$A5ccSC zLYY>sVRQTz!%sZ$2VT|#nU}33B zt=au;tP;gG>Hu2{DK+a(Yl7^$7Pc_1|45D|-w<|*)EDl94vD7r815m(;l4!1W{P9) zK8h1;E?y$3f9TxBNW(f!E~rsXDtd3(T+QEb^l@vTUBB|-!)xvtuRF0pw&B`k>%mEB z?;uZsH6S?|jEd-N&IHnOHm%i2(`2cUi*KXYzYTRpk z`!V&^g#Hajl`j3jvlFw_Jx~AqaT+RU=edN5F$O0$eZOaAmhJV&r;c}(dW)Vc!^LwS zeDm7<=y}_{D>jET@40H7;$f`On%fBX4%O7(5bNoTbHK^{hM-qx+ej zVS8K*p|bv_A&09^3zEsn?*B&Z@kx`}FuV0$^*1bt#; zfk{h~jP^}I`)fOiiQ34^6DyW2n?DCUjj>Al=Sk44gHdJS7>K>S2@pL3UDSl(ok5zb z7%|e)k+WmZFpZq{g6x$L}fwEQHV%I6>8PPNX zW{U5$4pzQtRl1p3MQF5ez2%vqT4^v?UHGZs!0Fr*LuVSkcZ5xxcPUn_@p?mT_Rym| zWg2+gVLB(wxSuz;>1?+7h{T5!Wqb)-NBrMre~b3vdI=<9*J`05AbE0pwl?fBCoa(Y z&bbON>onIr>&x$gq&O8pZPd+j znF_;@^N&X#XReO24me}xAxR6>dfOmWkWrPX2c(+`^yXL#yf!GGqz#7EG1wH{|@ zysF3u(u+3=;b2)AS76dLQ_L-3`F3M8!U>Lid5JFec8ACcv6L}r6u4kXYv zQ=Fj-x8c+-z@~%xuh#UI)HZ)ugqZT}?6t}H?l2QnHh9&1QU`cmgMf=4Gm<8CsOJ)O z?hj#)V&)bq|ZJ0uuAv+HfgAvdnV6e>)w$*EHs z=(-hEW?9CKP2!=9+Xgxc0VDiV8XodcWxWCP%a%^Uq5-7@8T5-n*_1gN+V|Ii%xeU$4+FBj@;udu^R+aDN z+#aIivlepyA;63|NbKhE@YP91M-S!(3Ju2XC1q|Cl3PddYlf@ZB_zFQqIT0JN<^&k zjasaUM0Lx^(SfD~)opWCgKbCk9$y%_rP}^bc2;clFY&!pCO{fieg$fSqDedoI9x=j zO(bP9$#1x6-sN~d&SCmTPYP3>1mYWBt6Fn0x$i~s}FN{ol!;iUH&m7NW0b=5XjJ8UcS){F7jUA*4znW4KRR8h z948kFJK1KvHXOaZp${jNRqbu}ggq#9TYGe%!t5A%B&T|tU$uR_==1*3OO!@*-C65Pr);rQ zTqAGbc9)aM4VD+pljl+3Y7lw;_nt3T?Y+oXq@f4P3wPAHCYmt#MCf!i+Z@=#yb&>+ z1ms=wSs+%N&K8oiu6ERYgAg*hiCOme*X z!>(q^Q3~~ueLJ4N$XfbXC7M$x;bRC&RDr!6zeY6XB>OKQgboH%@W52GRvtbAQtR!N z=kAIzTa`dZq?v%BhSe-5JB1>#AWZE_Kd6+QRoM2b(`|vmAUhePPjI+Y<9sd%Hlc*w z4|I`ow2m&L;Sw>4t~f&34ovYuT}43nC?@4F)WE}1$S+cuJb&6WGS`GQMv^?CcXde* zK1K&pSz+#?cPEDN!QSK?Wgn|Ty1Cic|4VSPR5W;gSCG$`Nf$+FQ~7i zl3uoh;dtd(3EzWA^z5s4Qa0KZnA-Kd=3TBmd*F~b@UQb()z16sTob;{U{BpEXZoVX zN)LB4ZTGmm#_0l1lb}$e{QexVu8{8p#sPu=@ELtI^58yk1BB1SN2sH|h}85a3t3RN zK%(?Q3I>ObtM@4ch<>_vu~b_!m4*$Eje|H6W&X=jmlHtYqaN_S2Syo@)`e2ES9HL4 zI3^Fr+^`|u1U)K`mlnpoJB!hCCa{XEWR=y10rV;L?T=*9Tpf%TkCBPNz4Eo?6BG>y z%?-i-I)XEg93kp7wOfb@-MKNo@Lw;G-&)_Yz?isifdA(Q#Y+S)3koq3h*W`ed_~&Q z&B{Y-00K2!s-H@6kkGOYan>gssc*A`AJ2+Y7BX$-i6;?I=PpLmFL|WKK^4E!R3-u= zhxL1NiTus1U?lx~Uw6)-l9iqE!$8g)UX4HNkP_1^gsOMfCIK%otj zv%(D@W>S3!ssd0nNtWU41PUh18$ASqaFnIt?m9^f5x|&h zFDeem!$9xc{0_PRuPWaw$@M-C4OdR1wL!NZE8`hsoh{lVaFmh=wT&@(j4>8}c>q!8 zi8eRmvpE~<@aJan8q>sWwkgC@@I*5Z<~i}pG~nUez=^0n7UCpbP@P3N!ushF4p`Sx z-m&VY75P&2(RBh}r1ZZ0HzW?8lD2eUO#J1CASM^DFQQo9p6qU@l%IjruPv1lLLraa zQjr=Z1~~wy^7=#w@n>p!cY%boe!6T6OnBcG#)=v#9{Na^xw8w3SPB3?Dq)>yE5vBK zWM=+v4B0z`R!upKTq|s4--wlOd_Yd^EDBYH69rrY67~R@tuxpbGc|@VyZV8XAG-a1 zwhYs6lM*;f_-5(bRikmQ`s{Xk>!pCjM}sBQu^tU6Z&7E5m@s;V`?~bhg#*JGJ9Hle zYH~qH`>_A!J(A1b-J|`4U&xOyXJ2+ba~8>Sjr9l}&e-R}Y20&l3zGca{ILJo1L~SY zU9bFXGE1?Av$7x2mkt%py^X_XwRwZ1MA#hFn$-l;=cXUd=16IV$d+*dTMfbzw^9f& ztCMJm4UwRAqXHQju{7~+Bm$y=TV>PYPiQ)smPNTLeq@6&JSoPwl8`-9b2HzgPlI}( zr2s4TTFQad`%PhC_otZ(Z4+(DJEr)f85dmL_ghEm0)I&EC51X5p@}pVqUxb{-I#2V z`p3kVsWqYdO2)`E8NLC+bejZ8ggkUU-h^#9J#ml&?Q4Yn#Om~akOTFgBDhh4UW2$e zBeZY{MtdCeH5`!AP>7%Z2t`%QP$3h$tSQ@p%$etqau%c{I^U12Tl(ka&{qV#nbvs- zVCsyG0%*c&$AUzs8WKqJGjT^ErJf^;F}#|I=oTER4Ln$QBn=1hdDN8Hg?CrJ9?D{) zkO=o!3-7*gaL(VUENDdcMg_Jde{K2@LT(-FE8C&gB-M4TG%QxAW#zPJ?IjM0la4clL>WyWAk8phPEhNQ)GLT-%haM>6X`$& zXGq!i6so$u+WvTUte|5x4=Csu($1iVnIwinMic~aif_gxRh zBkk+j#+pa|2CM*GuB|RhYDSL09KY3DKi|g;+D3)#47j{R^R`etuT{T;ww|&RIZ#C* zf~`~lvA^?{N!Jy-L*J80|7jYw`5PO+BnO2;pJdfwF2k!KbVBy>lz)!Pi{U!VbBi8L z=ZxJ66+-hPKFNpuyIku6M$(PnC4k1p7X{Ic-CpA9l=$FiuIJk)k9{KUzD`&Tw1J-A z8@_3_%WZS^+usBH3QpEKZgt$4DxTYS{;=ylT=$)a&&#}d>{C1Vl7k<*oDuwaywe~E z$f;y(#U2n7Ovp6?&U%n5BBW1sF4Hs`($Hf~_Fl(~M{g42q=0{(aohv&i=T~b0@#+Nq2fPIFlbo>} z*(JP+!hSk*(<*E7C*{77M%3c~kei{JNJ?L(=TUY^7t$5$dreoXfku}A{m7!Y)KKi2 z;9Wn1!r&JEvfuS3yrE0@WSv5yT^`7Y_0zV@yOe%06m{?5%-wsY zzIm82`GRBtF&6?qIu_pnl%Y1r7{g>KKNGLorYaR7!O2NEoD2EuIv>j&U`A%W+*FLu zwr`<>SUtDNIgX}nzQ%_y%b!4EBL%%;1-w_OlB+7E>Stc$i1BGw&7zHDlJ~NTm^1%z zl9YwlE=R7Apdu+LZPC$9itnb4F7WXBlyD|x|C9eSIRpsn*ImN>0zL#F0$)AXOj6YX z>nF4lcxZhxowxj%1${pOO*Am02K=iU)Uzy?9F+-EKQ*u$zC(UIcS1+&LI*7moJD+x z6^$!WvtgvO_YYGxKbE861d*ZKt{f5aIhvLvoMn{ASh1Bt?7c+sDmw&=_#_Q{4p#Xg zS(ym@`Ut~Af3{pzplq zuJ@~qp6LfQN~)A!HKvr~kR zulkEH%{97PZ|^UQo-u!(W#-G&sAXs0s0%#s8sk;CyXsJ7RNr?i2gR0+P*x(|ki2l3 zAzgZw#@L`x0gMQZ7fa|AZH?$}BSyjbQc@Qom8P^$p?g&Ps$Q{uMx?<8P7dx^aPq#} zfUzA%4vui`MLhSw82s9q5rzi4OL=}Hh)r}ryg^34i@2&`Z%>ed8nTfjq18l~Lj|^rPO0p|ZCUb&e0v;COi+&gLml6N zwE0vv$6jfJPZ)t+1gq0&aXMA-?b|$;Lq2g9 z>TYIIsC7BJe3m}UQwCY8hBiML2!UqPVtU5aC z8Px=359?p2n3OxkOj;R*!d1<6ntxRpHO1&8K7u;Uv!kj798e3V7fP#gNubkQ=S z!(CnKl3`P`(r!NB32$ur!45u69+%nm%dbYnCDu_WtL5I3jrn}WdP)$8ybKkAY~p%s z2oxg#+1nwN@*RVT>gi=BLyB$DjLkOg+7f*FSvVNLk`&EaiZ!f!9ecD+?glHE=f$PJ z%-Cb?jS?5$&xn9jN0Yh+H0+gv@kvVH|4WOwx{BwswINYvvIRec8#G;%-I75lymTb>g2StsxRgt7iV z_*$#@ebMtc%^zL#)7*fb=+f~d3Z`b1hftvU{J%Pn>&P3*9M^2P4fu-1^|s&XJoT{{u1Kd65vnmJ@i}D%C6fi8@9Mo^ zBD{|N>4}~2Ax1sfS=7A@LWJ<^qgpc>r1N9lsfp_Y$w6IIJ)na$SlaCE%7zll%DEp_ zQSqtQHg|UHyhix#gz|bv4>d=1S2^%I1WnS$Ex0rtP827zRS5Lwg&p#U=H8_RB%LQJ`>_^jBkobv>wyK-BJ(MMZbyhcoM=!4a2@pwR}(4!Z7@?cK6 zi_cAtt@v8CS3brvkhNv-{0b*3(wAk4joXrox)d7IeP(8;F5{o?anG|C4+PlXcnmEy z>bn_N{{|ZrEM57nA^LWmSGqY%g`Q_C4hd{~Qp7V0EZqXgiYtii%JC?Uo;(0vFaBH& z4M-w7MOk>&rvI%`j+xjF>38iy5)U| z?48eGwUS4Xez#%_Q4Hf}+My|$L~X_2=&hW{pDQSIF9x(kfoSkhiU+*%Wm%L*-G?Yk z!KvR7O?4Pqe9wIHq}K{KWAURuCS?Usqd5OYLUkZdypXzRLhIuEmc4KWu--}a$apAB z%WLzIbtRk)+vH)+XpBp!4(WR|h&u zF25slj6+CGcVG)Yc6W*$Pqc+?He-Jw6~>>8lUU)1X*+n{9I&${a~J%dJ$*XD#vt+j zc>`XN5ibFHsfhAXPsh*vBhRq zs44+K^gE7mK3Fa~4Sh~oWEeeXQ@6M56LF+5a-6RtM1 zfZs8N&if5j2^dag2IVBu0@X~uOGRgcq)ss10?6Wf@W)Y}gph@^hNiA3Y$MsMt`CAk zR%??5*|t^~kEKUq+&pgSaL0s}%OlDYsO1PD1_C z-xkB8HL&JmpvO`%rwgA^A&VNp9SDs^xA*{q?FNL=P1BN_LG%tkVv9QXeY{>}J93^C ziQghWDap^$p!_n#)|*Zak>yA*D)Jq-r9Q(g61<*WCQdC_6!b-p)_QKj=<)@-RC0{n z+vlx?PGzu_@q*^{%D*n$wc5(A=$VdtXQV=}Nq;mPUKsW`!uZIou;_@<0@r|$D^msg z5AX8RP3;=w{(jctT?Ss+sX(aey*{H`@@b3hjL!pl-OYE<5Ui0Pwe=Kpo?Zss%6kXu zas_AJocB{V;9+VAnoB95E_7k#2y#_22l|DWU7QoCi0tuJ@Bmj$GIArFGilcFMiL2Au*F!fhWEn{oZnU`ok0q~I#+b~# zDkY&WtpNgV z*VTu>!QmijxoHCg%2Z<@)LqbsX+fz%3v+kj_1xh=R$5V~zFl$bT_itVIqw2HGgL&@ zxRQ?Rv700*Uw*->;9Ze9mHifHyi0I6Ix#*E)A8wjQptH^ReHWk98Qfk9^ihl(e^EQ zndtj7w)yq@R)bcOeqP0&ed5<=4!C91TcGF7PxjV0=RbW_^G+x7b^EEE><7Fd>n$3^ z>13&*IhR#-x|*PB*!)Cgt(Rx5IJd(R)2mQkWl|hrb=iHu`8Xi1Q=m=-JmS*O>Xcm) zv>sByrJ)ptWR`%6Lb6!MZGNi<3*rgTYZo16IX|<1(f{eQsZ-`3QtXF=4<*}W68X91 zQO{;m%83p?$_!U4Xc4S!a&H*lAyk%=0dvO5E!))8K8THguJVXFSj~F5HWC zV+WY;l*-wnP^(@m%Y93AhQqQcpMIFQRtPmmk!%Xnki! zrAzFgN_D+s{_i6{!J}PEl&%I3eH8E-F#d6C+4>eIG~+j=jz%<}1yH?&-IkHwA_2>KZX13O?UtqNsd=j6bS) z|7_pBrC7ByXKq7dPpgelk<*=nUAwLYP`po9@AdQll%2l!m7DtJWBwPnZqMxMuXEZ0 z55=6_J6vJloFM%C{^oZr!#FxrMQGKA4NfbG$=XB%Xa5pmj!#CeXzx>^oaqNwW zSjHC0Q6PVhWMtYC=0+tSiB8Z?fOGGiR5z0EhLw5v^@=e(IPM*yEwkX$j>W6z=I1Vw z#*`-+T%wZvWXM^g{ETHvGKZJ1LD@e_dU|`97K*Oh$v~gyB zl15*~T$9_b?2Z&Qc5$v%!0MT7Gq?N7@Tt}xS#1ZRBtjJVcR>J5zfQ7bcU66e!I`co zHA<>}dWjcQ0}Fo58RUC&SEE@^?>MG48o%<+-TSS-;u=qE{l;URR&}6H%*v^5vSqPO z&9SnB2DT+Vs=0*y9fK9bj?N1dm%w{rmRt8W7oPL5ZFo*04bMm$$oFommq=nfE7LoF zb1V$mdWp1mve0bp%{o7`<*qHBJ=R+cvJYVcRw9w0&IufF=`7*XXxsKtHbdV9B6Xl@ znU%7O^to3>=~R6XLOieDQ9PA?wtYak>o3K@iRs_X_$;OO(SfoYDE~}f)5~^Wx165$ zizyD?L$Qu^_(;sPr}AGL5hrx_LfSz}z~F_!Ixz60Ps0|S`LNbE)&`@B7idun>DIkB_7vk7wCNMpj;uSCocVZ(VKnvLd{iqpzH57-)Ln?0@szG&Bzk zl+}AZasWa9yyhFZG zWu`R^OwTj5RQ zCsvq`jRO1kt|1|BXA`@`t(BI!|0wGuCRK0TyXE;ny%9gADwA}-xc^uS=usR1p&KF| zo?aL@FS-dh;PqTOZ$i67VECBa(mi1W)dnV|N!jkZ@!HWXfuAd))NYIKCRW!i#!D;~ zEKcNmKF{u}XZOx(Q~yxB;XJXO;`N*WsfRTkY&2YUUCg>sb`a4nr+5GjCx7)Zb?*eZ zq_b=v9TehlqDU*&a^GG8mvsFZ`!LXURZWoT?nsNQ}wh*8_ws(%Z|_=;Yu z*d$LzKs{FGgavFR?TJuPo_}yR{TayTnDI{2)3TjCUv%N#(SWeZyw{f(O(>zeOCygR zUS^CYJXwVPdc-qex~Z-{u!jrrYZ|us1WYosc;W_wi#~w8Kh0Yn0jvR@Ysj3N0@y!B zs?-8;CYc#+$Hi~WLPnNMoTNmaP#-8w_+xKpre%kKDZsF)WCcTK?`~{uFCOma1@*K3 zlN{k48hIWXVgclFE?Kv5>&dKfZTbM*W+5e#MyDzuYqSY6VZ(2d5Nq=P?3w zBc7i_(EVaa;N_3qmR*N-Ux$fKtq?OGyQ`+_u{;7O%&v+-XY-9#8G{5Xt(@-r3>D_U zYCLbn-@u_@-0G5rkq(&D0!080OR5Qy1A;H@mKm1nqH8ktTY@Rm)e27l*1nv zW-Xfu)KjULJ{$&Qz=sw{87Nz3x1$!u2>C4SE=;y8T!@danjTBa(&$RmKlLEJ@F2%w znXUTSKeOBa3fR&|fA6sfe{?2&?_dEXcq;QW*E`q#&qp;!!w!UYKihtG57hq_DKa*Y8TnM`-Jn-P!n{e}*wFHZv>fVPll4uv*rBLz_>E(o($w%B$ zT1#6HXqG$z33GvC2JhbA7A76XXHVFZ=!b|Jl#R^DWdToJh1?X32ndR97?aCtUNv)X z8@5`?Ujr%$hUIpXaZ>8MB%A)9tbH>~8UCTx3O+>vJefv*U&A_zqbzHoVug|rp`eN9gJ|z6vX#|Gh z6E9l(Du!?tgPaKT7>Fy}3f6SiT12~((U_k_qJngc6NnVn_XRo{u&b_Z8o`-Oyn=VE z2vGV^RY?ViF3>ntrrSQO_~paQ7%?|7s1D;((o^_uw!`;sP-DD+(NHwMS^73Yve5M} z)o~`&5UFHQ2*7%Q78h|H^}V3o4I=_Y&fqfh&NrU08)5mAexW|{31qzLATKN#+2f<`89V0a{Zyb;vzE2$>GRqP>u_Z`OSi>=Ifuf*-!6CaqR zd&{&DN0@#F6u)klhqOa>9Sa-C5tE|1YStIgrbV<8d8Ny+umuhZL3%2I!nSo7x0l!h z5xK22ZmvC$vZ>UQ^G`x=ncY|4x^=O4x568WKMk^tHIS!!J=0xnnZ6IFuUhUiZ2D-o z`L%^f;RW&=M>5kemoSUy77X-EIg?vq_64bns`t!dbdkn|p@v>we~;KJ{nUW&v4WFf z2No;6Rj&*8zX&~;;}fz=z2^MVr+Y*1%J7z;5HeKd~ zjeBR3DGY*oKs*3l?!Mwcb_2;{jH}QBPzWV5HU*MjcIo$1&O+!soDp(t_;dK?IJn|i zTQfqFn3$M6@Ry%th6)~jIC)T@Q_`)Tt`OpsLC=5=LXZ};WC6ANJHOB!Fry2TiPvva z4ZE-C1Ni`$grK*662BZ`z~IjW57Oz?+lx61s!6 z7Vzyv>)LkJ%l8jm`~;_sEu`DVT6cig1>_p|h-qpu`Qg8h*Imr>Z#{EmwZOb!KV{d_ zi|$KJm;H<1M>u8GcscJ&Tb6^O$1xxy@>F}lF1+iReSRi& zH^r{k#zgt(z`V`)N7K{r@ricH>b~!8&2U>_PX4+O9y4^5T(H<49QdJpRG((P`T(a% z9YGr}64JGfqpx8N5@rdRGQeN!lPzS=0iIzHiK&ZWj20*HSVq$vLxn16DU63LBql|v zi!~{K%=#iObx4GGA)Vs#2)W(U23y`n;(r|;u;6hT|IbxOofZ~=T~C5;gHcTjAo*!U zqRnk#Vv<7|i0aHjt}?e7u?*7)l~SAW%&hAizHk@D_W7cq0Bz?oUM?6px>qkcd4 z?NV6Mzl{>+b$m2N14LAR9_fg_2qP56H(kVV(oy_w?>nw_tMv=VF zLS8Fz?yaO3Plg%&~ufomKhTJ~nzf)Bq~1-ACOMU5w6B?0hc| zhVM+60dvsV7L-!|IXHw*)#sixw+TLbZ^)9?tLXP!NhCCmb8^}5E+7sBz9Q|CKiN|M4>tvu#Ks0As{0N zRj1nAT~s?WMxZa19{b-KkN)O8n2S>bOGZ89Sj_g9&;Fc<(jwnQSgDL=JD~Eo$<~MM za^{FW5bBngVH~MYzNOgpN-R`;)?jzjstv?~jPUJ^huJ%Z<}S${VL(Q((l4=5B{@Bg zN&Y24O?~x?R(AYjDTe55kb0A@uqMZd^E)`3uH$nx&B~tV#L5fMGZkO+Z-qPiJ(4#=wa|Wdf zqtoWGL1KXO_4xIJ-X}*T|2EV3^AC}FZhwe9ug;Te-gmPB{o>xIqeGu=pAl!gi#H^{ ziO)U!x;*h9mZO~0b2(eL&`k55+tyjvXIlBg`)i8he%-a%vd|~Y`E*U_;lz{94-fq7 z;fK}JV+_!A%$YeBJP+Bb0cc1?Rz=spm;l9sGA@?vnu z16S>+ky2yF=x@1!mkJG=gY)wCPWs%d$ch&}$b401p6lYW)}z@{s6T%>;oQu{@7Vdl zuCu1;1z6)h^Frv=cchOc(Wmn@&tA4|wEtR4_IY55R}(6Op3m^Jm!DIpVS5H&Kl!~f zFHsjI>SjD+afutrjUamRLVsJl#Kc=n;;O4r&c!fPq5@IX56LUeun#oQMB6I2AKDG? zDtOi``S&XeYrnDT(U>0H5@*?a$%=9`Zq4wyzLoj)vPY|>iK`?~v`Wk+sx;96)~rRb z73b>$K|U{DOnRvQrzA|kVpjkGd}5t$-{ zL{SKHcB_Db5D@_xqe7rXAVLD!EsYFeP!KY;GRyNQ#79WtfA#sF_td-hsZ*!UP<76S z{h_Nm-4ukdp0)0E-`DlK4xK`nmD7QieUD+ols{!yMgSHBBP}@H8{h2}r|q=+>IbK_ z^(WL_2*$Fl@*5%$7#O>NlDXt}U~TU@_Q|$|LDla47A@YQZdH_Lf16r(;M$QkzKFEP z-`t2n@zif} zsFy}+-D-kPp1YdssmI*^$NulvKZ&CQ4|0T%&ztK3W)7DxsUNBKusCP>#>Xs9?YeXK zv%>}V{EO_a-zg4q+?W$M3Q`2K&v)dhTfDw-pm#~%8Sq`9UFYGiGLwF+wQTn=cCVu$ z%Z#DA$V^jg8N`r(B}JSWjA3kZR-hV&FTtC5kHVWz)|N-O#R!|dO3G$z;=5EbP4A0| zHvzO0eM6uQ05}|mYMYI0Cz2vYZ<*G@?ts_d5>nH#s_>=yl2E;eS|ff}Ue<&qY++H8 z%ER9r z;7^(2R;oAB19%yJRIVTgy`{Dx(!X69m>w_(gexJm^R7qF!M8w++0Ck%HdUxNSM*OA zuB`5b5!95g=q0@H?nIBGrM`$kgxC~!o4p3JF?dB4$XcBsfft}YTW%#ux+vx?@+UH5 z(SaJ$h*;|`75MDEeic?n#Pu_{Z9hQ-8hF~!<4AR9@vas?Kv@1|bf*BJ6%<)xtP^@h zW3G}CX0%<81YfJ+>!(y&Hffvj)@-jjth_F}cKuh!C9*v}$nk})g6LuRtl!)=-@wVR z8Q^`|)*=f~MAu)xX-PyGsk#%mPfLXKZAb{muI%er=f!g5R$%{9caQ1GLCf8*SUJPJ z?ynku`z^6BCc`$YRP_^fw;VXQP=HXwC9M1GA!QQvW$x5lqlUk(Sd$in6ECR8C*uUpa_Xix1oPA}?s z$jF|4@*z>ZxZB)$k{jRH+%whLmyR_2KBdD&*Cm)-fpZVJD_JlgQH9u|NHI`59_9L3^5~kRU83Q75l)w+LLjIh-5kB1aX|(V zV|qRDQN&%}_dS&efjhAi8kZ&HR*avID*zP%xYhabMPQPj-exb;g63(R z|1`hSrV%*H)@V_E;zxFCWGmj<*rHKaVpZcN(0a#6fFw0nPl{aH`x(cwTG+#wAD$rI z2a)Z?+n{(Z>V4B$BvRB1#u#f5UE{87w@m6%8gxhvt zm{<;LPG*xs#7s4I2J3g$tCev_&tayu>oG>mYcBta@!bVDOJisc43T{#i z5KVEbt=L-17O6uar~8bMn`;YrH)LoLDpg_8kKKb%eVUL5)yOUIPAVe=8*2ZAz0$W& zcGVRdH#b94PXpVdXDdwZ6rN47AO(R27{iCV8L3Tc2!)2+Rmo)EGo0;VWEs;&yJ^v^L??^Ia z3l~sRfoq=e8|bTKp0IK{))MK$Yhg=8RGPM*Z7S%0nVxKE(QAmXf5HCC*OLq?cOa{D zLUxEM6$Z0_Ed&~1;~`wiPDs!Ns*3zBJ=^T1$ap`#H34+hgrDixqb1BWZJFiofZ{*U z2;Lsoe5u~(#i(bN%JuSqLl?lB@=j~PfgmidrC-CHA(?OX- zyo5-j{Pbct`ybB>Pb>Z?JPoA)ht}j>f9?JmZ=2^1!O>T~2DEpCDOStN#qxSk8!}x7Q#e-^Nf4mJuACzI zbDC)!s>)R09yq&;dGQhAaTeD5z^j?5zMgQ`r`@KMmqzJblT}xc9jeg&Ln`82h5t&l9MBs-qIm#J6KB7Gtd00}$Jw*m}bh7gcg_l5^ z&n^cUIu=71d#yZyMguXWZ}xX092_8jxO4c?puQM`)oX?pclL@sK|2z@4txBJXhvVP z9s^i;X6iB{eUYFWuHCro_zuXnaWq+^h_MCf?eOcQ0js%qUgZ>wOO2JA#Jn0<>P1D2 zCbd;Rp4E#S{Dl`CR5{%gH_{lt!P%9Fxwdb#qwS{#`SX??a(LITO%0!W707S zI-F3?s>}MuRtuItsVTO zcYWzQoj&gHAI~-&p7yNFA?bRQ>`8xfDB(W+DbSLBv`hZK3ElWFSO*GRio=-SS0iJJ zk8HVVpXt}P>=U?u`!B6_I1c?WaI3rD`}Unu11%t?A+iU=cIt}B52Y>arE}y{%zR+| z0P?&q@#t;TxeqM?fUR&yq?&XLj9e}QkGVNw3FK@9(TJjop04@jhmve7L*XV7TgnUb zGuca*$UB(BFNoi5bs2TGpeJw^>kXXld)Dg@&=iFsOSgdL@uMR@g}hHl94qW75X=){ zo)izWQ&kNX%C3d<+`=g)2qTifs#qz9g5=%`%|aodfb14aEqkC>00EmtnX3I`Y~!`4g-@ zWdOH|vMFrqKc5L?fe?MJY2^r6n*csLt%VPj!yyQ@j%?79FVepGD92v=#PDP*lF4*p zMsQyLE_{%0lefSuV~o!(-GnOpV80#?W z$^yaEW(eabnm?-0s_0_S1e+~c0Vj_2w>SyqE?$b?`Q)JMm3}^Bq{5Rc4okH!TuIM# z-Q^u^q4L^CgS!!H)#0MYq`O?p64^!h1C006Fi=VG(#RLZ>W@fA0RYfZ%v2XlD|Ddp z2Q>)YSJ4H1%C4H#j%&u|QxnWCTU^W;#hYbFdW=o3UkN&^o_mC|F8yA}#=~xE*}AN~ zZ_S+#W_q7>wHo4|7XC45_t)1vEZfLglljniz2val;egI+k%cR?O5MP&jK)c+>`M8bv39a(IaBYI}P(v~UZ%Zx+`u zpU+{U14+?=4MRcjEQ01LcCe7hATWT{h@fu0f;m)zcykkS@)y15GFKdD31}8x?L!5Z zc^jugF&GEL*h4T_Z(Q8%VkLlI~jv(IW`>n^-I~nQey z3qZOlodiECx+9LNB8v}`5I2(ic>=8#brH7#x%)WuA7E~n8sk!pQ$n=42?4dKg_4w! zE0hCMhFVDBqa^PY74lJt$HA$QD%z>4i}ai*nJIF8#a7WR*a$RW1Ugm~X%$g5B1RPJ zVcPuBr?Xn=*Maf7cK(RRdsPZxLPx|g6M{c!=U+>@!W@O1VZ9UxaP5@g7v^e@+~{2Cklg)HUbx` zr2uO(Zo`X6=fG%D#r&+0o>S;c0xoV(G)qbF?SWVOg=Z5zrVD0l&l&~RxKu@+xC;TIm|Yn{tI#4Z5i4MW8~ zfc{hw3+O;=jMXKZA@4;D8UY33JN&zbDf^L0K<%XCfQ3e+&(=w*7D>y1{*SsHjBIrx z?0T}Zxp7*4^~fQ|qjR5eqMdj2)3Lo@6DYs4(F(nAc0Im}ojMGhR%WtTB({W{NRv3; z1}*sou(zrx43T;sgQfLcWQiu9L5iRiV0md%mHCdy?CTIhSMgSYGRX!2jPOzNN+^-* ztTzi_Q^gQr$KpI!^ z#q+wv^Y13&QXNm`+=oDA&D4(Gyf#DT(PE=})dQb8{M4GDS3nYcubGg(L>#@qll~pi zMx{`+rqJ4~Zt4cg5J->f?%hPv_iu(lOZ7Heyd5}5l~-`aH)W~@^wc`P-ma!Qf~n$nzPzz7Rl@l^lO)T-X09T%uqc&@n-#y&5bI&{3Ct|TnX7DO>?%hVUd z6}$*~#2oElp}rv!%@ z5e?s5@$pCM9Y9YRFqA<51N4axAPeZZ=?Wyes}ZdO>LFBW+ctRqV|OU9AUc#Fg)W1t zxlOdW-Tme=oXx8(O|_j*=CiKlk4RDjyWcz7`8c{QnY`6OGhNJTCesLB*Lvhdo9%V@ z(xqpyC7Vy~vZzhwb(HJBEu9Z`RG#-Q3UB!GE&bj=wq0!0cKhT`$&O7i=cVO=RJe zyu^aCXG#m~!rOaE>_27EWU5p zD;dJJL7WJ7<-PP5^kfuDr3jes;S^L$4zmQd+yLsdZP zw8~Z!e{IhnG1Q0TMJWW}GKKI|Gzo;#reKXoL=ND=GK8jr_Z*Qn@QF%@DFyWTT(Dld z61-D`5uBK~03XK%tn@Ha0;hZPkut~QY zd@rs|Z=eMy8js*&O<+r!%vz!h@ls+Uqq%pdM)Ld|M%N8f!+^oJBXECTn;uCZ>3zMh zfqV{DzEuH#egFx4ktSjG(JnpUg_aw84=)k5rUJJQEd`iz6MAnojGJ=67|j@VZA&-I zH@y33X1S<)bS!M7YYZgFQeFeKxa(ueC|0!*_U3$pEa_MjWq`6qo{hmJ#n*AMdL+7( zJ-|Y#kz)q2yFV~fn3FH~^iJqY-2iz0wF-cDp zLlh%~QHKya*xGGcWJds+0AkCQ(fs++mGflHW+Vi#J*b;nRH1s0M!NJD2$dr9SUIBT z&y$)$-&|ngEfza%gn+VU+xoUZsm%k^c3^#N(Q$5dJ6Ga%uUd39wz8w;$wx=^w93p1 z%sO8_{aN;9d&{6~?nq_8#UDz)T_;C1m|mE^;OTiTNPEw|LFw5Z@kdt+zh@k3Fy4au z)JY!v{z9HH`q-INgA3C`oRQkOD4&FLWAZc2NG;U-J1e#YxhvE^3HHV0MRvO0mvIu0 z^UNk4S~#EYb;|+%T(@WN%ygT|uyLRDyBM~{#C1Ev5{t}g$FQVB(<8~~T}af*F%pf3 zZXoi|H^4AkP8EG@>cFibo5RC5fxKrMslG$6mB+2s2VxG&LB!2G*clqRwIFi~ZIs#9ClgU?hcQtxpd(B^T#Vye6X$w2`#HfJNlk%PYo&wy z*T_1`4H8{s+huPo@t#M+Jixo**uu8p@w`aAEl{Cs4V$ok3A==P3A7Yiq*7@v?3p{s zEySb3p3iKR9cgJpUJCztr4DnTdV*9S9`5GCofXqx{lmQV@?BzHdhNuH{3=htc~Dysw0&&lFQybZ_0r^b9c`vCV+$&s_2XYM`aXyl!S-le&@ z-KzRpvnAl6$F)jBZ<=&#&-1}c(~0=G^o#ddc0N`2K>{lFfMR$Q-+`tJ)?+u~g{>#J zTIg+oJcX7reLl9(-{6q&PeYp#-i@}+u65IA-{Yfd(U}DGVae-dyJLxE*>?W=^UjW~ zF4X7j>KR~skDprt*OD|p?+*J!39lWniW*-r!Nv<6L7ch}+ z`YJZ2p-<&=ort2=GvSRYb*^8(rDE5S6Oq}KpA{bz8yFq9`r-%WNTKwhJY`8Rsx0Qo zc2DdjrYY2h+Q1|mBnx$B)~bk%X+{W+8U$;*u!n1aM)|ej4mduiO=CiK;MK?yUT+ME z=QgK&C{XHN*Xvcb-8wPR-z+JC!D%F9|M7xsy=lwDK+2|%~T%RTB;S8-i(` zrktX4@uZBwd%2po3QAl%-<*T*?{%*Ttd03@>Xn1rmiFnj2wF^<(FtdcUF-7vxT0I8 z7{JwoILL3Hm$(4d-1^ubN}0z;xFhLM(@CUMn2i^kpL zDqTw3MHoc3{}!4 z+=kXq)!#)cyU6Q-vjf*T+E|NDp{z%|g+Q>0n4sqQu;Q!OCbur)jw~Lo$f>~^Q~J;w zF9WwXvJ;>348#*Z&qHtZrACm?(Is0dnBmxUketDZL6XA4u9A;Ml!|&0BTJsDsYr`1 z99z(q?f4Do3E01&-vx`XzgF~6#d7c06P8HRiUFV>18|zFBPZ}k22nX|WFB%6dqjXk z^-5{Yn9q!%Q4^m?KJm0yc(k9|A1Zx=Gyga@=2iVB$o&z=UOT)1H!Egl1 ziMK5vC~E2IVa;2UQe@~xNmlz?jYId{=?)~opn7|C@P|^O8C%~&nI``;^eu~QtVIpJ zu)mJ=Gc<$W%jveM%>0u?KG-$*`Yq14+jKa8I!n;lG#42u6l{<={3frZUh=2X1Y51= z9Xr}q!-E1tik5>=0K!d9Juqhxw~!pU3*xeVj1w~~UX8cDv~+4@q&el@z;16F_-GZw zmQN)zZveW)Hy-^qLlwJ+tTTu;2KE>Yg`vzEp+5oToi0%M_{ro)k z`ZmK+Ql^N(Bdj7HLp(*eF;nRSDF0>+**bSUG`5t{tnUyCS)phef zQvEuj)|o8sxcxm?&-vhF><&NA@RcJ^`(j|7gsbk41r1g3wyx&=_louf&0akGfjo8L z#lt|g7jiYwOb^B1NNDOz3KrV@r4(IX26uCs6T=lhAqOgCF3`ov&LkCQ|D&o7Ec;;5 zP#eoQbFs%hM(*vxju;y^R0#^H^a;?#WOm2jso)St@zPkNn>lN!j^N<0LS`pX14%qN zfC1-Qgs7<#w}v!H=mVJ`DiQuYYe147QDwHdytF)Ybi7EOJ@IQ*;MlR?O8-E=-iw(2 z^T&Ik{2SC@T#lVG*K!l$LbxTo%vjT=rx+0!;4Xta+w**klX#_91KTm#lFKD z%(AywQuKU~6YY$51+>2mstF67=0_!t*+g=X5WjwU*#xw2K1}R?`5P2x+`jORDB-=v zt)=jy$p?RvGv?d&QMv`szRhbwhEp@wkT>X6NTI}=JKeSsDQx%4T>#brwf+`|8kt2Q z5b3GPjxou{TK<7hJMUoYfoKEV##m1SKln_h+^cXaI(;s{3R)~B#l6w%t+5d2G z_xH-g&66sQJMz@3V#8O$uRk<3(RpaU#_ygO_Q|r|^z5on8V8k8^I@-DgcVmrV7*{3 ze5vv|E!IiHo;HJLO_GACn-4XqtcsVhWhACn-+viZg4%+8K}u> zf+uS0fUF9a+L{UOac%2JRI%|b#by#uqTNAXE4v0y+`U*sA_%D&6l0R|X{4#nKd_TB z6N6iAo5l!)H@pA-WEPx@k&wK+vI1{GuhMtvPOGW-6&rR}M4gX(lu=6&w31(<-hH6(1_hN2R^)tKR6rJ;xnR zCYflMc&_+ON?*$F&B@SQG)0U0uC5-i|`)lctT*I=Cj4M1ebiD z%(FvnhUAz5T$t;clYDcccZXM#ADz2l5f9q&s0ONrPq>Hg6sV3TN-F%23a^I##Z#>9 z#P_9AGvq5YN__XLVy6@2*CCM}kr(4aiSHG_mQK%T@s)J5x4KH+Vb_ESwzTb;E+D33 zwMeV&*PLnQ13pa)Nzgv&*+%E|hua0-1;OTBdCiU0v1K8&N{c|U>%QOR-s=L-?fr7R zqM_p6g|C=5*_&7)b4MoZ8httM{7C5_6y_}V(p9|53GI{;R;WjgN$n=j3r~|mblq|+ z$V)rs@`4KgzTd6Z?o6z?nN2|I+u7mU*Fh97=i{>!jB{BgS3V1@JHgVc$lWKhVAa#9I-w{0-M$_v>U6Ki3&yU;)1`Oj#_bHrOpOJ+xgDVuG)3QktX#$g<73Z;oj zht3p7{`&rWL!fpT=qvmr&xmDY5!PWhk?_(S0L)`(Ri3BO?u2PS5}s}JM8*=sa%VN79+xURU%jv>4iD{>sT zkrLkvT!t~LguSDOM8=(rR6pvxGHlAl8q(X*`myNSwh7b>**19nq%;6}TPB{T;+qgJ z=_oVVdVw~f#4l8+sSOv~=dW1mr4^k@+~_n=HF!W}oAWjpIbdwE5ZD{ z|9kOeFwN5=Dc}F7bEM`{WU6#qt&YQ^nURVGet8w^#5T)|UgrVPr1NdjX=}UZx2uFn zWtVr)p3r-Cz1-qf4k6IwDt?xlLN%alkj1xJ_!IeoG^_W0L|^clqWhJ26}acQ>{96#WvqdVlatE{vOVglaheBrmh`jMA7I za&z_MaJHrUBxIb!)~87+qa^;lGObBXttwBtN%Xz5DZU+;yOnNPGwogbI$E9vjgt-! zlgK#S^P3JDUKjtb!~_5L7-96JC71>--TY2+chFcRp94|DG79BUlDlZ(yHY4ss?5hN zW^8&_Lq$>lx#q+VrDxa&Ka`%F@#>5&tj&Kc`)go&LH&l)TP5QgPLe()C+v;Y_`e+@ z93}6SKe57P*|K$F*jvbUNbTcr(6DA17Ykq|DYev_~gSKb342#ckipG*TlR0vY6U? zT|H|cm}_#bRIi{y`*>^kyHH*a?}BMx=PxsNs!cTObNVuh$}vBnD!1k0SBEoH+KgoeND9=3+Ykt%m2m1{dgf0E zH+@X{!uM*1%3CWyuv*)0vKM6kF|TR@JrbFH1OA1w;~B#_&(-7S7xgUzbxWuKn3g3o z6{1vUDVA_Ky9_Agu=)cFAm+$_*m4K(u(q1w(<@%Jw!AF5bNKJ6Ru=-^t-e~F_mejV zw*hoKnNmVOHI$kS=0gA_$UaG=#Wgqny0Vw@#%{P)%vK7={)EI|l;F0_2IBZY%P)#= zx3?o^5;S)XEz*_4ZANW7>8uMNIN(UO4YGL2(n6Ho0mCpCZ66;jb$p;IFSr>*r8yEg<$c&a# z(-KrSO~EuGVIq7<*+0Yw9>fJbJd>xDs%%zvJDVC2;5d3=_89d=Uw#AkI4R><%6V72 zYqh$bSs`vkhleZtRZqNr9kuz{(u)t(hjMJUJ-FoauwC@avpW@@9~(@2-$|nG8EUWc z%C?It+H9V{IP<8)Bd^u@YKdQVxZpAFIfI8D9g}7uESLZ$hb`)5GCTRNWB3)zxmjYO zXl35Ai=b`=4!Vi96nH1ha&=;5+YAG*LEcqDKv+TEttb9(+J5TCy*Nvqn|A{)2>HIJ z;_Mw6hl9^N=Vt2dRZ@Do`l*uAdZjs~Ma?~ASZaJn1|E}NkDdhLCKd!-3*Jqfj83Eq zbgX!{6jlV;zSIDsIG)zBu672kg4vf?RmXTlx+UI3I^q5b%AwW#9#tLc)fbk)PLFKp zHvL{0*tauhbmo&UEBo-JWkH0*Tb4d*E6-)#AS}1GZTCI^XMnI2(d4}9V?6AJNHF;LYSrz=K_cl2dH;CoT$i}pTkyXEIv z=E;k7n{^rcc8|XRKtVgO#q821N$@aL1p5D#v`#bvO3u#-xPN^)sQA!Now6(g6-fuU z=+NEeFM%qekKh9Om?;%Mlng6+{8t2s@(-nOEdqbB=}&e!XfAdf_@U&1%D_R9Ka@T! zNfHe6g&V1%xb$V4BIBG|#lClBeMG$y>E;g1uAN$D->@d?Q~KlBsxhV-D=}}H^J!#< z$1wrQ*&cTPr@MdS?<`*6E{h#% zBC?6r`LvwyaqxTIuvGkP#;%wq{!TqT^Z)R}DJ^LF#)eRe!ToL4Js}xubd)drdfs6B&&~uS1uGx zaORD^gkH?i%6`R8wF}_}5MKxC4z-#4jsm-hx%}pDu;cAELz(BWVjs!&L`&iWMQ=n2 z0;X656~)%sz&$q`;IOEu>q(HLqgQoq#O8osfd6Rc(+TojP#ih&mD8y~#8LGCsOatU zS`tXBchPpSEFV87IHLXSR4MWaT%-#W_q9= z+p*j`o*KwUBvd6*FQ?c7 zqOc>kfA#(FA+&gBU#z{O)8PF4!u*xFOLyK%W0OA*i-)~@g}Is?o(~V8ChkeRHy60O zS?zN!ig%9B3f?=&^UN_)Pw^Q{PW3-Y3V)t^{^H>tLR|T#eb-Kbx zyL;zMcbI2~o95o;Yt3IY3&mym5<#{Ly|f=G1$(JL-V2hz{@W`*##n)+eBB~j zrsGG2Xa4Pb|8L(bC4W(F{@rr=0VrOmgB&qkrceE5kN)p3!vF1!JpK1a_5bwAT%`W% zgIf9T4|nNGv;zplYs&}GZYp?%y`wd8fht7HpZZeq1A;q>2jG8f;K@&8_kuru(+{O+ z;J^Hr*TWUkPnkcIjwJyp)Osz3EP+1Xqpe6@CMY(W~;V1$obDP@t+g+KPT*eij#l6asB`Pm^g>+#NHL7P#p!0 z_19IuNtp~y`O1f%DLoh4%ucFVAHJ?)AW~dB8BlgD0rxKjHhvz3eq*g|7x)#i-+7Bo zi@o{Oe^dMa@Ad!9z`eHx3rbg~pZ~v2qw~%|j3wVXaA{Nx#UYtG1iZnmE@I}Kyb3wt zj4*}Q=7~(?7v$?}5N4b%GH{=}vNk$!N^c=mhX4Cz*4Q3~%Uw^_uvPFiYx|vwQS=2S zXF*lA3V8`zDmFO*MLv@=p)!O;k)lPo`4k~OOOG~x>Yt629Y~qbJW;w)o+;Z{17z7- z8b&U$;E5+jv^c>kex>gD`Yz$``+v&G>UY$6I}8j;}kQDtwp}yxRc!Fin%~@-j zf1vto>Kc8&doN7}Ixd)a6qQ=|cHH~8@mi0w#embOdsL#;Fik7it86pdAP{^}f4exG zpL_3RxJT)cj`J_v{`w-P&e0z05`Tr>E*^U^1YA#P3Ju`d1-ejkptn%L+Je@`8#n}L zF)L*j$gfa+Csr9+xY^=OEt4H%h_V-?#W!K)v+(C%9|@+l*_**6{uICPN+~4Z4u6w2 z7fn1!Bz}DFV$c8u)KnrLadXx%O^j~OB&Li6t{=c^DEbRfUBugrtyoLSJHOs^R^b?K z^f79cEQr?SP1)H1;^*l(3{?t_wH!7KkvN>THAqD{5Rrj57n=!k%O~4g9Xqs}ZEv*M z$@VX=C^m{90*K3GNysQzkQT$xB)t+b=7=jlk^BRO8}!+FgsJF2U$Ue8`F-E1kzyRc zC(2x~Kt*llhke+Ky;YKVbc1&Xb~Qk*X!a=#Nd9_*Q9hWH=M}9vOc(X^T)k&pj^&w% z8J{;Z`_6PfV@VFby{$)vz0PK4x=osuq<4s~YX1>MO7rd!3WV`+|JgMg#lUuhUCrDvJ-US zk_)tNwm8A~_P9K~5r%NwSnS$Zk|eAcWTnUaQ+9NZv?-`OAY7&N-OM*&r!SUjkCvt6 zmRFbcT>oCNf|u<_m={+rlTXMi75Xwun4N`jTESBOVAtDbx2)N6vqZ2CslyzBU8F2N z=T5ay*|Yp zS3VL{(|betoHl2TU5?uGA$~1iPQS^f3YH2||!*mWCG+w@f!*jt)Fe%Iw-$GDY!hecSylA|i$U z)s$x=(C%TsrW;cF7FHtsfa!6(QWlNW!&E?4%U+oGPl7>I1{beQ?Lft@SddL%E&7US z7rTLWlcGyf7p*Unn4@?J+8lp-lya`;?oDa#rnPr*yr-frCJcEHFt3(L1qRS zgT<14HiDurf7rGc2pX=D?zUr%lN`m03XquAN_KkW1hvNM##-vi{+2(FHDf_Gb>Eg_ z42^(vIKLFh=h()1`;{|xe>);JPD@qR4BYD86?FA;>-pUh6F%o0i1G|n*C{axjynJd5!gcRy*WcyTUeyS_P``b>R;*q}@N?`N9oF6f&;3IO+)HRYQR|ams)9bA zd}2Bx&A9h$={gjv_Anq+j)vl;w*UZcc;eH->jZq4sfvH(A^cD$kOI8#m8Kx-#KfSg zfN-0*YhmiLD1-ogHoq31bWjYUw{@8dkyg`-t$tr7R4x7cnU-?axV!ELk-P6Z;X{*T zr`KyAD!C~c_j!wr=ffgbLPs6o;a;IHGX7-RM)168?pS06T7{G-woNmSc`uSb#_sD} zIm1Xb)P#7M6vOc5k*;dojp|5X#v+@-y~%AyX7nyo)cCS(VmgZSmar;3?*X;GmqX7| z>_+ac7)>RNbTLN1iGdz|(>n@4^}{x`Pi5e&NWMY&-R=UyaDuhx+G}NoAn?HTkn{;s zDPaO9#nuKFd$(D!TcvQCVgdNtm*|otL#j5i#+Bxd#6Bj`+9j8N8OJess@grbb7JQ{ zdJUC%ujtPX255!ELBt5i!l|~A0ka%(yX;O;3iF#>al%Rdgh{~%N_zMZ{Yp^OmR5Xp)k`6yysBHM}(#eYeQoDfIQ2v(NYvjPax+pmx! zF#wH6+!B8P5`4n^Mv;CkcG+KLfffwH*yk?_Ei=*eWfiw`o{I=H$~Gt`TeP40%$_uNf7;jD8%l;ZiB z86_^7>E-fT9ka;O_J?PW^uOlOLfw}9Z{4ZP>aB1eW~RPAfx6LMk8yCmR+gN7IbID^UL8?T_Ipn6X@1@3j~U7%O+^;9!k6ind_M2UAPtL0#cxGtfAQTG((o!nrP??7 zncCO~jw%<`yzg<2!!PJGFzRW*kFB2+jm(EY)u&#{%OcC=cd*Kop>JS}zkA9Kctvz% z-Ycg`e2HT+*}Y2fM`N+Z$YOVTiv#S>#npqg&a(G^J^EQrBn*9~9P~#}U0eOz#XUH@ z9aXuC+pD(Mvuy5C6*e1j&_Dwe`uaL$$aG6hvIbG4$6y{^p& z{1$}}O|-yuUDHL_N>TMk5{LjmN()@@Xo4;)jE6A(kEavds+nVc?9|@$okL_5ai#&W zW4O7s7r5H6MLMuW?h{oPXInvzp$5pGO-@59TejJzUqE0{2^`4pz&#JiGIy=Wm_vd2 zjcNoNWr5wT7?IxbeR2RX!exwJMzbyhZeZEYX^7M{YWcqZ@{)3)2lVl|eB%%k;|TRi z>*O^Gn-3tk;eiCbafv(I&tzDpX>|k z15zOLA+AlGHB{2N;+@g5KfgA3{mY;zOBZRl>DH=B(VnHLeb?M_{oTtpUqNY_cxtn< zH(&Dg-k5bR#M!#Cd;2q=^q_jPrUS3}J;!UNFH}~!>CBiK<(eFPXuRo8*QC$(`~#c` zwU4p;eVSk9uJiQzlW0a7a;qa`a=aO?68xAz>JNftO*b7J;|RTdB^=l0F&cg$sP2(7WZH?$>9#{qp|54S!YIs1+PiIP`FyWd zC6##Thtkg^4>9#-3lT&}6stgOFXa_t!mWut{ViaC@2dD?*o-YQfVI;A`I4EIaI#3+ za{}M+Y)CNzd^Orgyw6HtN^Ir3c6q6s5gomyGA!w0Br*=GxWjJG>p+|L9CnQlc@456 z#v3Z$H8XB6(vzj%1WIjY?`1y?Tm4Ydr*sn5Ds%`WdM7C841OrxtdKKW3`%5JSe2Ic z31-#3gg1~L8$&s@j}UJTFov)MG>m!Ob;?TsvYJe0hvP>Lc^zjIAGVQ$hXDimT^IER zFi)n^;mMQod|3zxIhJY4^D#SC{zj6BCo@|Ph=viAL{+uLRK(PoQtWS(KUzw0Qj zk$Pj;FQn6yq2_eG7*$XM-HX}?PJ{KHe%4`DrQZAhF!|+P)Ngtk{*`}xalSw2(se|< zv-;$d>lcsvVt=V_o_K2|Z`F-HG2`>_{B-Ylo}pEk&?Lz8f{BwO;Dje#V-G!<>J%wT z+zHwk*TZ~y3t()5={<@^KzvV#ytC$8yp20h8HSd?Zo5;HZ#}Lz3Cb2VjB;Efb}u9! zYD$Y~H4=X|Rmpo#tegIoK#KPE%nQ)=9^8@YtNsAlvEoJEB!3cv-$JSo5;J3gz8wW$ zmPu`7_Eoa`1>cz72X?0aXK1^t>;e z$z!8%;e~r+adV}H#e&r>o^ZS)0MenSIVOIA3PQMKkt(+{#)=_n*5cj%qJ%D4mw+m}nd*3a;{j6^J8q>1-!B>~Af6q0u z*r^HSUgNo5kiY1}uOXd4D}=O-~Or zgO%r%!7dX9Gh`Zh{Ej}EIoQQ63j9I^x-E_?Uhl|Pq2f{raV)sY4$l*4km7if%e{bD z>DA2SM6U78>{4k@(pV1NHK1@zNzoo5S98Y~?(1R47Pk z@xKUJcIIg{Ps%h70kbrcyMhx?-cU@(;R-)_g*94Z;DV~7qI6e zDrAmOER8!)l*Ij-$eb7*i%5$Na%i@a*X<-_aa3q!wbd@GD+iXjW-n)hqICWUTr(r^ zO1bQM`2|TPn1MMLeV#t7IwK{$d2uZpqh*+C(s16pN$UCK;re(zlYHxvtQ?eP8pk>J z`T#I7NA!1mjOu(-7fgFdjh0!88JkH0PP1jEOj~TP+^JB5jfx^_Nb#M9+Cz(SDyLcT zYm!>;#j2_1iMvtp<>3Xff11_%34A{EMn_F%z*X|{Sn8<0Xfll*W{@aNT>~VqbLJ~Y$3fa=IQ9rk zxdm~&koh{&h%~KVMm6RdD2o&oWirs1fvKk;RbKKAcsPF#J1xc>=fgM#J2V!VzkMJ? zZ4GP1G)$&lE%hkA{akappKGkkj|mNmCZ7%;yoWYf{`25{@9rc9ChBEewwFJlyuZu`+%TEtz~%cDpi}CmOQ*@~8qg9KQGQ zi`{^pq4fX8KR=X?B(7FbM8)6q(DIv$z4D#O zjiwLBFSly{sp0OhX6wV%ZdX@fR^ttCtae&dQcGA>09oEbH{engHnR+kMOAb=LyfGR z2$cpv3VIb_9H@?hbT0n}kdjm*^B2uio%((mCSp8Fr$=+rsgXyg1MU0B+7bhcOA)RS z9ix$NFu?-1t5;VYKD_oH8|OAE2}3H|c_q_?f>HDw0CytaI;pJGLiiRQ0YRang?W6i zsM{YLUX)&N;-J&XK`^0xD?)gkV0pvewSRE|)O;_zQvqoSooO|12QRq>ex5h#i;UfP z+03feZ}QEM@TW4%+PzQTM7@4Xiala-PEoJ7sMk`l*W?a~G~!;NTfOJ-iXE#u=sKpR zTRolQ^+tZ%^jw9v!P#OHAZzmb98-3q%Vbk+s7Lj712hw}voi3>-|t2}ob}*%a4Y49 zpf%tk6uII&gVw0U>c2;78+ubFjQJQ_+w|CZlWtd_Va+jLD$+A2Is^2>_s2ubSc8!E zg0hFN7LyV^_%WxJ#@x5mm$X-sqR$Ml3V$g559;1Ds;Mkq`_yt4AtIA9MMXts5s*Ph zN>M05h|Du7q!0lS5h77SQi>3!K$Qw82oVv&6vB*RB$6|?p5y+09Cv8NDon62 z9KZY{JLEMgm9AzP$Rb4piG0Qu(kZIobKXSvuGt)e7C+f=U9k%2tm=x0?k+8IM(Z0)C@9dnJl zd+i;~!Wl$!%-H0Vy1jE=z7Iasua~+HBLn|#ICz5w40&M_N)lECRe`qlOGd&-#A|d0 zsM=l$>@yU^CcP4AvBLo7@YF5iFfi@1p3pn_dUc>9wJuzFRnLPrbRl##J8^>3xA-!N zbhf}@%g4b5ncAWny*U-EGUp%19?l$-^wYl^2Ie7QBUyU}y&E8e!HsN!zuTmkEu^I6 z1pm$sC?OevaBAZltC~sV{lmmqrx(yAY6b2@wP5Pk-lYiHj^YoYa`vpLNZXJ|qc;^H zDaFfMbA3)Ug*;KiEvtjE^UpsN6I+();!7EGR!WlJfnq{x9*cB^I^psuT?Rlk@zAFe zlDsr{-YMY$g%%1ZmnNElq9$!9Yg&Cz&qZVi-UJ4hcf0Ke{#zcK;ynsiYCT)no$i4J zQEj!@`rtLRSdTKFft;1_fq3If<~oqA>4zt{k>>~^G)g|89fxVqF%I4eF`LH=pT}@IL5yl_7$$7eyC0`+2Dp; z!%2+1A2@YmKWC5syWwxWPYA^?`{T`+HXoeaG*(J-D3r4UaLXuiV%I*)Eh1@a0X?z4 z(+|Tx1EX413{at_m|gFel0Wy0t#&E#2*>ioYOhVf7tW=vq^KPpl5 zSf(!z{cxyr1Y5pQ1V`5>;zQosK7iw*xo5q;=sV?Ve1FL#{hR#)<+I{fF}AYv%W)vl zUBs_$0+J$wACe+t%K!5JJExdWihI}i-xJsz)NIXK#txX0VN5}hyb&Cf`U`}~6as+c z;p}uaj^(G6>X_PsMv=A^dv=r{4d5l}IjT8^EhrPSUrSJZ(P6n=QuDU0rmJiV;0vBD zmtyT%&j-_;aVv`s}2qQuD|GD%e}_upDmeb%HXc8pY-lC?!<03`81wtKqdKA zXr@j$xU^#fvhj$YW-Ex@vAm)9Cy4FFsKS~_byz9CTiGrAO~mJ7dt?-*3o*$@ZVU0s zv&-ZSkUsT9ZD0j(2IB;2BYBN?^$$tjaQf>~^=vzu4-c|~VC7{g`}-7`KZQ7{sT{HU zNC%ZsU9&3FXWyr*Z*sCz&7%G7f;T($!r)b=?)-eENf>fPx2`0j-dsRC%web6_eIa2 z(8(>%x;&?=ThY_@szSD-$h@R%PidD2eT#F{-B7!oW@+b(JhqRl6m5&=x)tJ-sQ0gD z1)Oetwe$G$G1%4UyaRyprF!a`SPr@lDmUx|janz<--+_FiCT6}t499T*OX0cBY&0B zX}|E#vstb}w+7M%qh8}TiM2uiBL}GJMO=;6aaC{(C!5Smo$g^(h@}|B`!1=rI2GiT ze#8}hrlsst{FoO?E_BtcnMEk@98(KjaqyGE4J_%M`~$!l5)i5282Fy3btPXN+IAbW zl}J4e#n2?jNN1iy5qFy9(8^(o4cQ*ea=j!!)~tINp`7Sfk4J&5)ch}Rc{Yth>{Ee) zE>pJw!kS*JL(i)f@C)@=1_%HN!oIc19oWrdfGMR^FdutnfLX}yU81RYRnr~&7hl=* z1`#VOBIYVD)xT`~bKj9WUK&B#tsay432XaFwnzYkT{h@xRvjVf!b)J?h;soa3&Rh} zNMpMR=Rpq$;-U6|lq_}NGHRvl`A9m`2!Y{vz%!(}zFTFs`Q&?cc!}5?K2lgR!-`|f ze_vi=WsDs_p!bM^#T4=PU9&j!IzlwE!y zLmtP%#?^Z@2NyjFR$+FruTF6N@b>95pEWskdlqkP&ff<6Q=bv(+-?DG53n;U6Y{H{ zAk?43HN4(0z0z>HtzWkel9lR2fZ`T1G+5IS6&x2FX;T09o}Ju4&p}cw~cRrYsZLapB{`_*y=*79JJ;E zNwaU!vZ@6c2{hPd(tD5~DkYt0df{MUP)oUFkO-zvE%@Q?2|O1i&ks?iCzJPrj1Z;Y zm(~HhDfS38t{m~itH#GOmu7YZR1+cx{G=>Qv@Se;Y4~^K-ZCP|(a*wl zKsWB3NNp!_%T22{%WYR#oz~D*SM5tFmEr!yJ{Fmgk6e$r9u54c?N;a_7u8Nt#0Fg9b!0vRYktW`rtPqM(yO|5H>;VAv&2mZ)0`vEuWjOHn^mshHrHl5A8c! z?A`XvYy4bfNvGNayA}OvQ=` z=Q+6$&%bal-zAbxAe#RQ-*bBV-SAt!wt42hPHF#2i+q(G-gishFPoo%BVS*7j3kwE znk=`$RA9;~tpu(|BmlOb$Y`a=UH0~;SB8;QAv8_AL%1Ge+hcN>8Qfb>^Y{f?W|Yh* zle0@(VuMc5OZ-N8A+ZW$6QSkJQS zY5?Fzi)4cw7KKry;+nS(h;NGcvLppq@AFH+U%5PQUys!zMHR$NZ6nPu%R;*g!%TCU zYlA8J_iqwPW}=4IR_1X~tT%AZfxXf$OY^d+TQ)B%x&#h^=P2?Y{ATiH2O`7@A}oqH zKE#z6R#oSybkesGoAENN1h#tv_w#S>O=vcri|Y=B%5m>L6gkpsTqBL{W%@d3FZpV^ zIVGs_Rc7BlAjS8G-(SwgvKXh$21-2 zUVv3@B7KQ(Gq_knP>Z#$%600CxEikUYOpTX<56(`6;W;*`GEN3dI{zTDjqAhWIzQK z(-$g?pU`Z}3v9=zBcA_mP;EW{_R}8eVyw`B3QjTJTKT+>kkBzVDxmBkqS{wCz&FY( zh@rv`kmIXc5UzLS&`YXhPipRh^jFRSi_r1LYdE=? zCjHDj_lfE~8Kz%Kgk@YE*`4V{S1?|?{8cuopIxvwYPEP!K)V}ct)F)oq&2cq$~PtE z2R!a)B^208J3cd%C%;n#b|QAS9>nl5pzMO_)x=rNab5}6Zkj;#MFJ`g8ZNTND459W`0zIcvo zEEj7fuu+r9t)6F%(iOsAY?FgirH5uW`Im)sH^Nb`@pXf*)|^NR0343nDBdwZ zRv{e%Hvgwx1R+12z8gS{XxB%Dnbi2X`q3%2W}&2O{KWg{?_!WW6LsYNMajvR8Ey2- zw+#%~hm-f+n(2_XS6lK{C`v6{V!tzNb1k0>aV=2QKZ(lL4BqaPF^FN%GS3Z?dmD8R z3F4Rg4^KL^!NyesQ6MR#Max}KVy)E@#w_Vz3l zlvco0Uq_Q?$*lo?2j~QxdBO{bVI0g_Ce5GAR&5NC|%ZA>aTjx zg`EqlBw^o+dOr`c356dI52w07H~v(7@wBsynDb_`CmLCz>3vyv>Ua8m7ZL_-66)o3 z%-?((qSPeG5D_)jYrriN1U0^vHWJbA6d1FYk3ogPvS=FJiY*=mJdA|JX8 z-?Hxm!fI<+z2iOgG0H74+qtbH-z_XCs=e3Ix2ilP(e`1W|DI!m*Rq!@uAi62j=K`3 zF7+}UyEoBR>p%HAr2Jj0%9FxL?X0`TKK(VRY3~)>2^AF1s^!=6i-yms77y`bpQKDX z)@-1j<>7E`eGowKdr|UQEtva(O+pYyaTr;10!uRd@0cTf5_xYcu&mPoF%8y8OvSMH zL>0|s$Dvp7(!1OW-#pLZQepF(3t-<4nez#yDjVvSfg$6h@j6AVi zz-V3A=I7@(?2Xh4zPu1bC=)|Jf5Sa!p@c+KB3Eafdp|eTJl=bCB7M53;lbX|XUICA zv1$C8{b0&6_fo*WOWqUD#V8=D6AL@UGChlN5$9gQ+iqW}SBbczt`AYt!NEkOKvm7? z(P{J^vFt=#gf~>~?KL~TGuDsN;-LhB>QDFT6T%IRJDb5@$`#RzgDAXaQ+liVhCY&% z2&+zP$L>b*?a?EtqK^3pf-t6!ZBjrCvmLC@NI};bB#;h>hyTRoWj3I1Y=w31U!2FRxTg%v=@}5Dbk2Rz$p5napKsD(;0j|2IwLlL$V(A! zZvDv!$+780H4;u>g8Cq;Xq0sNRZah|y#{)gD68e#&HlPgbpw^mx|g|eTk3cG+JE)e zn#?_)FAF2UBqG8-n>_?z5K#i9G~+mf<%Xg9Zdo8WVNfSH>7v$Z05E-7;0N-;fJv@i z@23%+S%idwc(|HgiLQfC+NK?idLu$7HY-5Sa_)uZYgAXiDgY7K7$o({41NzFa7*#f zKh@(BILeeu-5Vr-=QPmaFg$$q&k~XX#Nc&d+w)a>Sz@IpQ+O0RA_xxrnf+cId$Wu$ zwj8o_fbuQ@HrkVXoT^>^krywamBXgy0+C;o>;1Ni#~w^;_Y|o5k@Qq;j?|kZGuJ8< z)V+so_T*dCuoAN@yqL;BXJW{3u71&AkrhCDEjYGVX1&dJOH!+_;B>Rq#L>^kc}^{* z6ID^^8fco^vEc^IeOUqHDsu5}VO8wIMh|IPsZ-o=oRD&NBzU>1pKT2-;4DzdB<#ei zsQHn`L?*VH9VqN6K<`9w?%%#>NZ!E)$|4obH8h{*BJ2CiA=qhEzTpsCO zGqH#FbPIM-6eL^Uz`;(r&W(K%B}O_M%-v)S7(F&mM_LuhJN+&oSu^2>qiLQqPA$bJ zKhTVvOzn5qy!hID2xiS?tl0vJ3PuKUXF$OhkaI#-2EHb^9q34i{C0nBc#PhP99+)_ z+s4~Dnn@%ygQ#>4k|`DB=5qF&g50}XmGLwKvc^GPRM{93y3*2eD77sM?+>iNsDOz; z*n$E$a@z)3>_8B`vLLFY#)K6Eno!_PmKBqgNGR{5;cV-2M%$Y($yb`3`mc2LH^tqv z4P?xG^FHb}ZuqqLW3^G<(cac`cBVzn6;mCFT8DQ=0rZZpO;D>#ksUMtV7j%8UEP#O zOLRIbF#n>TcI4ZD+vW4u{%ErV!%v{@(t?j1e5FkYu}h1*#;`XKyfsjxM)91P`EGS# z!ea_mhAXvCFaN$Lns#)}9hea(Ge(m-fJTf?M9QI1e z0p3lwp}q%XknJE}4fLIWAh8+o5=x)s`k#au2@7J)r^H&9mz?TU?zC`!jtx_I@+8gF zall|}W5HDRt#pQ9%K81-D3Qq@vX6LDd6+%L>hf+K{DT+}d^8sAMJplGm``c-nYU z^@fg$h3|VNwaBqy_?^)S?f}=aR-Z{LbTpX>e4q%DuWJ&ObPLY9u^cOU+xoLKkCob) zwoE|pO8_TeKn+zYv6A$I0pP;im_RzX9V%V0-A9ncJPImxh}}{3YR}J{ zAbRKbD9Jvb<=+8H88x!z2+uFHjL8YJ0W^Za#VT7W6oMEQvdNI;M!_(9qafo>7I`le zlS1;UK+vaQg@0l!SX{&6*>T-o(r(%bdMSGMv_!7vMSvjIe+4Y+r9r*n5Gd5-p+?Z> zk(f0Le*m}O^XMt)?QDC9+R9hO9P}kw^hKl8h#6e+ff~5+j>N!6(iKHa#L3c;)6wf1 zVBN<-bc(#fyd5i-dx%X#64@yg{}7X%7aotYEX-~Vd{TbD>=`<6-NKA<+x>d_;ciT# z#t~wfiJIybi~d?me0@vL{nFNNmec^*E9^W@m2$q)Sv4HR8GJDL~YBFZeu0s?^pgi2OIZ<+(WM!=P(ge z%PeS?2Qy$aU^}u6gr_T$*}@!V%A@3_;4 z(p8f8XI;J+680H;2VJEKkZ50Cfz@O3b;P#)>*ZDS9X*UfsKwzS0JRAy0EkkqgZ=BA zl@XG`=JMbo;zd0l-+nYVUn$oGE~Xccgp8}f`g$aallk;giKT zC-P!>XzBWl58a+s{Z9cb_A*}z^iRE<;CjT50&BFmV{1JU#DI7rhs4JL|JslBxZtOq9X5}T@|6AB>y5+VK;`f8lU_r?= z=3u569a82XRLJ;wAe!cLe(>>hOElBkzW>TXn$igm!&d$#K$6eJXogvIP%$bX&PffH zYQ?Da>XNL5(%W83%ps*zlRT-P`zIQj`UqWt_U{SyYx73G^y{&7zvvQlKJ2e~d1q$C z^T<7O;UzJQ?0|xW_*S~Cbt&hr1Vz*lC~^6tv&%1$PnsFVc!k+jPCJlh9Pg7H5nn?H z;f0~&+p$t4b3w+oQA-P9$Ot1%MaXKE_5cA5cNbYQwt{s%!k?yKJFt9f{a*7?$$N0x zbiba(%X*0qBl{-o(H|lJf(?Z1HgXqaiSZrkMsPU5T??=~Xo2mV-F0C9m&n;!m$Aji zry)&p7~XbAY{fz(3vEECp!P`&2$)BD6oG5pvcI2^$ntt;_aCWJsw@Ixy*}3OOp?hq>%1HJ~4G- zC7mos@`NPWWnBfKw-$JKIU=^>7ACLKXViP#_wvvPJz=5VN5{ck%6?X-v~D(8^fG1S z>tIa6#plWNZ)-oV10^@;W05uieIJksYf_sJl5C(!E_RDAk?yr#iw$Ls%-X>*@#1Zw zdYD`;SocPaoP3?t$VXXP?V$T+pM|;;yHj;RguLwd$gF7t>?1YG?>~t~Ol`*fKmYT3{tSWuGqGQVN~HJ5qgfDmXX z&J8)%HT`Ha)0C9{ZusNnN7;SfX91}>T^z7>T72QXIOJ(J^lc68fJ6ukHh&yJxPC74 zz4id43t}ov!+P4bFcMA5J$mc0TS>Y@(Rug$Y=)Ya22%rWhNx$nd}cC895{D*(|QHz zCe*YtAxRd|H;oak-H~&!PD_@e{hAF3yx3-morq8)&I)5%=}LHFhZlt9Vx?LNB|R1~ zNn$Nw#5N>!mJ32LS&J+b@%ZG=p#A7Vx1F#UtPiSur*yAqS99^fI)RVeqf5qyp2W^S z1yyFIX{$x}5KL%jaiB8M%c<0>ufWbtRXfDVweU^OrN`%}9g}s(_MO#!s4JtSd(-hm zk*>{wK$uwnr@hj=mSE;|S;1}M$KEv2={)aB&nmYL~(MN^)oZk^a(mgVZj_9)CzoDs zHh*8vsu6Uae{S)~$cB|O%1T8j1AcapHVYRSE zOnv$bfij!$3fD5ize83QpMdWAn?TG@EE>UJr`Z0z_;B%56LTR6BZu6#?hAxIzswXC zButhGv_FvU%RD|*)+I7DEK2OSsNK8#$NEew_j>xyx7#Fr9`L&~&uA)BS>swDu=moqxBg>73XTIG#+|T>;wZNHBJrE|m zEO|uIM_6l?;%hYn_2@hNJ>*?tK)F#VkJY>WgRzuGk`=A#DK3A}%tqxRY?1gQ-Ve~yN#tNHbndc+gX6?VhIur{UOF3lBs$D z$?wV)v@fhT{;2ryyvTNceSKJgRg3NJ!ptiqAmrFAfN7jmU^5cp=k+v%GL4$;QgJch zVN)0HgF%3nnnYE68OFQ->!Kd~7oE1Oc;vcm99uK_}H)*OGtqJB%CF?B>WoM>TlY3S+~Lmh_k4V0>%DdmgQ#z`8}`gmsM>ewDQnZU%T^8s-b{n|k01IhQ!;H=>6mzS`V;Pam$u*Jx~8`jJ|d?Z=D=r@Ta zl0vpj3>s(DbO{>!3!h8+``B5OMxUFFOZYT=EjeD)Wh%Jz0>(|G(_pOkfXnF~iE3!G zDWsk!>hkfu4|1H77Q;=sN;!`)`#A&nb3@S%PR6r-7CsGq^)&6JfDKPV*;<_|$oEWDwx-oXF~&=${m2 z$5#d-f0oY#w@8jqC**UoUI;o*4lgmSNG{R&N>^*w)o>&xoqpwY;R)=jWf%I&q9(dLIQqEQ;ju!&dUm#3R*0@^q4vHy`GR=bb|up&&8q11FW^d~=9xcd|>oE2HTxdW$1aG_BEDO9^ zeBOe3Cv4lwM@6%?c9s$W!v@bE#=bTmexT*7*@%+x7hYQ1Dbra zeA2W2)7=^AF6WveYuV0)fr1AY%h$Z?gLV=O-!^ZPRoa|q*6~45D!SHx?c>s6XOl~x zXNAq>7BSTFyq?wool9mZ1ILj3L+!o!a@#V!&93ApsE%&Coi@ugd;4HYIBTo>w~i?6 zt&BpRiSolMn+;vHLZgr3| z)&6K=K7e#m2t-O4E$C`$fFNSGDRlx4o$}XU_p_MHMXLa|PE@!ssL#Y)F9JvXvVZUl zdbpbyJ8| zzP#FfcMb$GhJqDi*!liTchqi4QKZK9*4eAiJP*Rj?L5x1FfK~sodSLUJH-2Y^Qqfe zI>Tq%&%Nhfe4ZiepJDkb_pbtTH&??C=Y*DN_fx)|7ilGeRhD!6MV$-n0}NFRT8YZ# z60a1RwOgayUwI8N=0h(Tn^CrGajctkH-8lobgsWMa(2gJbLrZ7az_sO4#@~M@L7L? zy~IQdIso^~>SPONw+SwVFI5L_8Km(-PjJqVR~6Kq@?~i%TJP4kb1xd7H}=m*m#@8; z)4X%}>OHN41b+=7b)LSaB34EoO&BE5_cZH~ltD%$you-Ck$Q!I-VJgpFWr7JWg$Zk zDIT9zrl#mGEyz#Di!&4pkUcEgfNrCb8W;++_E3Acv0l`qiDkQ^qzrSC9kmiytLHbfFc zc&h()*nyq|l3_h~%I{tZII7d&JG6)?Dog`E=xT0M@rN17Myc{?i-eU?gSzrrqNU`P z{sWOky{3C+wdbvCJd4MDnc9f&TZKUFx3Vc&Drjqivg(w3-2T^}jf>pn4LwObsXL3+ z&%YdDq%!aF1XVSK)+n3$^KZ?so~Te^JPaZa^t4oX6HA2G|F*d(isxON0eO{|T#}v& z{Id+ST1CyjHzWLsBkNDuQfpWwbVz_oF+uG{P;LI^aC8G*QL@il{4->gpNFDWlJ-tR z{`SdiijcXj!#$^gK|rNOr+U^|ZIxEniujagl6u5{wOh!T`(8q_>u=uW2{c}&aWK`U zCfwcwaS8@YjLjd#cD;3<>gxKH0TU6@wMa#tw!gVzFc;xHGi#r+F(fwR`fp#a2E;(9 zl>E)>CG1lG5-km=0bo_d->|^m2<4sy;bkS~0F#lvTWlqg_9eOWkyL_(Cv&kf)0A4% zltoWe{3qzs=;c4UMVr7QlomCb`<<=W?wZlXMy(wsg}x{7sm(tP9{3TYxHDCtIj;he zky4?BwsO7Lww&zt1?3rai++hl*q?|G*mN}^lp#5LQamogPBYGW>h?Z^@y1>=q)yFA~)y|}=H z>>*9>(r2~0<9SzrFD^`&y_~2P@Zu}mZztO0<_Q_sDq<|xsJQxj-md7dOV2B8bfoWl zly}kYUL#!FOI(kez@}kqscjB1Zcrn@k>fX$HIUrXy^HI>qBZ%uIAQ{)Gz+!^Qh}4}7Jn|G1PE?-e(mj?K+hGyDihf>rdV$oQSpE$Ge~D4kJiSV1?s^F>5xeL zR8Cg)1WGA%^-F0vhE_2iy4sZ|ZgTiESXkN}yojDRg6>R;8o60W#1>9sgx*5)L9sln zU(Xo*U8O) zPmZ^kxSqvoR>q4j*C1WcPv0iKWK-6&OU0h`NHR1d5)|i^u2=TqB=0!zM++X}{SNe+ zE6XSFfzJm5pRf6SDr(H0^gW$%q7meB{t6A;Yan271s2URB)4BjSc#Strub(h zwuq?Nn&a&de04P|URb{FEiL6)<+Y@S*~;!)_@Xx$Hf#3x?Jofy$V=hEoHcCPwhC&5 zeZ&Y)Xt8mXF;96S=~b795~%IiG|EP53JI$;*CC(}fAe|Iwg*XH?P>HqoG?MrkI zXiZgzGW1(43|9vfQlqOOPpUnpEvVl}`2s`LMloI8D@a#8*s@mcp-cNav(l!$IS;PA zBgBpRA@d+b^S^S&4aGnG_nh(F&FUeFbU7vq%oJ#}4&G>jEDcV-;&NJw_=O=lP3m+X>*?h3s zWTNC^1@-<}rU)e=h_qBa`t}8#8#&9PDzM1}?ZxHr>NYzbB&j$RL7=QIY z75w`s|KlC~-@ZZhndddWB=W7tT9`#eghww{r}t` z5cI!F`Y-=4E{VY+`TuD{`2WL;2=$C+9v^Yb;X70{J~F+MrE-#3WTv87+ZD{PbJfx8VHw=LzrDg?~5nU6E8>ewrdKS-n3M-*w`y8@F1+A1@VF}iDi^xPi((h# zrqI$de+HGzpwVOOvlCXqycG-VZ4aRVSAL9H{DmLCwmcfS0;Jl;9G4X?n=hOcYoig5 z{QY3u@(tXje2Ids*p4F52LFEX1B5Ep>HaPg!uddf{-AKdM^c_IPNRPSqA~0U{+p_# zYYn|h84l~!`3$gCl5_eAAea@khNjH=h<8_>Z)enW!UI-$7R}u|lIXQeREP~jPpjFk zs%es;;~m-bIW=@OR72Gx$40GLhj~3e^Fo$3J?6EJX7GR*(8zcMuPc>J9Y`Yfp_teJqw5jdc~0P zE9J_+8~Vf6PD=3QUon&sm*pyucAFZp57hm6<-qY%@(Ns?_s;=F!GS6M4)QLf{oAq! zlnJi;z0qg|qW?mR@&c`SE9pXYm4o_Tv8m7?nZH|dgji?;OVURgTMaf~UoTLV|K=+< zOUK25KOzJhw0H0IH%$h`*}Rc^kHmBqB#zD9j)N6>{?OG-a47paT*m`9Uc)i3CHmH> z<|D9MVtl#(2ffVY!pr)W=ERk3Bi|W{v}Dgr)Hq2GqC8T46@;*xLlZAZs{Nxg&+FS& z5keU8ZSJ2L$zF+vwXlJ2j+TYn$>n@@@cJGNVK21*8a#JAf`2ho@V)AhZ9gpk?}iVN zZr`T|S3kwbuTyIu`<;9%7dkWY!?jK2*99jR|0qzmoF3wYo?E(U%-Kv*TK@xhLc_O- z=(zycgL;ikMXPc`Dbfh1?N<7(Ya=57BUGFRjSBN$GX3qB9ni1+W#GRvq&fiwok-<^ zjrpEtW%3}WjxnEGaw-Co3DYO=a{+K4z>15#6zgLmp|xcj7}dcVu@-Qs5tc^5iZ2*# z6AQZm&|T>n(MV+5DvgQ7?e_6S?(_-sAB8{dE}tC<|NQ7nz@=)J7F*<6>(JlFGH2dM z7PcgDg^_ho#%{iDslf1quZ)iJH|6T0+XXm-cOlwH%CG|wH*NS}T*myq#OU>fzpCX0 zQl&z{W2ZNo{>BSm%7){7XQiq6>W|Ak%3YN1zv(NmH6a|M^du;J4@S-Vt=W*AfVv=q z%Gt3X+4|#jNK9!4p*V-YK(r9X3OKDOG;#y?`w#Kc2BHV=MCXK>if9|x!B(i$N~gIH z+wrN*ssnZ1XrhWW)X`E>_=3*OKiWU{rG7^}WunOcCu9fATUJ@G3UAf`L1Pi^{G=aM z?kxP$CB-j->%R+5XF)N-2lSsJ#BPjP?<2XDjVblO^RC10Wm#GY^LAAhh6|6@`HXFI zj(27^-0QfItGx8dexqe{$e8UeII_^$G1Ke)voXuS$TaP@wDU4Y6t0;}U(~R}``=-x zhbkOMj-9CD`2Kxu_*ThNcrT|kmS{Tyk|2Z%JLNdWR?J;?d6sU<{c6A1?=b7<)YmJm zMw}%}5k(^GUF-xs3k0f1{5@BXpjMgLSJiD@CuKm8vdX3!ecs+~j-p%|Fb1 z5q@F9;JI$dL&)Iq6X;vnF0ck}y@(wM8(e@pc%3Ji!Tx|5W8I40KoOup9?fm?Zt@2( zOF0Zp`odX%!ojWNJumRGq!^@nJ)?Z;2732Dz5i5QLc&TG(sFpVd#A@){hxAsqe}AC zY2M#eBi*7bT+2H1x&+q{qL8ukTKE{xCI+A7|DNTUq-;_N-ii8vKi5w+;X0uKswT`9-vSSqnGgk1xczFdkx`snWp|uG#k8&3+LpDN2 ze?bmFodB`aMwp;%CSrf?F5P%zKd3mMK@iUyR`q(a*MnxU-Ir*t<0g$ zYw`!~wgzgrGsBwxh>omkk@Ps>)98CCSGtp%x?8X#nk~v4@Mhd@HvSsYCq{v>**8mj0M-s(pbyMi^ zXMU@ZHFIh?nm($sJb)wvAGJuJ^cwX$Mz$X#M^b7A*r}Bci#9%0qS_r+6bj^e&07!` zVH_i4fiUK={0{MfmAD|C?bT3*v1fEQwOM&R6Qje(h{kQ3z2R-p2I7puESCE5GKk3E zD2?H0qGLTnByscXj6Ycru9@XLPczZ=4fQ$|Pff66r ztV!&t^8h_MWos@ziH{=hC2kW`tT-We{_&BFG&Q`0VjKX9qN7!)ceQH)^aV3RqDks+ zO*MTQeQbM%uXsN)D#I*S>=mTiu3EoV#_|^8@r{l143UGiUoOZpd9{9@6V#o8-7WTm z<%H;@`Z$f#DF!K&hOYJ(rQJeQ5?NzFS1dgNoP5goyfDGM{=#WUDSmM@meCtcJ2>#A zbMd+NfcZ2|S~H!Y>ZVoppvYr$rdy}UWqawA7Vz+>>?sx{bymOd$D($A&}~mV@Y{I`N<&s>MW4Pgn&He zIEBgrxDVHhQAOn35EIy9LAbSWBK+bz++HGqjk_XI=#&{FoZgelNGiSirh4F4KvEFY zmYHokyB4BN&~a}Oe%p0K&XCv3dt13Lu;!y{pnIZrZOg#rwWH3=9oqe2z3q-^PyXF- zQ~TjgPm2#J*VF3?l9eCE15N1AvX#QR;Fgke%$<$^!ZA3rQp=fw^S&3}209sRwh~8r>;M zY||oQ&4B`ve81&MmRO-@PJBqRf1vUTJD5QVhiLgs?C)&zNzmM5C!PVDZ^s=_Tkd1q z3-nY3F`%{zK_{%z=NSYzhO3O`niKGe>_AAV!JE5a#Dqh;7zuFdM;^;sHc1 zFVl?gny<*$TrX@s2_NfD^opY0SVW3Fe3qUtZ!+-S1iuGKTsZTB^St-n%ZjrhiiJ^wh3+9QiWzo^icxp} zDLUHjMaHF;Du>(o_FsGOja`{hNBZ+|^)cGsMq9aE*u&G@e3?4ksY}LHNQIT>**3?$ z-zU+|gp2*bJ3lntlnM9A&hme2W>YQ4ut41KGdV|}*6RMh0S)=DpYi_@JmkAQ4_`ld zTWl-fkLa}af-sb!ggMToR~8NtZCUC@P-V7&wHwJkMcGK<{?$jIND+fCz{;~D*9OGK zfw6vaLJS?W7Hub#zUpNp8LKItebBKK@=j)h=C%#@Hd@`@uexi=%xuvL1UMxCr&-7> z&@t7mq>#12dHIM%Qi3HNzck^brzvR3eq@+DDlkaQq43sEa@93^0p15(vUVJ(k>>pN z9Lc_7M??^`MEj@V8WGoiz~^1E_I*YMnC&P8W)0>m66BVn;mC5k3-{AAWU+zD;s;u9 z=e4Yd2bg%NHpgQ!(;cjx~HXc@r*mevEteTcN4+QS%*_c zMCOBxL`Jg9Dt?0A))gaCqViiu7%iw2{?_QuTs@R4G>sIMk`y`gwjB4DK}QO<78IU^ zVnwJndKE7uVj17iBFut5A+c*gb#*VlE;!KZhPdb&%{iVBbz5QvKB1l68%QW*qkx}$ z!vCk<=!oH=2ux$4jF zx1qQADGTSXPoraot{Pr&`v>azr|>BE!m~-`nrDyQ3Y;r6ofSg8wBB92mimDHa>T-aUa;uG_UKz15~1FL#1+B-={(cl4B7X-dQ_ z;qB3PLcSC9fl7!6^gf)v2(0CN_YqvKl+3PmrKsft4Q7s zy*60)=gVl*=haF`m|jXSJ;Q?4#*}h{v0SFnM0cB-wJP}m< zQYR8JP!3zm%Zb;m?0C2wJ&JYK$(Kp~R)Ob(l&Utwn#eo-yycqrjRJTpE=B!VZ@r$B zeIw!l=!=P~)Obt#T|Etr<)l;nVr$raRCtM6^0P_u=L~yjg=$Q{+qi1kds+E6mobFy z`%677lKHs?T8Z`dc@{G6(auRy=7@D!^Y}*a;<4bx=dV#7fysrzGCmb!?h6k8x01gl zBlI~61pH_XSb-9tTWB=lmovm#8MPpxH0%cpBLMoat@KASod{cZqX1evx1LY7oZ%?e z>3IMyz|J~Q{mK(i$@$9fKWFiMU=(lGU~^bD#_0XxO~Ih0m9cUqQ}EZ4jx^?S{kn|j zmoEp1OEkj={w;F@EhM*o%>L>By=yc#YvBtN@`a5M~uRrP&@KqP2 zg@}SX%y=I>E$eZeZjz-1xpOvfy0l)2GiG?37oZ+G)B)W!XDCzENg= zx+cg8XIuU1@KDvCIgyG>M_S{qzB3j6`NwCbmSNuU8i*mCnXIe`?x$M`HQ`^S-CTABN>*ndt`01Q5R1#)aa(N}PzqhxQk%3dB zhQQ@wU9vpoxJheuAL$E>g1a^I#Mc5#P55z8sRi zxQ?G>3eX@Inre_CASAY3;-hM?ULyQ<7LTCpO(3Du^=V*lzSztW7Giez&a=_*^%OG{ z;3Py>D9@Uqmw`(vl(V2Ni2P6gU#gY zrAW017_u7q$yz!CAj6ZH(pt{tq_yVNhCn*2{y6Cf9p{EY?B-g;_sk&nKybV;!t-Yj zfV2AAwq}pJk3rRo0aB)wHWk9T;d{qky9R7fV=$HOW$LD1YIYn~ng6jMG*$|ANV;6x zlas0E!6GDTX7swgy<)mAxd)6>s``$-IoeopL20M3GUzW|*T)-m7Eglm#`~@?y|{tT z#Mji79I;os%k>ZG9$V$7F027n?1O5GAPQ3W>Tl+RG)9lz7|6?bJ+~30;^$W5R z_FZagk*6+!bs@76pHACB>(9$U$TK~;!0Z~2D?@e18Im(pqWglquWkvWvBW5SoMlPq;XCf?nttoSOJ}TC{mop(HCD}2hqMbO&%Yc#m_6PdH+?5$VXQon(&m2T_bSYSHZEJurLI)!4z>lA(RWDN z!$Tw3S4kH+A~aUWA0@dI_S$OkQO^1Oy(YqR@57#}dwHJuvKLR}Ix6IRK3b$Nd~*DW z0xs_u#V|a#EV*1oSdusMeGTvgd1v$XI%lKN0p%Yhhk-t53xerh!*ls+;z*!-{Cg9I zlHu`m0C?c&ic|+EBt=ZDTPUa)ewSYwDp4D4s&*o|jmGS&p0njTKYLdE9SV<&ZAm6H zPsKh91A4q|3)6UVk{YImb-T5{`=C>}Ekb$>@O;-wMJo($Tyn`{B;6K@DQ+-NO$fE9 zyHg!jFsymPFux+KASoA4`270wiMHhq@B;Q^l>qwcPa!bSlRGB)NjTk3i0C}{Bje>> z*7TDssIcqk+;KH>TE5>9wz|TUxkn!u_C}`XyQIr*oGsLJ2y;h@Z>|4=RG%7S?;%}t zrJj7sfe4GW>t`gxG{X^n(a84CO(oPzgEV|7PAPN}FE{B}gN!>5(GF5%9N}#~wWCS* z)VxxROcyPAaanaarFQYX;k(?N#wt~8+e!~txzC<^F_^4;x6I;hxxgM{_Q*W3^^S$Au$~N(Z5-{GB)_&aW9{5rLvDZ@AaBIr;LB* z1FV|O#^bi_>!&GhBH&h01~i_Q01RRd69k;Jrsw!j)}*?~upHjnJ#7W}(L_ZZMk8U9 z*nPkhpZxcxO+PIA=sV{3_=^n?my4}(i3jGcA#1Qo1~b6c*t_Fe0hlqD5qO8bRg7Cu@_uzM_Q6a4*Z6^ zoFS(*ThvuXloLrld5jr?CdGM?iifdbt=dJ`Yd*{e$T{|T3>(xfJ#ZZxip>FFnMU&t zqZGA6{4_wGh(ho)csXy%v)K+W@Wuhp3u4r@1_)Z0Yl~NxJFmypy{PqmKSg;q^zNkL zH>#!ST+OM=3~Y0ld;=q0q9J+1X>@+Du0uTm%#H1snfw&VaoW3LLx`Cz*$F20pe(`0 z3zxPdDLgHuQ6m-@Qsja1S{~ABpD8l$(b5{HxEeH=u_B{v$$l_|0uw3)(|({% z1sE7Ys&q^gjOLCHb8cbn1RsfAlVcgeo&KK(ngGK1^X%nc!$3$w^hTamdap-0pylZf zcssoJ%IpB9E5jyx+n7p^*T#xfS-=Zly*ILn`FJY;4E+Eu;9z+>htUP#R`4RoxPaElJt&G&(C=k%asx8fDG&!0BthW zB>iJRYlcOO2uXZ(G5rzs*MN+5BQL5G=P8m?GSk7h}+qk9k-zVnfL6thEZZNg((EkpgObCDlXhBTGU!-r6 z^mC+fo91YHHj1c@GhpY3#Dk?|V@vnKsq%T+9*C3PW(t%XZ6}3bJhhYtHW%qXR7CLp z4?bcC*l&%H8ng9cUj;==H8K-|^J%I>Yy-)M97<594=YJ*H{)~+pF&gx17&|1?&L6~ zlnYXP*P#njuFz5^dF#jdr*mUt)gsxeXP-m8Su5>of0>f^%mFy%(oEsvRc^DgmT80I ze5q}gL+;Ueuruu%i>w%ZSgG%|s-+-v??P!>E!av3i1p>xX@>6xxD>1~OeV^gylF-LE6vJk%uxYnh- zAu>a(DKxMa1(dNCh*J{uKod&YI#AG`rnRdHy6j^Js=*lp+`_MeD;fENhE)6N`Kur2 z*q9ZgOcSaxLlDAKVVjZyRG^<-H|)B6rqf^wl|_k!mCr7FH+)M0-RX_ywy3E{_B0Kh=uWnzbM5dbrYipG2EXl z4rB!&UR?qEAUcDpCyYRK<8+4g&8)m!q1hC(2((B0)3KFByyKu*k;6~BVMD_v8AsUz zZf(WWmhm!``^6oI<@!mn3)t71;(6_!%fF7`^cL871TE}OIz~OyG#*`x22_)6oQq5H zVQBnTtQCCPY#;z4zQp7MZE#u%88`1-C#2G_jfk%yL%_L7Gu$ZtG`z$<-U|hby{af&&%riV ztbdfy4v`5asfStE-70i?(exDTp}RzEN}PLeKv8(^0Sk}Hp|iO%0h&4h^f(0*-%htvU8g^?0ejhRUx}ZRi%_zHP>+NUj>#K>nSbgEfmG^@3QBr`$DB09#Pnd%L-13K0T9qZFf*X>onz^O@ALrs~vpyHaE26IrpMGcu z+SF{!cJ|JRFbhTx18kLK*n7j)Ha@J;lISqLSE2yP<~7kHA#NteJ zK|DZFg+7Y8`>XqTLV@Hzd};PRstR&~x(_C}K#`TAT7od72LRU>$GNLxQ(cZm-GmIb z8FD8g>@j#k*pR|%4qj6(KAiBHvLx@B{dw9w``hHyfOzXxOeL@f-0 zhqauDGwu1E?N>WF%IseduE454DR596RY@7+^VqxLmL#yzi6p(JI#2e^v5!JUv$su^ z+VZ(tvZKSi;UfLHL`;ZMM#*V6#LG1ZWKdpTXOgSlcyh4U0ela4a$#y`ZOl z&b{RHW1U5h-XLI7)yXPPd}th5b6~gW7tdE?h8qpp8Izn7Nbln}eQ&PY#rp_+JFb!%ri{#Ao;ZxUmK3R|R*Qf== z1Vgh5u~UT|J!p4J9y#pEnHJAG_EDQDE)VS=i)n}gi?RW**>p9w`~qI_j#;I;pe_fD zU?&-jF<_WiOU@AV6;t2xU$l=vt-8Kq*}qg@4q!Cdf5VhI`#M-3iv; zr^c~1LfNf6_Q64kKJwFRWaW#YS%ir-85MS|^>|V>g+78cU*AV5bHY>{l!_KLf zvUuXCL3Eay`a+5G?FxX5CpTFwbrAq3u|9g{OxtnTsX$DQK=kYqcZ#%Fc zMxu`fxHmW-pgfGQQ1#cnfBECL$b=$Jam1hJSh6D6s(6u?v)>v zA?|_cWg8{=qGw-dx9s(=^d21k?T(GS>D|5qx^^0&WySWIsqVj?J@+8h1W)f ztjdMBthY_ccLFOu`uc}^we0bkurdAKs~$(lGG!pYVKs$sx2~%@0*UZ!a?{6O5W4Ru zxlt4CuU4ENb20h`(QnxFEy;DT@$DJHs@{edVQ_`?5jPeaxfne)C(NEC{)Y}0BU1EG z`exc2u&dL7wfh9C?T};{BnJ5l_zA=Yek#tK!WE4tQ>|q47mXkxpEy8uTmKjJ^ac~F z3KQHRLRKC5hyU>iOfP#cGEt3~I}bNW4aO`wa>omZH%;}gz*#=;vh3IKVX3dKAhF+H z=zUhL#d4HCT2|dp9|`j+@sdg6mM^+?yYqxc)3eoz@dN!P`jNgX4$uAecMnjg^UY@Q z`oESrduy~`fHdBx9!l;E1Q_Ym@(kX1?q#p0wLFYbUsUzptnOfXyx4lN|o{^QM>!_zbo=W$TQ%KwNx$ zq|LN=e+x98j{C*&$$Lt^H)wuW`ug|ir2OdHF@`-mdC>w_NQ$6W`$RxRUaRztGBQp{ zGM@jG5;C)&8oW`*`qsGU*m;!d1Ft@SSc3j!M&|LAAOK;y#;qjNJ%6%z+{2>ViYX3dIk#Vv@#Jaef<<7>I5tGIKxVc`Pa^^g>k>ZnH<}R}m3)+O_YCqmqLmi<4R`r4Z-Qo|2RP=IV>H z_bO^4^li>C(%r3+ol>K5FH(A4OStE9bO(Z@aGP_?=aNztWNoC86mbR9JZ$p&G+Q^c0;Uu^eil>Fs(dPn- zr5|0&4!x9>_gh)kgM+qSwz{WSz=}%6ZIrax06bW~DCIU416`UGmUs1GQrGaAfJ?^^ zp|gGvQ9n)tK^4MS3h;yq}txKNXJkcpwGDKZ;eimE#eMP zGK4NF?|cg=7h9)S`v}KGYy>ykdq4zBTI|X!0t3q zd}P4LbKDbWXOQxS6z@->qg?^Ksr?9)}y5}PCH-+ zTXw3M-@Gg)iimO~tu2rNtE)(NXq>A?%m50~&0lbbkv1@BjFE>at*`O2z8@*K%Xh}_ z9IyF=_A)GGl-cU>@3InlM(!yt9(H%Hr}!y8y_?ehF!;qcDfOge)${fB`40#u-$tnv z9POG3^X#INE_{Fe{B?M(k4I3#o8QIy^@^WVdsM=`GqsJ3c@DL)&e_B)!G}nYvbMiD zB!4VrF1s2w61+_#dI^p9 zOsm0TjB--m>R3y@n%OES2nim~8b{AJvY)jUIzKPAd|t~k2%&iDrGkZtl^K2l82pfD z^w1(-(ILjypC$g(K#+@PA~qOkQw62G3bNcgtLP5?>HFB$Qb-c+@^VsWQ zm$51P27gP3h=8?em2WZH!_hx{HL=ru#tjV~&CTBhXA|a!%N$%C9#y~HHrM)lR*6yQ zWUl?8LuR@foR^G-T;1AbXTQ1!!?~YT*@3QRdNT*|1%bPcRcd%>{2FEU$qR)K+hzQ4 zZe1$5+vbSH$h^hKr58cY0Y9FzG{JQG4(2I9m zTHv{$&=b@1&aE+J<0+s!|K&M5xG`yZCUpUbX8Eg@aLS?#Y;6rc$-r~_zuo|y*X=fi zt0a+h457u|FlXIeydC+-vQtzpRvD`$I*b5@W`qCGHTxL#fQ4}%gQQQ75wOS9)b}jG|*L1R}s2G8)uRw>#+Tnf9Xi;_jH}OAo?^|s#B32q-p6Y)?q#4oy zmStk29gOu~=cW%p9PexSpm zW%0P1kGoL}Lj{G~|5@0$Wcum4Qc7&G)iBrLasA1H*K=GM=euvh#!KEx>O))` zlD$+~pCjihK-qSAiZ}H4CT}erLrS4*xy9Xcwwp)ZZsh7$>r2KSMxm74^jXfFDgG{? z%;9erJB{E&Wl!_{5f?NUb8Grwq8&!D%>&PEXl8)!HGfKc751o4h@G0dZhZS2z&Plw-hd5niTFyCt0Gos{~iia;QO%~#`6kv zcuU*nTcx;Zrbyi-4x_iVJGli{H1o4Q`Q0~=vm)E`aBR@$!>gk<39cOZ0P&`cnzl=S zZ))+(74mn`-mz5%@gzbD;3HvAR)V{4oX1p|rzwqpmF%W>RX`&a-_j~+Zvu8Tz8q|- zykk}y@A`DS;3xOrFW-BIvUQ`;uCYdo?NH>b0CkIIDt2$m>6})8FhKLPzDcYO@g~g{ z%WoUd)WbPDIH4cOu8i*KLt`s=DH2T@piZZ{_EN^XTJqRtBW-%Hku{W8_-MWbbg=}X z6UvFfE%@fwIC8Y@``O&fIQtZ5IkQXf{rf}Qpn9dS_}`4e>yJJxO~`yYQ0uFN3Gv#V zRBrD%-AsNcIO?4l-qq%zFB@>U`!mL;>%tX&8sB?4f-e?|Y(#MXc8A-@gUR%nLSRp1NR5H*RokRwOH?9hPCY}fO z8X2HLuoUq!R7gRa4dLsOXYuCVASVcuR zfBuk9d+dcP_tl90J;C?=F6|T6o9fLRdvk4{XP2-FfV|g#lf0W&ZbahgLNbHCz0EQZ z{$0kGm4t3x>NeW?Uu|Um|4SPg-2>TxbWXva3!w%-WE9G`MVPhWl_jBIWNb!EmBRJO3M5;VJ6@Z-R$mrSqdj%DF^`-j(F5VXjf4!b zBTV8IW1!xzaFzL@=_n`_;IjEc%NKzXON}>*@ zx<~0r=MA%5^Ar>U3afAT1fHJ{eD**Dopq=s^7~Sak9r?ITXtehP<3}TwtT!^S0%jt zc+Pq}2>biF=mTaaMx8(-FL@ha9mc@OOkMafWQYL5Ed-dZepv+7 z`%LTtn{z+vbv~O9zz?(9h%-irEvM;n1UcB#@x}R{7%)6(B&4uSDH)=qmJ}9vz69(< z>_q@q+3Llh%D~lvpFDv5-Ul@^Ybn_ayjFZ7EApE}X`ZG!4pJ&lUKMauJ{VTVYW;ii zhodqxcGn^17BDHm0P7AI{KyDDZG28M2Vn*PeH57@m{NBvoE`hRgj4mQ{+bw&}`CQ(N-!Bc$gSeN2DI&%<#o}tW3`K zHs2bn{4RbbULJVT*PRI4#d0|v%B}9SU8A%uVzsAZ!@T33Zu4tdpIE#byXbPU%%G-> z0B`3%K8)(@ayQnf&zv84ZS1j8>yxcGACya#+ixgs5yhzIy7dSu1b@vtJPv>R&I2ZT z6j_$|T9&4EdA^BKstSa$_E}|EZItfMD-%|`PBx>qs^tnaf*qoxV)D-2_v#tHr=jPt z%k1c1)F=RnSOJiT-qmye4H7ZwJ0tafLn2ghnw0+;5)p8KLo$b@(wh8@xUKvBQl~t| zWAtSAcld>)^H#rKlk7uYff3qqtplUjbFdc>=9ugi$H$xwPDD~W9(-gmcu2Ge5;_urz2urw*XGeGyWev%R*;G~*=Dc;BS z8j@&I-Ql57i6OuwDF`t$k;-OTjt?R2Z2^}V*Z-XNU;Vq_MqbJHj5w15_GF^ zXr9&RmFPKPpsk0dnkz5xk9wt(!Bhh(|Cf$FrLT`f2fqXw``M+k?1}^4{(1IcRh7zD z4Oq+BzB{%q>K<1!rEgATtW*&cKAep~WpD+7*yAn_Mf*~!18N<9eDrycC5P#>ajQK! znjPgk;Tm)7Yh2fcR~2oH`K&o*hPhkpI0kAF#>6^s1&Vy%5}ZM>i>#Z-h+Bm3#2Jj3 zp8MQ1b{T6Te94iwE+LHE)x{V^yaI5s$FdnX56s*b;$5*EJ_Y6c(rJX zRI81oi;ye_uxZ2&z?mRV1cc6%6lxGG)5DPi1f@bS7_@{~$!0~@xwMl*;9t1Hisn86 zAX)YJtW*7{cnjKVC`M+fnHc6Z2E~ehcu4oegr6L0)={kG^5z)l z@|T%01FU=0$xAxNqB;fjF($hWO>}uKS6Gg!_k>Y=2O@2drb(XE1Dq3Z0RwkCQhF8! zi*%rTLOX`REWsj+huS(ZH-N;=c4jlT|Jh#HE72XG#)MUegZ#{v-1Izevq zcsL3&0i0{BO7EFCq!*oQ|7A?Ufag+4kaftlcu{k-xK|cm_pZs!{&Q@*#rrQqT(54U z#oZR%tDo+_R>ZON3#D`^SSx{QXV9{R3NrRK$~)6jU7O`qsJU}ye&!0ijt9R{BdUX( zHu(=}Et#)Q+eo^cc_$fby^~>-`+6tF5+q65wZ}_^dM`4sz0u`VU;HYm8B(9^3eb{k3GjQCM?mkgZ5kCQ5NG z@PXcdpCvX5t|qb7hOi-`{W$#jFAK{Y zN*_;U9&nAm+SYIM`{-5k^gigX$lxTdYnIn8?+7b zI#KYH_c|G))@uIs<139v&M#|tlI{gXH7)4AZ?h#Po};-OV)XPMTHl|3 zxXxtmpUlfG{~KSZbnpOW{j~*|l6>N9=nd#CzvEcr|I44WTj042pzs)Sx%cxgS`D;> z=!J+MkUQz?x}c8athiHuW95TnzuSLr`hFd=m;UuboB!XNs!as4H%|TU8??usk^eGR zW!3?&ud^%83;p+|Lp#)mQY3{TD~UFWUZ3oSlYaM+x+z8rBIvz1U1&DxhZCB|Q7~&a z;?eiSELsv;nn$TYb)hsR5Wrg+PWy$OwY{h8Y8eP$SCdNlvHJX)uamiBbHeshZ5&_X zojCj=1HLLKUu=hGJBW&xhQvYZCjhd$0|{H#rK&Ux=#NTtsX9n$jiejjfa#UZp>K|bSaY2QLOhA*11hc=}nFHrwjTSSTk6ii(ZRESlnqn z=ue3qV0xCRzw{5{PS)mrWK2d}Y~FzK@D8j3JSl8tr$pA8R8FEDgq9bWKmtP86|Tm- z4aV)59mwraE#r+c$zH^bx2i@@1H;)b(+37Q&D4`M^Q~4N#~4-K0fp-8_e)9^4k2fPbtGV_e3xwx`Uz8Kb%`C)GTx9PL9=~1)kpR@kTtEdEw+$9lz4U3wz22ynXgx=qqO2S*g*vM@o2;R1b!>S#Hr zQvVP~03CwZ0~APFhLTq}OZa*c`-u1=58A592VlEHD+COWxAu7eO^H1xV%Qi%MX|7LtiQ z1#exgfLK`(KNzYci52|A6V%-K9Tvxn=z-)YK~dz?`mWd9UYZm{_$M!8590Xivd6CX zmoE`ls{E#h+D4U^#j{7F!?9Y1wDI}(U(Iyoew29Tet02Tj4f5Ji;aG|as_GIR)036~g(e8$|T!BGs!dM{u}IbU-*bajb7`9?v|%Qi_K!p9Oq)4W?J{2bc_ZJ9aSOA( zk-7KFvCzqFWH67;S!)mzyA7;zlkt}}EVKduiqE?feENQGIr|8T=h|K0K{PF}3*kLj7#A|?}2$+uv`ZqxqMNfog8+`$lS z9LMkSrpQ_0dnV5h)4GM#iXgwU3^6t^dvCNj-c=BhlHzIn_}tV)@3MI+JrXZHN#a0B z2x_Lk*C-Rb;^KHXsIyoBp+n#L1UP2RKYnDT>w*m_Apmr5C+T>+Dh}mh)1mL35St-TBpFh(w68>Mk~FN`YOU-S5P0=_`a48 zstc%;cL&MC?4=qb@hq;0u+@ip6wdS+PY|0|^$Pown^85df}mwy<&7urT9VLo;1f!R-2UE_$keFA?FL$2X`CkY zpKRt-nrS#NcbZZzQ&B?H1h==tTagEg@Ab@T0hRvOV!cS@Gt4tI_LBX+1u<;nFE z7SVdT%RLTdHpwL`RUY*oN37KyVkluFSw1Hm>I{o?`JTnH9xhIOd+!Ju^v$0=d03{_ zbnKie>YyUJVFv&1-SXjstA;SNK0`QX$goJU-z(aerT=rv|ns0-DKy!~U? z_b@bW4^GB$J2U~c_vD(kUX)-g$g5{2sn5>YhmO4)EIuH-{pRlkxrF!l1Hs2V%US@rP^9_rPxFLR0?z$xFrkIl-5M z#Ai0r=`$rXaZTgN{pCTz5_)h4N++>0Rv!{c4c;lTd`Oot1E z89a)rJtEN+D>rWB)QGLis24|9ZkY7Oji=#MQSub)ULU8Fn^b&Q42scaUPJlG3qYq! zdX_qWTCiKnAqgm`5?GQqxb4VF@Vbc~K}c2vM`gInC-PAQHgMe{%tDCpd)Ql=;ibej z6j;$Hh)IxF4+Bj}>Gts~7Zef^d$y_=16+SrC?f1%%oGx}kZ@UbohCIgZr!lTRF4z^`|tRTc_Xyta5)a*CE%=VJIV4?cVa?kxWi< z<;;9=-_fMs-VKJEuoCjL3qD`TQW@ph?kRI7FBRew`8z@3^VR4nn6+FD0*8Q;1uTIk zTzn8@mmI+nXo5m-Y4Pt(h=b&p&;aNA%n2=X7%x6VI}Dy|Dcy1OiIqi?MBa(M?jV_6 z4{}+zEpCBCg4wjfZkCX+88P9ZK-0g|7Yt^n7JwpnRnA3OiE6C!bHwQ z6EZBADbY+Bid0v^LO>IVpC0v*vLuKd6&p}Zrz}<2dQ^N2$gQlUw340v$!=3CTpipf z!=XVoLCPPL2El3y$^upb7p!L0aJ$6ZU)_g2(;1k zP_c}{?Yo~=UA)!q>A1?72D+K~`~ZOJ7>$jD*WsgAa#rh#BeFWYI>ue8RW55|Q3<`T zPOf`9Dy`gi%MEtRACvmpw0;bgzDn1!0}zg1sJ{>29kRlUP9WCckV}-?GvjDCixr3A*sNf8Tl-=4W%C%;P5PELdzipwYJmNXm%y+cZs=U2 zuiD*aA6+2IVKu9O)1W!G!98Q$gv;DR28dMOM`4nH7qxb)1}0uj%@fu0X`doS40)XU z7-iZ4+USCigB;Q6W~C4tXVb)%f$NG$O4k~b%K$_MA0!4c_d`@g1ldr`v)(SFY>>#? z%ac7rJ)F3jMCw-y*E#@SV+INVs{QJ~L8x}MQ2Nho^Na-Y|f=Lc>$HKH6WS4!p36o~w)!pvvlIV;u zpl@^~5>pmDA=W$DyEA$UF0ysu<9C!F2=k#;@7OB1%i?+xF(gk^A>hMT?wNeRh6f`P zuQf)Fj=*(IXVhyKhs!evvT3UXbi&#c%W06YBp*!@klfrD?YnI>o}D;y;YxUMZq<#` zDjyWv6CcmLRyqk4PpVu#Q*k2}puq$;%2&N6XzIwWsdcGdpQUbD)K>`#`hkDXmluPp zSsEoi2m~mmEF)*)*Ch~aB$4NXjwKRl?teADLPzY|tT#$3{OA$j6wI^*uItg>VD>CF z7UD4ypc&mvy&CohQrOKl8(5?ULUh4WT5Tg)m9p-V;{}``(f7?*a?{=Al)|3Y#-Vwd z!FbJ>rWY?R^I5f#N;k+PoJ~LzfqjioW_|+S;(C6xqs~)*HYbq_hyAmd+E6MHWBpU;=MxH)Ym- zylvm(0i*=nWNwHOl(-rL^)4C#(t-H50jg>>A`)Kb5|xk;9@}W+K3fZLE+a(z#L1s& zVsr46kRlahkkWNqidtW)&13imF|zb;0jZ`OL*_q35lN)LGm z_j#e6ucYTX+-03USH&A<=$KUdc!bW51nr`(7@v4}JT~P~mGJ0`Tnl2X9h4%#`m_c7 zk|CgTpErG>x;;TYYewR?Q^L$BZ4spueX;ovHc-ly@w}ltCnY=lS{fm8aZO}|J zPPyr2hP8H2E5OotbxHO#vY$fC3Bd5`2HFb&3tjI=^M<8&7H!F@an z&f~jeaY2(~K!i7k{UlnqBQsKdA8tXaZkI(Uypj9daYP=xz(f~>+->JQ^BsB4wu!& zu%Yf6lg{ynZf`1i27XQ&!vH7EqMS z(ca}3??9H;?Ipvlz3KSNA29+{59&5YK>`4408HS9&_tda_a!EjY5Xm%eGo1O%2~Yz z^(PuM5z+rV(vLy2*;Jbnilu$Z>E~=X>+emy2EH>-9=A>x{V?iAA-c>C)@=+(yTFIh zH7IDIZQ{&ZVlPGkOwCzb+##6$wHx{=l;V=L#9HHRz@&#kEd9XS(~X%l=@<*Z!tD3-GK{3 zwZRT`@>kwnky-fn!>5qPoM+K*0^<`{TkZW-<|&CK0cOT0>@SFH-TBRl$$BTdz_KGV zw#w~|`!kK#k2;=jTqv_p3UpB51=cqnVl2-A`TnB?j0 z5$66Q>?4%rj$#Z01ccV$H-ljUL4pzoK-X`r@Dnk+B}UW>Ffpr%n6`?>%hBY+ISu{1 zc5=s>QRh$S8Q}bK(y;UyKBHi~!{916Za-yR@U=OQxLaZj2Hg2+hHYU_LUGDaUW@RC zUUw@x#ke{^v0}V7tbhK!T~@WN%ukqG<EvNi+-hcXpO?jZ4? zq!S=oNWi;nxREb0q}q*vCeaF9FoX^*WB6LTcFvQ~W8ssMmw!wW!_B{kwjM7mo%3<~ z;OFq&EGap+e9G6@*e+}n(SX)m_rXb85T%l7;A?R|d?nO9>hq`BQdjrczBi?MS8b*W zjIVvvDKWl#&;8Lz>A^Bpn{ri~>L&$*Pnw)U$0`5_r6bTr@$BaR7hh6;^$pr6ZJehC z{6jRL$Aj;546_2`PKlTNOAWJe>qq~_{)A>d4440X(*URmQBUY|ic0lL-pMu@nz-0BhCNdL(RP6G#QDmV z%_mN5`?vI0=}j{sm7TpMbHoRpoCemS8H{qGaN~P-c?c5zsPC6vG*;TDB-8VFo-6C9pvDXXc&nx=s&D;>StU-6 z>V*UeIC^I|P%;O$04e3+V(Wn>%C|`Un2%ezK+l;4rZO7Hg&p$xwM}uyrwz0{0_TS>4eyv0KiN7kP=(Ce1f;SvQGm?Q9LtrEY&~pe+ z71UEX!jw$YTF28vixQ;?5DvjEndz73nnu*l^Y_GnEwV>5@}OjXkL-om(jl>x;H{3p zK*BIB*zrK|CrxKu-XO@26kF4V-8?-Az$%|Wl*Q5_BY_F9g2*`{^aS68Qx^Ygm?OBd z!CBV>+}Wu%o$4t%z_koZCL#Xnb@4B3viJ}N=pS!q{A(Sv>NSaPZsZs(4#eeB`v1Sg z)5M$o|Cp*mp_#+1B#9=)kqC3LK=y3EG{u+e6Fr$%FEm0Ui4IVCa^p+N>t2n?-qe+; zLaPIIO?QRAMZEo1a#gnN_cON&4{jB5P+(EW+&WL+MAM*N2TAJqB>c7?{aRm)=ZEQ` zU;%$s$lpBoGx5x5Q(vv+uL$Sy{PBS8aE)?-a!NIcTuq_PePucfn^{82!_I95MkKg) zJoBsAsK!rhH9$2M(p7CDQ%(<1LxhW79mT36kv^2W-c4lXFU8VGR@IlMhpGvt*Fl`} z_+yZN5K%CxG8_Mr-cJTnsb~E?>qbfZXFA;eEG;zz9Z3)7XIk(j2 zMmg04dHE=G?f+o!&4QXr`*2^|2?a4AGYDx#L1sZ_L()ns0zzb-BoS$3YK$mIfRLyR zVdiTG=td!p2$3-&lOiNS2>Fy&WEM~$Nh_1cS}I{lLVCY_>Rg?hQ+3YX7rSa-P{jpS zndHs8{=@V9p7#Z;T-gq(gX}q6OcxF4k+1j;C5W}}G*mU_*k#92d}8aT0;9eCG;8Wl z{~|(9e~3{t7!q4Y_-NtLj@IvLHe$}UUP?4{FXM>GwO6=3fwgqTAAr_}waUMgusD|Y z@<>h3jUNAUZFVGnQSI{E^YEi8udvD&F1l{F{oIuAvi$r4a|gD_6P92XF}!gLs~pXd zTOCl7CLy3r+p)q&DII%2M)kJgRAgWP+H*9yveU7SfXF-|z2U68;qlPQ$*v(zQ!7g? zYB*-B<7#V7bZ|nG773TM=s2)!0XCRd`GU_(pu_`vt8Zp@!oM%Qf|zHe?TftFlmDtn}y3q1Z%m8GYX3@W?8wr*X+jh zet@0ISh?S39=YgMJ@_jzr2)o^lQt?l!-Y5yF*Vp}B5{n_BOBo~uVi3%QbL9)$*>$h zrIpp~Ds@5^e!93K(|H$6QF{;f_t>?~D6e`16SpCy;#ruoVle2pGblz-DYRc^muvGc$VE*$F{-|ex{FCGn)=4Ga?EKJI z!{6i8Og&Bn7XWqi)gNlSURokmbYA_i?)ASc3+*YtEQ2N{~uYuqB`%v9p zkCfyKVcD#855hsFY#7~~)gY`RZC(I@dEI92eQTwiSab_?l>vu5FDW411Jup*zumTdjeU5|skJvM<4Gm01j({hC?i=ek z1&P~-tM3-k6WWPw4DnRvjKRcb*}&XO%nQo{`F8EoxLasN&TQEX;F*d@a^%_-AH+?L zzB;otCZKsCsr*OBd&QH6%Sn>s)Hj5KAuhMN{i(kIW(w8_!M;5(?hh~OnGCMlTYRA7 zL6}GE8NYp=_D{U30;a;|3JSH(Cx_~UeefnOKW2JKZf}$wb-Vpxr_UX-@9oJ-N59l7 zrd&+LjY{H{+dYj(B(`ij6W6IW#WYqpK%zDk=jY3kW}Xl2HRAcxN*N_V4GB(KFcp+9|DpZ!mVnG zcN0v=tOJX|YGzW^2`1U359i&-XW-i7;Z!ZTQe z0^_$SWNvT7Z+CVP&emSw_|#XGjIlDywJA38Pwo-y){I;CVnca0;n%sI znw?v(>^0LKogeExH@7ze{qs2IB5`6JKhe))w777IdFU;a)Ccp9=C3U9BVdPPeAjts zCS>UEG{=vkz`^{BoGI-TkFRa*vj9)ui)#Y>3+m2ksl!H@8P))7zb|4H1KndK$0_cN z=gmmC7m{j`L87E4H@ZvAfyvp9&^8ib=g&cfLDekgyNOK(NI{(aBn92up|Px6Ng;0J zCftHz#TQ|8A8iZu^-Syb^w`SSnZ42^pe$Q)8E%mjP2BB4L#0tPC7PgwCH0r-kF@kZ zO;`fjbv`uybGk%>IG(^kJR{q8bubD0%jAk)9Yzk+4hH^?sr7Eq5ng&rsmwmI_k^P- zwSU5~_0m&clW|_EUnVm@|E$r-%jReyW-+Mmiu2B!V|?Q}aX>S_kY7PquVV{O{OhYTDIPEfvC?Uma-x0HY7lzO*w!#->2*XfJ5qE z>>nY!Lg4VkXVcU>Q=u%p5|Y=$M#I$fQ~_-l*@uh%0c#B&mEI!R9#-poY1vxNXN#6t z9i24!P?Q%~rnM1J$}(QL{WvX(p$Rq&7MURWhOrwgTwDx&@>a8afWH>tuuN&ND?q=p0B43AMlD^Hz=vquXNe9 zrUqOI*BFO&0Hh zn&nPY13C0b`l98Jn_V|;ay7iR>F=BPO+So`7m$6#g@A^flqz(x15!Ob>@K9=3reC_ zz)5-a7$YD$)!W|%u`C&d|5@v{zl<9LJctjd#uNLGP;iosEyC zZsSY;-Ata1_-E4_ZH^i)0yn`C&hhXQB5?}5ohe}4AS!ek3eay$gcjVQOl2~fCo_QU zvavrd;acz+7~?gz2~wuU?;&nl0HpEr9fK}8lw$&x;s8uo3599d7ZYz(%ao~ z>RW-o%Trio;Z1FHX}X3&#O3o}PzC6A`lo&{!b<`7ms%tYus(&I2T5VVQ<&}3dPvu- z`VjjNdFrR;@~~O-4lqq7{Ikh@B=P%2p?liNnbV>EYbV+yo)wAJFVr6Vc8`^ddwg$N zAFP?U-Rzx%Y|TKxq`{G(?JGZphP%h2wvcNruCWcE@%)yRO!oe<1P1ColJ1T~H^w?{ z&51KBp|3_jJgJyql-@o0YOHk9Y=uE)iUW~Xu;DC!IVVi`3!uC)a{t-X>f5pR5jmg- zEJ6aZ!8Z3KULJ(V5fq0TR~gx*bneOyoerKYg!sKe z8|XjXn0DP0iAl7!R)Bpo1P59z@#xBgODKrd9LP?=-Jt4{uLxF_t7bz(fL5;IA|>(x zIUEqmb|3>V3jDcz0zmpPyT>#fryFX?I>(__aYZt%f|Zr<{`j2V$bDNGA7+T~1u_-s zaYUtJlHvrha;Rtu5&5l3YC0+niignwZzvH0^q!?)7m)aCyW|1wBJOH^ufhvPzwNYf zBoaa?r=Y5h*3rK#k5v(RS@CC?%T>^vh|XKdh=ZnPS#+ve%v$M6cIUpjrFA9`odXQ< zNpbh5$ohP&3e3xmRwCnPXLvOfXKcF#{j>Gm)-IZ&OQj3OG2d#*6pbgK#p!@v7Y|!< zBAwiO(7R}n2S)&L%mo_g!)Y(b4s28c&bTcOx)l|S%ctNhZeYx6qZyBrvdwL}GTF8!un(^nU4U1qJ+A@O-_na{6(N8h+c!`x_r^y&f*T$yi7=PE^}vgReWz#91?) zReV&^%S}oa1FMdgAK4b%ApgpH^~+xu!t(kq{D&uq7FT4mo=X(N9(v1tG5Otr-bDSmX%q3VGnA*D;Du-8B_ycxR$Asw+Q*&zt7urq0;0_hl40iZz)#3dkt-8j1zfp6F8F`&3zSFFu@bqI_ z%agCPbXrTN9`N@7q&ShUgQm~?AVTo43AnRq=xIFchjE7HPBH{D*?9Uz=}%y@#_8tB zt2=3UJ+*wXwPQTX+OFM-zpLW!2*W}!hTcmZWNf1921=DirD({am#PTj?Tb`{$Z|se zJebH2Hq4bBj2&p4j$xypA$icy-0X$QDzf|c;p@_-~Wb544oPjVJua2su& zntmHlg=U_!rY_9PGM3e#?+r3JiZx8*q4L0e*e)O{Q;u%j$C}T)dlv|}kQW$2mM+D5 z1QQY`ag;j10bBz%bk?ywBY~4Qy@R-iTz85+CYPN+Qkd^3zZ-F>Rr8pC?=fGdcmCsO zcT{fO0C2q0+N|Ds@l37v^m#E&nUY|(zIokVf|csLPl2%&|NLR=cx>Y7ers`ZVv@7Y zUT40jGXEts5t`hiN&e++$D8i)zOjsX5V!L+qC{}%X`6;d@rS3kScC@wqfuiunUbrh zNt`&j1Bti-H%^HLy7P+C{R1xad=p>zu_N%lf?9-X3c{gRx&aQs1kUWeO5KC}(J1wW%zyj$i==V6 z>QhrNlGGQR^^7EVbx|1j?fuD9v%@wfe}tM^g!(qrf5ctKC`#0&=O8B7qfKG~cw;MB z)Q48)L|g0zcD##p+;XcVV1B)b`=kY*DccH#7R+wcwvy<2_Q;Zurb(vxLS>7=t-zqM zoPbh_(k^*xzMNpDgx`M3TaSMtTtS`QYq|rpL{4MgEWP^If8;n&8 z`Z!y^vr|tu&R8U9|5PL7(1|*IcLm=Q3bybZ?RrVq^pub=QEbufkl0dA&&`hfQgeo1 z*hy8U_wENw?TOI&nloi5+|`O_;lM@JnU+j#q|@A%ELE+O#5hD)gr}E`$M4~t55G27 zaTnetK$A+msvIKhrN?V_?T&X;(8_vk8Hllo8B7Szt<2&_#6SONkEtz3tCWqD{hGM9 zuh3(cx^`oPSR)T~FW1;VkhWM9vTddNAs-4}$&Tv>lm4|e#IyJ1RWcQPX2a@Z{Udqz z|6bBQb!{F!xjDQxy2oiIuI=luNIC#&SnQM@1E@Em8s$6^AYkQ|o8=CX zC}6JjP?WCuw^<>n-KB-BIH6OF$<$q)sZ>|%_qHD{MmBe3?fDY&SIu`3oFq0xhG98g zsYQNgIF3$>GT~^*UZZ!jcTg_9Y5ZqX3}-S{Z2HC~j?`U(HSd58vzM(`CZ2H#=5N^g zNQlsc@)NARNZ10eWwlIM?CN^xxc$EMjLPD=O;IzTQ`+%kEhbgCY)3>Rc6KF0rgHZT z62g>vz)i?^cuQ|PM;T}c^i1p%iCbbB&2l-i?PR*(#$vm+M`yXl8>|u8T_ksneduj) z0nWP<4js#ht08X*89l?5{OV-npMU4{fLdmaciE{8f~Ffe7fG?F2iG4Ot@5-i)Y0(S z1GTCf?(}c&35&?%^5ufu9fWFo<4)Xu=u<_1Su1!rAXilP`$)0A;_)^s#whf;F~GmG zwqH53>bTYi$Dp_v>*>gRu}xYF_Dg4H%W(bYR>k9slYKpXld1hnOD}}2&CSiNIn1XW z9Z$<{>ZHb!y*`#Fm+j9z5Pcxx!~x1aNMF1HS%3}pu+W9e$Y2|6+`|MxUj<#$mEl)} zT`JORiIG4U@b;Lw4^Fz!!a5MD8#wGEJWy+-NB%FHvpJ_yok&Kk1 zx7%*at>hx^ejB$aK0;bLXgk(=8bWv}2HBwI(&%MnmzzMNeP_@WOmKytNq+;Tp~LKEB^y zFd4;7_@75BktxEFpXy+~=mG-{Ka13XS&Znp-a&YvXC?!;{a1_}B;n~&wtToBW`eOz96OZdU*v+W75RDnnxt$a6nVIdA;<|ASYO zp3*WuJn89u@4y}Vk&KOeL2lg+-?FF^JuQ}GdoNyJhMME=4(F+L*){%c+K-DJ2zCyA zet6}qN_vk^frDG?S&){JmjeBT9|zo?!511HbU%DQ1tQtS z;+r1UhabP#Z+tj>K|P=?eexgIqaeG;J0V`o2e!nkFfI66oi)seVh>xvwzix2zMex&xpEYN802T5&zS0;=|aE zjpCe$S%wZuk2(+>w^D#1hRsF^VcaChvkNZC#F&Y8+AO7Z;d}i9Ce43Kj95lL2Iqbw zb++V_05Y6i$+c){@Bu4+_8vs;x#Q=m3J+TR{h7sSRp|BI`!mzgK8wX;DYqxnc(3l= zoOGqdlE_ep&0nrYm#nHZflR8-`|KS-4%Zpwj-NhLv-fhZL&L~?zhXv%*6@`I3^w98 z!?7<6eoL{1`z}~G)m&dMmA%Z`p2+T47|STOvU=X(EAsXbz^d_wdqqYMhcAKm|3e@> zr*f~Yg?aD!r(GK2S|s4#oF_Dh2xjDC(G(|`LuVgcAnpbdlvKb6QKmRB$#ufj_uyp# zX@-jV3Xq#R`L&c0WFq%l!qDpLSE{1&ghpE?LKgSD4{58@W5mv*A+~HA1HDAs$?q%5 z;0qa933UZYy$nU1;5>qpsesaM{%UDjTSHR)5>-(KG8i-RT!$JG>iRuAMP8iYhUI<3 zpBq>Q{)l7do&>&B{3ixn**Bw#J^D5p=n0jX0Dth$CXh3iiqr`$@=CB)@L7gVi{h49 z|Lf3yLdfo?5t3Z@2k2u>ja{}(C)TispwC9$$3+MsKz3NP6SoJeH=}y+Z<)OE zO~{vN1DHk!!yLB!5b(PNfoyM9_IlBBp2T}1My53;Ga!IKa(ZjX6KOq z&`5CUN$#Dw)zh|K{^il`+e|rI_6|>k*Pf4^jkhtDfP`G+5Dw(oTpi}GQ8ht5sW`>t z#^L)OAveuJgfl(=W#SbO4IjGuh|FNBnj!KyWzi$~ZXRczK+~FOEi6lnOpdmB-W;1P zx|lv2x!f)}Ont*pOhn~kHzECypar*^9M>5l+BoVBfM?&9W)!TqrJbO)P!9#ovrWe8 zrKqT|Ayy;rW9!3X5#poC7qP=_Mx9TvTPZdOA1dK9G${@>^Nd}q_;kWiqz={x3KvXL z7>wc>!H!ejNZ!Nf$q)RDRaRyRT3#Qjw{;}cVV{vuAbjBP^x4p8@%rf^LDa>ItUbdY zImj=ZNrk|To2|GBmk``8Yj-p~W$s2ICj*Ox7=5JNNopNzg{BiV$53zi14MO0g|S6BcE1l-c{iZbiFmc{~S$`RZQr_HE3~J4RmJ&+I+fA;0;tj7GiJ z%MDr&aj^}-WsYu%oaQCpkAf-d!cOkUp)|P_X#C;3PgR zJpi=xRbA}iaO95&Fvrp$q8^MSJh}Ke(aZ@Gx&4W3Z|Zx;89e6+yEXLGK(ykWckRl3 z#lu!t*;^3$EIOB}KHM1(@%efvq-eGwjHTiV)2~V0?<1U^$;#-pcI~+Jh3Oxm)z6g= zrdtauqZ7l(W{n?g$J@r$o41y0=@ZjCH6(hmmyo0$vpT60L`=uv<0L*(Cu9ZQtQ#Qy z6WNf2z7R^#bgGIT`ps%Jaz}EEtOB${(u0$c6A4E>P+V3O_s^)Ya^2xp1)LH;#eaJ0 zn}zF}1hXF!)!wv(8lDIx`g6utBZd-|oE#E8l6?Q;Ub7UO-JGSIS{Gwg+fRG=?t6R5 z%|od<56&t2R-8EA+&MC~&%092@d)*`!v&9=vS>%oOEqq7cDjEEqFx_idf)8-u`cZW zX^#^b-yV1RC*~Au2fnm-^ex}6)?`)XY+1Ez>1X-94?XdwFbuylhr2;kxX};7Ah{aCtKdGVLX-LucC2Zbz3QkfDL!zDPYhqW|P^ z%T0dInBM-;mL-l7!6mU~VQe7w0WZn%U5xsf$2-kugAO5;;v0yBU!8}9Yx2NFH`%wYZg9E zYhkD2K1yrgIq@ZASV+pI?Oo+$r9^^oDsrT_9MKgpu1_Cji1avseI9_|!vq`zZ@T@d zKyeF5Hy6d>gpHZCfs~UY{}Q_C+WZ{so}TFgZ_H+7DgpG~Tknu0pjwo@^4C*_8GUg9 zeU7yBPST&!lY{K7^XmAz=rf?$tP6uk-Rh;Pib9D;fLp5VVWe1xp)_v`czeCJNdexA zhs41dH@8?<0s?c)i)owtW%f_{$hj9At<-9I_IQ`?AqNh2j|7$u*17C$8dw~;|LD%$ z*Nt|VVr(Ny@kXUQb?8#yy%T$Xei#N+VzFUMAU$Zf>JJyIi}B(>Bd>D2BbJMHY+drn z{ieVIjR5H}Qq0-5f{U`aq0Z1`__PfA2%N@wv>&FV?rGs?TC!wZSK?-OmSJv)Pgm2^ z_O6yk+Fl(`Tb^Wn)GXKXnxI&MfP_~vJFGo%o9qp7E9LCWu9l_uM4=lJF63NW{R*wQ z4r?zbn)&dzxQ#asWPDq8s<$W>uMs5MS}TJ>b3Wuxc{IcBv#8$K{l>U(rW>tAW}QV|R3NuRMR~Z0_d4QBXq9h8TW#~qpPGpqV3e2# zqi%eFRtoDe5q}~9ZlkTVZHUToF?bel-KbsdXJk8acxY|JFc=QV#r~!NL4MitdFEj;;Eo=jy^LyzNg< zoa;0-RQ>q7^y(4R^`0}m!`-m;m(n+dI+|6^X5d4T3-0>$Y|IGP)c5d!N>TNkytT1U zzooUYDb^5uYlu%}Ov*q}+B{Y#z-JSz!P)1NZU94U7FEsFhS^I}isqNeEK>=*|%yftjdZLkX*K;3$Ag zaQQ|8(#|O|jlb^1$^2yyKsG|s&HqTO##hXbxyGg%-jZ4&K9X3e%|<~2<9dogI<)0q zomtf|W#0pYaeU)X?0)m2_}SF=CxsGTxxuj1DI`*4D!2z>Vl!o#g zF>Hk|R6Zm${ywcbQvJY)zvNYE<2`EiWUz+tZ6tgdenRcM<$bOC){2Gmk3@nW*O>> z+NNKFmu&U4;Lw?zeQ#QqUKs#N`ixKO5bHDZQTfh_j#CeEM#)9F=yu|#N(e0JuCdiA zZpa7dS&#NwFG?|1&#VblP4E!``}&{rj=LGr)zb^w^j!1R6^(_Y(oj}`aO5m`&u3jn zaeptXYEd}$LH)nakO1BQ@I8ntz;ljt1EAsh@_=`(h~9~QK$iRjGrI@qjMlkjGmx12 z+u0cZb%3P?(<`(N7GS=Rco-+#i&YwKke*0v1X!Tm*Jl~K$<4m7;bbC7^X#Id`JDzH ziOXrW;4?DOC|Xz$W(x_r#Ru$YP6R%qWM*e)m|#W|==@k*)>d*g*aCtfm7pLp6q+ea z0RKd_^MvA9Nh4zC@pSmtMB1jz(QjqPCCep~eyg2&)Zdu&kG*b}Z-?zlG`2p}ahvJi zsNRM?lDX(tHQ-hjV_&Nkkt{Uocw#R&a_IO2QBKcC)k{zOUfGvkDKN$E$%y9vkik1| zIbih4A&g-ESCwd=^Oo#}tlskre$Rzh0^e{?`Zfm#=HIWa%lMoB!OxQRe`q8Bb7&)T zH{A*}G?_N;=w+2URMdxEL-(2fq*FE-{qd?XK3wlA&&JqYhD}`jQgegvLV4uf;fBHj zQyYr6>{<-LW%wX_9RjhX7Zy+AbYs7lP z!smwgWgPCzv-YeZvB|R_v+Cc>_ggIaeczDasQ+ajMC=-5{|(OIKrAy;_7Ad`L}m6) z^5jg<4C#6+O%Issh}$Uc$&JWm18A&7O_oy=tG5Zh%4%FJZJwWe^^sLSG1LEGIyA=d zo|qOyF~Dh~=&j-KAXd{w*et?nl*!{VhRBU1lp%MxF%-S2y1_1gf4X-`U#x)BWRdrG z^9^0))$W8zQ?Iw0{~;0X?0C|bNs8{@l~C*EpC7S$R-{rQcz@LFVBvGVLaERFcV&)h zwY<@qPY!bnAKw1e$Fx3Ts?k*Ah$J2lOi9!|sH6oP5WBp zAifPUyzW8QcqZqUW446o=pBGQPgl5Nzid}KQl^eN-Q9}92@KR z8(D7cif`OqbYM@k-sU%*@uKuyk7Kk0Zmi~+;e2ks>Tp>$oHYv&r;g*I9nN!xC~{yt zy_+oRUC+=cVe5>plItmQNevS*SHHN-zDng?J+q{tp{?6%B>02n!<)obSRo`HK@VEX z|8+X?yE8i9|Ra<4!gqSNDS zZOYMf*WB+mUCy#Sr0lo~@?F1#;e*gTG;l4kK_##&SJbN=ac9N)Jagxn+f|w=dMa>G8eeM*cNC-{J5RDuuFmyiB_x)#Z9(kusUyO;8?}h6-*& z0lBRl#i-KuY$;l=e*Fs)5HgZ575fU$Dg)125$Cv z?fu-2$N7sRWsdQcJ4fzSoV2=E>9*%qJX6c}_M+Qij}zcNoea2ruW=@Ahi}#K0^`=X zoI1}tj*0O$`#kT#YWucnjh8tdW}Z~3JFw`cTGMmyY${+t(SpY$0eXc>r9)UeH~?LAK6rY$ejy zOTdi;R-7PoG`sY{;EP#Ofo%WNjWX;m*&96z2wPAqv>pT|m7^z+_SlE$tue>UF@CfC z(HQ)!r0j}Jc||XX?0Phsx=!q3h&WRFSe7ttoPd`6jHrO&lQLVg?fR^})D8zUl-Z1J znAEBup@5OQRY#A$W3`PGFt zJ42m%I&tD0crH)2S85qYdw!XG5v8_BRL07a72G=Et9iBLBJO08)C^yML$Ni9F&$ay zmE>F9>%|Qlx2lnzuih<9ZLn>DIBzNBms0qgRpplp*nSC4cX@-=v|g=0Dbd5necHJF z9pI8TW?DXQ3~^6iU5qo2|M-9Z74y-0x#3i*9x?V)S3W>q%&j>w4}N#pn2x;?edTYw z9LUyIk;)|rcXl3;Sjk@7u197|UBX2QMcWsNZ8-jnvebGI6Htx3MrVu54?uQ3tUc8J zj&?37Yh6e=-qs4gD`jw3n>#EeNC6mZMmY!3hgULPdU70!|(&@*0xmg4m9z zjaZSmMi_D%06*v=6!#e`1E6e8q>c#v-~Y8Kk{tPPLJG{ae4PAJsll`R%-QD~S0s@eA6bvqXT%zh*7+mxNn!@5IF~inIb#k~ zKF-4S9+L>RRrZJ%%pxKKLJMHBwRN8X7KAMrWk{!2;m@VEV55HvQ?PYZ!lccz_L3F6 z+6G?(d0-A(7f$Lu`aabKh@e|PY5UiJM~eKS_Jv!KY1QxEEoznyd@_Ta{T{=zTQQVS z!7_@^c|6DEO#B#Cy1lMyDiE;~wD*)b^VgZzZCKmflPide!AV8dIxE=$Yqq80nuoFe z%4egfIvsf@3Kw6?(mdN*CBHuz*Noh0h91i2@V(|Me&*7%%h9po|PcmtD27KM&u zf$t3}rR~Dfm0Cww6fG!{KW#H?(+fNORhprP9!(g9r2AjA8YK^8G1^%-u=`}=43IY! z@vKY%4^c}XDk>|Om@YFW=kXnFs_1<)*?RU*kQ^p*_c;e8wTzF5wRyjGEfMGgE`sySFKC(nrn7^hpO~8ZX{f-F%}2RV5;43XrpL?MOU`oHuO3TduU;y>gE<*n zDwzNJWaQpgyHzZy@l7JNM8)_v`)PpM{T^C)zm{WDeuY{=758m@W$EIX2JPFI>vJFH zJ3WZ@c{yi#JmZoUy=lI+=xus;Iv2OudM1mbCbOdKhQ~jx3PMTGWxJ49&=>&qSHe0W zP)WWSuyF*IS`^iT!*>WNgE)OgFuIqj3(XaEhCGZRDstL%_#L{8>~Fd*$IH_^P5#;B z43j<$-Y2gK=9UeCScRcNJq%J}I6%GBirYc1lMs8?&HgIiGPuggNO9@Wy@<|8NrpO* zq;AVaaZ1EMA?X{ifjRk{yeqWG#++akSpM2-@d+#*^r%C$W>(KD1tQP^trRh~QTHN| zJ>`enkW?Xfx_%Whu6ORMAd~pxrB2N31`LX|DEo0dVFTv^XO7cXJ|#|(6l3hv*GJZ! zK2$T+ZUvonKKh*r6gDeD#&gm&wi%e4LstYPJp%>hTEI=d*2hunjEfYZ3aR^%Q(qB{ z?rG&`FnyAZjv)Xq7~GGCvzqJQzJ2Es7Ey;wx4y!D4RnY``<~qT1QQz6=zacm(P1&i z>U}aD{Hi>Q!(J4|XF7V_zSLqFNR=7P-~=iW!tXP@nrcxY*cvk3!mpa zkK-+i0+YVnwOUuqNqtmy)n4n!ppgd82jQ9Co+J6_T;d}}4>~W2Z9R%PCbY;&@oxr_ zkPOZitXfbkK?Bw+s*GW8y9-8ScZ5ZGGdrjUk^Ns~%5{I3QV)jr9|$@yt45)1B@8C|vwKCZh@BB5`_Ut1uGhr8&^j2Wz=+6C10OJGNS@j9G(wjH7`d(}!$cS6kTt9~bztuhE*nkkQWv z-y$&|>ZP&Cz;yI5W}TGxjqxpzVrWoPBQ9pNGCsA|L=jO^k1FaAW0MW|EriV;Vynca z(E9N7fKnXKjOYQI|1nz!phMF&aYCc|&e)nDWFTY^vo9$^P}AyOM^ahRCZt;%)h?A~dT>ZadwePhBb924~2_WB<5 zOnB&9S#{8T*F#@7-%1Qt!>GI7G_CTC_zA_<3oqw=@1W6Oi4N#iNM%d zb}(^UVUV?JTzW88BOmvRf^LZLYC6~p^7)LynN6LE;ea;I*dZmRL67n2+I=Ok&vWdS zu|%iTZby6(#Q|o`^7~LI7n&f=xtCy}9gx$BswSK8aOdHyE+!#1;3|5;c0FK#(`+YI z#r1Mj&mp0WvNwz!R2=}K-ijb(FTANN@?Bpif-nT1beY;X0}yNmE`e7# z3vaIz;4;{xzM?EJ(drq5{WFD!I?)YCtN@Im_Mi}t&SRD2HZsPdc79r0HawEBqU@ob zlN7g`xj#fNw|r{JvUh~EM9x1wmvmrplo!^d#ReJC!LDr|>joTp@F;)vIxS(i@s+9r z)2rXR%1%3_O0;o752nU4>s(C!inprBCU(^Q7t-=K4$OCQ-3U;=QE5L?mCbd()eqzV zZ*jByY!Vo4E}vZSg+HmtCT37T+k#fwGam59gLAFLLWyj()Xg@3f;cPAWm#zSl$I1w zBt%uD!-FW>ld5}#w|=syE;L$pBKK_@17MfJCFsr4uu))LutdHBT7F}h2wa?-mvCxS zC4>q-yp!aqzPyxpf^*j;1QWB)c91S z>sli8D=rfqTBg`kk!jqH@ob8pkcdKJ`%r=+`T5DY9K%7DX-i&=#Bt7~qMhU%77#bxLtJNB75ztHK@wFn) zGI>7-zf)*?aGC6EmtYWcToxRyK~t*2XW{lzj=}vd+J&4-f-d2!-&1IHjxN(7U!US0 zTEod>_X4zXh6k{rJH|!_m*=6oX<3(uoNPzX<#>eAp;AJBp1vvp#X=Sv(*vSj+vlk~o#J%mXlYjG*y zaZAS##_~!;W$-{4&7f{RiKxcb2(oQ#XY8SDiJC@3gc4Yv5W><#u5KU1>Mq?}d=tfX z8tv`K)wSzR>0RIcYA2hznN_1VLKx^KZ*@BMVVH3D%Fcl)c9ohqvbMRES)s_!t-O^crJKEec?Wpx>v<3 zFEFO@k7cIjc;DCRO4BZ(v3bx!&g+E>PZK_P7}=dn9>Zptmz|J1X=CXdVFXe`qY+sb z@To~4VvaN!4(|NDE~ z2$JBD^b_d5YB2GFI33Z&-vp$+zpth#@Pf_jW?6fXqMi<>tC00J7F3tHSYt9nxEX{@ za|Ix~;%5MF;N)=BIgvBF7t1%%XF0s0>>2q_7_(}`f;Vld&E%Ga2>WgwY$&;g)eT-M z*F@6bkZ!##a9R8HgjBp1g6~x?W#q+4T@BNL!JrVW#EE7UfE(Bd&~A=Pb&)Ni6**)J zpP@!^mHdP}JB9p~oGRp`>up6i8x)3{hL>3s z{axB_`O5^d{Tpt?>Z3=!K6m6v+cNI#=&Rmb(iG1ftvPf~u+x3gW#{#( z9kvTK=SMCfDb~h3iE&`3TSnCA9V4!WpKL|N$iZ4{O?%51P(h_3530G2wW0^W^h}cY zO9M9^CE!|O%JpcifE*77$_l_9o`&-KA~n-s%*LXTP_~JzXV_H6Wle$=1fXX)_f9e= zY%G>Z%J7_2MMYp&VA`7JbVP(+mV*}Ys&>l}OoV?1GJgs^i~&g4faNk+eHbLC5b5m! zSS!%qDT8-ucYDsaWgCiR1EPnMr~EwB(uJMuS>roC{^RevSA;H7)n@TIfWl7$@xHn2 z!<3y}2wGTxo4tbQ_p;TH@6cKR{Q7APB?|eCC3Osu0Bp>noufuZ0@xz5Rc~?EKX*Mu z=1w71!l2LJ1~yTC;b)oN6=aH*a3Rr*y)uO*w(?_mjV?2nT8v9oYLPrVbg@Xdp~IJ{ zj&z#UA^ia$0ntpS$B~r%Yime>!CLPm`&nA}{peD)hLOnzaYJe}GkDS?Ieypf+P-4# zvSi<)16Fgn&(G_t8Dek-Iu!?Ky3D_+-B)asuT(PGM^Yg-pyP9Jm zXufUXJ(Ze`-nTAHWQCbT~T+z%8TGYe11EZbR30ZLaHQ)C3h;rOwbp*#jKAnI}2+nK*u9>3TL{AEGF*?ol1CS zSNg2xeaPlZ+{xD*fc_Y3x1?y_>h17+8un*Y$6WTeBJ~BCUF&%3zW8pCde|n{i^}C} z!5ooz0GldqYzwrD&P{@UP|xsjrj@{HMRT zZ#Fl%-xBGWs1{`Jmk}#431%J)#=O-gr+hPh;_6%B7xCT9=<>kLmctX2_%k0eEq?Xr z%8&An&#k&fjZhsW zpzm0&E)po9cPvs(M=w%wQp0o)h<#Ut?0X97RR~QMD8a=YW<>=JjXyqt3Z|>fS~)pC zmTM(MTZI3n^=w6rI!J3?xt@s5O2HL?hy)$zDhsYnJxWYZ3CLv|k`1|&MZCJQlc5HR z*cm}tA*(U?Eb=Aw`|7g1jy=Upz3$*h$JnjC@+%J~avm4h``&igr#|N(I9GGRA{ujX zPuA`>?U5nBgGJpD-=MdpimswdBQZlP?Uu#!`bWigqMr2m+&h@%+hpl?&^$)@c>w?X z{CN#rm&Z9vt=C6XjyLAXg{aB5RJmQ^zGP&Ri^M93vyiltk_^IXv)KnHXgv~`*+a~6 zEXw{yQ=VTZ=2CSjKO32W7k(WqRaRqfpulCw5S7JI(dc1` zP#J^+Llk|9%{*Fx3B`S`m}Mz01xIFE)98*CJceSd<0Urm_jT!3mmOHY<%!fl{D2bf znFXA(RIb)TNHK5?%v<#?9t&t=^i8G>Ts+h zra(TX%=&%clNUZ*w+7?eXPNz(y|0T6@~Uz!)y4q)s-=K7F+9ucnYpgFg9Gob6QD8x zzIp8$#jb|@czwVJwhggbmKm z+i+?&42}1cD=m=4bCkRkGur7Q1U~VrYu?DyS=SJ7-+os28QJjgdT(&;UOqU*m zr)H-!g)3Rpn!s-ktMp6`0Qu(Dg>rpJBR#>%j=TQ4T{xp1RnqadHY2msvT{Ms6l$!i zjh+0^P8v<@Kb>hm@^|lu@1^D8+rFaZI#;g;RjPAAl0!_N_f9u+1+u-s z?H32WIQW{(7;dI99gqptmq5IeVzx?1{6LJr+mbQF>!0Kp=;YzOV`xwIqyY&!L4L++eih{cKT+f==N>NVVS>)s~(rd#|!H{DFzw6*-&1@;9{ z?0H5rRKt;RxeV$a$_0`VMXhtF!2lvOaI2uMwYmuVF{GZ8n5u^v?^yp{irQYN!gQ3FhSE|hP`-5%fU7uVrsPiXB3Dt}( zKaSdW_|^Gy4<-M;j^qa3yRVwo-qd?xPes1i-t9@AS2>{FTGjchE^>Dsw_ga;bsN>+ z!Mf_xfLFxtVJ_h0IMELO8kXUio`TrffIeb6un?pQh&#yKvvi@y%Jbz|4}gr-rf0W+ zGIz4OR;q@K!qnHpLC>&iV-|fMnFgq*BA6D)C}bH?yO@F4D5U(qr}E=7*NbzZj+^C+o+rJVwAac>h(f<%o!# z)sV4BbTz!V5O4{jam@q#vH;;&W-Y=H`2PV#3JWU$)i!wV(9{yJL8e8_7F?d|OVKOB zfH1=9bidI~2feB=<|}nhMZfO*UJJdZYOB1r=9HL!HvM+=B&dj5A%%Z71+;T>-y?N^ z)HFoZke(W)?wJoJ=E#hr%QwSW6+qq-{P*A#NPR-mBLvGQ=ekSvnlO`mdPTZBxbOAu zhCTE!=Tz`?t9l0vnyQWOzQxrJ{O9Q8zhC|@@AW;uux+G2ffpo*pv7!F6Og($j>=Tm zrlbSNG1_Bk5d3lu0IbB3;t?>l0xcYCqX{5tIR7%LbitOXg(f(i#*oAkWiJ6QV8g95 z(iyxFt`cX8*Z*MeO@o@s+WuX;9Z(UYGJ}v-M3gC_Ac`?*r2zpUG9w6SL}U_C0f`ur zR)H`Gd6Y>(h>C~|AxsfPAVLCZMP&v7B_vUiN%mHVTQYc-U(f$NRp(T_=iBqavMN{z z$=++Pb>F}Hy80U4D|^Cg#=Pl_tS4Cz-tK`%EIamPt((9E))%Rc}M}!C)cp=XB!YM{b`9qR& zrw)yaSBcDah`vvviNHT+>oQh_CGfsQ>g%VdV7%eY2~jEcESnTGwTtF=p4b-S`3UTc2qVY15kMc;#I8f18S5EsWr2=2*2=&l#L*!VIH4t60 z=z_JDEx_h_=3|)og524q6+WezXZ^U|fEyDTx6Y%@*z!VW^#jx+lOL-A9`z4u+dl9< zRxNf_@q8uMlk`Y%SzvQYcXN(LgZs3Kj_#ooaLCgqv z1Z=XN0OR(1EvZ~GrJb{oK&%T@Y>RH2SDcCb(2blglWpo(WCDK3p3pfk2hn|&{y)6- zw52hfv0x51xFAZ5b@;jL4VpL=`Gp#q_#5YQ-4gNVGEoBruGEKo)&hH}TcInKsQ+A6 z(kIWx!v+)-^;@um%$h$7%B>Ei((P1{y$n31K6SPp{gnr%wwd8S4|BflrS#%u5)fAY zKVFiI8&i9paepq8VPW*oW&0ATrRDOXg;hV7-S3*Bf*MnQ8(mST&*>YU!6VW1w>}EG zvjlu^UM6zz=d#zCXh?vrVafILXK(*pmZl4V-?mWa#~#JzaIhf(3wQ}&1-u%O{`GU& zx3QA{`PDH}`OjsC=TV?r^^HfB2^ST4Ws>+FT}1|_6!4i%2&?c*XA%H%fLI0Y(*NbR zpB^PDlPfpl!LV5OM({(@hL`*pBZ5DpmrPsp0kE5i)%v+?s&+|v`2Q~T|6S_;`;7lz*<$_o8UNqS-G4WC|J~L9zuwgkW!;dT zQ*==N7_^k54#`=ZkoVDkgVhr?eG8ceAj;LA=e{R^ z1ii5A+x;Ny)t{^^a8~(04goUI@V+_$2$K7#!RWW&C4k%r?~%kHdjSDV;4i-?Gnz;w z_@g)COh`5F5TZNC421GDoBr-^juA6d!*^-3sq4bxPcDtN>)B&!eryD3<;nNwg zW*XKyTm0=EcjrXUrJ!i=1box6R}m6!%Z=g&1I~4^uhONVuX4{AG5%-3wxCRX=A&?+pba5 z?VH%)0rtk$G4w?k2ux>`ejvX<`2SCT$UagR>c5(ug70SF7!`PhSRA*c{eQeP)vMT? zsHwPly^Pbf7)qnI`Qtxy{qhQr_#kmVmsOOA?8qE&o;3QoEc*$P0eZC`Mf39GjMb6T zsQ=g6Rth_t`r^qe`FYOLg&SX=aDMFAHJ*cC7{gcT?6}V{#@#Xb2B7^l-RUw9DN#lR zp1%4Ho4}{gCaL5_;nS(wiZuwKvmme(_K{Eq$y-XvKG6P) zjl;6t&bsXS&t;vzwc+ossPWmQO#bzxtrakFDgc7bS$3g6yKmmtqngwY%M<9 zJ>U0b{7^L~ZPx3X!(7y=dq!=K&Nj@c@`|@4qQscl7ory1qYym>Yb(ZVC|ceoXyCNt z)k(!5Ne%InEnkQ761pYUG|MO--)HRJg=f;<;Gh`Oi+z_)`SdM*;%MTwPl3W185JW= zbl{F}gZ+$Bo7V`PK~u$!j3e7JBSDtG`I3-D!)ev@kNxVBmC^qACUX$A>^%F0P2Vu( z?VX1YZ@M}8ee2Hsd$igwQEaRtF6&%qKWX6JSf5J_QF4m#I(SDX*VXRQ1-o*mca`4f zKUtJvIeKf^2Qzn0z!v5HH@yz#?sqFFB82KXk#C$maf95~XgtWEFX7uUw6C&X!j@T~ zn4zT@_TxWCrRZY-u$z9>&w)Gt7EDS^B75MN_KQ?yS$w!S8sNeC0*z)>A+G_+z906V zsnPh9Sm#RoGDMS?5Wq|+6eka#rC5B{*FXyICi+N~$p;`l7rzN`_oylh^sMtT6XX&Q zq;?6`kPSsdI`9Xy2&rn3!-`cfZSKIM8I80{FtxpS!$2H$HuFG-Licu6Gp5v!WYX?; zv9<*9Z%=SYky$_dtk~Rt@Vi3CfX`V71qDZ%LXB7lpa6De;7V7cB!c@at|Ah#Co8FLH?#c}GzB4(? z)L>&PyrxfD+*&QN@bln#RoXKo8j<-G?ADTuvKNcj0}^tAyX;FNn(s9CNiJr1$NzAa z(BxSPBbf)_GSbDEe`Nj>j5SF0w+Zy@;(bN;lA>PTc=-}o>qeC%iO5s1aW4?*3aYXV5cy@+3`OBOt@0^XAhcCb9K5;?DkbkM~n!WmOk)@aTS=B^k7(1 zLX;OZTR~l&ql=wSBSpH5(U}Q6p9nHU4JQQJ@(pNw|5fa6%n)aj&98~Efh!7~hl2{lLN-4wx_Jva zm1#8++W@tExCREQ7VnJeRX19vGVeA z*?Eto%VVg?G{b|KmlP^}lx<@Xn&WE|oqh9<(z$iS$cs85LwB1FX0hU{e8cC15-WU< z`$aUJ7%qOTwZlH?Twjji9E`~HoLrn9Smca{+v?u>d(6WV_I1jgX>Z-0Dv~oF zP*{w}I3Ng)zDCsmmnSN+RTC~t0>N>Wnn9fEJ5XuXhe0(mr5a4Zxs;CCJxWx9`9dmx zK1)#leJ&RY4a}ZUq+!6^4|vufQILLsfhYW+c4`CiZ6c&Bh3$Ymtr`#8ZCUqL=0Aw_ zJ!6Gmg#_ghXl|s7)8fOp?KZi|iOGS=(nFL!&RR|gSdgsgt-Gvwg=i)J(a3~6rU<=E zri^@qD+y5N4dH7mc4AB*Tq#pSV&FA072$hpm#j#DS|qhu9z?xtd^$pzi#k`^xg}^w zqh;-zqRncb2ix7tc2;=q@+AjQ!yv?Gr@5~*B0CcmWjwf}y`g5nXs!O6>#=PFRR`@P zo-k)x9Oj*3#JDk3nbFZ#t^+h}ybhx|lSV>8{e$wu%t`MmBX9Q##Y*`j&IE(1jyrII z?DMRL95gYf-Rvl}p>*o6fO4zGF-X2}CmWv%S|ap0RWXOIlR_8a)no@6ddcCxL?j}! zV6H-|U$K?6Jdh#MOu`rqG<%hjVx+d*QMpEk(!VJ0gy!AJP!dc&d z8f_N<%$m%KHm52*O{zZ*)A=NjI&;Bui>+!9zVrwggn;PL=KhBeN0AwdHyU{N46_*@ zv^_0a_=Ej6uH~$m(HHbJP6L`dpY`~=HD!4p#lqKbEWChHZBE&tctdT#JTJUFrs6*1 zR$rfegdwK?x@68rWTkU4+u<;XEijVLbB^b*_3k_08nk^f&w!LeEXE z%eGDYe(pEiRW`4Em+$B;#yhS$!KOSdXYSCB$#blALsb>hTs`BQ$*^9g`$J_E)@q%L z@rDkM+)L;BJU_0p40p0JNIp*9F;elul(W7417fl>rd{12|5#bVLNMrIdRLTr$C_L= z__|z3lWqFuiiAj4BJ&f8Nka+zIY;2J-U$#fmI8&aI*R}3j|(uwp9YgvUEmGVB^$6t zkZ)dfO<;%T-?n7V5K1{JQ~7?|pGpYoB)SV*8ZDv78>y$~N2%U)TjZcfpgC<*I(c=j zbz9ip@%;z}uuOX3GHw_1u$dt_4*EpBE?7_gEegi8Yb@oyPR=V45tg}#T+mJo?_O1p z<_5*PKHS)1a`aA5(3^~*Z~GXiRp4lQlP)#sK6mF9=|M}baonCeqU@#S@;6yqIU`9WY|WE{ZIL?C0@aJ~ znUvKsyTMNboGA3Dc!D_$p4PyK0YpB@1w{?idZT~H7!hNnTXMazmPl(NW{~xmGW#av z67xsX>&Yamq5NOanq!nFU~tWknnd1TO)B$h96r0yjSBY}eJy9DU@@X-T_j7??fUrU zv`7!trdZc!1?0aZhS$v7wyPMYA4ELP7GoG&_I**;*D0!N* zyXn&P@?PTXm-Slf&^X<lN69H$%M`70t zh#|WEIDdRcCe}f!N;Vk6sYVD^DD+3#tZ7#x_4hSVfgG2Bo+@aRgr=BnLxk{vv%xQpl&)aoVGkIjb$__1__-4JOeURAsE2)CsA0 z`Ay_fMr(MxxSFzgoJc+aowD}P*BYG1x}1*;5s^gw3qP0*m6^^n5isj_MGt3X>voW6 zE(F@Zc@X&TByOOn_#+9?X-h`5z5bJ+`D#5jqHRi`j=}y}^NLChQ=tZ{= zHMMl7VJ&b)TCjQU0~Kc{>#-Qu*dg6f&pV=8QgOVshuZrDwOwy#JuA8jsy_NPm(n|i z3L~ncZw1HbeDQt7-{{^@rsKx)8F5e1Dd`FuDw`eHl`;LaV;$d=`=r{}&i*laWnNJE zd&iGYOf`-ZzWXM)(cAUc%Krm~@d*+U(js+^3^Uy^YHlO zzkh%uV=(zBus|YfpitK#Kog1fLqMNxg-~9N4`%2^+8E4CJp{9__^={Pp;oWV?t!WP z`hN38&ZSp zEuh{kU?vx}(cGF+dRyjsfm^}GJjqferlZ(&7~pFWf3A&v2@A>QwQe1lZE#u6U0P2M z-+QkzGT~EwIU%Yn+{QjXDEi=+l5*m^v5^tKLsqX}_1fw-P26+!-S^eeK?S?{T+Vs5 zcfqdv_MIAe=;frg*=O)+_{Zi$nc0u-PWq84S2rGT3QzVxgbw@t^^}jk1%{L2a1t2qXK8Bgd%!D0GnI zO0tSPg=|nt+CD5QWWU$ z$ztE18EzVg$0-4HgH9)Ck?P`A$Oc9o)UgtNe4q|Y{AaN{NdN|8TlWH3EnqZs0H7%u zv^`fYe~M7c$x5xzUxE7~RW=873!{^p>^SLUJ7FYC1&BUvP-)rE6$fBcQiDoxXI>k} zkxj_ppe%KzUBDrbMz#(P37WY4O(fVfl`u@BY$h_&a0c1!xYd2J_;kOaqF_kO3)}%K zrD^m#JccM&L`>(7V*xW1E&umABiQ4@{J|FO_iozngl@;*PTVoR>iB%con@}ejC#CI z<`~I8vRYKXwpgHNe5=Uha2{HH-KyZl=t!-eS9M3T)k8Sch8U$vdf$piu65wH zAi0&K%K^`zFc+o2>iQa_ggSg^_o!fkGiMhTN4(|&M|(rE0(E*?Y_}$dJJPvskWZFk7uZdpugT(6-iAC$ChIb1>ew0PB_HKi@;=DT{7&v{>dUFL>r}7Z z*BnvW^}@-@0`FGp?He{GFFJh5OY5+2sOy8RFtXn>Pj%O;U2iihoIFzSDjs4UcVlv= z;HVwEFXC1NTrFrZzR5kg?Wx7u^Vb!u^y>!c?Gv?X_#K?n^N3L^8wyout)2mdu{5eM z7eszgbo>g60kwU9$i<(_#)=OjFXEw-ib)`x9F?hq{(Jc60`~W7lr7^(qvtSHs6P~4 zE%TD3Sr)lR#hkcIylqKD48cigEmwN*F|!O&5=YUKslkkYz}8mK5&b&`5SdRZ{#9uA zMYpaZWppIGE`BEL68u9^f>-6k;x_#)_3%(xFz{SmFJ1->KE8qn{Kz7-S5|)qZfn08 zm9m3*uqtoszM_K<&R^*K%+&NFWf|~Z3L@4Fh^oYSo~5o#L%+fj_dB0EgS=hY>jL#l zO9{G;Zq=hF`rKIm@a#`?U#tuvt#RGsQ5vWPIHVp-+J#a~2SE>1;Vc!FGYPZ~JwiK2 zm8^Pid`xB!7vGld3#cv;RVsJW1k3PYmlS3Z=!VBdtP`Uo%3L--KA{_&qBJ8YtNJY) zIMA08qc-Z5;DBMv<8RpUB?;(sY7i^KQ49c^zd`o7&}INS)>l|6UNf{8S(|4Rf51`n zPR6wxif)`P0P#LU(~5sXLPMZ_KPWzP;&SvqO)C`3;7?^RO*ku1iEfT&5~=OVqIty5 z%#0kc)N2<^OFCDPe!r^R{hZEjsP7F>ln*%v%) zPLdBJY>4Q99K!I>%E-!U>cm}6gJ3Q|G_Q`>eDjQQnh}2Q4C90!A!F{hlujlEHNt@$ zv-}Rm3R1kt=h|YqW%v4-R^>XFmK@a_e*X06sbRric2K^g1HxyKtzl3Z zeN6jIYxwD`+lm1G|AJ@--1L| zlh+P3NacHoVCsR8y0@Qn zaJT2;-#MxD7A0KDT;1F0pqyS>N+El1WjZbVm_E7Vq=o9k9N}wP=XrB{YG`WuL$RAX z`Old*Rwd?+iFOl4#3Faj`b0)T3|<|X+EZGK^jF$FLX0|w@%4A%y=?F>=Z?NA-U@xd znLh24X?Bx6!BrB2eCs5tP^0ilpY_cl_Tze(FPfY!g&l+x)+G@m6{k5ESBV)3eU7ew zT=WpZi&$B$dZVNme(NeAs*i7DZ1CfYQ7Ja9Y!;#m=>425+5XL~h7H-=+$9!xFEu^~ zVxd-=7`^UYz`M_ZTl*&l8YTx~GlRLK58RI8F1rMCTesHqHQNbaN3@6J@sC5_Q)8K! zz#g{q1E&mS%HN#n{(2lfGO2__I3c$KXso3~x634%Pp?kDmJU^Gez40<& z1nJ+wI#iM)fm-;Acw=pufAMY#kl>;%&d)T z5w$$vN1$D1(d$`Ju6zT{-FF+@nl+TDK_>CL+9ALvqTnGiEjY45@> zFqyt})aK6qv87g3m6TlLJvVb6d=>(?yw?Y0hkI#C@V@Z% z(GlO#@e^YmFdYn#8iB+4<>%wZ$TP7V({6(T_LcFKi1UQ%((7KKnscd8!yw^K77@khpQweE*ebGur*xNkYS>93$<+=My>|J0A2Ovimy{xU4xT zUu64(M3_xsIxD|lkLwjuSC2&cbrzMrN6L77$3ZqM6s-3boH(@iX?2nEp<%0g55m*p z9_bm`53(`!ayl?#YRNF7qCFiF%>+Oq5FK#7Y!)2|$$F8JwsCXFPAWiRe4h1MDQCEt zbQb7esUUvN*Ua;9xr-EZzM14wjQjNadElrRm#K8DW}w=RImdj;ii+x*{lOZ`A9MTE zIzCkND|DCzfBbZ!`CW5ke<5S+!UX{(y7J`yDERW)Ax<3wTx3|bT9`f z`YFIpd0jI)Rb(2wGbm#C6Sqq#-Lr)qaX#lpl{lr`V7!jOTHZiw&XSYdEy*FP(TgOMxP#j0Hk?-U!)4DT(X= zg3%My4%YQR4UMJi#i$`|OL^#tUiMR_#+ZA3-G#JGx)T@v1?VrAfLW&*ds^IU3j{t$j6WsC3l=LG8v z4L;W%b0gvtGJ#21qFuu}uj_r>SV=wvZUoqSOmv#|=ufM(PjqMK zJI#`j)VPH03)4B}@g8BEIKs|6&-_#eeZL&&{~&zar<0Sa!;zV?=7^0TMUMw5`eG>+ zM4MM*B*YBd{u962bBb4rQN}D4VgoYh%i(u#F@KIIAgfrNYpvm!Ddx2I>}k`Rcw zEp@7y!haV{RB&Nz`Fh_kU$&4IGc9rg+hzyb$X)}uKc?`?ifs{`HL+$G@cq;+yMH5b zk0GH#=7q4i1;Pf|Az&mbiJ5qf@-2=E=JvFePLCVVU1|ol=M#HGS$(3=Y~Ox$ms!2J zW$LnT)HXKy>q(9}=%&uf;y}Os@`N4L*6M%$0)<*keZiYRN!4J!qEN_P0`Caxhi!D} zygVOtG3jywoFhMm#7j?d;cKF5<^(-SP~SMW9IQXd6kV|Q&urBoF(eiJ!xKar<+m_! zx{kb55k|rHL{(ug0T%|o0d*ZHLd7myr9#O)5sQZZO%^&)$5CxV)%3?vgGA2V` z1>*U=!>t{n;JKn$7*G}W$6R`d*z#_UA{8?yu1fhmzVAr>UT_BgVq-#;W_MI2_q%$8 zSLwA9KQN`__>o<^DT%f2XuWpOXU{DCSP|#Evr2kVgax-k-PpU-$@1PU(Szb({~!7} zI|g1E_b}arHQg4OI&pXNwq}}^%`6I?buV}N-U%Q#Sw?y#RZM(zZT>M6G7|f=?roy8 zkT^z^Sizv$t|tqJK=eSmo5Y`(Y#+N33YeAM$rLQGJE6FEn)T@e$CFuEviJw2>Tm7i z8=hJak30PV*f?b`gPYmso}Jx-5esyv6OV{Bv^LbpH#_;GIM(RpiRkONbx2v~k~J3$ zw{wK^ovdrcfAq@Ei!yCHng~gYE%>(LKc0blB;v!XM}Qj`XM`k&my)iE-Jr%KfS)@U z@#O_5KRkGxEh4O?JSVd8G=&nS=UQ8<78Lq?ezZgsnu7bCjDL)jpk?YFinV6ap%lA)neSkSrm`}l5T`K7xN3Vb2ghW(m;Z81Y7m|MK6FSxD&iF>f< zdELNgb8evDzN70^Rh=TTt6(qj?T_a=-0$BrG;V-LTrsFTaPn7VQHmdz5UP z_AMO`ow`^qjaBdp(Czs3Wa<#-3~>Zh1W;o1h5!GZkT2( zVRxD)#hlg#*aoHo+o8M}`+loJrv3YdM7PtAZOh)Lk}E|7nOgh=kxS5(U4m8)(^_|s z>ivNeShWq@D{8~IH9h1#RbdSE2F&J&Jat#GdS-yaBHL4pGqbMi@S)~?Zp}! z$hJ`C$Ht7aXU2FQ$mLJeQO2(VEk2yF2^3n;i;R_IfT#q3H;Bfkrr`D>zd>V)wQkb0 zlvj!s3@%jzn5~8b`ms?$0+>uX1yq&8;_da7Q%s2dCmS|u=jc$nzaq*!3nZ<&WT?uD zP8-!{iChaO1TxhdgNKdr>q7iI`$B!AK4lDkN}=yZMwS6FQtTkHAt z9mPPIP^f1o@>-`B;#%*is4R55|Ni2XM~5iHuh^|HsN`DmQOj~s#fRI;XEe-{$xbuv zpg?|cRc1n7`=DE%!Nwh~cP>qdYx-gbOZNxWe7iUI^_@!uOuAL(v9GJBd;8+(0_*_@sAYl?_XoNWB!uW^I&eAycuqksg`x>?5#)5U6%fhn6xW4Lc_DS zG0&sGxv_ojfCK|MT(zW*6p9{JiWz7!9?67JZ5*`1j2MC2olaB*4h$dtRS=UwYsRoh zMwNh58H%|s(7_T*BQ+_@fr?v~(oJ1~pQr$%Np959V={NBjEB*hAvVxEF{$1_OiPVK zUCkTUAExMaKn~9p8=Jm90{r-`@z=FU!yzn3iuuP6^OGV%*m8t9*j&E+=3ivGTS%_c#39Pb?L5= z?HB3=cR1zy(UQOc?iX>+AwBls9zPgGTS#<1+{4ba=fAL2`XxUI-uLK0PLjvOMQr;J;{??xXMN&f`2 zQ$T|Y%tEJKAo2N2sN^_*&ZzPJ*Z>b7kQc&PkUa-NU4~8 z)!(1Hkv;3>_b5sMvRw?%frfn)gE8`PNKNs3pN)xTb}=nZU}7`Xd>UA<5oiUEs^3U6hoOA+}JU{n)I#BuZ%_} zK$BiT(paE_2CK)+5gO6&1Z^x3C41MqqcE zgw`ROi3Nb6k9C|t{{!ym7oc|xL5)1U1Hu*5jm^hVZ330o5GdFp&xClDz(8^U2hn|m zRC>Wl7GPHO0@+9DIdlJ9+)T6za)ImG7_gc&G}BAgmKrPis7lQq6P!%_-|G++F+Q!a zL~=Je4K&_t;pKeJdYlf4LI4zo{3M)d1=$83&xEKV>r|^J&8P~J&9H5YVjO5cQ{WE; z)l5+jR{gvwMc2=>{G0s+a>Ec>Rp*9RxYvhQrQD2-*V=aSv&RlizJ2LwES@sF(%$8a-yRQpZ4|El+BMv4g&4CiYwEi;03;2-)>dnd!AQQQib_{cw%3|v*@|s^pID^YB zc9xZeW+u)9vSZMUCKT8ms`hwP{Y%BksKagBLh`=s=zbJQ)m11Xp&~R5EJE3$?;vD? zlKH?P%|68%NH7zTwio#D@S8?YSWO>_11r)>!Ss+~+fdY}L~FMrW&I6fw;n{{7Ts=* zzA=zVhw#CIQKjcNB}7-q8JY2dE@r^aLPmQAo)%AS$P|F)rXI3s#yRhMV4**3mIDkR zwlWpu1(YFnxT+)hssO{Nec;xm9fn7$SH&hCA0~ZHBtQ8Z_w}|V6&djOuI*v?d>6l3!Q&1 z+dPfiG-w`uiq;;urTIyJtcpos)IA3kQ#-9UEVDJidvv_YT-`1dnc{*DXKm8*9sF?2 z>+9&CMWybo?lrW^v^LSX4Oh#s`go1$(9JHc$zBALG9T5o+AB(I-kxaRm$17tB+ld$ zOA~8|bphq~yhytV4Nb$g;PStBy?wPFuYR40pEKo{NYenD?w>l@U-gJBx^q5hH~IL$ z=>g^fIOKo_6+OpU;uOtkTUo!7Zu%R;sbJ$|ekx;mS`x zmtEuhHj7gy-%ct3$fa8JZ24m5MHXvq6PE z84R4m$|7R2DfTzvk5;3I@!b%*V=QqGZ})K$RrEly1)9G`rk0Z8xq+LI`nL=k3 z;vseo%t(JS^>v^uDfE$CzZ?dbp5`tAUBv zWg47~*yBM5s{(h_BH<-7j{(yy{R~+A;Aq4Zy*VC8Hw8jgQXlU#*;Qd;#RcgwtL<@xw9 z73)sA=rZFPwcY|EBrPOrjJ1KAC?BAf*UI(|$IS?IZL6HC#=g=khlpe1* zF$f_i4vO~=Nm>Qw9+j>+W@~TxJvqbI-09j9u_+6)BXjLpOW3N?1CE*Px9X}ieu7=; zhnSil&+I%2ueF>^jx$VtRnb%Cb+}BD&ifla?!7+0t}V#IvN9-UDYx>C`Z>?Pe=c)e zWQ@j3BB9A^vV$;+hXVcHZ%eWq4sd+b{Q3quq+M^VxA z>#t%bMmqFW&o_*X6-Gumd-t23&NXMvoyC&Z+^C2c$zWgXrQiWe$1{tCkIsJiP$T=6 zG11-GokZM>5A~;_NXipRJVvIzA=rY-)Re{g%)2BOzts#vx3g$Ejh(18>Thh9(__N# z8D}VK0Y);gVQFQ4+E{yi;5$UOO%r#Zeh3@DeD64cu&)U{`ohsQlXJ_VvbLu0Tw-!l zV;f5w5SzPa^PzcgmdF&*HzOIHt;+^*dJ#AkwAvXKIR^UHhSP&kJY9_bXLoQe)L@79 z;`Ae1_aafaJFVKi4QYUltyA=-tTZ?5<)t{MTbB-N$y{`LpC2xbaOd{(Jt~WWDuk6M z&2-`({SEIwtC9U0fBtGGK|A8u)lxTpO3LLTg07QQ-48h+YhRB!F07NCsU@rv=XR;2 zmC~}y-K}DbkLR8^S{Gr_@k!fi-HP#`)I!#3{(^=;l7lGA8=>!QOZ<-clvY)MX&`XN z^?5wG_s%iF(-2oxV%_g zI&H5_TnbZ&SEY363_s6|5gN9(l!xziCtY?x3MZ%;R8;G>@EcZn_b};3kQ^i#xO0(o z#8Ik-)IUe-`}4*z(5GBjv(1mdM`hr3W$G~6O=w6>Fv+)59ly?LTR>~MOJGs@|)|6$S-(e8+SFYCCU zl$BPCcEuG3X$`ga@w}O-zN5RY0e<`L7j@J7npDd(JDs#r-Ig5q)W_YkuP3^d$)3Xt z-5CNDW%~?Asa0==qec#Zx`aMF3@y+cdC!9&(rgGPSlMfB>6d{VvkSA zPaiCBMFOOoL-t7dhqThe`OgP3Q(ueWE zE`Hx78)3~^LC{082{EG{R92q~(QA>1B=ac1`Xv>LGQT{fRz_?jrK8uJKnfk}VU^C( zXiP?&$^mZnv`$VJc6hH%$^A=Bd7S!R-p8dfK1zp7DiqTH0q|Q*NgODqohB|P;f2;| zWG{G+15}nA_lTWoON7f(WtTq4_ibx1lLz^JhP5N-Pz1m@zhP&^%oI zpiegany(z_89Zmw-zExid+D@WvQR@BeQW*C!`V^~?OPttCye_mO(WWcGhUr9H`h4$ z4DHJzy;3`M&vwSG%{AAUq&@V!*Y~=&esS{xtaccQhgIODH|)RjBs4Kf-#D%Fb+=*RN#X>ftNw#0vtK;x2BWHLS-< zJKKCf$k;?1T$pi;O?387pP6gCD1p~phqM#SJOEThy<`fsloq=L>6GQxC@+$Sqp>Lgv9YgnT64sM0J0fYN8QsgP>qS#1vk8E~a+x(6fQ%g{&f)<(cV?R} zBiFoj9c5r?_!@Xm-&1{|=vlBiC5(i24CRk+1`VoEB!ek4MN00!hVp$8pYq5iPG&VH zG|GfWRVIg&qBc$gs8xk80J@ZhpBjoPAyftv89u!iur5-x>?F*e6^Q5~0{5ZT)gGdV_+_sKeO@mqu`q3p1Hn>1bA3Hi(YLNeNC~drx}Ciq0_;(Sg~ac zQ5AMyFWTVA3WQ&OaouQcy zoE5ZK^vb4tZaF%c8ZKC+c++YQC60rxjxQ3$LO_L;_hHCvJ{F@(>JrM~Y!S6R%E583 zcRocM&buO1A#kZ1u-jBV)kcd2Ydc_#>A~1bIGu>Jav2jYY|BH}6X$-Du8;+RqpJ_1 z3spV`=xpjKv=;KLGtdZ_D_9!j1Ly`b!SliQ8R+rR%iJ}fC)j0aIKHL@WT*Yf`Lax=?z9aLpUvD$^bmX)7-(?2Km5Kn{s1<(B z)0-Q_PG0BItqi@b&X45k^xRQ1bjsE7ebj%wXus3$JhVw^im1%~&PV@3Re8QU)0dws zH;JD9Rup&wXCT!mHam8G&}$J9SzO=--Am00b~V}C*;B@C9cN=g4y%$ryO(;qm7{yF z9$ArW`scPCoxWFk&Kf^Gxa!mLgGV+Ga|QMMx$<&Z0z!w&grDlAhF}7veipyX3WGR+ zxXd^4MUHf9*F>UG=N^)YaFX{L->&hEtR}Be>_IBN9UD;Sl3f83RyeHMo;H!8w`XZQl>h8-v@g)AbMChkE`KG!2tii0k2u+)R+0&C02jYF{P zARDv{vbZb=&$bJ$I7JEi!8(#KfN34Ml7 zK{q(GajtVT`U!F{@)s6;9o>N9McI6_m(vyMlx~OT(GzG@MHjwqF|W3C8Z@T8n26vQ zoL2}F><1c@i`@IUdE**`%-Jtk&r62>Bkr#(+#NgVs87f%E1ehpG)b}Yt`ZuzuX5W| z*Y~$;FID3*4UZeY%sMeo_B{853o*KTTz759j|qEIyvtXjLjc#T(O|&vvP&}s={c5l<$s&gL3V^j13F(s~m(snuDkl z(W8Wk;fyoQMyL$3U62s9woByCT;5rbq@zaJ4xgrhW1x zeQ|rKkBPHa9+5Q$sNrUKNtL`XniCp;_RukB!C$+@46ZWc>S$nH+yOJSa8SA0M?R)l zRXgyezC3*NNX^sXlTC_#PF>B{*1@0qqEVqg;|$RSx_K)QAa zGLh{CNA_+_f0G&Xe3bhWEdJk@-H}3~zTvxz174ef76PI@s?}dEQ8UQC%qhTyl zuLPR=E^+D3j5G6ZYfbumn8B9h8oJ&o@$jU(e;X)~9$yp`u+YB#4(su8qgP6`w4H4(j_VT%)yWa)O9Aonp`T zl=`ER_(8yO|JeuBjnAM)Oxn;YWHY$1lgdWVP6^T16#IKQ!mSXYgQ_ZvLc;Hotza7M zb!Tpvl|Y#^;{{ulCCd(#=(fcF#a8t9#W_F2G(_rn;;6SD`I)|g9p*BnTam5(!d3Ug z1keFE4<*y))WdO@L8<`|C8oKD33AH)kdt(&*Fr>z(?c94k*@ifz1&qv`ya}sjYt3 z5n8I~7+($ZuPP287}5G%xU6HZ&ODcup}($|DKnuyd=K(*h64?PREj~LWpUUyd9bom z?0|a06Nf3tD5?he#KSy2S#6uzyJA5-UvFJVXAp4%UDBRxA`lAjVAO4BmR@%^mLhPc z2G4QIS9PNRr8!rSX65@!k%K}|9Ze65`h7v?ZCRYZp0Y=uVxJ5RelInEbfm0CLXXuT zw-u@ZHPm78pE}Qy#g2Zxt0!f~#jAySaa9J9Y zWuAY?hYS>J^@Q^pkqJjHqCvBmJ`yRU&W=oAG`9I@?gh1uXVQHDQ0v1B&=o#@R`t$t zo8%_h57O*(p}IkK@0U8lDd}#j6yxKvHPC{ziy8w-M^{&K3@wi$p)Br8Pv;bXFz9WgdfM z?FqSNhd?>*HG1MBhi6bG)9%HF!a6n6>V`?K56TX+kG}Wey|E|(I*;vfo3}5=6ze%v z)nL@~?2{clR81Y~%WrX0KOTqXj+*Nf`_gP8H%*in=aiqy%GGl6NOmHJFLZte)I2HE*6K=v;R+UTe!?87(xC4bzI8wu$jWW~e$K9HSrl&L$(L6Um zQ;ccvPGzhiJK{&k_+L6~1IV5o1Ktq9KiJ?8;gs!t)eRXVRG})uoB$%Ybu!0~WABd$ z-WKB_^mX!<^59vJVjHS|=o}M-p9IN-XP{|52<6YB9>`9?s99D8$(Bb{1q&#_rDuVJ zrAo01F1o(^>YSB}&h(P_NXsve@+t*SP#>Qub9*q-UH`f-w{^EEX$szVm&b=lKa084b4;)7K{*%i<^dX#OuMJ*=4~bw@n! zn16jkzTs8t`lVv_(dYX{Zd#I;rI8~#=3Up;M|hL`o}_;C)gri3tVEzy-N!9P<>HJ) z8rp4T>tNr!`{W$1@ph=Q`Xq}S%PYeS)(HFKk`wk1etVHqYvte55QP_w$qx5_lU3)K z%k~MMHGj7CCd@ZQ&amBO%q~g_cATkA)5k-Ut&@mB!Qf?cKA@=S8$Nh-;MP zXdCd}ETn#pxjQsptIoAG_>`lXX_IVAeAf3ZydlqWhpT9KUfl`MtA3{qCpjywv-Jgt zWmj8qQLfxkG^YnnVkDl?`M6Qia>QUpgt}_umY2|0N3le92%qt}oGZbq&j&3(Kb)28 zkLRp-K7gIz0Az?jTYea65z#RePq?T{0C|$$zu9ga<*Ps!lP3oYOz!qQox* zc>%$dqFwMP=uc~^UWwPEp;p#rou$z=iUQulFaZb=KeU^`3OC-+Aq5C6R$jXB7h~*!6P= zF4`{5ZkN-(R!+mU)Tt_EtH<`F1dkW#s1eURS9Z%ME$?!lgY3=vZoCfdfJQ5gOSNV{ zR453V4>Y0WLL+q`^Iszm7h*Hn%V4LQ{Wu$O%uld@l$Csk(|!cgiCM zPl?pVZTFy?G_&p$?vRP&G1zHLgS5d^f);`P`76eg1c@mOd{xB)ZWKyHYNxG?0EI*& z9f0}doOR#aZFz&X&)>1YQD-DcC}?+x=5yJG{X!r+|EWA`#h`<8$P-T>Nl|9}W!)0X zGWuzNe#7f1u6;{JwPK!NFSq|y6~0K60A>j0IKr$!{J4y@_4MVDcJYM;GLv_qHf#Ch7P~3?l zp+Ps#vO!3olfcxza+1-YI{W=J7?X{drZ-F}b;EWm+ems6%lRGVM;^TZ>D0ITK-Rr= zj_1%X*<(^L@$Boce4*R0Meozzh`4)ICqqhoT6|(73mexJ>I`1peAMH*?z)<4Po}|~ z{-xCF9u{#1r1|EZ74LIX3;5&y)KK9uqRuL2=j2djuy>h}%hr!s_bNTSQqSGs&qnk- zc=W_)!vkfStpqFEdp{)vWI5i(tC^G@y8W>PH;G8cAmN%^5GctA=Hc(hAHqZSE ztYEI+<9ZS{_>7PJf4f;2Rza*;zU&Cuk4tE>omJ?jLAtVWhD5)HIv~)(qvgT*Vhqnb zCOeS^QWL`M-D;15rG8=jnzAbvadUCIju;<|tiu>eI$fVWmB+zx+k(o4YwIeT*I z`0fQa>QCh7Iw2kV+t6>B z1`S0yrjL*~Y=e=x*P}Z8&Zj+X1D{K2kt@H?e%?awl+%Dh58a11rWhc3GQzP4Qj=v7 zEE6e!0|=AW$ay@$!w&cH_ke8mhdH1}Eb`-Vw9?=O9`Pz^HCr=aN@)OfwbIa_=r^Qi zsa5T--XD4|a4NyCDfsyDu6E8aQS_VOaeFCLA`LAPa=^+)UqrRWTo$O-G>6`cH2wv_ zW7)cLTNs-fBaeq-xdKDB9@*;%!UBKBTR~SDVuBjt#}8f#eVEI_qXkGMB}S;Rw1c;p zT=A}{g|Lb? z%S;s|EA(o%Zr|GyGJT|Lx7?!Yz#kO>7~i)~&U#oG9n9SX+z(oXA?I$q`Kvth^;aA} zU){6+)zLP;dzGgmPgq$vwh)VBxkDKmryl#`aQ}qv_hva~mZ!a{pZ2^;(8wi1V8=@mkhURTK74>MFXn32=0Q*A`r-`{K{Dor>DugrNMSai-NoQ)Yq zx9Bof*`N%lpgCAaPqiR~xkcG6j2q2mrl7FXX-|-h_1a~MAIVkMXFg?Ae*u22S|uRFempOJdw?!_*6#}4>pOS z+;|56u)fAfR>;&S;j|6ZUR_ch;S%llQb!?5k|W!R*h+)oPbDzzC>(l;skjw~QNv^} zhRiV3l}6-c<8yS%F8D>u$jglOprp1U+KPAvn%cD|Qp`eioTL8o4n=2S<@)@9TBq%1 zducW9Z}4xfpLqm)7R-Xqh5)VF%*q_*W#-j)n`X~FZ9cQP!JKKk%u|AQ)Y zF@iIk#3kui(=G>ZQQV_04Z|2VJ3XYUBed~PO~BX&+U{OK@UHG}SZ(@R5K4@SX?9Z0 zX>f=`BHN7h;Z?mB^;z@F?jSh_2H0Iv4HEI`)0Y*>K1^MD6U+!y+_EN(EE_Lm$sCbT zce}1k<+5;^PP5trK!{OZwTSz0c>1}Zb;doBv>`kotS`P6bHsLNaf9w%zHeXjTej1D z%{ArbFv1g7J0q85Oo;Bf#705%SLVc&9_0w>(S-^)Nm>HOT$TG0!gW%l!HPoKNzidN zO$Wo&1UF<$vXG|Lm3&diYl51t%84=;BpHlyFj~!_qCjE>byJbEL1U2w;p||&ETEBxRRjiTZqw|%ZR>M7P>laSHYCqPG-SD|BKy=pNzdanf2-Ge2i>~ zM)PMMmbb)mwTLK^w&PClIQSVlRb=Mj4q`w7KTVDp*y;JU%(7;e+loLGw%eZ*gL!`; z*%`24Ig%pT_J1NVYj9`+kDg`s8>XJns^37&5TJH={Ar0x5GO5%FF%KvDJNny!_;lF zZ6@m#Yqt(rpIdknZ;!QqLsbDQfG6i9ZNzJQ?MvBj6dQ0?RyqkWD-cUAkQiv!v)0Sc zBfBah87r(moS9Z~_k+lu@L&SGG6SlZFLfrCb-tNtGkEthw>Mq$cqiOpkZ3xaEVG;< z)J?oXUBRrS1PbZtO&m?-y09^udSK#R-xKxlL?5UQ%1rv39mP37ianE9l<_U-kJs|h z*n|}mInmen?oVOe3d7?OGs&BOk%%}?5?bd*ouwxf#aKe97Au@ zN{infJ-s1=c+C}^sgtd?=_hqaBLlf+tqrz%&!2AVe&s$`9pL>~$0yt?w!-nQ*@kbQ z?v~nIy`$<;;WQ_#a=q@e@9A@|6voy~1MR;&IJw2QsKLckdV?N`_{mNJFbW7=pG#)| zfx1LPM7u(&BchrLt}NVr<+- zjjRsB9+xZmv<1%Sj7fgGhiS{=VWC5Ue zCDP>D9O*l7r1O+*rf4B46%@@L>NYA*pc@CEEq+{qDkqvWG9(129eX4=CY_+o)|<%# z^hSm%A(WGX!O+eKbf*eAx;DunjzGD@Y*QEprtHserJ4oiq4)+RNbF!UQKn8g1Mz3) zAzLn|j{l05fmus+0CTJ&J|;^OX&{VOG8$wvm{oWa%Bi6SjU--~eGk>1;;Ohx#RElu zgIK?&9)Sq;YBW z-i1r+&)vxW>k2D4yVA3#HoH8d)(h=XXoyZ>I@%N(>@CVFFWBp>xN@yla@tERb8&3* zbF%A^_M;cmw#nDSI^lh((EHW%Tjs-)V>NF2DBl$Xd?pc(Izy>ctEoZ!)*hU>SYdVi z>Ej%J52D>tTM_gc#<&hxI53YObZEf^9?HO@r^|3)q6cH!4KSHFBCzHsW@KBt5sb)8 zZm>4Ptq~?>QuYbWb0+5%F^$Mb1p{*n4)oIQkyTC~VH zPl=|sVII?Sa|;2et(3} zZiCDS<&s{u5qazIzfIYsOcEN0xgGAC{>I_(R9OYQj7QLlk3qIg%+3H!({gGTbqO4E z3Bcd{#BrPrKzwZ|UkiUOfz^e}jV*{^jI(Io|h;4)B$|?5*S!M|K19461vT z$jGJmFr9^hHROzT-C*>i#@;jiQfb^ksFP0`@I^<%#!J&8ysitgJDxOO(Z7#2Ja}*F zi1bleSlx!E8FSQu(tu-ek3Og2TGK7>JyVoRSJze;2!?N3Ze<%+*yx{x{pBA{%y`v^ zkKQ}iS4Q$eWu*uCHXQd^T@W5(l=yy4m*ri~0rT%a#Xto=RQ_$FuBQzTBcST^Uf?Gx z(F)Di8LG7xe+t=9~8S<=gIN ztNeE#2uoTF_%_%)&S!A;>wUSDgPZwg^dv7_IH|c74e6P>3JBfeAm$?SggZq4)tRo->&bw1y?{epO4arHvItkiv&ue z7B%qWe#UPGzL{ra(B|fBxp8nD*`CmXGIYUyhu7xs5i}Nb|S$bfS7E z@AVTdq$^eA$B`mXi~XXwOYsxVt(a!0g4Q=f+6tMrYdA{p{T@ir1fpHtm$K!`Hs$g` z+UdEBfXKQ4AOT=wVGMT$TyLJ8AlJf%up06FhEaDOS2v{R7~+mWbqg!+WPcjFXnE=i z`Ap%P_{Qd|+mE{JurwGOgQGrs>eXvERD7uIZQFKC zn-2|r?ScMutLFQulDfwToiGdf?*OQm10ZI>D|>;!x2G7@9+S$@#AB)N1G=&rN=6AI zcTr2^Co|gpsGI9y^eg&RAY&plEQSw4WG6xVSLUGQ{hC*OXpVfbK6S* zV7GHorc@I`q&7}ngP4MX1(|US9r6nyV>U*%ksKH_SZ~NNAWg;wAEP)c9^W`NIaEe~ zQJHc#e119CA^?A@3!ic)$9|PxD>xT~3U#_c0UUT2{Qkg=9JB@K2LG8U)bN5*AEh*# zLr#;BGe1t|B36FF&Y~oY#XMRltz-V;UwrP)wvUj{ zAEzxGE)F!J_xZnd@~<&AD>A|Des%KhNPK~di~Ap~>nIN=ia^aIKeH0!|C$qz&eL%lY9)$$|4t`8O1Y5G_jN(aKu*HJ9n$wmhRh4h#7SbB9ywo1 zQQV}Ri7_OvG+O4!R)>$1V?{-h$oujOh>kGm)S=pXh9)w~qpfVF#h<@}?3{k^7g;$c zJov1JyIdQ2xnpr!CacKHK>lf-B>^5*G3PKUmX;YU?1e2zEi_*t^do|+YWNz~bL@H+hL)?*W)9xw{||=)+;{( zziVpy8UtqgVI7yfA}m9{Y-L)BRmEiG+i!`HOKfA-51GU^8`sBOzNtkMI=Z1B6Tu->KI2Irv`Dv z-o=7+urOk?F>B=;K=KX*t=)hv$i z^rX@RdiSAVu#)-Op-a&3-G4_-xNEQ8S4Whe2F}FLejv|031W@6N^JzhDW#_H%eqQtOT?J#tS{GV`u#MPm;8C~q zFX_CA-5<;q20)}Kt#4G+M{P!CLLm!zbZ=Zq%==O4#>PH+TC)Re$kTm(7E<pmVe93+81G!xf&T$-;l{*EIlTY~%yVt|4y(Ojp zOdq%pvT2Gv%1dpCW|cYQTeZCv&gk?u+~L7p-R-{I4M*-*_Ox^d^tF1u>dnQxP;*|v zMQ~SQ3K@0L{v&(CecKPzRG+MNtpdNiyZ~!h{rfDk>u1V^QXlL<3E>=FO1K!cj>RXX z5}?DZTmqQ2o))CgR^wMAvT;G1Aa!gTk_F8j8ffsx`6XP0%|)to>PC62!339{zKBkJ zC^x@N`6cH-|F;hTk=P~2XNu=jpRZ?Ns2h}hYz<@rBD5|h@G&EOLP3iIYCMBW0~klX z9q>XS+X#}6?ag6SS0&J#X#8n@{7kb~5DE0=b83gdM6n{nO4%{#C z^wn~Ehz@AzC^ENok@F4X6z9s?W2e{YT~5>|qCHZgT^Sb0m4-v@u~D5B$Ne;Y+dCUK z`AKioSgyOjSuf3X=T+n;&cnD?E$M3guAYKJNsVQ@k1g{k-TS3Ab$id>6)D$uzDX(5 z-t(?}^>uTx*(nnw1vdOm@hF;V1PqR=>vI?*z9TWiTgDS4qy#8X z=I&Bog9TY0ifvODWNRY%ZL|i}SMR(;6WkdoG<20>Dwa8{9TI*UTc=pO`&68f@w9s1 z5Xq-i82Ki)xbj#}Wmef1gJ&iN>*4o*i$YVYO%ITDiu!pc%9h4ekCl4Y?rV?Gz4uR@ z%l?Dg`;Uj6RpD}lj}HRuH~kcQ)#!i*m}zA9(4tnGbmSY5#5J=8#Bof z^V2ihl8CF6ZDl(f_LP}F!mDr)n}>4TQzTzT8gV)ECx85g(mebTb>I==CAyx&Y!MrV zaYCKy`i-NA+(Q00Q{QG#W)MbR08PMXEF=(x=2A@WfWu8)?ciUb<5*PzIU@+k5TP^aV+<8PpowkZbTUjmL@a3EExh8`pcQ z|MBYkyX)Ha?)UIH-%l9%eX8X^c50o$Q~8_HZ3nEOIU@_sng<_m9A2rdeoJSYg_DVk zB2atH!`#WFV~v%k_1Wr}wCq|_vs;2A9lK}m-y3~-=;Ud7W!F`nC}IGNzdgY9Wtv+~+_=Kz!sW9T(E~M#UWv_tht&am^K~tx97>vkiS%)`D63)8%Vy z2XQj6^D(0wXXFaSZ=60FBMO?6sGA{4JcF_l_-mVBo!l0x+%yC<fED}J>#>!kK1y4FtM3}3#7*)$Tin%Oma*P0zt}3@ViC>zJKS7S7 z*1V^_8{5^d+#IP*If;H=BthNVFWwQz4YqsQ@SKB0B?EJGqB2*S=vx;dc&PKqconj5 z9Fr?NBN>y%7xAM9A>@YeFcgB&)0w4 zr~KIWN__4Zerwvro>Fpm$K&D9m+4(q{T)xYxOlZ5<+gpb+k3oe3Ba;1#65bCV=Vbg zREqaydicLxvF3Gug~yR>{->U|AxCxoc<EF1W9;BLp7gyH7`<}rL8MzD*GnaBP z_CDFxW55(%(fX?RgQQd0q$<%W2X6r*fZ(?IXl9#Vl{1rs%ryos~vs7*Z3U&BVxer=}F(Bk*x$2 zw@~^pLwXtBQzFxvBI)7HX)OoX9dL>C0CH1A7zdUX&f4GBzD>Zht_vMXaR10nbpC#t&FQ~EQhIzOtnCJ4zCCk_T%BFEwUm5dXCAKQj8?hP zCbf2swhzB*Pt#B_uC(D{3%X$(YGqnc_ASOD^|b1IYd~A^Qi*2rdhuVc>)CS34E+ppt950 z43MH#TLY-fNHIohN>IOoBQZ*b4gC=(IPsh$>7qDlnUrEcpJm>OB&?hJw?E@b&A8&O zw(r0xx*KdXBYDgZ6gsy58O`kdXF5=D0U;6);{c4ooSFuKC!?P0w36il* zqr>eD7Cw8A&}9ua*|)s%Tmy%ILfLWIf%QyJs%#l?=k81>Yec} zHOhX(D-!0m5$caKAaBM< z`X9utZDdCgmt+`34(@xUG#P4kg1AJuuv&ytc~1^>>QmlBqD0BIAmg;@jy$0mjJ3`n zUE`r`bHnArqE;hxJNP9yfmSO`QI1~^uEG&Ui9@qNXNsOjLwy8ZGiA@+E|H_$$xUL& zA0b|8V5Liv#tR-7@doia{YveQ8fvSjYpQ8F(_{U_+o>)!^8q@+cHrp++&=rKZ%Pk! zzEt%yJX&woUVA)FJYRY05y`*hR1DfCmz7oP>8h@?`ug;NTh}P`?8nECrPHm&Hrqf& zA9niNroFD#PeyFEcYB);RAja)w@`ft0@bzIkF=BIpn93?ygwwHX^CyTtS*l*91a%2=9=R~jPP^h?yA|d6hj%;NiUlekiJ#N%sWQAsISHKZn%%M{)v3fEPZQy zh+gNt@{}&KHxj;fX8Xx=$So??(BSFf-jNoONlIudLw^Q*G?HE z%(6m5mupij`z+#0)!SH6JrvM701qbU$C&Yj3%OK7>$V+)`i7kEYz<|HooOoDn9OYN8y;5V^G4{BjYIjCX`wdnXa}zQ z9gcV^3KJbY-e1R(@ZEzvtFwI|n{8gz?gYWfCnM{34O3m5HD?^RzdEzwX&g-6V7!~5 zW8iw#K=1d_Jlm9ii+k^#Ol>{+s4g|Qs^l#*g?mQ-U4U7^asKYSh~5I+9&@dfO2oD{ zNFLk3fm#qH*okTgD>EdZY+a#OrlwqKDp`X|P|c0vgk7Kw>k{>X zzgr#yG1IBm%5LS>6lrcoJ7Z*#btQf@5@jquK7iYDas0KVDG70ryWD42j0^qF?SN z#0bU;yWw_v!fCBW141sXDXxS35bHbGyW{~WxqMJ=E99UMd+rE2wb|ruc(6Xyl=dyz zma8;`KBqB9rUJI6+zFGOn_Bds-wQAFbPQ#N7f0na>t5L7`)6BBWYn4?T!VwzSv0auF>^-?jt9Af-bhgMI^T#kee)p6$!p2M<`-3` zw1Gv*AR*mKC#y|#;^XWGR5uS8ocnwJu)|oh{W1dHi`NYeVv(Bg)@_ zqdr44k#&}>1+>dS6OtbA(`B@9kZqiFxwDY2HA&S1MI1wJ3E#g7B6c{B*_GvyV;g($ zXt3xH!R6Aw+0gxbcsh!}EiyKRn{se27li}~2QxbP7a1iq&7%a~6)5(JmcXy3jnSC; zBDrmo+$swJT8|YQ4d&!lm5PU|ZF7hVU9y$|{mmIMm7e5Fbnz=`t)Ro2Mh818H2FJ4 z69sfv1i1-jk^r%07M^4e9{J>I>E4$c*_XHP!5a;~H(xf?4pr(sI6z+9^?D1P8?ye? z)R}@x(B&%UCfOlg`MKv_%l*m1Q`3$MvDNcuopnSN`VDUjHuywuuX${}CCuaMy3%c5 zlKjkQU7=UmI@HnNT@boWBa%P-gF_)>4emVHD3K5tEh3~y;sNK`X^G4ne=R{w2T?XTgTTis$5N(Ah2t=<_2%3E4ZmgwpZ~MJyESiO?~U zc@aZ0LmV*`?V#s2>n(ovMZ|t6zsJA6jOGE@6a_oFW_Q<-AEVJ6!gKoPhwPO(vLvr8lijSzu z_xf0+Y)WhGXX!bky_OW7d@^||?Bo1nasV8Z6z1h(=9SSe`e4%G5%=gK)#)-2pE$Q9$6 zs^s5NA*$r_Z>wBOR#{$l=?ohrA4qbbp@42+_+CF#rjOi#zV26)h#LBFQRiXR7S8+P zMxYvXZs{h^xq_ICW=v>h1lzVL!wXWpUAJEd0{0?Y@%D}Eg18UFR$uh9)Z`PfDVNk* zUj1^3c;b-iG6#>f4k%aoEacom8^QX(AZ|AaelgxO%deH&Dk`j#ZKCB{?kl@VTJjSn zC0xv!8ocp)vNP{OfMAv>RNvR^Al5py5HOKB`}tEp&QzoGojn(CUbejO0RBrGv-zBk zndd@*b#;4#e$tccW=R20xO~k@uUxZZA8`214QH)GKAq9abzgJPYlB@0lZ3I`Td_fR z3mSDAw|2*o!mZvG5aKT`(;BRl?37g7X5TqbX3{YglS;tU;+Q8|4*bqZyrE-4n8uklBY{iT$61q7uCgd)eBf_LLtBo7Rs7?X>loho%QaGnh z!S~~Ws*e3L%`n0{jD-DA(UQkjfk@|E%VHz^3>Uwl8>fAD>bYNrwW0kF73`702JDN- z@^zI5k4Sy}D%8Al&x-Y5JZ*FF<(Xnn&z8oF?d5CE9MDSJ+p5mUnEq7oWU^~d-edgW zUFOybgMw|A!2ty)E!G~}=F%^%x^?fA#^o%zG=X9F}-97BVMWBcjJB+cCG3t zbSvzo@1{HnGN=pc>=66Ovqo$c1*}V?#h2_2zH@Csj-s{s5Jz;d8Y()_D<{HUhaq&X z4Jw^#Ftqim;5T63HpHSLZ1HQl=d(V6=(#lp!L_2j-$peKgvTq^Zj)GUy=arS%X_RP z?SIVl;SvBWTaLn7>jpr*0q;yFwwnG+&83_H`xZ-D4XRy_sX$OwX+(5&NHN7YUXG~>aT(5Df(d1qQv zFBjkAG#hPZ^lCd5T>-Ukfp?*$6zrxV7rX$Bl z(0xJ!URVBWA4hoZXMm$p$9c5bw0e{V!UFr0BalFvAm7N20UJsTs7G^tm0_fQBZS6! z4p!2gSU~RjKbel0Wb?nu^!q+d0=C{+O!5QL&$x3%WqnRk$7uBf>rz`jL!CtI6+SKf zl;iOz*=zhEv+`xZHM`M(#_|W#Xvy+J(R0zC*W|y3Huzlf{+_t)ZCrNbu&? zQ;*0s1E)29s6_I&=dG@v=}^r(>a8pfEHi$y*xKbgG(QJUJ~_=B!1TaDEJzLB0ncfX z&tulb3Rc$5rey85RH+uN-z>N1A(sQKTS9gh<6OAf+-Gwnq2TcyYME1>U;jV* zUjOxF!9X|D=Np(p-fM=J0cT~1(GQirqQxd)JHJ!>e-HKl>(zMz34A|r9DM_q7fFy? zvQf0JndPzs9&yq3yPwi@J!jDfTw1JhlV7($dF?9?B|n{;@I%FeG(A?NOb=sClqfen z_z9%1Ru0mTAPU&iCbXR8j-E15JoNY}YCs$HIpXj`rE@b~BG4jC3OOLh#rPvfDaA1b$;FtCR6tT~8y zBuPQcW$VoN!Vi_b*@Py_Z$DJZX$3UVc{lLG3c$4y{&S1}bBq7;6oWNBddhi>4dDy#6ZpZvIU~ zHGcO5HE+KC6)i#-jGm$AhKqbL#pjCZ<8+<&4>aw#<>T)#l4QC#cj?;V2C}{wouRbE z-V-$nEigGyfXDFLkgHM1)RG;w> z6sR6Y@qXwZDkdupdoz?Jq4Oz#;{DONFO8~-n6{TWKtmuAS^BVty%b5|1zRDPK?8jR z04?)nPI9gO&!0ab?n2gZM2B>#A~)JvKu_$f`4mY@Bdx2)7z)UYUy-o5oE^?b5T!(f zT{45mJnNCK=4eqhm586oZ8EBbsyif)6|vTmNx$__++eG~UJ#hA8r)YeON#PqxBHYK z3{riyxQ8iHpX@#!;b%umrR=&*rV%4EPS^Lvy$IXrZP@X)K+@X@gajm3kcIu+gfd*2 z5lFJ44hp`w!~q{5?Y#_eSq0;1$yULUaICP90n=VB;8*oi97RO6awO*!P;$Vgsl*I^ zW?T?W*hR zt7xqaKath3m0%417ffu!@BN9a-cGBc>`xKq6-m!rhGYO)&ARkr%cqvZ zTX;k0g@Drg%%t<5jyV~<)eNv8=0&`}b!H2gB%kDWUp3S=YhY$o7Ckp39Bub>KahSh zyJp(8BFyBo%P;@_bIsX;nZ*;GLwCUbiDXKU>%7@e<)!mS$ZO6RIa%QMymU4_+Pu#5 z-rXXrC==F4x_M0hXZ)@y@|_`cN^|U%)-V4!S{MW5xhR9j0zM0tWV`Ilv}Rye z1tkpIm2{X@Yk{%UrFX8=V$MmXBFX1MKPI83(Z5!NbKOc}31df;Wm zvOb>f5PoAlP|pU2)lDx-OD^80{xnjpWn&_nlwbtRSxUC`@0W)PSK%>auIB({*WC!T z(j3yMdH$~yq(kiZ_#t=5U@mpX1Wd@m-F7qHY#1U`pN zq;=z{6%h;UT~HK<%RmQ5P<6UlpPPLkY0v!YD2kfMEvH)T^bpQ4$~3Fl#e|bKZ~MGw z6HPOcZj{|vOO3Wa*Hfl5KJ8rCaCXJn-iO9k(d#2T-@^KZyV*fmx!%tppU3fkeD|(& zU4I^`@WbDkuj-Fovjc~EmRo=em0sUrX8qL;M>tq>M^6@T^zX`ZA6K2Ke7*OXU!^nl z9d>noq0vAFYEXKlwy?j_>+4+%kWS@-oPA;%21V5tfRs`2$Z6;#%bX~O0N>pi2ySSZ z#sp}Vp@Lr#0T6Pm^r)g&cDC)P)M7dhn?*3V59e~wlzr9VWq4>$hLE1(=^RT)!+BN? ze~8eI0FQ%f^9m5lm@#WBJ26UehFGrzc^pkb=p2ZlyTDxkT#(wVFE%2L&$VsGFBc%y z#KC%Z+n^YoNZRUVzl#;YKRMxS?}7#!G>x zw3U@jTFPEaaYabN?ba8Y&4GCX=#nWqV(b#~nHW@ff`Rd6fPKM;c4&J-(!8x1cY{8J zE!t0w#MgyC4|>#w_2~)LNY7v(n`-eyViWEfUw7?r#!1x z=V(J>eQ~d58y6!diE=TX9nj>N{A(b%BC8OaC9nAkz5!RW_yY7UC-v;C%K1nB(!^%zP`&3MNA)JINLYm+;lE z@cO4REAgn{oGl?0)ryIZd#}jb{te0>trH&CUqmZg!iZXm--$;lpyy4{%6iR zkC2AnH`u%hG8gS>5+wtJ(00f#Z_b9afpW4)$ZG4Tj>(n?C0pG5qbW}D<%%ItV}Klf z&?(&`$0MqMucyjo1QCqh#?V}4uq(pwt%%&N`tQq zm)`(Af2(I%M{*#$PUkI5Bzm3C96CIR=z7t*z=o_u22Ixj2ug!m7( z5z#n@!((75`J@B7kw_{g=+Vx0Wj*g|A&i)|7;u0b;4<4922-#J$X@z4Y%94qPTBx4 z2W6&6;Kh?r7ni!F5kU#R3hn9o%}2;d(i?rzaoB9Fu(B=ShTc@_P8r)mw>}AYR*tok z(m2Mbp>zPrlDQ#bA^H{S5?-qxuT4R-5fZe(w`&t*C^vLPR)7^&i@gGn6Cq0k*tQhWiDWT@Whl7=5>N$OGQhFWK?U z?FGmdJ=%Wp1l5g4s3Xh@0r#*>3s`D7!?N+BEZ{OAH1=A^SHO-u!fJ|IE#)`Jossc5 zIwsDLxC$9M+8s@C6TXOA_vOpyxkD)j`)BX=MMpmjt@A%!<`=DZwB(~twfD=zmTL>Q z#%&09IyKeb)*QUM!1$P}_vs8?hidvOH*K}v3IEAY){mbCSQYqGqS3RJEqmQ;XDCmyiWg=XXD^T};#(G_O>I~yK7&1|nYMkRs8VRbTW-=24ulg2hgtVaN( zBnial5i~-d(|PF40_ng&gCOO3Oj}nv-c&2{LQK+lSB5VKgR?goD7PZ_NDq~VuJY-|gI2|E=u?o%_`5^2Np zl1LD&1On8Q6S5Fb*}<|VNGzPlDrsYhh)WPF9!d;eHBgR+M`x($?)ft?>rxak)17q% z7ceBXRppgwHUhBZ$tDOKcC7u0S@HuRPrPa)Na0hl(PmXlSG_Lj=kVU#%I-M0|4xuF zM7^`-+|#q2@xt_+>U|bWjq5!;+(Cj`CSUZ`lR5j?AMjicTW$)t`{r&YI&peWp%MQGF@9;TVbYX_+smC!7UR3bJ2j4~%D^R^ek) z5{8r;5vGg?l*~3&+)AQMPuZDUxM-O%&KS0mUhbWLsq1bvYx^iNpUiSDOUk(^S()7^ z?Vd(+3NfqXp|aDHq$ke2I;c;Y4bt~D~)m@-&fBn&cJ;Gyl3Ynw;jjolRHp`4&kjMxV+ z-wp<>{i|Y9+NH~2js&(%kf3*@I>sn&J0PuIMz$;Nj1!hcaMs{7l7XtC`W5Fa6v}l^ zY@Ki&!W)y1PRLX{!6~7kboZAzj{%CwJ%_T(58ekIA07+;8rWqK_1bJ5Ko@QA^r8*# z3l8+Cb$RN7t4k-RY^~USFgtI%*W#z}6rNXfeyzt<<0c!|29pl2Cbe9E=B!Bcyk0;l ze(4%FJLU56yVR*z^gZabU8U&UaIpF6@-Blv7H9GfC7E=L4-GdrfE|m`fR$EBed2=48|r$uzV_jnE^71qsM4j zBg|~}mJek6Hsbk&^I-qu7na%gePb;_7yyoRY|@WVufgYs$!%o^JCbFqkfia!7k9%r zC|W3Sgd`$d8HX`E5I+kTCS)%_sitm_V~6mXNYe3c&KZrE)&Py?@?YVEjC^k5SZ&qu z8P!Ae$D+NyUF%Y+y^~?N@S9Ol!CXtsrRR*xpsXws61a?1#>!~+QZPPNlk3B%Rzapf zkGh!)T(Ex^cP3+6pLfQTDgr-Nb-TYT$YQ3{Kw~Fwx zwNN9F)b)7{Hn8-j8u6IkC=1-N8l=!BgO}KpbygzT(liwBK-KYYs8$@cudemA@n#ps ztN8gG>o40f)8nmpiMw#}=J-^9j_cK3q5Ez@TD)zsC#O$5*0;3MNavk6?W~=_?XYYa zDo53b>+H^d4ev>_JMzla$23jZ^=9|%=?JfX%gj>$u*4k8;mQs@@84x@)x0)h(7Y^< zLa{ma#c}roF)Eb(eN7iD@87qQ?D!jhL-ZT0QyvE`pM#BN;*>;?_{=U^%yL zfp5Iq&J(t!+su=lGn)e|rx&~4&nicyVG!GZ+QLwgFN6C;q5Ky>9W7Xe^Ayc#B10|I zt;oIyL2?7=bW6`dBSc!T=;v{Q&WRTYWB8!Oa5Q7IsaE*|9^nnseLusVF}^(ze*jr zQqjmZo=jZG{T7o=Ln$pOnhj7>E6sos*E2ttZGcXd%r?^?hVXMaGknYvFa_#~E6IX( z>fWBu^%rdf8g8~%K%wd;T;SP~)`k1_ke%k&4_L$r9{;<0)xSIM;_m42t{v(*_+^E? zu8Z%!V(T-n!gckJtuNGiW=Q<_3+)L<;suwuD(=>^Mq)h>BPPNUGr24S`Mz%IZi)@k zCl(lXLA2Ibl3NvJF9QNdhcIjC27dO+}i_sSu|mWS##yV}CjC9{Y@Uobm3n_x^w%0y4xZB@l$94|CW834M*3b#qF*^X`xO$ahXb9{qy&>}&Xy@z6xA*Ne=v?3XOj=EVjWnL+LVECJ@aqv4adjFiRf?R!S!OdG_ZE_M zEE~o{(%zI~9xK*S`o|5CZm|Hg;H{7@50eV0Xk=Xxdo3dHM`e2li zRxJ^YN6czAE6uOCR6ezs0@%$l!2!7!Vrm=!2lQ=mRCQ!=Fr#nb*PLvN;`O)#;tiua z7@#MJB&w0E#IYeS9V0FeaYb`94zHa8_s%~flG?1>kNw_b`QydO>% zm<5v?O{FL4chZAz{Aw+A>z~L;dv3P%hx43%LL;fI>Lae}x*Qbb*Y>#pw|*l8hG79s z+-#=IH5!d-V2n&i-qye|2L=J?r{?fK)0HF0O;MeCRO|wKy&U%ha(RAU;)HT7GY;qW z@2{R3H=_GI>i?2MeD^v3n^>0~*st$Aql>en{#9B*9SKIjaII!c)Nxk+UrDSyX*~N6 z`}5-2Ys`y81I0%0c7VXBk@6905-NbeNcqyNB0|2AJwn-zd?ML-%p~rA8JQo~O{bl*<2N-O)>v9&mS4;xiiY9n?(r3dIT_km~~B z{EQ5W%`{MUVrr2e{tz1EgOAHCJR{l_ntgNF{o+rcg2=9;7|T7H3OcuyPYzR|tgntk z^t+@>VMC++p2OG};jClS!WiK+)Rfr(LK^`g(7IRt;~r9R0Gz>(I==9Xc?oAddvX~!@o~UlvI;@T(28FCdeFdky;P_?Y65N+lnXS==Peh# z=+WhcISylu>n4HP+?km{_KSTGg>xE~pAzezxuB*b8jD<98qQBNd{4HE5iLcB{uVWC zJTdbE>J)&SKDYj1I9}{M}VD8Cr<0pbDaAS6pgu03?a)1Oc z#=tIbhz&*f^s~s`VtSK&$B**-y!PYp0r>J`T~V0n)@!_GiU&`Wy4MVipQS zldJ;+u1tYy$iE;XiXo#TIgUrTTIK{eL7{cgWk!J13vOF134uG8^>fs}oE1542xnB@ z1FEp7HdIT0ET*nyckNQy;?&5O`p8ueZ(qD;=4<_C8%MKhuki7X+)cWB-}+S8R_HnJ zb@w^@dfT3{C!V+UZ(IEHGyS>Dy~6l&X`6Jny-nZ_E$oDVZ0cZ$kDo0;}S`UKGt3g0fNQ!AE@D0+*AS!><3{uZy z65oe>AVq{cRdAj>f(2LPT9Q^g52x8{FE^Iig9nzeAk!S;&vXN%`XrcF8PjuZu!dC> zaK}f3p??2waM&#gz~YUP3SJ77Tij$eQv$U%!|5zod33ldAsQG&w~2DP8G0ilq>?XD zjWzp1-nUAmDF^{pX*a3vWe zS;F8D)BZ3q?mG^$sw*PL(eG?SO%~t2<{!Mhu5QzwrxkB6JQ)e!_3G5G+g}G(|EaqDqOn^ay*}Ys-?;|Eyy0Typ!1!d`(B=U!X04d)HpU)6o}7R z+M0ys-5;3t<9J`qt?|k}l4yA2*O^=S414l#OH7=Nd@rz2+$6<`{3}=?Ju;gZ^a`9x z6wdVB$=-&w0?<(CQ|#pcLq8AV2!4A8!A;V* zxEvD)*lBR+me?tV!`4;oklTW4qwrgCirC3khl*xVUF;_lT=vMu z$dWZRm1BX3y{L&(da!GedBu*k+T&t5aVj{8ZfiJ~8SryYiL~lLjK9XQNQz-|j&uIh zTSW?ClzYh?qvYQbO0D+qF+PSpS(o2_0_?sl%M9*Kf$8jkQ<;|1)vnj1YzMN z)JccrXZ#19mmI+!{Rr3XxZ=4hO_W|2WpR~vYW`V5et6hUcef*5cDGK%Z`jHybsv24 z!mBa(*#5kG5eQ8xflBX#4sk8qlC$W zd+{gZavAyxE%I3~rP_x`gk9~Z9JKBQ86NPmg-Y4JJjb~-g>m$_c^}pqUehn;bLe@& z$C`1B>dE*n3JyILX2fp(fiX?((B0D$WgDE_HM3vXE@E6Uh~pBo!3l>`B27z^p@&UE z>KZawtHeV!-bh{@;?b#7;ws+(!C4|o3gG`Lub)faCaC{xm=<@v+s zxX=1K4xBGnMw-=p%L9}Q&f0AiJwErTGklvQ&N1+>VNP!@q;IlM}_g;rH9SUUQazWMbQcmJ1M{S@U3xQ&+_K#W0EBCvS89~>E7NpvoJ*; z*rU&?z}F?pYODL^YIKFV2Q^uyfBaT1Byu z?D2fyLIxYKX#l}e^b|6isFC|Dr770SLt5ecRbrF|*`u$Kp({5-^r7nRV2GVLpJM0- zZ5Pyo)%XU00Xqm|+I1OF-mzEVuqhY6zJ;*VHk>>x{h7LepRv~U8UQ=N$~{e|>Jr0H zOGU#jFrcbsQ*a<+utq}TVbaU=kPe|h9bt$)Sua1T$FS7o(ai|)l2~nDKp#a#u7$XY z#tQCyAaCtObAA?;*rm^#2EZ#~hH;yMF2vuR&7I(-P;5t;`dyBJc5W%bJMOo&eBUaI zKI`{6?B3@CMW=L)@b#QpGqQO&LEBaT0K3#hi|MMg&fVuh)#qtlf1gCABYR4!Ty)~s zX_5Qw@UmJj({=ugr@o&Gu`cR?$xt2YFZz3?LRnX$Pu93AKMt~q0$7yMGSzp$UNo0U zY!J+X%uqGp%#3>h(os*vWq~WVpR@P{04{ZY2x*rUnv;v>&tYGeW~8!mlBi6vjR|hb z?cj4)554 z$lidci1;}zG1a8q?O}GqEly&_sQsZq`2}pCt!D^th>cRL7?Fn~ph-rJI-~M|+0(bf z;C_y%&SR>_Uh0O#S1P)ED7-%whw~Vs!|de?#F5V}`}b6q+w(RFTf^Ij%ho*~TvJ_U zNas?a8|HNu~grNo+7H_Hkv(T z-MK|w9vQX~IyIb14vmL04Ed^Im~=ag!7pjsHuypbTfRl=IFU1-hxTvom*;3dj>V%C zT~gd?gj+)n0v1H@F>*uqbp|L_4^b@Tn;yHGlKf>L>T^espjwdmGfu?7>9%SL%b9 zQxB`#Rh2Vk+r0EkEe9g97Mlhovr*z5jW9MR=l@QIoca-cB(N!OA;`LIIeF*OordGb z?@TfkTE<%9w@lGT3(oj*=uY!+UGPuw?W8aeF`7tKA*$_p+lk2*pgtzPNUaI8xz!Kw zSH+$8ml~*1gml6BwoPA6wj(L!a_uDsh;`lp;$0}{U}Tq|eLe80=E=NBF-PkM6GKX= z9c5eK;w+3UE2B);Gmh9iG|y1`z&~yTGR2ir^E#`WS!fXkF&E7I5I$2FcH9e z$$_V^%i1W~QISVVywu}A!5uC`gM|@~y~u{AG%UJy)PQSyvgIyq&sQq2Hb& zRtr|M3ZRGnoYSMc9XE#KvJ`trePf*hEv&YfpO0UG#Xw2{u*KyTw{THwQacX)&wi?7 zmcUi)LSk!O?;e{9GX#0}Aj1~xb}2?|SW_4Fx^Mar)X`Iv7vq#JFJXDyxaddfJ6Ee{ zsZ5ua4c&-5vF)I4TBSj~cW#YvdLYQ7!*NF`=`+igHW>9~@W}_8=yiP^$C*L+$R}~f zbMq{`&ef#8ePmm2`QchYb(JKc)_nJ_3r@_ zE%2VFi%EGc2QgW*)^_`jZ`h+Sarj$(lVCF2j*(cqOzMSj^8^{COEKEXJ>6 z$9zI+w^P7NI&RIzb(HM|(xL_o=i_O7x<)8s()XIGj97^}ufRG29|&Y! zJ&w|x3}$dc>Zm_gii%${RKS@+=%ngJHV^06cb(+}>pK@;31wC|u-&H0)SACQb6{w*0_hB)Hk!%u$s9s;#|B-!X4851K6 zwGz8_z96nTM(O&uf)}<2VoRI2ZZjYm0NrmZK))x&c*9}L^U#wx%_!VnsFtmT4XK(8 z1~BQkmnEJHOP`;RZgCYG`_IHSeEnsn{Equp`Cj!6-OUl$0t-|A6STd*N_y7z&ze zCu&%51Zj%RK>UVWIs%)sYoi1vbL8DMpz(%VhrKe?jan)T(KLI@YtI3$%jz?-UxO7g9#igiHU!yRZc)oj~`gcZ`gK zj2D_R7xesPoFax&!zC4d9?qtyGe-Y3)H8nF?&{*PIh9|E=O9NG0U2)WQGgap%EdV; zdgI9&gCN>wE|pk6k)_x;Y0x$E`5vi4GFwyt!fdk#aT@_3gGZjKl`i@Fc61%#bW+~xRR^A#*v&cqz1DMGaD01sLe{B2Ypnx_YT3+e z&KE6~f8en&f6hG&{)11bRB*=vaj44-woBw}6O1AGL3J!R;~NAR&~-bE5cp5ea3xaEkTt69BV zWNq{FWw2L)XpFFIWJ;l1ydMh4OnhNT*Ygnmb)kpYWpBXD4)J^T?3YXg;xlBtMK%z8 z+6N+!;e!&Id|PXTgg7%IA)rV)1P!^t0NGUL79wARESEV&8KA%kqe7)MGkBh+NBh81 z$d>(lxPh^TR4kOaRFQ|6pS3u5wZ)@GF=)Wg zqv%YJoA=w`^ht{n=`-X?9E<`{%wwEnDy?CRy53b}D5{A>tKM(EO(ex|O}4@=j0fW} zKa<~#W{WHn%~H?hc|{L?&mMoO^0+wL0+xd7a(i zQh8{QTYAIN+i!>V&JD48;ZKs08K=FL0}7^*$+;iy8>XHgp9-jbY`3d9!RzRbg$-tw zdoCl~u=YC-5KVR=>PSaiu*`&_*69)2}7 z0pfE2ITMBcx2o4gLLBjcg&uCl#wKs#nx zq(Y6TG!@LqZJeb_(-21axJ52lv08{yPJdV7(j|Mb# zEttTqb*&ey4ih?05zyiC%h#o!mFnoQQtMIq=YI zFKGb?__SHV^Q0hbtWc1KZm{Seu8U&S52eeFfcq+st!m3pH8BT|CUolXxHSN;QMF>) zHp7PUvya|k11^C{ERVXbC1?%%9(m({!h9TIcxK==$mVphE6v)jHRO<#F;XFY0C3V> z0C&JrXp?BduFMuwA?7keqs3Z8r!h3YG$XO*dE!>xV~8iz)wQFm`u-JAW|djK7$$pK zM$1LHA9FwQi?KFM{YMLco|T(f~bvXy=+rQqAE!; z_vfiE{izzYEgnfi`U>RI!GZY^+{O=xjyK>JM+nD^PfU5bJY;O<`4=9&ZAN=j)thFv z?MQm^ue#`Gdp$~hSu^Ku;#AhTqP)+ausj`98j+j&Qg%pqpV{u|n~;>DHTv8|gT?p2 z{N+@iJyEqE>lKwLw$Gv4RuEQR=^k2hbo#YVXNs}&hNG(g70Zghm+ej7dY4^`>i);p zf|@%4vNR+=7FJHtQPjUy9t7P5?j~?JAMx)9M=mM;Wq@9~GS6SyeD$f-?T=?#bw6$J zc3!z6p3l5vF>l1+w0T3rvoWHckgi2O7mysxkb+5nqMs-T?6HZFd*J|;m+{MAeceomLxfxw@CzAm+F+%XXS zyNLxVtxn0AYg>1j7f}7=jm;_jl!K6kgpvo(agryp8|Ywb{<4o0*VVQQIbVlFh}D?1 z?Q%CJ@U$$}e_ec8f>uTt9iy%zr=AgZ^%Mlfu+6Rtg5H1J{;cct9)^Re8~-cVssxa-4{`<5D22GvD4lIp%U4}R=#j1Hm?RdM)5 zMNf73$vbhbpv=r)dad)z(emvs>QC2H9y8lcG1pV(tA&+r$JbO0M8=}FJ16RJ32jy`Ds7zuD)zHG&N_cy9U#%;G#QQ_yK)o16n zv(9|e^te>xQFC$2)i0x@PZ^|>q)Hc;Q`?am;gSkri2UYfj~WrH8JEu1n4iXE zIcf$WzV680C6=f){u{+CxQ$Uw^6CfM@w7ePq*M@bul`¡!#=9gXFuF%Ca`?mkM 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/create-note-entity.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3d452e65cdacdcd99e0f32576c1f99c49b3b64d GIT binary patch literal 156350 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 literal 0 HcmV?d00001 From e332be263bf2991b96101b449c1811ac34dd6b94 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Mon, 31 Aug 2020 15:56:56 +0300 Subject: [PATCH 91/98] Update POST.md --- .../POST.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md index b0c743b36f..039491e10f 100644 --- a/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md +++ b/docs/en/Community-Articles/2020-08-31-Adding-User-Navigation-In-Suite/POST.md @@ -28,4 +28,22 @@ Get back to ABP Suite, go to **Navigation Properties** tab. Click **Add Navigati That's it! Click **Save and generate** button to create your page. You'll see the following page if there's everything goes well. -![final-page](final-page.jpg) \ No newline at end of file +![final-page](final-page.jpg) + + + +Note this example is implemented with ABP Commercial 3.1.0-rc.3. This is a RC version. If you want to install the CLI and Suite RC version follow the next steps: + +1- Uninstall the current version of the CLI and install the specific RC version: + +```bash +dotnet tool uninstall --global Volo.Abp.Cli && dotnet tool install --global Volo.Abp.Cli --version 3.1.0-rc.3 +``` + +2- Uninstall the current version of the Suite and install the specific RC version: + +```bash +dotnet tool uninstall --global Volo.Abp.Suite && dotnet tool install -g Volo.Abp.Suite --version 3.1.0-rc.3 --add-source https://nuget.abp.io//v3/index.json +``` + +Don't forget to replace the `` with your own key! \ No newline at end of file From 7ea2e47c7fd816dde1c391dc79196915f287348b Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 31 Aug 2020 16:09:15 +0300 Subject: [PATCH 92/98] Cmskit comments order --- .../Shared/Components/Commenting/CommentingViewComponent.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs index e8d6e73e9a..47944d71c8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/CommentingViewComponent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; @@ -44,7 +45,7 @@ namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting EntityId = entityId, EntityType = entityType, LoginUrl = loginUrl, - Comments = result.Items + Comments = result.Items.OrderByDescending(i=> i.CreationTime).ToList() }; return View("~/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml", viewModel); From f53630a9a1485d50ddff84a9b9e4729fb4fff9d7 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 31 Aug 2020 16:10:50 +0300 Subject: [PATCH 93/98] Cmskit comments new comment box placement --- .../Components/Commenting/Default.cshtml | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index e8a26db102..ffedf136d9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -110,8 +110,22 @@
    - @L["Comments"] + @L["Comments"]
    +
    @foreach (var comment in Model.Comments) {
    @@ -154,6 +168,7 @@ @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new { entityType = "comment", entityId = reply.Id.ToString() }) } + @GetCommentActionArea(reply.Id, reply.Author.Id, true, reply.Text).Invoke(null)
    @@ -163,19 +178,5 @@
} -
- @if (CurrentUser.IsAuthenticated) - { -
- @GetCommentArea(null).Invoke(null) -
- } - else if (!string.IsNullOrWhiteSpace(Model.LoginUrl)) - { - - } -
From 1b86dba8d6b8ca8f9aa6c3f96d47666fe0798a8e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 31 Aug 2020 16:29:38 +0300 Subject: [PATCH 94/98] cmskit comments reply button and textbox placement --- .../Components/Commenting/Default.cshtml | 187 +++++++++--------- .../Shared/Components/Commenting/default.js | 7 +- 2 files changed, 99 insertions(+), 95 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index ffedf136d9..8cf2878d16 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -15,96 +15,99 @@ @{ Func GetCommentTitle(CmsUserDto author, DateTime creationTime) => - @ - - @((string.IsNullOrWhiteSpace(author.Name) + @ + + @((string.IsNullOrWhiteSpace(author.Name) ? author.UserName : author.Name + " " + author.Surname).Trim()) - @creationTime.ToString() - ; + @creationTime.ToString() + ; } @{ Func GetCommentArea(Guid? repliedCommentId, bool cancelButton = false) => - @
-
- -
-
-
- + @
+ + +
+
+
+ +
-
-
-
- @if (cancelButton) - { - @L["Cancel"] - } - @L["Send"] +
+
+ @if (cancelButton) + { + + @L["Cancel"] + + } + + @L["Send"] + +
-
- -
; + +
; } @{ Func GetCommentContentArea(Guid id, string text) => - @
-
-

- @text -

-
-
; + @
+
+

+ @text +

+
+
; } @{ Func GetCommentActionArea(Guid id, Guid authorId, bool isReply, string text) => - @
-
- @if (!isReply) - { - @if (CurrentUser.IsAuthenticated) + @
+
+ @if (!isReply) { - - @L["Reply"] - + @if (CurrentUser.IsAuthenticated) + { + + @L["Reply"] + + } + else + { + @L["LoginToReply"] + } } - else + @if (authorId == CurrentUser.Id) { - @L["LoginToReply"] - } - } - @if (authorId == CurrentUser.Id) - { - - - @L["Delete"] - + + @L["Delete"] + - - @L["Edit"] - - } -
- + -
; +
; }
@@ -112,20 +115,7 @@
@L["Comments"]
-
- @if (CurrentUser.IsAuthenticated) - { -
- @GetCommentArea(null).Invoke(null) -
- } - else if (!string.IsNullOrWhiteSpace(Model.LoginUrl)) - { - - } -
+ @foreach (var comment in Model.Comments) {
@@ -138,17 +128,11 @@ @if (cmsKitUiOptions.Value.CommentsOptions.IsReactionsEnabled && GlobalFeatureManager.Instance.IsEnabled()) { - @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), - new { entityType = "comment", entityId = comment.Id.ToString() }) + @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new {entityType = "comment", entityId = comment.Id.ToString()}) } @GetCommentActionArea(comment.Id, comment.Author.Id, false, comment.Text).Invoke(null) - @if (CurrentUser.IsAuthenticated) - { - @GetCommentArea(comment.Id, true).Invoke(null) - } - @if (comment.Replies.Any()) { @foreach (var reply in comment.Replies) @@ -165,8 +149,7 @@ @if (cmsKitUiOptions.Value.CommentsOptions.IsReactionsEnabled && GlobalFeatureManager.Instance.IsEnabled()) { - @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), - new { entityType = "comment", entityId = reply.Id.ToString() }) + @await Component.InvokeAsync(typeof(ReactionSelectionViewComponent), new {entityType = "comment", entityId = reply.Id.ToString()}) } @GetCommentActionArea(reply.Id, reply.Author.Id, true, reply.Text).Invoke(null) @@ -174,7 +157,27 @@
} + @if (comment.Replies.Count >= 5) + { +
+ @if (CurrentUser.IsAuthenticated) + { + + @L["Reply"] + + } + else + { + @L["LoginToReply"] + } +
+ } } + @if (CurrentUser.IsAuthenticated) + { + @GetCommentArea(comment.Id, true).Invoke(null) + } +
} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js index 2e6c8e0dac..99e6167b49 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js @@ -58,10 +58,11 @@ var replyCommentId = $link.data('reply-id'); var $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); + var $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); $relatedCommentArea.show(); $relatedCommentArea.find('textarea').focus(); - $link.removeAttr('href'); + $links.addClass('disabled'); }); }); $container.find('.reply-cancel-button').each(function () { @@ -72,10 +73,10 @@ var replyCommentId = $button.data('reply-id'); var $relatedCommentArea = $container.find('.cms-comment-form-area[data-reply-id=' + replyCommentId + ']'); - var $replyLink = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); + var $links = $container.find('.comment-reply-link[data-reply-id=' + replyCommentId + ']'); $relatedCommentArea.hide(); - $replyLink.attr('href', '#'); + $links.removeClass('disabled'); }); }); } From 420bf222998ae72242981e8bac589fc5058191df Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 31 Aug 2020 16:54:37 +0300 Subject: [PATCH 95/98] cmskit comment page refactor --- .../Components/Commenting/Default.cshtml | 98 +++++++++++-------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index 8cf2878d16..ab7fc9805b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -64,34 +64,37 @@
; } @{ - Func GetCommentActionArea(Guid id, Guid authorId, bool isReply, string text) => - @
-
- @if (!isReply) + Func GetCommentActionArea(Guid id, Guid authorId, bool isReply) => + @
+ @if (!isReply) + { + @if (CurrentUser.IsAuthenticated) { - @if (CurrentUser.IsAuthenticated) - { - - @L["Reply"] - - } - else - { - @L["LoginToReply"] - } + + @L["Reply"] + } - @if (authorId == CurrentUser.Id) + else { - - @L["Delete"] - + @L["LoginToReply"] + } + } + @if (authorId == CurrentUser.Id) + { + + @L["Delete"] + - - @L["Edit"] - - } -
+ + @L["Edit"] + + } +
; +} +@{ + Func GetEditArea(Guid id, string text) => + @
@@ -160,23 +178,23 @@ @if (comment.Replies.Count >= 5) {
- @if (CurrentUser.IsAuthenticated) - { - - @L["Reply"] - - } - else - { - @L["LoginToReply"] - } + @if (CurrentUser.IsAuthenticated) + { + + @L["Reply"] + + } + else + { + @L["LoginToReply"] + }
} } - @if (CurrentUser.IsAuthenticated) - { - @GetCommentArea(comment.Id, true).Invoke(null) - } + @if (CurrentUser.IsAuthenticated) + { + @GetCommentArea(comment.Id, true).Invoke(null) + }
From 7fc3e560db76189aeba1a545e525c5b078ebacee Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 31 Aug 2020 18:01:07 +0300 Subject: [PATCH 96/98] MongoDb not updating user organization data bug fix --- .../Volo/Abp/Identity/IdentityUserManager.cs | 49 +++++++++------ .../OrganizationUnitRepository_Tests.cs | 63 ++++++++++++++++--- 2 files changed, 86 insertions(+), 26 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs index 24d3f92774..69376958b7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserManager.cs @@ -43,15 +43,15 @@ namespace Volo.Abp.Identity IOrganizationUnitRepository organizationUnitRepository, ISettingProvider settingProvider) : base( - store, - optionsAccessor, - passwordHasher, - userValidators, - passwordValidators, - keyNormalizer, - errors, - services, - logger) + store, + optionsAccessor, + passwordHasher, + userValidators, + passwordValidators, + keyNormalizer, + errors, + services, + logger) { OrganizationUnitRepository = organizationUnitRepository; SettingProvider = settingProvider; @@ -71,7 +71,8 @@ namespace Volo.Abp.Identity return user; } - public virtual async Task SetRolesAsync([NotNull] IdentityUser user, [NotNull] IEnumerable roleNames) + public virtual async Task SetRolesAsync([NotNull] IdentityUser user, + [NotNull] IEnumerable roleNames) { Check.NotNull(user, nameof(user)); Check.NotNull(roleNames, nameof(roleNames)); @@ -101,7 +102,8 @@ namespace Volo.Abp.Identity public virtual async Task IsInOrganizationUnitAsync(IdentityUser user, OrganizationUnit ou) { - await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, CancellationTokenProvider.Token); + await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, + CancellationTokenProvider.Token); return user.IsInOrganizationUnit(ou.Id); } @@ -110,12 +112,13 @@ namespace Volo.Abp.Identity await AddToOrganizationUnitAsync( await UserRepository.GetAsync(userId, cancellationToken: CancellationToken), await OrganizationUnitRepository.GetAsync(ouId, cancellationToken: CancellationToken) - ); + ); } public virtual async Task AddToOrganizationUnitAsync(IdentityUser user, OrganizationUnit ou) { - await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, CancellationTokenProvider.Token); + await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, + CancellationTokenProvider.Token); if (user.OrganizationUnits.Any(cou => cou.OrganizationUnitId == ou.Id)) { @@ -125,19 +128,23 @@ namespace Volo.Abp.Identity await CheckMaxUserOrganizationUnitMembershipCountAsync(user.OrganizationUnits.Count + 1); user.AddOrganizationUnit(ou.Id); + await UserRepository.UpdateAsync(user, cancellationToken: CancellationToken); } public virtual async Task RemoveFromOrganizationUnitAsync(Guid userId, Guid ouId) { var user = await UserRepository.GetAsync(userId, cancellationToken: CancellationToken); user.RemoveOrganizationUnit(ouId); + await UserRepository.UpdateAsync(user, cancellationToken: CancellationToken); } public virtual async Task RemoveFromOrganizationUnitAsync(IdentityUser user, OrganizationUnit ou) { - await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, CancellationTokenProvider.Token); + await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, + CancellationTokenProvider.Token); user.RemoveOrganizationUnit(ou.Id); + await UserRepository.UpdateAsync(user, cancellationToken: CancellationToken); } public virtual async Task SetOrganizationUnitsAsync(Guid userId, params Guid[] organizationUnitIds) @@ -155,7 +162,8 @@ namespace Volo.Abp.Identity await CheckMaxUserOrganizationUnitMembershipCountAsync(organizationUnitIds.Length); - await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, CancellationTokenProvider.Token); + await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, + CancellationTokenProvider.Token); //Remove from removed OUs foreach (var ouId in user.OrganizationUnits.Select(uou => uou.OrganizationUnitId).ToArray()) @@ -174,11 +182,14 @@ namespace Volo.Abp.Identity user.AddOrganizationUnit(organizationUnitId); } } + + await UserRepository.UpdateAsync(user, cancellationToken: CancellationToken); } private async Task CheckMaxUserOrganizationUnitMembershipCountAsync(int requestedCount) { - var maxCount = await SettingProvider.GetAsync(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount); + var maxCount = + await SettingProvider.GetAsync(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount); if (requestedCount > maxCount) { throw new BusinessException(IdentityErrorCodes.MaxAllowedOuMembership) @@ -187,9 +198,11 @@ namespace Volo.Abp.Identity } [UnitOfWork] - public virtual async Task> GetOrganizationUnitsAsync(IdentityUser user, bool includeDetails = false) + public virtual async Task> GetOrganizationUnitsAsync(IdentityUser user, + bool includeDetails = false) { - await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, CancellationTokenProvider.Token); + await UserRepository.EnsureCollectionLoadedAsync(user, u => u.OrganizationUnits, + CancellationTokenProvider.Token); return await OrganizationUnitRepository.GetListAsync( user.OrganizationUnits.Select(t => t.OrganizationUnitId), diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs index 0e6717f29c..f4a2d46528 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs @@ -20,7 +20,7 @@ namespace Volo.Abp.Identity private readonly IdentityTestData _testData; private readonly IGuidGenerator _guidGenerator; private readonly OrganizationUnitManager _organizationUnitManager; - private readonly IIdentityRoleRepository _identityRoleRepository; + private readonly IdentityUserManager _identityUserManager; private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IIdentityUserRepository _identityUserRepository; @@ -31,7 +31,7 @@ namespace Volo.Abp.Identity _testData = GetRequiredService(); _guidGenerator = GetRequiredService(); _organizationUnitManager = GetRequiredService(); - _identityRoleRepository = GetRequiredService(); + _identityUserManager = GetRequiredService(); _unitOfWorkManager = GetRequiredService(); _identityUserRepository = GetRequiredService(); } @@ -45,19 +45,63 @@ namespace Volo.Abp.Identity [Fact] public async Task GetAllChildrenWithParentCodeAsync() { - (await _organizationUnitRepository.GetAllChildrenWithParentCodeAsync(OrganizationUnit.CreateCode(0), _guidGenerator.Create())).ShouldNotBeNull(); + (await _organizationUnitRepository.GetAllChildrenWithParentCodeAsync(OrganizationUnit.CreateCode(0), + _guidGenerator.Create())).ShouldNotBeNull(); } [Fact] public async Task GetListAsync() { var ouIds = (await _organizationUnitRepository.GetListAsync(includeDetails: true)) - .Select(ou => ou.Id).Take(2); + .Select(ou => ou.Id).Take(2); var ous = await _organizationUnitRepository.GetListAsync(ouIds); ous.Count.ShouldBe(2); ous.ShouldContain(ou => ou.Id == ouIds.First()); } + [Fact] + public async Task AddMemberToOrganizationUnit() + { + using (var uow = _unitOfWorkManager.Begin()) + { + var ou111 = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU111")); + var user = await _identityUserRepository.FindByNormalizedUserNameAsync( + _lookupNormalizer.NormalizeName("david")); + user.ShouldNotBeNull(); + + user.OrganizationUnits.Count.ShouldBe(1); + await _identityUserManager.AddToOrganizationUnitAsync(user.Id, ou111.Id); + + await uow.CompleteAsync(); + } + + var updatedUser = await _identityUserRepository.FindByNormalizedUserNameAsync( + _lookupNormalizer.NormalizeName("david")); + updatedUser.OrganizationUnits.Count.ShouldBe(2); + } + [Fact] + public async Task RemoveOrganizationUnitFromUser() + { + using (var uow = _unitOfWorkManager.Begin()) + { + var ou112 = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU112")); + var user = await _identityUserRepository.FindByNormalizedUserNameAsync( + _lookupNormalizer.NormalizeName("david")); + + user.OrganizationUnits.Count.ShouldBe(1); + user.OrganizationUnits.ShouldContain(q=>q.OrganizationUnitId == ou112.Id); + + await _identityUserManager.RemoveFromOrganizationUnitAsync(user.Id, ou112.Id); + await uow.CompleteAsync(); + } + + var updatedUser = await _identityUserRepository.FindByNormalizedUserNameAsync( + _lookupNormalizer.NormalizeName("david")); + updatedUser.OrganizationUnits.Count.ShouldBe(0); + } + [Fact] public async Task GetOrganizationUnitAsync() { @@ -79,6 +123,7 @@ namespace Volo.Abp.Identity ou.Roles.ShouldNotBeNull(); ou.Roles.Any().ShouldBeTrue(); } + [Fact] public async Task GetOrganizationUnitRolesAsync() { @@ -95,7 +140,8 @@ namespace Volo.Abp.Identity { OrganizationUnit ou = await _organizationUnitRepository.GetAsync("OU111", includeDetails: true); - var ou111Roles = await _organizationUnitRepository.GetRolesAsync(ou, sorting: "name desc", maxResultCount: 1, includeDetails: true); + var ou111Roles = await _organizationUnitRepository.GetRolesAsync(ou, sorting: "name desc", + maxResultCount: 1, includeDetails: true); ou111Roles.Count.ShouldBe(1); ou111Roles.ShouldContain(n => n.Name == "moderator"); } @@ -105,9 +151,10 @@ namespace Volo.Abp.Identity { OrganizationUnit ou1 = await _organizationUnitRepository.GetAsync("OU111", true); OrganizationUnit ou2 = await _organizationUnitRepository.GetAsync("OU112", true); - var users = await _identityUserRepository.GetUsersInOrganizationsListAsync(new List { ou1.Id, ou2.Id }); + var users = await _identityUserRepository.GetUsersInOrganizationsListAsync(new List {ou1.Id, ou2.Id}); users.Count.ShouldBeGreaterThan(0); } + [Fact] public async Task GetMembersInOrganizationUnitWithParamsAsync() { @@ -147,12 +194,12 @@ namespace Volo.Abp.Identity public async Task GetMembersCountOfOrganizationUnitWithParamsAsync() { OrganizationUnit ou = await _organizationUnitRepository.GetAsync("OU111", true); - var usersCount = await _organizationUnitRepository.GetMembersCountAsync(ou,"n"); + var usersCount = await _organizationUnitRepository.GetMembersCountAsync(ou, "n"); usersCount.ShouldBeGreaterThan(1); usersCount.ShouldBeLessThanOrEqualTo(5); - usersCount = await _organizationUnitRepository.GetMembersCountAsync(ou,"undefined-username"); + usersCount = await _organizationUnitRepository.GetMembersCountAsync(ou, "undefined-username"); usersCount.ShouldBe(0); } From 55209702f14be32df43d9da86e9ad18b87dc9bbe Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 31 Aug 2020 18:26:51 +0300 Subject: [PATCH 97/98] Fixed OrganizationUnit where user is not updated when roles are added/removed --- .../Abp/Identity/OrganizationUnitManager.cs | 8 ++-- .../OrganizationUnitRepository_Tests.cs | 43 ++++++++++++++++++- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs index 9db3ff4581..4706f92428 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/OrganizationUnitManager.cs @@ -54,8 +54,8 @@ namespace Volo.Abp.Identity return OrganizationUnit.CalculateNextCode(lastChild.Code); } - var parentCode = parentId != null - ? await GetCodeOrDefaultAsync(parentId.Value) + var parentCode = parentId != null + ? await GetCodeOrDefaultAsync(parentId.Value) : null; return OrganizationUnit.AppendCode( @@ -174,7 +174,7 @@ namespace Volo.Abp.Identity return Task.FromResult(0); } ou.AddRole(role.Id); - return Task.FromResult(0); + return OrganizationUnitRepository.UpdateAsync(ou); } public virtual async Task RemoveRoleFromOrganizationUnitAsync(Guid roleId, Guid ouId) @@ -188,7 +188,7 @@ namespace Volo.Abp.Identity public virtual Task RemoveRoleFromOrganizationUnitAsync(IdentityRole role, OrganizationUnit organizationUnit) { organizationUnit.RemoveRole(role.Id); - return Task.FromResult(0); + return OrganizationUnitRepository.UpdateAsync(organizationUnit); } } } diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs index f4a2d46528..bb8300d449 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/OrganizationUnitRepository_Tests.cs @@ -16,6 +16,7 @@ namespace Volo.Abp.Identity where TStartupModule : IAbpModule { private readonly IOrganizationUnitRepository _organizationUnitRepository; + private readonly IIdentityRoleRepository _identityRoleRepository; private readonly ILookupNormalizer _lookupNormalizer; private readonly IdentityTestData _testData; private readonly IGuidGenerator _guidGenerator; @@ -27,6 +28,7 @@ namespace Volo.Abp.Identity public OrganizationUnitRepository_Tests() { _organizationUnitRepository = ServiceProvider.GetRequiredService(); + _identityRoleRepository = ServiceProvider.GetRequiredService(); _lookupNormalizer = ServiceProvider.GetRequiredService(); _testData = GetRequiredService(); _guidGenerator = GetRequiredService(); @@ -80,6 +82,45 @@ namespace Volo.Abp.Identity _lookupNormalizer.NormalizeName("david")); updatedUser.OrganizationUnits.Count.ShouldBe(2); } + + [Fact] + public async Task AddRoleToOrganizationUnit() + { + using (var uow = _unitOfWorkManager.Begin()) + { + var ou111 = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU111")); + ou111.Roles.Count.ShouldBe(2); + var roleSupporter = await _identityRoleRepository.FindByNormalizedNameAsync( + _lookupNormalizer.NormalizeName("supporter")); + + await _organizationUnitManager.AddRoleToOrganizationUnitAsync(roleSupporter.Id, ou111.Id); + await uow.CompleteAsync(); + } + + var ou111Updated = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU111")); + ou111Updated.Roles.Count.ShouldBeGreaterThan(2); + } + + [Fact] + public async Task RemoveRoleFromOrganizationUnit() + { + using (var uow = _unitOfWorkManager.Begin()) + { + var ou111 = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU111")); + ou111.Roles.ShouldContain(q => q.RoleId == _testData.RoleModeratorId); + + await _organizationUnitManager.RemoveRoleFromOrganizationUnitAsync(_testData.RoleModeratorId, ou111.Id); + await uow.CompleteAsync(); + } + + var ou111Updated = await _organizationUnitRepository.GetAsync( + _lookupNormalizer.NormalizeName("OU111")); + ou111Updated.Roles.ShouldNotContain(q => q.RoleId == _testData.RoleModeratorId); + } + [Fact] public async Task RemoveOrganizationUnitFromUser() { @@ -91,7 +132,7 @@ namespace Volo.Abp.Identity _lookupNormalizer.NormalizeName("david")); user.OrganizationUnits.Count.ShouldBe(1); - user.OrganizationUnits.ShouldContain(q=>q.OrganizationUnitId == ou112.Id); + user.OrganizationUnits.ShouldContain(q => q.OrganizationUnitId == ou112.Id); await _identityUserManager.RemoveFromOrganizationUnitAsync(user.Id, ou112.Id); await uow.CompleteAsync(); From 7e1e5ca1cc11a46b7079f797b70924171f1a30ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 31 Aug 2020 21:58:28 +0300 Subject: [PATCH 98/98] Added remove-proxy command. --- docs/en/CLI.md | 23 ++- .../Volo/Abp/Cli/AbpCliCoreModule.cs | 4 +- .../Abp/Cli/Commands/GenerateProxyCommand.cs | 137 +---------------- .../Volo/Abp/Cli/Commands/ProxyCommandBase.cs | 144 ++++++++++++++++++ .../Abp/Cli/Commands/RemoveProxyCommand.cs | 11 ++ 5 files changed, 184 insertions(+), 135 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProxyCommandBase.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/RemoveProxyCommand.cs diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 91e7b6669d..e6e7fcccf8 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -32,6 +32,7 @@ Here, the list of all available commands before explaining their details: * **`add-package`**: Adds an ABP package to a project. * **`add-module`**: Adds a [multi-package application module](https://docs.abp.io/en/abp/latest/Modules/Index) to a solution. * **`generate-proxy`**: Generates client side proxies to use HTTP API endpoints. +* **`remove-proxy`**: Removes previously generated client side proxies. * **`switch-to-preview`**: Switches to the latest preview version of the ABP Framework. * **`switch-to-nightly`**: Switches to the latest [nightly builds](Nightly-Builds.md) of the ABP related packages on a solution. * **`switch-to-stable`**: Switches to the latest stable versions of the ABP related packages on a solution. @@ -179,7 +180,7 @@ abp add-module Volo.Blogging ### generate-proxy -Generates Angular service proxies for your HTTP APIs to make easy to consume your services from the client side. Before running `generate-proxy` command, your host must be up and running. +Generates Angular service proxies for your HTTP APIs to make easy to consume your services from the client side. Your host (server) application must be up and running before running this command. Usage: @@ -196,6 +197,26 @@ abp generate-proxy > See the [Angular Service Proxies document](UI/Angular/Service-Proxies.md) for more. +### remove-proxy + +Removes previously generated proxy code from the Angular application. Your host (server) application must be up and running before running this command. + +This can be especially useful when you generate proxies for multiple modules before and need to remove one of them later. + +Usage: + +````bash +abp remove-proxy +```` + +#### Options + +* `--module` or `-m`: Specifies the name of the backend module you wish to remove proxies for. Default value: `app`. +* `--source` or `-s`: Specifies the Angular project name to resolve the root namespace & API definition URL from. Default value: `defaultProject`. +* `--target` or `-t`: Specifies the Angular project name to place generated code in. Default value: `defaultProject`. +* `--prompt` or `-p`: Asks the options from the command line prompt (for the unspecified options). + +> See the [Angular Service Proxies document](UI/Angular/Service-Proxies.md) for more. ### switch-to-preview diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index 0244d46c47..a79b52b4f2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -20,6 +20,7 @@ namespace Volo.Abp.Cli Configure(options => { + //TODO: Define constants like done for GenerateProxyCommand.Name. options.Commands["help"] = typeof(HelpCommand); options.Commands["new"] = typeof(NewCommand); options.Commands["get-source"] = typeof(GetSourceCommand); @@ -28,7 +29,8 @@ namespace Volo.Abp.Cli options.Commands["add-module"] = typeof(AddModuleCommand); options.Commands["login"] = typeof(LoginCommand); options.Commands["logout"] = typeof(LogoutCommand); - options.Commands["generate-proxy"] = typeof(GenerateProxyCommand); + options.Commands[GenerateProxyCommand.Name] = typeof(GenerateProxyCommand); + options.Commands[RemoveProxyCommand.Name] = typeof(RemoveProxyCommand); options.Commands["suite"] = typeof(SuiteCommand); options.Commands["switch-to-preview"] = typeof(SwitchToPreviewCommand); options.Commands["switch-to-stable"] = typeof(SwitchToStableCommand); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs index 5e88417b4a..72aedc51de 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/GenerateProxyCommand.cs @@ -1,140 +1,11 @@ -using System; -using System.IO; -using System.Text; -using System.Threading.Tasks; -using Newtonsoft.Json.Linq; -using Volo.Abp.Cli.Args; -using Volo.Abp.Cli.Utils; -using Volo.Abp.DependencyInjection; - namespace Volo.Abp.Cli.Commands { - public class GenerateProxyCommand : IConsoleCommand, ITransientDependency + public class GenerateProxyCommand : ProxyCommandBase { - public Task ExecuteAsync(CommandLineArgs commandLineArgs) - { - CheckAngularJsonFile(); - CheckNgSchematics(); - - var prompt = commandLineArgs.Options.ContainsKey("p") || commandLineArgs.Options.ContainsKey("prompt"); - var defaultValue = prompt ? null : "__default"; - - var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? defaultValue; - var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? defaultValue; - var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? defaultValue; - - var commandBuilder = new StringBuilder("npx ng g @abp/ng.schematics:proxy"); - - if (module != null) - { - commandBuilder.Append($" --module {module}"); - } - - if (source != null) - { - commandBuilder.Append($" --source {source}"); - } - - if (target != null) - { - commandBuilder.Append($" --target {target}"); - } - - CmdHelper.RunCmd(commandBuilder.ToString()); - - return Task.CompletedTask; - } - - private void CheckNgSchematics() - { - var packageJsonPath = $"package.json"; - - if (!File.Exists(packageJsonPath)) - { - throw new CliUsageException( - "package.json file not found" + - Environment.NewLine + - GetUsageInfo() - ); - } - - var schematicsPackageNode = - (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; - - if (schematicsPackageNode == null) - { - throw new CliUsageException( - "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + - Environment.NewLine + - GetUsageInfo() - ); - } - } - - private void CheckAngularJsonFile() - { - var angularPath = $"angular.json"; - if (!File.Exists(angularPath)) - { - throw new CliUsageException( - "angular.json file not found. You must run this command in the angular folder." + - Environment.NewLine + Environment.NewLine + - GetUsageInfo() - ); - } - } - - public string GetUsageInfo() - { - var sb = new StringBuilder(); - - sb.AppendLine(""); - sb.AppendLine("Usage:"); - sb.AppendLine(""); - sb.AppendLine(" abp generate-proxy"); - sb.AppendLine(""); - sb.AppendLine("Options:"); - sb.AppendLine(""); - sb.AppendLine("-m|--module (default: 'app') The name of the backend module you wish to generate proxies for."); - sb.AppendLine("-s|--source (default: 'defaultProject') Angular project name to resolve the root namespace & API definition URL from."); - sb.AppendLine("-t|--target (default: 'defaultProject') Angular project name to place generated code in."); - sb.AppendLine("-p|--prompt Asks the options from the command line prompt (for the missing options)"); - sb.AppendLine(""); - sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); - - return sb.ToString(); - } - - public string GetShortDescription() - { - return "Generates Angular service proxies and DTOs to consume HTTP APIs."; - } - - public static class Options - { - public static class Module - { - public const string Short = "m"; - public const string Long = "module"; - } - - public static class Source - { - public const string Short = "s"; - public const string Long = "source"; - } + public const string Name = "generate-proxy"; - public static class Target - { - public const string Short = "t"; - public const string Long = "target"; - } + protected override string CommandName => Name; - public static class Prompt - { - public const string Short = "p"; - public const string Long = "prompt"; - } - } + protected override string SchematicsCommandName => "proxy-add"; } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProxyCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProxyCommandBase.cs new file mode 100644 index 0000000000..0116c809cb --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProxyCommandBase.cs @@ -0,0 +1,144 @@ +using System; +using System.IO; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json.Linq; +using Volo.Abp.Cli.Args; +using Volo.Abp.Cli.Utils; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.Commands +{ + public abstract class ProxyCommandBase : IConsoleCommand, ITransientDependency + { + protected abstract string CommandName { get; } + + protected abstract string SchematicsCommandName { get; } + + public Task ExecuteAsync(CommandLineArgs commandLineArgs) + { + CheckAngularJsonFile(); + CheckNgSchematics(); + + var prompt = commandLineArgs.Options.ContainsKey("p") || commandLineArgs.Options.ContainsKey("prompt"); + var defaultValue = prompt ? null : "__default"; + + var module = commandLineArgs.Options.GetOrNull(Options.Module.Short, Options.Module.Long) ?? defaultValue; + var source = commandLineArgs.Options.GetOrNull(Options.Source.Short, Options.Source.Long) ?? defaultValue; + var target = commandLineArgs.Options.GetOrNull(Options.Target.Short, Options.Target.Long) ?? defaultValue; + + var commandBuilder = new StringBuilder("npx ng g @abp/ng.schematics:" + SchematicsCommandName); + + if (module != null) + { + commandBuilder.Append($" --module {module}"); + } + + if (source != null) + { + commandBuilder.Append($" --source {source}"); + } + + if (target != null) + { + commandBuilder.Append($" --target {target}"); + } + + CmdHelper.RunCmd(commandBuilder.ToString()); + + return Task.CompletedTask; + } + + private void CheckNgSchematics() + { + var packageJsonPath = $"package.json"; + + if (!File.Exists(packageJsonPath)) + { + throw new CliUsageException( + "package.json file not found" + + Environment.NewLine + + GetUsageInfo() + ); + } + + var schematicsPackageNode = + (string) JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"]; + + if (schematicsPackageNode == null) + { + throw new CliUsageException( + "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" + + Environment.NewLine + + GetUsageInfo() + ); + } + } + + private void CheckAngularJsonFile() + { + var angularPath = $"angular.json"; + if (!File.Exists(angularPath)) + { + throw new CliUsageException( + "angular.json file not found. You must run this command in the angular folder." + + Environment.NewLine + Environment.NewLine + + GetUsageInfo() + ); + } + } + + public string GetUsageInfo() + { + var sb = new StringBuilder(); + + sb.AppendLine(""); + sb.AppendLine("Usage:"); + sb.AppendLine(""); + sb.AppendLine($" abp {CommandName}"); + sb.AppendLine(""); + sb.AppendLine("Options:"); + sb.AppendLine(""); + sb.AppendLine("-m|--module (default: 'app') The name of the backend module you wish to generate proxies for."); + sb.AppendLine("-s|--source (default: 'defaultProject') Angular project name to resolve the root namespace & API definition URL from."); + sb.AppendLine("-t|--target (default: 'defaultProject') Angular project name to place generated code in."); + sb.AppendLine("-p|--prompt Asks the options from the command line prompt (for the missing options)"); + sb.AppendLine(""); + sb.AppendLine("See the documentation for more info: https://docs.abp.io/en/abp/latest/CLI"); + + return sb.ToString(); + } + + public string GetShortDescription() + { + return "Generates Angular service proxies and DTOs to consume HTTP APIs."; + } + + public static class Options + { + public static class Module + { + public const string Short = "m"; + public const string Long = "module"; + } + + public static class Source + { + public const string Short = "s"; + public const string Long = "source"; + } + + public static class Target + { + public const string Short = "t"; + public const string Long = "target"; + } + + public static class Prompt + { + public const string Short = "p"; + public const string Long = "prompt"; + } + } + } +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/RemoveProxyCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/RemoveProxyCommand.cs new file mode 100644 index 0000000000..7d31d5387a --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/RemoveProxyCommand.cs @@ -0,0 +1,11 @@ +namespace Volo.Abp.Cli.Commands +{ + public class RemoveProxyCommand : ProxyCommandBase + { + public const string Name = "remove-proxy"; + + protected override string CommandName => Name; + + protected override string SchematicsCommandName => "proxy-remove"; + } +} \ No newline at end of file