From 2578beb4e04d2c73ec1f6268a6f130c47db005c5 Mon Sep 17 00:00:00 2001 From: Mikhail Shabanov Date: Fri, 6 Aug 2021 17:12:16 +0200 Subject: [PATCH] feat: charts by nations ready --- ...litzStatisticsProClient.StrawberryShake.cs | 16 +- ...litzStatisticsProClient.StrawberryShake.cs | 4 +- ...litzStatisticsProClient.StrawberryShake.cs | 8 +- .../Pages/PlayerInfoStatistics.razor | 5 + .../Pages/PlayerInfoStatisticsBase.cs | 5 + .../Resources/App.de.resx | 9 + .../Resources/App.ru.resx | 9 + .../Services/ChartService.cs | 283 ++++++++++++++++++ .../Services/IChartsService.cs | 3 + .../wwwroot/echarts/echarts-interop.js | 210 +++++++++++++ .../wwwroot/flags/china-round.png | Bin 0 -> 7276 bytes .../wwwroot/flags/eu-round.png | Bin 0 -> 7114 bytes .../wwwroot/flags/france-round.png | Bin 0 -> 5712 bytes .../wwwroot/flags/germany-round.png | Bin 0 -> 7252 bytes .../wwwroot/flags/japan-round.png | Bin 0 -> 8475 bytes .../wwwroot/flags/other-round.png | Bin 0 -> 7604 bytes .../wwwroot/flags/uk-round.png | Bin 0 -> 10299 bytes .../wwwroot/flags/usa-round.png | Bin 0 -> 10166 bytes .../wwwroot/flags/ussr-round.png | Bin 0 -> 6546 bytes 19 files changed, 538 insertions(+), 14 deletions(-) create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/china-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/eu-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/france-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/germany-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/japan-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/other-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/uk-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/usa-round.png create mode 100644 WotBlitzStatisticsPro.Blazor/wwwroot/flags/ussr-round.png diff --git a/WotBlitzStatisticsPro.Blazor/Generated/DependencyInjection/WotBlitzStatisticsProClientServiceCollectionExtensions.WotBlitzStatisticsProClient.StrawberryShake.cs b/WotBlitzStatisticsPro.Blazor/Generated/DependencyInjection/WotBlitzStatisticsProClientServiceCollectionExtensions.WotBlitzStatisticsProClient.StrawberryShake.cs index 0bc7af6..a9e6d07 100644 --- a/WotBlitzStatisticsPro.Blazor/Generated/DependencyInjection/WotBlitzStatisticsProClientServiceCollectionExtensions.WotBlitzStatisticsProClient.StrawberryShake.cs +++ b/WotBlitzStatisticsPro.Blazor/Generated/DependencyInjection/WotBlitzStatisticsProClientServiceCollectionExtensions.WotBlitzStatisticsProClient.StrawberryShake.cs @@ -15,9 +15,9 @@ namespace Microsoft.Extensions.DependencyInjection return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection)); }); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::WotBlitzStatisticsPro.Blazor.GraphQl.State.WotBlitzStatisticsProClientStoreAccessor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); return new global::StrawberryShake.ClientBuilder("WotBlitzStatisticsProClient", services, serviceCollection); @@ -52,6 +52,13 @@ namespace Microsoft.Extensions.DependencyInjection global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::StrawberryShake.Serialization.SerializerResolver(global::System.Linq.Enumerable.Concat(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(parentServices), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerResultFactory>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerBuilder>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.FindClansResultFactory>(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); @@ -66,13 +73,6 @@ namespace Microsoft.Extensions.DependencyInjection global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerResultFactory>(services); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::WotBlitzStatisticsPro.Blazor.GraphQl.State.PlayerBuilder>(services); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); - global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); diff --git a/WotBlitzStatisticsPro.Blazor/Generated/IWotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs b/WotBlitzStatisticsPro.Blazor/Generated/IWotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs index e25ad62..a12d0fa 100644 --- a/WotBlitzStatisticsPro.Blazor/Generated/IWotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs +++ b/WotBlitzStatisticsPro.Blazor/Generated/IWotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs @@ -9,10 +9,10 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")] public interface IWotBlitzStatisticsProClient { + global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; } + global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans { get; } global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers { get; } - - global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player { get; } } } diff --git a/WotBlitzStatisticsPro.Blazor/Generated/WotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs b/WotBlitzStatisticsPro.Blazor/Generated/WotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs index 19c8e45..f9487f5 100644 --- a/WotBlitzStatisticsPro.Blazor/Generated/WotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs +++ b/WotBlitzStatisticsPro.Blazor/Generated/WotBlitzStatisticsProClient.WotBlitzStatisticsProClient.StrawberryShake.cs @@ -9,19 +9,19 @@ namespace WotBlitzStatisticsPro.Blazor.GraphQl [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.2.2.0")] public partial class WotBlitzStatisticsProClient : global::WotBlitzStatisticsPro.Blazor.GraphQl.IWotBlitzStatisticsProClient { + private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery _findClans; private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery _findPlayers; - private readonly global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery _player; - public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers, global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player) + public WotBlitzStatisticsProClient(global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery player, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery findClans, global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery findPlayers) { + _player = player ?? throw new global::System.ArgumentNullException(nameof(player)); _findClans = findClans ?? throw new global::System.ArgumentNullException(nameof(findClans)); _findPlayers = findPlayers ?? throw new global::System.ArgumentNullException(nameof(findPlayers)); - _player = player ?? throw new global::System.ArgumentNullException(nameof(player)); } public static global::System.String ClientName => "WotBlitzStatisticsProClient"; + public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player; public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindClansQuery FindClans => _findClans; public global::WotBlitzStatisticsPro.Blazor.GraphQl.IFindPlayersQuery FindPlayers => _findPlayers; - public global::WotBlitzStatisticsPro.Blazor.GraphQl.IPlayerQuery Player => _player; } } diff --git a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatistics.razor b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatistics.razor index 4ef6793..d8b19f1 100644 --- a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatistics.razor +++ b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatistics.razor @@ -4,5 +4,10 @@
+ +
+
+
+
@*
*@ \ No newline at end of file diff --git a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatisticsBase.cs b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatisticsBase.cs index 46efe38..cb55461 100644 --- a/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatisticsBase.cs +++ b/WotBlitzStatisticsPro.Blazor/Pages/PlayerInfoStatisticsBase.cs @@ -23,6 +23,11 @@ namespace WotBlitzStatisticsPro.Blazor.Pages await ChartsService.BuildBarChartBattlesByTankType("battlesByTankType", TanksList); await ChartsService.BuildBarChartWinRatesByTankType("winRateByTankType", TanksList); await ChartsService.BuildBarChartAvgDmgByTankType("avgDmgByTankType", TanksList); + + await ChartsService.BuildBarChartBattlesByNation("battlesByNation", TanksList); + await ChartsService.BuildBarChartWinRatesByNation("winRateByNation", TanksList); + await ChartsService.BuildBarChartAvgDmgByNation("avgDmgByNation", TanksList); + //await ChartsService.BuildStackedBarChart("stacked"); } } diff --git a/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx b/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx index f8a4425..a65ddb5 100644 --- a/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx +++ b/WotBlitzStatisticsPro.Blazor/Resources/App.de.resx @@ -123,12 +123,18 @@ Mittlere EP + + Mittlerer Schaden dem Nation + Mittlerer Schaden dem Panzertype Gefechte + + Gefechte dem Nation + Gefechte dem Panzertype @@ -222,6 +228,9 @@ Sieg + + Sieg dem Nation + Panzertypensieg diff --git a/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx b/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx index d35deb5..cf4259a 100644 --- a/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx +++ b/WotBlitzStatisticsPro.Blazor/Resources/App.ru.resx @@ -123,12 +123,18 @@ Средний опыт + + Средний урон по нациям + Средний урон по типу танка Количество боёв + + Количество боёв по нациям + Количество боёв по типу танка @@ -222,6 +228,9 @@ Процент побед + + Процент побед по нациям + Процент побед по типу танка diff --git a/WotBlitzStatisticsPro.Blazor/Services/ChartService.cs b/WotBlitzStatisticsPro.Blazor/Services/ChartService.cs index 3022639..e0543db 100644 --- a/WotBlitzStatisticsPro.Blazor/Services/ChartService.cs +++ b/WotBlitzStatisticsPro.Blazor/Services/ChartService.cs @@ -201,6 +201,289 @@ namespace WotBlitzStatisticsPro.Blazor.Services await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByTankType", elementId, _localize.GetString("Avg damage by tank types").Value, chartData); } + public async Task BuildBarChartBattlesByNation(string elementId, IEnumerable tanks) + { + var battlesCountByNation = new Dictionary(); + + foreach (var tank in tanks) + { + if (string.IsNullOrEmpty(tank.TankNationId)) + { + continue; + } + if (battlesCountByNation.ContainsKey(tank.TankNationId)) + { + battlesCountByNation[tank.TankNationId] += tank.Battles; + } + else + { + battlesCountByNation.Add(tank.TankNationId, tank.Battles); + } + } + + int chinaData = 0; + int euData = 0; + int franceData = 0; + int germanyData = 0; + int japanData = 0; + int otherData = 0; + int ukData = 0; + int usaData = 0; + int ussrData = 0; + if (battlesCountByNation.ContainsKey(Constants.CountryChina)) + { + chinaData = Convert.ToInt32(battlesCountByNation[Constants.CountryChina]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryEuropean)) + { + euData = Convert.ToInt32(battlesCountByNation[Constants.CountryEuropean]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryFrance)) + { + franceData = Convert.ToInt32(battlesCountByNation[Constants.CountryFrance]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryGermany)) + { + germanyData = Convert.ToInt32(battlesCountByNation[Constants.CountryGermany]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryJapan)) + { + japanData = Convert.ToInt32(battlesCountByNation[Constants.CountryJapan]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryOther)) + { + otherData = Convert.ToInt32(battlesCountByNation[Constants.CountryOther]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUk)) + { + ukData = Convert.ToInt32(battlesCountByNation[Constants.CountryUk]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUsa)) + { + usaData = Convert.ToInt32(battlesCountByNation[Constants.CountryUsa]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUssr)) + { + ussrData = Convert.ToInt32(battlesCountByNation[Constants.CountryUssr]); + } + + + var chartData = new[] + { + new {country = Constants.CountryChina, value = chinaData, color = "#9FE3CE"}, + new {country = Constants.CountryEuropean, value = euData, color = "#9FE3CE"}, + new {country = Constants.CountryFrance, value = franceData, color = "#9FE3CE"}, + new {country = Constants.CountryGermany, value = germanyData, color = "#9FE3CE"}, + new {country = Constants.CountryJapan, value = japanData, color = "#9FE3CE"}, + new {country = Constants.CountryOther, value = otherData, color = "#9FE3CE"}, + new {country = Constants.CountryUk, value = ukData, color = "#9FE3CE"}, + new {country = Constants.CountryUsa, value = usaData, color = "#9FE3CE"}, + new {country = Constants.CountryUssr, value = ussrData, color = "#9FE3CE"}, + }; + + await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Battles by nation").Value, chartData); + } + + public async Task BuildBarChartWinRatesByNation(string elementId, IEnumerable tanks) + { + var battlesCountByNation = new Dictionary(); + var winsCountByNation = new Dictionary(); + + foreach (var tank in tanks) + { + if (string.IsNullOrEmpty(tank.TankNationId)) + { + continue; + } + if (battlesCountByNation.ContainsKey(tank.TankNationId)) + { + battlesCountByNation[tank.TankNationId] += tank.Battles; + } + else + { + battlesCountByNation.Add(tank.TankNationId, tank.Battles); + } + if (winsCountByNation.ContainsKey(tank.TankNationId)) + { + winsCountByNation[tank.TankNationId] += tank.Wins; + } + else + { + winsCountByNation.Add(tank.TankNationId, tank.Wins); + } + } + + int chinaData = 0; + int euData = 0; + int franceData = 0; + int germanyData = 0; + int japanData = 0; + int otherData = 0; + int ukData = 0; + int usaData = 0; + int ussrData = 0; + if (battlesCountByNation.ContainsKey(Constants.CountryChina)) + { + chinaData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryChina] / + battlesCountByNation[Constants.CountryChina]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryEuropean)) + { + euData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryEuropean] / + battlesCountByNation[Constants.CountryEuropean]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryFrance)) + { + franceData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryFrance] / + battlesCountByNation[Constants.CountryFrance]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryGermany)) + { + germanyData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryGermany] / + battlesCountByNation[Constants.CountryGermany]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryJapan)) + { + japanData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryJapan] / + battlesCountByNation[Constants.CountryJapan]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryOther)) + { + otherData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryOther] / + battlesCountByNation[Constants.CountryOther]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUk)) + { + ukData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUk] / + battlesCountByNation[Constants.CountryUk]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUsa)) + { + usaData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUsa] / + battlesCountByNation[Constants.CountryUsa]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUssr)) + { + ussrData = Convert.ToInt32(100 * winsCountByNation[Constants.CountryUssr] / + battlesCountByNation[Constants.CountryUssr]); + } + + var chartData = new[] + { + new {country = Constants.CountryChina, value = chinaData, color = chinaData.ScaleColor()}, + new {country = Constants.CountryEuropean, value = euData, color = euData.ScaleColor()}, + new {country = Constants.CountryFrance, value = franceData, color = franceData.ScaleColor()}, + new {country = Constants.CountryGermany, value = germanyData, color = germanyData.ScaleColor()}, + new {country = Constants.CountryJapan, value = japanData, color = japanData.ScaleColor()}, + new {country = Constants.CountryOther, value = otherData, color = otherData.ScaleColor()}, + new {country = Constants.CountryUk, value = ukData, color = ukData.ScaleColor()}, + new {country = Constants.CountryUsa, value = usaData, color = usaData.ScaleColor()}, + new {country = Constants.CountryUssr, value = ussrData, color = ussrData.ScaleColor()}, + }; + + await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Win rate by nation").Value, chartData); + } + + public async Task BuildBarChartAvgDmgByNation(string elementId, IEnumerable tanks) + { + var battlesCountByNation = new Dictionary(); + var dmgCountByNation = new Dictionary(); + + foreach (var tank in tanks) + { + if (string.IsNullOrEmpty(tank.TankNationId)) + { + continue; + } + if (battlesCountByNation.ContainsKey(tank.TankNationId)) + { + battlesCountByNation[tank.TankNationId] += tank.Battles; + } + else + { + battlesCountByNation.Add(tank.TankNationId, tank.Battles); + } + if (dmgCountByNation.ContainsKey(tank.TankNationId)) + { + dmgCountByNation[tank.TankNationId] += tank.DamageDealt; + } + else + { + dmgCountByNation.Add(tank.TankNationId, tank.DamageDealt); + } + } + + int chinaData = 0; + int euData = 0; + int franceData = 0; + int germanyData = 0; + int japanData = 0; + int otherData = 0; + int ukData = 0; + int usaData = 0; + int ussrData = 0; + if (battlesCountByNation.ContainsKey(Constants.CountryChina)) + { + chinaData = Convert.ToInt32(dmgCountByNation[Constants.CountryChina] / + battlesCountByNation[Constants.CountryChina]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryEuropean)) + { + euData = Convert.ToInt32(dmgCountByNation[Constants.CountryEuropean] / + battlesCountByNation[Constants.CountryEuropean]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryFrance)) + { + franceData = Convert.ToInt32(dmgCountByNation[Constants.CountryFrance] / + battlesCountByNation[Constants.CountryFrance]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryGermany)) + { + germanyData = Convert.ToInt32(dmgCountByNation[Constants.CountryGermany] / + battlesCountByNation[Constants.CountryGermany]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryJapan)) + { + japanData = Convert.ToInt32(dmgCountByNation[Constants.CountryJapan] / + battlesCountByNation[Constants.CountryJapan]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryOther)) + { + otherData = Convert.ToInt32(dmgCountByNation[Constants.CountryOther] / + battlesCountByNation[Constants.CountryOther]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUk)) + { + ukData = Convert.ToInt32(dmgCountByNation[Constants.CountryUk] / + battlesCountByNation[Constants.CountryUk]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUsa)) + { + usaData = Convert.ToInt32(dmgCountByNation[Constants.CountryUsa] / + battlesCountByNation[Constants.CountryUsa]); + } + if (battlesCountByNation.ContainsKey(Constants.CountryUssr)) + { + ussrData = Convert.ToInt32(dmgCountByNation[Constants.CountryUssr] / + battlesCountByNation[Constants.CountryUssr]); + } + + var chartData = new[] + { + new {country = Constants.CountryChina, value = chinaData, color = "#D98D8B"}, + new {country = Constants.CountryEuropean, value = euData, color = "#D98D8B"}, + new {country = Constants.CountryFrance, value = franceData, color = "#D98D8B"}, + new {country = Constants.CountryGermany, value = germanyData, color = "#D98D8B"}, + new {country = Constants.CountryJapan, value = japanData, color = "#D98D8B"}, + new {country = Constants.CountryOther, value = otherData, color = "#D98D8B"}, + new {country = Constants.CountryUk, value = ukData, color = "#D98D8B"}, + new {country = Constants.CountryUsa, value = usaData, color = "#D98D8B"}, + new {country = Constants.CountryUssr, value = ussrData, color = "#D98D8B"}, + }; + + await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildBarChartByNation", elementId, _localize.GetString("Avg damage by nation").Value, chartData); + } + public async Task BuildStackedBarChart(string elementId) { await _jsRuntime.InvokeVoidAsync("eChartsInterop.BuildStackedBarChart", elementId); diff --git a/WotBlitzStatisticsPro.Blazor/Services/IChartsService.cs b/WotBlitzStatisticsPro.Blazor/Services/IChartsService.cs index 7687285..8fa6e84 100644 --- a/WotBlitzStatisticsPro.Blazor/Services/IChartsService.cs +++ b/WotBlitzStatisticsPro.Blazor/Services/IChartsService.cs @@ -9,6 +9,9 @@ namespace WotBlitzStatisticsPro.Blazor.Services Task BuildBarChartBattlesByTankType(string elementId, IEnumerable tanks); Task BuildBarChartWinRatesByTankType(string elementId, IEnumerable tanks); Task BuildBarChartAvgDmgByTankType(string elementId, IEnumerable tanks); + Task BuildBarChartBattlesByNation(string elementId, IEnumerable tanks); + Task BuildBarChartWinRatesByNation(string elementId, IEnumerable tanks); + Task BuildBarChartAvgDmgByNation(string elementId, IEnumerable tanks); Task BuildStackedBarChart(string elementId); } } \ No newline at end of file diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/echarts/echarts-interop.js b/WotBlitzStatisticsPro.Blazor/wwwroot/echarts/echarts-interop.js index 6686831..97aa7ad 100644 --- a/WotBlitzStatisticsPro.Blazor/wwwroot/echarts/echarts-interop.js +++ b/WotBlitzStatisticsPro.Blazor/wwwroot/echarts/echarts-interop.js @@ -129,6 +129,216 @@ eChartsInterop.BuildBarChartByTankType = function (elementId, chartTitle, chartD }); }; +eChartsInterop.BuildBarChartByNation = function (elementId, chartTitle, chartData) { + var flags = { + 'china': '/flags/china-round.png', + 'european': '/flags/eu-round.png', + 'france': '/flags/france-round.png', + 'germany': '/flags/germany-round.png', + 'japan': '/flags/japan-round.png', + 'other': '/flags/other-round.png', + 'uk': '/flags/uk-round.png', + 'usa': '/flags/usa-round.png', + 'ussr': '/flags/ussr-round.png', + }; + + var seriesLabel = { + show: true + } + + // based on prepared DOM, initialize echarts instance + var myChart = echarts.init(document.getElementById(elementId), 'dark'); + + var chinaData = chartData.find(d => d.country === 'china'); + var euData = chartData.find(d => d.country === 'european'); + var franceData = chartData.find(d => d.country === 'france'); + var germanyData = chartData.find(d => d.country === 'germany'); + var japanData = chartData.find(d => d.country === 'japan'); + var otherData = chartData.find(d => d.country === 'other'); + var ukData = chartData.find(d => d.country === 'uk'); + var usaData = chartData.find(d => d.country === 'usa'); + var ussrData = chartData.find(d => d.country === 'ussr'); + + // specify chart configuration item and data + var option = { + title: { + text: chartTitle + }, + toolbox: { + show: true, + feature: { + saveAsImage: {} + } + }, + xAxis: { + type: 'value', + name: '', + axisLabel: { + formatter: '{value}' + } + }, + yAxis: { + type: 'category', + data: ['other', 'usa', 'germany', 'ussr', 'uk', 'japan', 'china', 'france', 'european'], + axisTick: { + alignWithLabel: true + }, + axisLabel: { + formatter: function (value) { + return '{' + value + '| }'; + }, + rich: { + value: { + lineHeight: 10, + align: 'center' + }, + other: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.other + } + }, + usa: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.usa + } + }, + germany: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.germany + } + }, + ussr: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.ussr + } + }, + uk: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.uk + } + }, + japan: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.japan + } + }, + china: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.china + } + }, + france: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.france + } + }, + european: { + height: 20, + width: 20, + align: 'center', + backgroundColor: { + image: flags.european + } + } + } + } + }, + series: [ + { + type: 'bar', + label: seriesLabel, + barWidth: '30px', + data: [ + { + value: otherData.value, + itemStyle: { + color: otherData.color + } + }, + { + value: usaData.value, + itemStyle: { + color: usaData.color + } + }, + { + value: germanyData.value, + itemStyle: { + color: germanyData.color + } + }, + { + value: ussrData.value, + itemStyle: { + color: ussrData.color + } + }, + { + value: ukData.value, + itemStyle: { + color: ukData.color + } + }, + { + value: japanData.value, + itemStyle: { + color: japanData.color + } + }, + { + value: chinaData.value, + itemStyle: { + color: chinaData.color + } + }, + { + value: franceData.value, + itemStyle: { + color: franceData.color + } + }, + { + value: euData.value, + itemStyle: { + color: euData.color + } + } + ] + }] + }; + + // use configuration item and data specified to show chart + myChart.setOption(option); + window.addEventListener('resize', + function() { + myChart.resize(); + }); +}; + eChartsInterop.BuildStackedBarChart = function (elementId) { var tankTypes = { 'HeavyTank': '/tank-type/vehicle.class.heavy.small.scale-200.png', diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/flags/china-round.png b/WotBlitzStatisticsPro.Blazor/wwwroot/flags/china-round.png new file mode 100644 index 0000000000000000000000000000000000000000..9a562c1d89382b66ab7c73758c6f50ed55c05566 GIT binary patch literal 7276 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�==L=pvbm+kaH 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

