Skip to content

Commit eee7114

Browse files
authored
feat(MultiSelect): add CloseButtonIcon parameter (#5662)
* refactor: 增加 CloseButtonIcon 图标参数 * refactor: 更新图标 * test: 更新单元测试 * chore: bump version 9.5.0-beta05
1 parent e713719 commit eee7114

File tree

8 files changed

+23
-24
lines changed

8 files changed

+23
-24
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.5.0-beta04</Version>
4+
<Version>9.5.0-beta05</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Select/MultiSelect.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<div class="multi-select-item-group">
2929
<DynamicElement TagName="span" class="multi-select-close" data-bb-val="@GetValueString(item)"
3030
TriggerClick="@(!IsPopover)" OnClick="() => ToggleRow(item.Value)">
31-
<i class="@ClearIcon"></i>
31+
<i class="@CloseButtonIcon"></i>
3232
</DynamicElement>
3333
<span class="multi-select-item">@item.Text</span>
3434
</div>
@@ -51,7 +51,7 @@
5151
</div>
5252
@if (GetClearable())
5353
{
54-
<span class="@ClearClassString" @onclick="OnClearValue"><i class="@ClearableIcon"></i></span>
54+
<span class="@ClearClassString" @onclick="OnClearValue"><i class="@ClearIcon"></i></span>
5555
}
5656
<div class="@DropdownMenuClassString">
5757
@if (ShowSearch)

src/BootstrapBlazor/Components/Select/MultiSelect.razor.cs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ public partial class MultiSelect<TValue>
5656
[Parameter]
5757
public bool ShowCloseButton { get; set; } = true;
5858

59+
/// <summary>
60+
/// 获得/设置 关闭按钮图标 默认为 null
61+
/// </summary>
62+
[Parameter]
63+
public string? CloseButtonIcon { get; set; }
64+
5965
/// <summary>
6066
/// 获得/设置 是否显示功能按钮 默认为 false 不显示
6167
/// </summary>
@@ -152,14 +158,6 @@ public partial class MultiSelect<TValue>
152158
[Parameter]
153159
[NotNull]
154160
public string? MinErrorMessage { get; set; }
155-
156-
/// <summary>
157-
/// Gets or sets the right-side clear icon. Default is null.
158-
/// </summary>
159-
[Parameter]
160-
[NotNull]
161-
public string? ClearableIcon { get; set; }
162-
163161
[Inject]
164162
[NotNull]
165163
private IStringLocalizer<MultiSelect<TValue>>? Localizer { get; set; }
@@ -184,8 +182,8 @@ protected override void OnParametersSet()
184182
NoSearchDataText ??= Localizer[nameof(NoSearchDataText)];
185183

186184
DropdownIcon ??= IconTheme.GetIconByKey(ComponentIcons.MultiSelectDropdownIcon);
185+
CloseButtonIcon ??= IconTheme.GetIconByKey(ComponentIcons.MultiSelectCloseIcon);
187186
ClearIcon ??= IconTheme.GetIconByKey(ComponentIcons.MultiSelectClearIcon);
188-
ClearableIcon ??= IconTheme.GetIconByKey(ComponentIcons.MultiSelectClearableIcon);
189187

190188
ResetItems();
191189
ResetRules();

src/BootstrapBlazor/Enums/ComponentIcons.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -451,14 +451,14 @@ public enum ComponentIcons
451451
MultiSelectDropdownIcon,
452452

453453
/// <summary>
454-
/// MultiSelect 组件 ClearIcon 图标
454+
/// MultiSelect 组件 CloseButtonIcon 图标
455455
/// </summary>
456-
MultiSelectClearIcon,
456+
MultiSelectCloseIcon,
457457

458458
/// <summary>
459-
/// MultiSelect 组件 ClearableIcon 图标
459+
/// MultiSelect 组件 ClearIcon 图标
460460
/// </summary>
461-
MultiSelectClearableIcon,
461+
MultiSelectClearIcon,
462462

463463
/// <summary>
464464
/// SelectTree 组件 DropdownIcon 图标

src/BootstrapBlazor/Icons/BootstrapIcons.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ internal static class BootstrapIcons
109109
{ ComponentIcons.RibbonTabArrowPinIcon, "bi bi-pin bi-pin-angle" },
110110

111111
{ ComponentIcons.MultiSelectDropdownIcon, "bi bi-chevron-up" },
112-
{ ComponentIcons.MultiSelectClearIcon, "bi bi-x" },
113-
{ ComponentIcons.MultiSelectClearableIcon, "bi bi-x-circle" },
112+
{ ComponentIcons.MultiSelectCloseIcon, "bi bi-x" },
113+
{ ComponentIcons.MultiSelectClearIcon, "bi bi-x-circle" },
114114

115115
{ ComponentIcons.SelectTreeDropdownIcon, "bi bi-chevron-up" },
116116

src/BootstrapBlazor/Icons/FontAwesomeIcons.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ internal static class FontAwesomeIcons
107107
{ ComponentIcons.RibbonTabArrowPinIcon, "fa-solid fa-thumbtack fa-rotate-90" },
108108

109109
{ ComponentIcons.MultiSelectDropdownIcon, "fa-solid fa-angle-up" },
110-
{ ComponentIcons.MultiSelectClearIcon, "fa-solid fa-xmark" },
111-
{ ComponentIcons.MultiSelectClearableIcon, "fa-regular fa-circle-xmark" },
110+
{ ComponentIcons.MultiSelectCloseIcon, "fa-solid fa-xmark" },
111+
{ ComponentIcons.MultiSelectClearIcon, "fa-regular fa-circle-xmark" },
112112

113113
{ ComponentIcons.SelectTreeDropdownIcon, "fa-solid fa-angle-up" },
114114

src/BootstrapBlazor/Icons/MaterialDesignIcons.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ internal static class MaterialDesignIcons
109109
{ ComponentIcons.RibbonTabArrowPinIcon, "mdi mdi-pin mdi-pin-off" },
110110

111111
{ ComponentIcons.MultiSelectDropdownIcon, "mdi mdi-chevron-up" },
112-
{ ComponentIcons.MultiSelectClearIcon, "mdi mdi-close" },
113-
{ ComponentIcons.MultiSelectClearableIcon, "mdi mdi-trash-can-outline" },
112+
{ ComponentIcons.MultiSelectCloseIcon, "mdi mdi-close" },
113+
{ ComponentIcons.MultiSelectClearIcon, "mdi mdi-close-circle-outline" },
114114

115115
{ ComponentIcons.SelectTreeDropdownIcon, "mdi mdi-chevron-up" },
116116

test/UnitTest/Components/MultiSelectTest.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ public async Task FlagEnum_Ok()
168168
Assert.Equal(2, values.Count);
169169

170170
// 选中第四个
171-
var item = cut.FindAll(".dropdown-menu .dropdown-item").Last();
171+
var items = cut.FindAll(".dropdown-menu .dropdown-item");
172+
var item = items[items.Count - 1];
172173
await cut.InvokeAsync(() => item.Click());
173174
values = cut.FindAll(".multi-select-items .multi-select-item");
174175
Assert.Equal(3, values.Count);
@@ -644,7 +645,7 @@ public void ClearIcon_Ok()
644645

645646
cut.SetParametersAndRender(pb =>
646647
{
647-
pb.Add(a => a.ClearableIcon, "icon-clear-test");
648+
pb.Add(a => a.ClearIcon, "icon-clear-test");
648649
});
649650
Assert.DoesNotContain("fa-regular fa-circle-xmark", cut.Markup);
650651
Assert.Contains("icon-clear-test", cut.Markup);

0 commit comments

Comments
 (0)