mdui
Version:
实现 material you 设计规范的 Web Components 组件库
106 lines (105 loc) • 3.7 kB
TypeScript
import { MduiElement } from '@mdui/shared/base/mdui-element.js';
import '@mdui/shared/icons/clear.js';
import '../button-icon.js';
import '../button.js';
import '../icon.js';
import type { CSSResultGroup, TemplateResult } from 'lit';
/**
* @summary 消息条组件
*
* ```html
* <mdui-snackbar>message</mdui-snackbar>
* ```
*
* @event open - Snackbar 开始显示时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 Snackbar 显示
* @event opened - Snackbar 显示动画完成时,事件被触发
* @event close - Snackbar 开始隐藏时,事件被触发。可以通过调用 `event.preventDefault()` 阻止 Snackbar 关闭
* @event closed - Snackbar 隐藏动画完成时,事件被触发
* @event action-click - 点击操作按钮时触发
*
* @slot - Snackbar 的消息文本内容
* @slot action - 右侧的操作按钮
* @slot close-button - 右侧的关闭按钮。必须设置 `closeable` 属性为 `true` 才会显示
* @slot close-icon - 关闭按钮中的图标
*
* @csspart message - 消息文本
* @csspart action - 操作按钮
* @csspart close-button - 关闭按钮
* @csspart close-icon - 关闭按钮中的图标
*
* @cssprop --shape-corner - 组件的圆角大小。可以指定一个具体的像素值;但更推荐引用[设计令牌](/docs/2/styles/design-tokens#shape-corner)
* @cssprop --z-index - 组件的 CSS `z-index` 值
*/
export declare class Snackbar extends MduiElement<SnackbarEventMap> {
static styles: CSSResultGroup;
/**
* 是否显示 Snackbar
*/
open: boolean;
/**
* Snackbar 的显示位置。默认为 `bottom`。可选值包括:
*
* * `top`:顶部居中
* * `top-start`:顶部左对齐
* * `top-end`:顶部右对齐
* * `bottom`:底部居中
* * `bottom-start`:底部左对齐
* * `bottom-end`:底部右对齐
*/
placement: /*顶部居中*/ 'top' | /*顶部左对齐*/ 'top-start' | /*顶部右对齐*/ 'top-end' | /*底部居中*/ 'bottom' | /*底部左对齐*/ 'bottom-start' | /*底部右对齐*/ 'bottom-end';
/**
* 操作按钮的文本。也可以通过 `slot="action"` 设置操作按钮
*/
action?: string;
/**
* 操作按钮是否处于加载中状态
*/
actionLoading: boolean;
/**
* 是否在右侧显示关闭按钮
*/
closeable: boolean;
/**
* 关闭按钮的 Material Icons 图标名。也可以通过 `slot="close-icon"` 设置
*/
closeIcon?: string;
/**
* 消息文本的最大显示行数。默认不限制。可选值包括:
*
* * `1`:最多显示一行
* * `2`:最多显示两行
*/
messageLine?: /*最多显示一行*/ 1 | /*最多显示两行*/ 2;
/**
* 自动关闭的延迟时间(单位:毫秒)。设置为 `0` 则不自动关闭。默认为 5000 毫秒
*/
autoCloseDelay: number;
/**
* 点击或触摸 Snackbar 以外的区域时,是否关闭 Snackbar
*/
closeOnOutsideClick: boolean;
private closeTimeout;
constructor();
private onOpenChange;
connectedCallback(): void;
disconnectedCallback(): void;
protected render(): TemplateResult;
/**
* 在 document 上点击时,根据条件判断是否要关闭 snackbar
*/
private onDocumentClick;
private onActionClick;
private onCloseClick;
}
export interface SnackbarEventMap {
open: CustomEvent<void>;
opened: CustomEvent<void>;
close: CustomEvent<void>;
closed: CustomEvent<void>;
'action-click': CustomEvent<void>;
}
declare global {
interface HTMLElementTagNameMap {
'mdui-snackbar': Snackbar;
}
}