|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
using Connected.Models;
|
|
|
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
|
using Microsoft.AspNetCore.Components.Web;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace Connected.Components;
|
|
|
|
@ -9,30 +10,51 @@ public partial class SimpleSelect<ValueType> : InputBase
|
|
|
|
|
public ValueType Value { get; set; }
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
public IEnumerable<SelectItem<ValueType>> Items { get; set; }
|
|
|
|
|
public IEnumerable<ValueType> Items { get; set; }
|
|
|
|
|
|
|
|
|
|
public IEnumerable<SelectItem<ValueType>> OriginalItems { get; set; }
|
|
|
|
|
public IEnumerable<ValueType> OriginalItems { get; set; }
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
public bool EnableSearch { get; set; } = true;
|
|
|
|
|
public string SearchText { get; set; }
|
|
|
|
|
|
|
|
|
|
public void FilterItems()
|
|
|
|
|
private string _searchText { get; set; } = string.Empty;
|
|
|
|
|
public string SearchText
|
|
|
|
|
{
|
|
|
|
|
Items= Items.Where(item => item.Value.ToString().ToLower().Contains(SearchText.ToLower()) || item.DisplayedText.ToString().ToLower().Contains(SearchText.ToLower()));
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return _searchText;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
_searchText = value;
|
|
|
|
|
FilterItems();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async Task FilterItems()
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(_searchText))
|
|
|
|
|
{
|
|
|
|
|
Items = OriginalItems;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Items = Items.Where(item => item.ToString().ToLower().Contains(_searchText.ToLower()));
|
|
|
|
|
}
|
|
|
|
|
StateHasChanged();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Parameter]
|
|
|
|
|
public EventCallback<ValueType> ValueChanged { get; set; }
|
|
|
|
|
[Parameter]
|
|
|
|
|
public EventCallback<ValueType> ValueChanged { get; set; }
|
|
|
|
|
|
|
|
|
|
private async Task ChangeValueAsync(ChangeEventArgs args)
|
|
|
|
|
{
|
|
|
|
|
await ValueChanged.InvokeAsync((ValueType)Convert.ChangeType(args.Value, typeof(ValueType)));
|
|
|
|
|
}
|
|
|
|
|
private async Task ChangeValueAsync(ChangeEventArgs args)
|
|
|
|
|
{
|
|
|
|
|
await ValueChanged.InvokeAsync((ValueType)Convert.ChangeType(args.Value, typeof(ValueType)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override async Task OnParametersSetAsync()
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
if (base.InputAttributes is null) base.InputAttributes = new();
|
|
|
|
|
if (base.Required)
|
|
|
|
|
{
|
|
|
|
@ -40,6 +62,5 @@ public partial class SimpleSelect<ValueType> : InputBase
|
|
|
|
|
}
|
|
|
|
|
OriginalItems = Items;
|
|
|
|
|
await base.OnInitializedAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|