@@ -8,7 +8,7 @@ namespace BootstrapBlazor.Components;
88/// <summary>
99/// Tooltip 组件
1010/// </summary>
11- public partial class Tooltip : ITooltip
11+ public partial class Tooltip : ITooltip , IToggle
1212{
1313 /// <summary>
1414 /// 弹窗位置字符串
@@ -25,10 +25,7 @@ public partial class Tooltip : ITooltip
2525 /// </summary>
2626 protected string ? HtmlString => IsHtml ? "true" : null ;
2727
28- /// <summary>
29- /// component class
30- /// </summary>
31- protected string ? ClassString => CssBuilder . Default ( )
28+ private string ? ClassString => CssBuilder . Default ( "bb-tooltip" )
3229 . AddClassFromAttributes ( AdditionalAttributes )
3330 . Build ( ) ;
3431
@@ -50,7 +47,7 @@ public partial class Tooltip : ITooltip
5047 public string ? Selector { get ; set ; }
5148
5249 /// <summary>
53- /// 获得/设置 显示内容
50+ /// <inheritdoc/>
5451 /// </summary>
5552 [ Parameter ]
5653 public string ? Title { get ; set ; }
@@ -62,7 +59,7 @@ public partial class Tooltip : ITooltip
6259 public Func < Task < string > > ? GetTitleCallback { get ; set ; }
6360
6461 /// <summary>
65- /// 获得/设置 显示文字是否为 Html 默认为 false
62+ /// <inheritdoc/>
6663 /// </summary>
6764 [ Parameter ]
6865 public bool IsHtml { get ; set ; }
@@ -74,7 +71,7 @@ public partial class Tooltip : ITooltip
7471 public bool Sanitize { get ; set ; } = true ;
7572
7673 /// <summary>
77- /// 获得/设置 位置 默认为 Placement.Top
74+ /// <inheritdoc/>
7875 /// </summary>
7976 [ Parameter ]
8077 public Placement Placement { get ; set ; } = Placement . Top ;
@@ -92,14 +89,13 @@ public partial class Tooltip : ITooltip
9289 public string ? Offset { get ; set ; }
9390
9491 /// <summary>
95- /// 获得/设置 自定义样式 默认 null
92+ /// <inheritdoc/>
9693 /// </summary>
97- /// <remarks>由 data-bs-custom-class 实现</remarks>
9894 [ Parameter ]
9995 public string ? CustomClass { get ; set ; }
10096
10197 /// <summary>
102- /// 获得/设置 触发方式 可组合 click focus hover 默认为 focus hover
98+ /// <inheritdoc/>
10399 /// </summary>
104100 [ Parameter ]
105101 public string ? Trigger { get ; set ; }
@@ -111,10 +107,15 @@ public partial class Tooltip : ITooltip
111107 public RenderFragment ? ChildContent { get ; set ; }
112108
113109 /// <summary>
114- /// 获得 CustomClass 字符串
110+ /// 获得/设置 点击回调方法
115111 /// </summary>
116- protected virtual string ? CustomClassString => CustomClass ;
112+ [ Parameter ]
113+ public Func < IToggle , Task > ? OnClick { get ; set ; }
117114
115+ /// <summary>
116+ /// 是否允许触发 <see cref="OnClick"/> 回调方法
117+ /// </summary>
118+ protected bool TriggerClick => OnClick != null ;
118119 /// <summary>
119120 /// <inheritdoc/>
120121 /// </summary>
@@ -177,4 +178,15 @@ public void SetParameters(string title, Placement placement = Placement.Auto, st
177178 /// <param name="delay">延时指定毫秒后切换弹窗方法 默认 null 不延时</param>
178179 /// <returns></returns>
179180 public Task Toggle ( int ? delay = null ) => InvokeVoidAsync ( "toggle" , Id , delay ) ;
181+
182+ /// <summary>
183+ /// 触发 <see cref="OnClick"/> 回调方法
184+ /// </summary>
185+ protected async Task OnTriggerClick ( )
186+ {
187+ if ( OnClick != null )
188+ {
189+ await OnClick ( this ) ;
190+ }
191+ }
180192}
0 commit comments