/
HxAutosuggestInput.razor.cs
53 lines (38 loc) · 1.55 KB
/
HxAutosuggestInput.razor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
namespace Havit.Blazor.Components.Web.Bootstrap.Internal
{
public partial class HxAutosuggestInput
{
[Parameter] public string Value { get; set; }
[Parameter] public string Placeholder { get; set; }
[Parameter] public EventCallback<string> OnInputInput { get; set; }
[Parameter] public EventCallback OnInputFocus { get; set; }
[Parameter] public EventCallback OnInputBlur { get; set; }
[Parameter] public EventCallback OnInputMouseDown { get; set; }
[Parameter] public EventCallback<KeyboardEventArgs> OnKeyDown { get; set; }
[Parameter] public string InputId { get; set; }
[Parameter] public string CssClass { get; set; }
[Parameter] public bool EnabledEffective { get; set; }
/// <summary>
/// Offset between the dropdown and the input.
/// <see href="https://popper.js.org/docs/v2/modifiers/offset/#options"/>
/// </summary>
[Parameter] public (int Skidding, int Distance) DropdownOffset { get; set; }
/// <summary>
/// Additional attributes to be splatted onto an underlying HTML element.
/// </summary>
[Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object> AdditionalAttributes { get; set; }
internal ElementReference InputElement { get; set; }
private async Task HandleInput(ChangeEventArgs changeEventArgs)
{
await OnInputInput.InvokeAsync((string)changeEventArgs.Value);
}
private async Task HandleKeyDown(KeyboardEventArgs keyboardEventArgs)
{
await OnKeyDown.InvokeAsync(keyboardEventArgs);
}
public async ValueTask FocusAsync()
{
await InputElement.FocusAsync();
}
}
}