@whitesev/pops
Version:
弹窗库,包含了alert、confirm、prompt、drawer、folder、loading、iframe、panel、tooltip、searchSuggestion、rightClickMenu组件
96 lines (90 loc) • 1.94 kB
TypeScript
import type { EventEmiter } from "../event/EventEmiter";
import type { PopsEventConfig, PopsHandlerEventConfig } from "./event";
import type { PopsIconType } from "./icon";
/**
* 按钮类型
*/
export type PopsButtonType = "close" | "ok" | "cancel" | "other";
/**
* 按钮样式类型
*/
export type PopsButtonStyleType =
| "default"
| "primary"
| "xiaomi-primary"
| "success"
| "info"
| "warning"
| "danger"
| "violet";
/**
* 按钮大小
*/
export type PopsButtonSize = "large" | "small";
/**
* 按钮配置
*/
export interface PopsGlobalButtonConfig<T = object> {
/**
* 是否启用按钮
*/
enable: boolean;
/**
* 图标按钮,如果名字为内置的,则使用内置的,否则为自定义的svg
*/
icon: PopsIconType;
/**
* 图标按钮是否放在右边
*/
rightIcon: boolean;
/**
* 图标按钮是否是旋转360°
* @default false
*/
iconIsLoading: boolean;
/**
* 按钮尺寸大小
* @default ""
*/
size: PopsButtonSize | "";
/**
* 按钮样式类型
* @default "default"
*/
type: PopsButtonStyleType;
/**
* 按钮文字,默认为空
*/
text: string;
/**
* 按钮点击的回调
*
* 如果传入该值,那么将不会自动关闭弹窗
*/
callback(eventConfig: PopsHandlerEventConfig<EventEmiter> & T, event: PointerEvent | MouseEvent): void;
}
/**
* 按钮配置(匹配任意类型)
*/
export type PopsButtonConfigAnyType<T = object> = Omit<PopsGlobalButtonConfig<T>, "type"> & {
/**
* 按钮样式类型
* @default "default"
*/
type: string;
};
/**
* 顶部关闭按钮配置
*/
export interface PopsHeaderCloseButtonConfig {
/**
* 是否启用按钮
*/
enable?: boolean;
/**
* 按钮点击的回调
*
* 如果传入该值,那么将不会自动关闭弹窗
*/
callback?: (eventConfig: PopsEventConfig, event: PointerEvent | MouseEvent) => void;
}