diff --git a/BootstrapBlazor.Extensions.slnx b/BootstrapBlazor.Extensions.slnx index 20d0028d..61515384 100644 --- a/BootstrapBlazor.Extensions.slnx +++ b/BootstrapBlazor.Extensions.slnx @@ -50,7 +50,6 @@ - diff --git a/src/Frameworks.props b/src/Frameworks.props index c9c8e368..d11f0344 100644 --- a/src/Frameworks.props +++ b/src/Frameworks.props @@ -1,6 +1,10 @@ - + + net6.0;net7.0;net8.0;net9.0 + + + net6.0;net7.0;net8.0;net9.0;net10.0 diff --git a/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj b/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj index 515ede6b..98f35d81 100644 --- a/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj +++ b/src/components/BootstrapBlazor.Region/BootstrapBlazor.Region.csproj @@ -1,7 +1,11 @@  - - 9.0.7 + + 9.0.8-beta01 + + + + 10.0.0-rc.2.1.0 @@ -17,9 +21,12 @@ - - - + + + + + + diff --git a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs index 53f1ac6a..5ba16656 100644 --- a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs +++ b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs @@ -59,7 +59,7 @@ public partial class SelectCity private string? GetActiveClass(string item) => CssBuilder.Default() .AddClass("active", _values.Contains(item) && IsMultiple) .AddClass("active", CurrentValue == item && !IsMultiple) - .AddClass("prev", !string.IsNullOrEmpty(_searchText) && PinyinService.GetFirstLetters(item).StartsWith(_searchText)) + .AddClass("prev", !string.IsNullOrEmpty(_searchText) && StartsWith(PinyinService.GetFirstLetters(item), _searchText)) .Build(); /// @@ -168,7 +168,7 @@ private HashSet GetProvinces() return Provinces; } - if (PinyinService.IsChinese(_searchText)) + if (PinyinService.ContainsChinese(_searchText)) { return [.. Provinces.Where(i => i.Contains(_searchText) || GetCities(i).Any(city => city.Contains(_searchText)))]; } @@ -177,7 +177,10 @@ private HashSet GetProvinces() } [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static bool FilterProvince(ProvinceItem item, string searchText) => item.PinYin.StartsWith(searchText) || item.Cities.Any(city => city.PinYin.StartsWith(searchText)); + private static bool FilterProvince(ProvinceItem item, string searchText) => StartsWith(item.PinYin, searchText) || item.Cities.Any(city => StartsWith(city.PinYin, searchText)); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private static bool StartsWith(HashSet source, string searchText) => source.Any(i => i.StartsWith(searchText, StringComparison.OrdinalIgnoreCase)); private static HashSet? _provinceItems; diff --git a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css index 6db486a9..0e2cefb8 100644 --- a/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css +++ b/src/components/BootstrapBlazor.Region/Components/SelectCity.razor.css @@ -86,10 +86,6 @@ display: none; } -.dropdown-menu-search .search-text { - text-transform: uppercase; -} - .dropdown-menu-search-body { flex: 1; height: 1%; diff --git a/src/components/BootstrapBlazor.Region/Data/CityItem.cs b/src/components/BootstrapBlazor.Region/Data/CityItem.cs index 38ba7491..3c3a988c 100644 --- a/src/components/BootstrapBlazor.Region/Data/CityItem.cs +++ b/src/components/BootstrapBlazor.Region/Data/CityItem.cs @@ -8,5 +8,5 @@ readonly record struct CityItem { public string Name { get; init; } - public string PinYin { get; init; } + public HashSet PinYin { get; init; } } diff --git a/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs b/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs index 5170a2e8..5ff522b1 100644 --- a/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs +++ b/src/components/BootstrapBlazor.Region/Data/ProvinceItem.cs @@ -8,7 +8,7 @@ readonly record struct ProvinceItem { public string Name { get; init; } - public string PinYin { get; init; } + public HashSet PinYin { get; init; } public HashSet Cities { get; init; } } diff --git a/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs b/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs index f6280698..0a6ee55c 100644 --- a/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs +++ b/src/components/BootstrapBlazor.Region/Extensions/ServiceCollectionExtension.cs @@ -19,7 +19,6 @@ public static class ServiceCollectionExtension public static IServiceCollection AddBootstrapBlazorRegionService(this IServiceCollection services) { services.AddSingleton(); - services.AddPinyinService(); return services; }