Skip to content

Commit bc7c95f

Browse files
authored
New Component: MudCombobox (#201)
* Creation Of MudCombobox * Some Value Arrangement * Lifecycle Methods, Remove Shadow Items and Selected Visual * Some Tests and DataVisualiserText * Select All and Fix Some Bugs * Some SearchString and Basic DataVisualiser Implementation * DataVisualser Design and Several Fixes * Basic key bindings * Dense System and Fix Some Tests * Placeholder and Clearable * Searchbox and More Key Enhancements * More Fixes and PopoverRenderFragmentContents * Test Fixing * Strict Arrangements * Missing Change * ItemContent * Scroll on open and keyboard navigation * Multiselect Text Func and some Other Fixes * NoItemsContent * Highlighted Text * Fix Clearable * SelectValueOnTab Fix * Fix SearchFunc * Cleanup
1 parent 3301c47 commit bc7c95f

37 files changed

Lines changed: 3402 additions & 89 deletions
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
<MudPopoverProvider></MudPopoverProvider>
3+
4+
<MudCombobox @bind-Value="value" Clearable="true" OnClearButtonClick="@ClearButtonClickHandler">
5+
<MudComboboxItem Value="@("1")" />
6+
<MudComboboxItem Value="@("2")" />
7+
<MudComboboxItem Value="@("3")" />
8+
</MudCombobox>
9+
10+
@code {
11+
12+
string value = null;
13+
14+
public bool ClearButtonClicked { get; set; }
15+
16+
private void ClearButtonClickHandler(MouseEventArgs e)
17+
{
18+
ClearButtonClicked = true;
19+
}
20+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
3+
<MudPopoverProvider></MudPopoverProvider>
4+
<MudCombobox @ref="_combobox" T="string" ValueChanged="ValueChanged" SelectedValuesChanged="ValuesChanged" MultiSelection="MultiSelection">
5+
<MudComboboxItem @ref="FirstItem" T="string" Value="@("1")" />
6+
<MudComboboxItem @ref="SecondItem" T="string" Value="@("2")" />
7+
<MudComboboxItem @ref="ThirdItem" T="string" Value="@("3")" />
8+
<MudComboboxItem T="string" Value="@("4")" Disabled="true" />
9+
</MudCombobox>
10+
11+
@code {
12+
[Parameter]
13+
public bool MultiSelection { get; set; }
14+
15+
public int ValueChangeCount { get; set; }
16+
public int ValuesChangeCount { get; set; }
17+
public int ItemChangeCount { get; set; }
18+
public int ItemsChangeCount { get; set; }
19+
20+
MudCombobox<string> _combobox;
21+
MudComboboxItem<string> FirstItem { get; set; }
22+
MudComboboxItem<string> SecondItem { get; set; }
23+
MudComboboxItem<string> ThirdItem { get; set; }
24+
25+
//public void SetSelectedItem()
26+
//{
27+
// #pragma warning disable BL0005
28+
// _select.SelectedItem = SecondItem;
29+
//}
30+
31+
//public void SetSelectedItems()
32+
//{
33+
// _select.SelectedItems = new HashSet<MudSelectItem<string>>() { SecondItem, ThirdItem };
34+
// //StateHasChanged();
35+
//}
36+
37+
//public void SetReverseSelectedItems()
38+
//{
39+
// _select.SelectedItems = new HashSet<MudSelectItem<string>>() { ThirdItem, FirstItem };
40+
// //StateHasChanged();
41+
//}
42+
43+
private void ValueChanged()
44+
{
45+
ValueChangeCount++;
46+
}
47+
48+
private void ValuesChanged()
49+
{
50+
ValuesChangeCount++;
51+
}
52+
53+
private void ItemChanged()
54+
{
55+
ItemChangeCount++;
56+
}
57+
58+
private void ItemsChanged()
59+
{
60+
ItemsChangeCount++;
61+
}
62+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
<MudPopoverProvider></MudPopoverProvider>
3+
4+
<MudCombobox @bind-Value="SelectedValue" @bind-SelectedValues="SelectedValues" MultiSelection="MultiSelection">
5+
<MudComboboxItem Value="@("1")"/>
6+
<MudComboboxItem Value="@("2")"/>
7+
<MudComboboxItem Value="@("3")"/>
8+
<MudComboboxItem Value="@("4")" Disabled="true"/>
9+
</MudCombobox>
10+
11+
@code {
12+
[Parameter]
13+
public string SelectedValue { get; set; }
14+
[Parameter]
15+
public IEnumerable<string> SelectedValues { get; set; }
16+
[Parameter]
17+
public bool MultiSelection { get; set; }
18+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
<MudPopoverProvider></MudPopoverProvider>
3+
4+
<MudCombobox @bind-SelectedValues="values" MultiSelection="true">
5+
<MudComboboxItem Value="@("1")">1</MudComboboxItem>
6+
<MudComboboxItem Value="@("2")">2</MudComboboxItem>
7+
<MudComboboxItem Value="@("3")">3</MudComboboxItem>
8+
</MudCombobox>
9+
10+
11+
@code {
12+
IEnumerable<string> values = new HashSet<string>();
13+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
<MudPopoverProvider></MudPopoverProvider>
3+
4+
<MudCombobox Label="Select Item"
5+
MultiSelection="true"
6+
T="string"
7+
Delimiter="^"
8+
SelectAll="true"
9+
@bind-SelectedValues="@SelectedItems">
10+
11+
@foreach (var item in AllItems)
12+
{
13+
<MudComboboxItem T="string" Value="@item">@item</MudComboboxItem>
14+
}
15+
</MudCombobox>
16+
17+
@code {
18+
public static string __description__ = "Test for the Select All option";
19+
private List<string> AllItems = new();
20+
private IEnumerable<string> SelectedItems = new HashSet<string>();
21+
protected override void OnInitialized()
22+
{
23+
AllItems.Add("FirstA");
24+
AllItems.Add("SecondA");
25+
AllItems.Add("ThirdA");
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@namespace MudExtensions.UnitTests.TestComponents
2+
<MudPopoverProvider></MudPopoverProvider>
3+
4+
<MudCombobox T="string" @bind-Value="value" PopoverClass="combobox-popover-class" @onfocus="Focused" OnBlur="Blurred">
5+
<MudComboboxItem Value="@("1")"/>
6+
<MudComboboxItem Value="@("2")"/>
7+
<MudComboboxItem Value="@("3")"/>
8+
<MudComboboxItem Value="@("4")" Disabled="true"/>
9+
</MudCombobox>
10+
11+
<MudSwitch @bind-Checked="@_focused" />
12+
13+
@code {
14+
15+
string value = null;
16+
bool _focused = false;
17+
18+
private void Focused()
19+
{
20+
_focused = true;
21+
}
22+
23+
private void Blurred()
24+
{
25+
_focused = false;
26+
}
27+
}

0 commit comments

Comments
 (0)