-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTooltipInputTagHelper.cs
43 lines (32 loc) · 1.38 KB
/
TooltipInputTagHelper.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
using Microsoft.AspNetCore.Razor.TagHelpers;
namespace Pact.TagHelpers;
public enum TooltipPlacement { Top, Bottom, Left, Right }
[HtmlTargetElement("input", Attributes = ForAttributeName)]
[HtmlTargetElement("select", Attributes = ForAttributeName)]
public class TooltipInputTagHelper : TagHelper
{
public TooltipInputTagHelper()
{
TooltipPlacement = TooltipPlacement.Right;
}
private const string ForAttributeName = "asp-tooltip";
[HtmlAttributeName(ForAttributeName)]
public string ToolTip { get; set; }
[HtmlAttributeName("asp-tooltip-placement")]
public TooltipPlacement TooltipPlacement { get; set; }
public override void Process(TagHelperContext context, TagHelperOutput output)
{
if (string.IsNullOrWhiteSpace(ToolTip)) return;
output.Attributes.Add("title", ToolTip);
output.Attributes.Add("data-toggle", "tooltip");
output.Attributes.Add("data-placement", TooltipPlacement.ToString().ToLower());
}
public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
if (string.IsNullOrWhiteSpace(ToolTip)) return Task.CompletedTask;
output.Attributes.Add("title", ToolTip);
output.Attributes.Add("data-toggle", "tooltip");
output.Attributes.Add("data-placement", TooltipPlacement.ToString().ToLower());
return Task.CompletedTask;
}
}