@whitesev/pops
Version:
弹窗库,包含了alert、confirm、prompt、drawer、folder、loading、iframe、panel、tooltip、searchSuggestion、rightClickMenu组件
48 lines (45 loc) • 1.14 kB
TypeScript
import type { EventEmiter } from "../event/EventEmiter";
import type { CustomEventMap } from "./EventEmitter";
import type { PopsType } from "./main";
/**
* 事件配置
*/
export interface PopsEventConfig<E extends EventEmiter<CustomEventMap> = EventEmiter<CustomEventMap>> {
/** 最外层包裹的元素 */
$shadowContainer: HTMLDivElement;
/** ShadowRoot */
$shadowRoot: ShadowRoot | HTMLElement;
/** -> 动画层 */
$el: HTMLDivElement;
/** 动画层 */
$anim: HTMLDivElement;
/** 主元素 */
$pops: HTMLDivElement;
/** 遮罩层 */
$mask?: HTMLDivElement;
/** 当前弹窗类型 */
mode: PopsType;
/** 唯一id */
guid: string;
/** 事件发送器 */
emitter: E;
/**
* 关闭弹窗
*/
close(): Promise<void>;
/**
* 隐藏弹窗
*/
hide(): Promise<void>;
/**
* 显示弹出
*/
show($parent?: HTMLElement | Document | ShadowRoot): Promise<void>;
}
/**
* 处理过的事件配置
*/
export interface PopsHandlerEventConfig<E extends EventEmiter<CustomEventMap>> extends PopsEventConfig<E> {
/** 当前按钮类型 */
type: "cancel" | "close" | "ok" | "other";
}