c7K$&Mji$UDEMK<K1qtXPYd#jhY}Z6U!~ zXr~@_V56^ZqmX8YrPwnbtfEbB8Xg4OI+1)_&I$Mt3w=mH%VV(0qslP$^0+c+6IF6F zMPrhSie&HJD4umO-193?)7XY(FTIZadv+qTFbn6OKM?~53^bv8{P=O~rN;$WA+GRM zxa*l}bdMfAFmBv93>h+nYmOxT@72ZF^!^9vINgjdly<-T8szF z%ga$*Tx`mZ!df7eyYl>zBS)}(`*!Tvvj_Q+OpL!^GBQ}!Hg4E}_uhF2ZEY=>|E&eM z=)!3z+ zYLvM<(f|_+homI03S>!1iFu}6mbaDbO-)T$yKX(!tXoTMJd9)RC)(O*%(t;;?>@}C z=6YN{cLqxLv*bPVB9hfR$>e14Br5?OLvQdsRs{Z=0jtrq?7IRhcxImO6H=#qjI_SN zyk&v-7q)V(fl_3{K-S}`hZU0p67azO$h+ZcoX9W6t4o%ma?55+tQdna6%6Y`2T4xH zG3opT1HV`4<0%cW5-m0^&VS3*n$=Uo-%bh zdDFo=Yu4j*GLC*@hZ|$H?XQL3)M$v)Ay5r%hF99r$;`kKE>Ac80XS|ZqMY^c3$QW> z?;hT|lhKi#;JpN2^DVA|*e%9#5X5p3{pTMbdEQ{W`ohat{q8zUnlc%~1`ok%5>@X$ zWtcp95<|E@nYbG^Y}knU`g#K{1Sk&+T)5Z>*V$oSS1^|+j2)+fjB1AXE3dzXef#(0 zic9Cb3`y12)|&iOsH&YjdD5)DL|&@Pr%s(R=M4=Fru8NX?%BN?Q>RUZ z#l2*=?%gnW&>)a-Yq-+=>oXY)qPn{zq))?)oT8!-Cf>F8hH7tK|B;5MFO z#(Cr$MvcwJ_hVY?BIq8qt=jo;HZDStGJvnPoMFs>A9AZwrfjg7vj#4YszhKY$L3v* zMEMXry6{OPJK8a8_GLJ7=r94~;_9ofHteeqRcK1GxYCjb1@HisJ$UdSUU=aJeDJ{s z*tTt(Xf2f|d)91Z zQOAyLm4uTVG))sT!fOG0+bINgxx!Kn!HswN(4|M1;eIiVcl&b+iKS& zFcO8mo(Z7(3cNx$e6DvyX6hqjC24^2L4z^jf(uZ){~%^xJOfpgTky&oOVI!JzlVGC zO~^amz;Z-``w4DUNwOU&q?oH@psZ+d$=pa@-kVOvrE^Q`vvYpZR8m-YGCvRXg={5- zXka^8Qo!qcoaUrk57c18%GD?zI)ph`gk$x`aWR*aQ8#MxSnFivt3p^{)TF39b@=dM z<9X%ehaY}uo(ZHFTH&jsM7gUmpa`u6rD!WEK|PIGS6GY_+|+!Sk(pC#*^8{4+}ueSv5a+=&H5uo zrihVwZMK2B;><>gmeWo6(T{(O%F3-M?bZ!fU3C@7W4#GgDJU<>VM8W?+t-BgJ6t&_qy<_eCa>yTX)%5Jbh8jq?kk^VC>cz|){*GI4L96?TpIMT-*aoj zT~$FzG4B2MU!sU0-5A${)IqvRfBmlrmC+>BFP-SGwp+fKIIy_2r zRM?71W${ZcnPnCvbu1Y&#->f1%vx9qtAq%gt`){wBxo#!ry@W#Sq4(xcJJQZcv1OZ zU0sd+thw4*38cI&!rQ!gGv>^hgT{tN=5HycO`V1(o_GS^ojDV?-FBOaoDi6f8e4`E zf~4 zuW|IgfT_R0sGmS<9`(~vAuc1y!_sTgq)Ax6e!T&p2+~o}qH`JUmRoKy5hMLVz;Zyi z*inDYcgAt!+(nBPm4#rtwlh{SgGh9)^0RN>KBJW0(ZHHO{pC?DG&F&{sB=lbe*Fv( zEi43B=jtyJF@>I%AvB&yONP{a&84xFG6JZ@ijJYd6&d1$B}*pX5n+%~`m$wxO ziW2qJT;i1F%a@<+FX@V<>wQZ0M=?v$!?1l)q@+9~aG_^I%PYL~PI#2)zWNEgyd~!C z3Pwr^{GmgK%u)A4?}ws3>Z^G)zs{AHT7TMjfU7A56hXSDC<*(2@?D*G z)nCFzmHn?_$F48vC=Z4Abgqwa3R@|sRg?x1YinYi%agLco-23z_wR2Qb;O7f=G}?h zAB%l8h72JR)TTpWseUqm79j#2dR1(%am5EBIgKr^YE7Z7kEq0XP%xQjVKE1Fe; zKuJPtsDtjQ>D~og)`^(Jl-FK+t(kb~(xoQMHL;E&me7mxsJti7D|7`$PdDT2}BL*S*n!cU$MpfFE0Mwr{- z7$P;jqd5dh&jm(a*K_sLJQ_;|(z`OK%HAOEnRQ==R(%iqh5B{@zRP6|tJQ##@L?FD zUGE8y2D{{vON?StP!`uDx)v!3uyRYF70%)FRjXDRz$!iAGE_}{#k4wVZ#;0|K=ZDa zlwsXgG-+PVFA*5AzVy;~FTM1V=@S}6Af>NFeM0>ud{*mLRaI@_jhl3{>%-8?p>=f> zLn;KdURH^bWfht#73wSHwb>uay=z!PR6e9wIKI3r(Y1goe8avnkd&^ds4yi>OG<$g z2Z)@M9s;gXro0#HuU)&==pYI8m#z|lmq@oWxVBh7z2}}uWUh65=xXC{Uebr?Gve?x zVAF^7rxreq{{8x5{Q2jjYUd8jojcEv$*x_yj5m~Lnp_6bBno>i3RGhSM0vbn!v-_1 zlo9~dc143CL?jk&IwaCXp02E{G~qp%JEZ+2$=60{`%{N(FI5g46%3!M&8o8 zS?3C68AS%v{V;?T&dSqn-Fu)tk;K;Z8`z%_64h7Cbr?CS0vAo62It^@xV0Z5?-a*B zQi~XIM30|9gi(;eW9(G@p;+C?Ut4!MZgDKYe`ol?jrwpWG5$Ss4%>x0a0s%lnTu*p z`1oVL$G8dO(6@I_0yu=3(`TCeQ}~1-73PxwYOgHimFMf$tutv6hM1btLQO=c@V@od zTg`KgWv1s*Ek)yPuiAkXZ@-Pfw6r6gmxIz#!*TLh1FD(7 z18H@iKn@-}WHu85C{Uqi#j+bWZZvEuuL`uh7&33TbCRJ{demR*q^hdVyljs&k`K8-_w`o#c)o2kfr<`|xZ_OyiuiE)dwp1d@P z#!gw*1!*(t z)lZcsffP7}y>e9RVlld!N{jMdILyNp*G&LDgOV78KErUmfA6Pz^ys#dA%*NNh zeigbMt4HITtIStRdB`JJ?v9P_X+^2RKM1xG)8qd@Dl!Fj4A7E9(2c9r8J#~U5@1?_ zZ_)ea%4ums8yPlt`dDOGF;s1@LVGHS$=t8**s;UpsJ3ij2+AV@D-cpzxhR8#Ue&d{ zse1}-8AU58y(g9rc|c=m`=>HEWx_K4iMFxNfxRp@K^ z8NMrTYbT_>vu4l6YL=j#duwpjl~>}jiZSrt-GEce-bA5NK_B7eBtaxjZbqrMKFa&_ zZu&PrguhQ%m8M2+wUI$@-ownjlY5?Q{pnHG5MV77qc(Rx9(OKzWYudfMZ8xxtS4i> z&t=^J=3vE`F*tHqe`RRFkYPhHWKcN@Sau{Lp)f}krXeZmTH&vwqCkdFqXpF9fHffGK=+uA{()_vLNn{Z7{Rs;cd1ZfQc_{(a#v zh(%$jmOvi8@YdC8judz1mo(4}7bTbTGK$@5MgVrB-`rdZ%Uco+Q6 z&o7j-9+rHEjwF9Aph~}@B??s-^oKOFUSZD|m2)i@O*E;)l}_%|Nk}t~s_EGkD^{5= z{r$>%qffuyU~)3A>kZ*3UzMLBJIk8_s!&%rE8NxO{k+m5^eOEDi`G5Nx>|F1KcXbH zOD~^|G3S*byXFYI6>C{*4qSdYiC@-RK0ki;?=wUGUESx%6Xz zCEo^eXrxC8c)lJgv;|t(A>di&+(HLIr;EFxWYPq9BhJJA=2mQ7_dX8o-h<5S7aZBRt*!xkYmeY4b3dI(VZ@MfOuO&`bnlUm$ord- zc&8E(atYTBNU?gflc@A(l>`l_U}Wf+vH9<_bl&&>E$~~-jWhCRfF*wm^x=c$G+cRv z5vjPh$y`x_3|IqW98}}lEb{Hjy^0aYpF9!GT%;U6R)@-}Du(o7Lug{|*(4n0ut-TD zwJ_1On(C~GP9&ve=;>1pu-T`KiTGb+acs@Ih}G=wtjj7l1l%s|IaYSc zhg_(Y1EbQX-Zex&>*x3aKY0k{W(%Wvc#dF4%Cq{h8~Mxp_{>!f^2j@;Yz0mfZ6(Es zjUI-`fb)>Bqd3u6kJW2do3LH5V1fBipzqbn=TMZpGJrnu%EKx@Sv=0Z^kQ`5LZ^rx z#@+*H-MkGMr<*x{(g0(A60CIKDvD`DIz*3)*;JSy!Z;&5t@BB{-MoXb&$ zbjZpfBZs2%khQ~WbB`(Gw{@VU`T*i2t(2D_NDp!LNu*iUcucXM#dE_fd|m5eN;Q{| zzhrym=bfZ|PWdbk6LiqVIC_~w-_40OC4<0=Q^`0dR8fmFl=O2Z>H{uK(azBX!uLJ0 zrnvGWAZn5jU{?t}ZG_fsB^f12Mxr*BexsyI12bGXAou4y%ClNG>ofs>lNDHZv%P$8 zfHpJEr^sglmOSNqtyJcZ^x$`C`;~08GC}c~S!eT@BnbT;MER8@9x0nle-yF`VR<<8 zb|_uFtG*H~2|fL4o@3~#xWbU8x#|=%0xx9@a@R`Qg1QBN{7(cQW8`zm=K_{IZMZq8 zJL-3243@^?VwcQ?0l#@!eamsU|4=Sz5bCGKk4Q0xg;P$fn{%FRJBe|lS4R< zX_oEtx`D=iSUPdo$_Hp?z5jXgg#b&Qr!LQR{>1S|)b|$7yNWD%ica>$-136hoLd1C ze&z?>>=T5_#BwWD}LCbtr-?%V+AGB5$lBx?9+O^k01Z(3ukaMdS+u z4rLK7`CNe4nJ+hUnxFBwgzN1F&8Q~Nq?E&6+IUz%L|$D?*$Ku+YFA-4gQ1&zL?pKaSw_$G@OgyULda9Llo@YM%{)N2&6iTA zWY`hPP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>DAh1b9K~#8N&76IV zrB!{$fA{@mUiW2Ym)%)dEEIvNyohl&NTCG@NvTwsjS^c@YbXgZ4aCG4`bSL@Q=UwgB_M0}lYk%~ECoAW#S}07gJru~-~} z!g=;l957m~mIKmmx4nufUMbuk+j6h^2Bh0Bzx?u(&ZLtH%>DP@f3r5XNcg!3#Hb>X zC0yeiAkju3MmD^LH5>y>v)S}x?xWHdg{|tc>TMtT(1&jKlP95^6kzVT=bi;Ab(@r% zLpcfxp=@MKWDNzysj!1{)Yuj_u>~;B(_b_z00I<_Bctetu{f^+K(~D4BOh7xf!;!S zOTfrvaGrZ4*nFH_1VkAWLy@?T;xHpB9$CXZC`a4TKB$pV5zyEV?IMG?FM>nmoa&O~ z+I`J6*Su*T^rnGXTwGi@a^%P!6h(nJvj{1nhOw z^C;An67BVh^%@c;rCg+lFUeTJ(pKoDtf_6Mn^?QowM-!&n3d{Vtx~nB*pMF^w{)*> zxm4Q9xq_7nidMO-nfj1MR+e}x6-M>ZzyZG-FGe@i~O^+3)wPn9W(L)3s{7W{s}c zP!JQ!!H-bV!Ykd94`|B7lCEaCY~#~YR-PEQ_0=_N>YheNj1YL@o@M*;ExEiER8uf5 zCsR@YDs+1`C57=ZM^Y_Y>9r(-Ojh^x#3V~PeosCx=H*HPOWRC{T!XSKHqM`W?ztxf z&ItkY*kg~)ZQQtVNi#kNAlSa!bX^IUXy1}@ZrA;^Z&9`@1!qfHOS*mQr4?Q?a>im$ zOW+`GHk-H8Hf-?z$$J3?GoZR@rZZM87cARqTS<85@-nfKxTrp5u$l~+YIasUHbgwVCdSnx4G&?jguKy+lg`zR>y^mSSzh6?V5=v zL&ij42HT}G&NyRNxasxFuLb6=yYAYfPDtL|r_kx9O`A;YvDw*Kt7eqMwZ#g}Bw*D= z=fm}in-&hX(W+Z+dBxKI^{lmi@Dpo3{j8-MHS1-%R_Qh@mzJq%mKDs!7M!-2BZbS_ zvX65a6I{a7D&u38y69{xeefbnpLeDu8z)3gMJzd28K&eAu#E&GvraK(wQScW5;<}e zCJ`NC1t8VM^Upv3S4OK}35=4r1%d>B4u~Syx?R*{d(HhWyT9^--xcEtd#P_1Wkuml0cw z0-2~p8BGBqP|{_$7NW14=e#a3Kl;&+=JxO3zwh9|gYHl01WIDJ07b{s)6+J$eW%S# zOz2wLYB@RFY|l2g#OQzfPkZdke{VZ}`jpkghIPqXRV8ZW(>WVYDcY#tmWG#sDH_Rz zN|HoTPTs@;k|z;Bi2x~iKGS>L$9CjM%-&Hni{mMc!$p-RJ6+5%2~ zXr>rq9nvL&@65X-Oin1lQZCX_dY{Owu0EwcU<}*SOu4&)REO0233enK702I!dW92FU zmFs0}MO;}^_+L#o#juvufA+k+@{5-&d;aORs%6TnYlm$`W?fU3-sH(3i&E)F?v)qo zM#{N&+;PY7L06QOr*HEb9H;A`5Q!#><2JivyKS7=2=G$e?3EQcw%J$;+d5lD1D|s@AYpZrslN%WJKB)d#Gp8(W&0v3yx6Ku%e?{&`l(I>ybi zWu={03nlLZa}t}h#o?C()R$#V0 zlX@a2YKk#D1!SGaBDk)+=kVdfURPIFZEbChY@J85UL2Tje)F4iLTdr0fFNrN&kmLD zudlD$q5TJ}UDet~;craNcatdmi|_ovJ^os4)#?RxBSp8F!liPVXR>XpC<7k4Re_?V zkXH(`&nlXA4+=+6e5>OOW&&V}IG7x!#X^bbQqcJcL=g%p4m#(#sny=&1t-nOdTCrYHzYuYu)kmfmf_r?^#{#JA1!p=REZ@o9+rE&0AjHy{F}YR!laXD2-22wqM@s zWhr??ku4F|Grg=#PGG1AMy;$Kx<<+gJ!>@bsdiycy_~8B9dlP?FqN;KU4!_f(cP!lZdAfk5`g> zn(=}hab6XE!NNr2Rb;p|^{QzJeZn+FFxW;vm{8@>AKTo9jdsqA_`G4-wr!rZsi`R& zQ&d7{tOUkjW;`KOSYH4KN8^!49_e!trch|iep}SdDE?QKNs_-b{0hWM0}&;U67^6~IFIAo5#zUU zw3sr-3}8ZBqByBib9;N4nK*q1b5&@_Cxfa(= z+>c3-RpX1OYnsT00C@h}kJ$dz{nlKsT2n4zt=X_{gGZy`;XEvXIp~cWk*}G{?B2cm zZ!`nv0?Z(mdyV^f!k-2eb*%Ek|FPbZ)+KU)T{+Z}EDvDdh0|G;na31rTE}GN5JkAq zMgrnrSh8s2LimhJS!SKz&IaxCE3HPbg8ncOl0+b&c%&0R9MPUN6>ae|^x|V_51?vU zfxmLZGV|wJM@%6%YAB7sp-Twwj}rApE++?Q@tifjz~UrqiL6O$5n1vKIB$h#mKBAR z;Y!t<+QIRzI>YzWB`jr3vq-K{(9FXHe(*kR*#d1~433(aZA!qF?ghxeoNW#uuQ{6A(kF4?ZU^xp_#Q*R}e8JZ&xMSW((ht<-HzX$UzQ z`3reXd`%N;T42nv6W`fH)DRBTd4eBoQ6cqURZg^L<*Zz)!ZINjKao{?z*^VumLx9f zSh=!94+`?Tr*>q!if?XO4Vf>B`C`szILtBt#mYidX`TRLSrM2+w8?4K^E%_}CS7-6 zWxjp&iBAMf*y}DrS92vr*q<+3sZ`WjPf3r`g!OvWjvP7Sc^WwkmB+F5dL5AF#Ml%| z0k<{40Xd3?Y@O#7L@(8`qB^Xtu35cYP@dAYNok`N8eC3N!YHW@!iaUOr&z?5bv>9D zZ9=&22;_#qUlnVr+EQy$oKbl&nFv4@h;9Y~xUT&gV2W9~EJo0;n5nu!{S)l~4S--| zH6{O|ia#qUpPJB5x2|bZa_Ux4-6Jsw*`5{G>+_nFVCM)9C|sl=Xr~p8 zV3542b#PX?&buKb1%Lw~h1mwvAd&?W zQL0Jnz+gG3C@+Q3Ule<&?1$w=aK`Ft@OUG@!WEC1|SUD0*-?+s1BB&34nDq zPDl4)LJgT!aLV#M+INSnLA|Q2=Gw=lh94hPa*<*(o=jh3QhDyfIr8H~ax(2yCK`pi zgV4-FFmy-fsCz7~4?s{OKoK#3!F#h!c-bY5`q{L##26AcUY+@KS_uFHVhL~r=HwVa zZBh~_ zD!C3ixm9TEW+Ht&0yTnVplj5hEuc}IG3+>++ERv%i$Pf-0uvo zF)p>KaRDbX3Hd4XNWUeGL;gcLF+H=%U;FYk1&=#m7bTK{d(oMy{UvSFyyzY}ATGq? z;$Vs33pm~bkCl8Igr~$ebyrG7u+WVMSu&@ z$yDP*aKIrkgX)@SfA1|UG!bET{q+XsicT^KzK+0`p*XB*D9o|GBG*xh=1idgByTc# zyGbPy;Sl%`pj%*hf{`k;?|PT#w^B*Yzbe0;;0Iw zlsr3AO`1J(#%Z>y!6wpW>uWIv2*a0T8YEI#)9?GiyauPj5Do%B!6Y{=KpLFqhaUXV zLsxg}LSUkx<{VW=!F1GaVE)vYS_~xc(v_k-$7yaDv%;(vGrGu2Joh1D37sh$FgHV(M-pg|b-fVQMHs zq37U?S@YmuLa23cG%htnDwO9=&7}GU5P!$5bFc_ju=RFK4B)8k(6k4Y=*0Dj3(hf{ znR1`m(_lFPGMd9sBESQXmeUIh3w(y<^obQ(VRt=}I>p$oOeCv;s-?Vb+I69=N-PE? zN)R=U0cS)o7LHV|1vMi(Vj>8DCE} zcKX+Jfn)T&w|g`|kZVr#r)z#%rS{hUu zb?a2xw${{qyz6vJwoLm&CH-ElV`XNfN>{ea1?G zJp$+G3%46@ym47(!(VhbGXRLngB()mgyXh`*9tqOFxuU**-m};*)AwEj}t`L=!~O~ zqlMY#g?FBg>k}9xQ8*B6j&6&3Vo{w-S>OHKX1KvY_(E( zQWVxzBCOJclopU}Er_E}A;3^EqpPpJ+P{?v)1e~9+zv1_rhq6P6t=5PTWx4L-t1Vj z%iFw~s+e*4C6+#Q*7lF5Y(3R6-nj`rt4c6dEty{4suH%QWBd_p8dmima~}XiIKs6* zo*ej+y3VuEqd;-;AKLh20IJq)yn*0ZGAYEG0P3orhCr%~XKlm$xpw%fORQK|jxE>F z$tg7y+Y^~;o6kWK@eLgZVVbJr*S@=^eCbPH+NW9Kt)w3#P%QE0h%U9X@`^ow?>}4a z;2|kX&QQ=zVw7xbrk~fDjw>^KMnXSS?J(m!9*EADEd|AC6SnXtu*!dnL2TWj!xS-N zS{;!VtmOJOu552osMSxKwG03DMyr;$M8Cn^ULp%AY^j5D%U51`m1So=Fby4H9#&;40VPt(|Njw>5VB+ki4zTPTS6pUTrTGio*zttjHWIV^cUE zbyFGYPB}^mm4_aB=!Zh>lR|J30k|;&#Lc4vu%Fjd)i;h?e$$k#{PJaAo1{7^u=|^98NA<^4DP z@uk+vNEj(ok&rx9!=KQweU7gB_x@L6ik{_u&mI>LY(MJ)<{XRFO#{(iGlW-O=UW}+#`7i?UN zB|nKihW<(9c!?j+OP{3=fB3_%`8e@4jG+k8-JlxlXhs|XqVgFl`ATP9p`2H;XV2O8 zKlwvzowC^~TITa$i_jVT%pjb)f+!vQPRw&+vdGiB+TdwkO)F}a0e})1C368Nq1aa6 zD-%UacAaCVU-w5=*g9wV+=NvWj_ci~m6hB@*{R6Rqz)M3*9L5Q-H)J;@iDPH{P4r; z7hinw(^B65444|3LSf&*QKD3o`P9igNz61;^>W%K&fIP@V^h{$-mf`Tai(EFM=45g ztczknX>yRT<_bUp5?gr1kGE0HmWo!MnzZRZyFy|4JZtbmP%Hkn?58EaGp@A1e{jW; zT=)PgmKc$ceK66xufP8K;dghV1a{|ITt_msZagppUlVdna_OYac$h+#4-xfC@^u$br)1- zRLo_qz{B*FHLJh4&zjFKTkqhiWtBAYS1N#@8=ML8NudAe9HBoqK5pexW^L;9(`@6J zJFT$&6l<4q{tP;&yq_@vhcP1?;xX4EXruXzt}oqk%PnvIk1Qyk{`9B$^osR^e}Xj% zN@UDn23`Y9DXoQCK{H*_N}0#UqHn&^u*{LVWvVS}9oX+tf<}Nmw*8VJqa`VkM z9|KM-5g4|yA|ygli&_@&=#gh2{1FB3qkP@NOFPv<3Udk|(w;Sp?+>=k4lm}zcPsv^ zMt%%|d6$lfBt5xrjmNks9c7?!JUVHEYYxiiKKHp_3kv0gfT7%U(@n1dhr#2Z6t<(l z)U}3+PwR62q+3GvMR@@P2rU5v0P#6<1PJC(ct#vv((?{oV5tqv^VhlRuFwmAz|Oc4 zm^e{UHtN9VEUV6c;R|1QLr^Fu3=Bo9a6rK!4}A_oP$^LmgmMMbno%jnR|u4xB3NPY ztTmn1no1ziE&@X3-eJ}HCk8GS#@?@vX%A2>WrvIxWr*Wb=!-Hq=YK4EqM%TIBVb~= z;f5PLT18Yi#L@q9fn(N;jN?F1*iDq*89f$4Z!DY4Cw{9G|fk<(xrT4R|8SjzjB~W3j`q*> zcrQiQ{9hQ{amO7eY&yr6w**WqAOHBrVb5(6?wF{Bz$ic+6`XyPwu|?~KB7~N z_r>e6&EP)&rx$nLdFPvA$!Iw#z{GOhb=Ud7Ns(|vfSBb`C88p~3Y2)AE%(Jr;ruAG zD1+<%Z&L2N@4o+E|0d=5a_zO(^7-1$QoY_u9H@VZA>aUGSwNh0X1sne`#*P?`uKlU*v|j}002ov JPDHLkV1ngdKy?5B literal 0 HcmV?d00001 diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/flags/other-round.png b/WotBlitzStatisticsPro.Blazor/wwwroot/flags/other-round.png new file mode 100644 index 0000000000000000000000000000000000000000..eaf69c16f01519dbd12833c1a2f2413c09ebab05 GIT binary patch literal 7604 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 N002ovPDHLkV1gUv=W_r6 literal 0 HcmV?d00001 diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/flags/usa-round.png b/WotBlitzStatisticsPro.Blazor/wwwroot/flags/usa-round.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc713a0e6b79fa2598d8c43e87ec9475dd38c87 GIT binary patch literal 10166 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 literal 0 HcmV?d00001 diff --git a/WotBlitzStatisticsPro.Blazor/wwwroot/flags/ussr-round.png b/WotBlitzStatisticsPro.Blazor/wwwroot/flags/ussr-round.png new file mode 100644 index 0000000000000000000000000000000000000000..8947e2e073054431be086f5f6f5f5193b83a19cf GIT binary patch literal 6546 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 Ef