Files
LingChair/mdui_patched/components/tooltip/index.d.ts
CrescentLeaf 1cb8ac3fff 移动目录
2025-11-23 13:27:15 +08:00

148 lines
6.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import '@mdui/jq/methods/css.js';
import '@mdui/jq/methods/filter.js';
import '@mdui/jq/methods/height.js';
import '@mdui/jq/methods/prop.js';
import '@mdui/jq/methods/width.js';
import { MduiElement } from '@mdui/shared/base/mdui-element.js';
import type { CSSResultGroup, TemplateResult, PropertyValues } from 'lit';
/**
* @summary 工具提示组件
*
* ```html
* <mdui-tooltip content="tooltip content">
* ..<mdui-button>button</mdui-button>
* </mdui-tooltip>
* ```
*
* @event open - tooltip 开始显示时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 tooltip 打开
* @event opened - tooltip 显示动画完成时,事件被触发
* @event close - tooltip 开始隐藏时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 tooltip 关闭
* @event closed - tooltip 隐藏动画完成时,事件被触发
*
* @slot - tooltip 触发的目标元素,只有 `default` slot 中的第一个元素会作为目标元素
* @slot headline - tooltip 的标题,只有当 `variant="rich"` 时,此 slot 才有效
* @slot content - tooltip 的内容,可以包含 HTML。若只包含纯文本可以使用 `content` 属性代替
* @slot action - tooltip 底部的按钮,只有当 `variant="rich"` 时,此 slot 才有效
*
* @csspart popup - tooltip 的容器
* @csspart headline - 标题
* @csspart content - 正文
* @csspart action - 操作按钮
*
* @cssprop --shape-corner-plain - 当 variant="plain" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
* @cssprop --shape-corner-rich - 当 variant="rich" 时,组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
* @cssprop --z-index - 组件的 CSS `z-index` 值
*/
export declare class Tooltip extends MduiElement<TooltipEventMap> {
static styles: CSSResultGroup;
/**
* tooltip 的形状。默认为 `plain`。可选值包括:
*
* * `plain`:纯文本,适用于简单的单行文本
* * `rich`:富文本,可以包含标题、正文和操作按钮
*/
variant: /*纯文本,适用于简单的单行文本*/ 'plain' | /*富文本,可以包含标题、正文和操作按钮*/ 'rich';
/**
* tooltip 的位置。默认为 `auto`。可选值包括:
*
* * `auto`:自动判断位置。`variant="plain"` 时,优先使用 `top``variant="rich"` 时,优先使用 `bottom-right`
* * `top-left`:位于左上方
* * `top-start`:位于上方,左对齐
* * `top`:位于上方,居中对齐
* * `top-end`:位于上方,右对齐
* * `top-right`:位于右上方
* * `bottom-left`:位于左下方
* * `bottom-start`:位于下方,左对齐
* * `bottom`:位于下方,居中对齐
* * `bottom-end`:位于下方,右对齐
* * `bottom-right`:位于右下方
* * `left-start`:位于左侧,顶部对齐
* * `left`:位于左侧,居中对齐
* * `left-end`:位于左侧,底部对齐
* * `right-start`:位于右侧,顶部对齐
* * `right`:位于右侧,居中对齐
* * `right-end`:位于右侧,底部对齐
*/
placement: /*自动判断位置*/ 'auto' | /*位于左上方*/ 'top-left' | /*位于上方,左对齐*/ 'top-start' | /*位于上方,居中对齐*/ 'top' | /*位于上方,右对齐*/ 'top-end' | /*位于右上方*/ 'top-right' | /*位于左下方*/ 'bottom-left' | /*位于下方,左对齐*/ 'bottom-start' | /*位于下方,居中对齐*/ 'bottom' | /*位于下方,右对齐*/ 'bottom-end' | /*位于右下方*/ 'bottom-right' | /*位于左侧,顶部对齐*/ 'left-start' | /*位于左侧,居中对齐*/ 'left' | /*位于左侧,底部对齐*/ 'left-end' | /*位于右侧,顶部对齐*/ 'right-start' | /*位于右侧,居中对齐*/ 'right' | /*位于右侧,底部对齐*/ 'right-end';
/**
* 鼠标悬浮触发显示的延时,单位为毫秒
*/
openDelay: number;
/**
* 鼠标悬浮触发隐藏的延时,单位为毫秒
*/
closeDelay: number;
/**
* tooltip 的标题。仅 `variant="rich"` 时可使用。也可以通过 `slot="headline"` 设置
*/
headline?: string;
/**
* tooltip 的内容。也可以通过 `slot="content"` 设置
*/
content?: string;
/**
* 触发方式,支持多个值,用空格分隔。可选值包括:
*
* * `click`:点击时触发
* * `hover`:鼠标悬浮时触发
* * `focus`:聚焦时触发
* * `manual`:只能通过编程方式打开和关闭 tooltip不能再指定其他触发方式
*/
trigger: /*点击时触发*/ 'click' | /*鼠标悬浮时触发*/ 'hover' | /*聚焦时触发*/ 'focus' | /*只能通过编程方式打开和关闭 tooltip不能再指定其他触发方式*/ 'manual' | string;
/**
* 是否禁用 tooltip
*/
disabled: boolean;
/**
* 是否显示 tooltip
*/
open: boolean;
private observeResize?;
private overflowAncestors?;
private hoverTimeout;
private readonly popupRef;
private readonly hasSlotController;
private readonly hoverController;
private readonly definedController;
constructor();
/**
* 获取第一个非 <style> 和 content slot 的子元素,作为 tooltip 的目标元素
*/
private get target();
private onPositionChange;
private onOpenChange;
connectedCallback(): void;
disconnectedCallback(): void;
protected firstUpdated(changedProperties: PropertyValues): void;
protected render(): TemplateResult;
private isRich;
/**
* 请求关闭 tooltip。鼠标未悬浮在 tooltip 上时,直接关闭;否则等鼠标移走再关闭
*/
private requestClose;
private hasTrigger;
private onFocus;
private onBlur;
private onClick;
private onKeydown;
private onMouseEnter;
private onMouseLeave;
/**
* 在 document 上点击时,根据条件判断是否关闭 tooltip
*/
private onDocumentClick;
private onWindowScroll;
private updatePositioner;
}
export interface TooltipEventMap {
open: CustomEvent<void>;
opened: CustomEvent<void>;
close: CustomEvent<void>;
closed: CustomEvent<void>;
}
declare global {
interface HTMLElementTagNameMap {
'mdui-tooltip': Tooltip;
}
}