hongluan-ui
Version:
Hongluan Component Library for Vue 3
158 lines (157 loc) • 5.42 kB
TypeScript
import type { VNode, ExtractPropTypes, AppContext } from 'vue';
import type { Mutable } from 'hongluan-ui/es/utils';
import type MessageConstructor from './message.vue';
export declare const messageTypes: readonly ["success", "info", "warning", "error", "danger"];
export declare type messageType = typeof messageTypes[number];
export declare const aligns: readonly ["left", "center", "right"];
export interface MessageConfigContext {
max?: number;
}
export declare const messageDefaults: Mutable<{
/**
* @description custom class name for Message
*/
readonly customClass: "";
/**
* @description the text align
*/
readonly textAlign: "left";
/**
* @description whether `message` is treated as HTML string
*/
readonly dangerouslyUseHTMLString: false;
/**
* @description display duration, millisecond. If set to 0, it will not turn off automatically
*/
readonly duration: 3000;
/**
* @description message dom id
*/
readonly id: "";
/**
* @description message text
*/
readonly message: "";
/**
* @description callback function when closed with the message instance as the parameter
*/
readonly onClose: any;
/**
* @description whether to show a close button
*/
readonly showClose: false;
/**
* @description message type
*/
readonly type: "info";
/**
* @description set the distance to the top of viewport
*/
readonly offset: 16;
/**
* @description input box size
*/
readonly zIndex: 0;
/**
* @description merge messages with the same content, type of VNode message is not supported
*/
readonly grouping: false;
/**
* @description The number of repetitions, similar to badge, is used as the initial number when used with `grouping`
*/
readonly repeatNum: 1;
readonly appendTo: HTMLElement;
}>;
export declare const messageProps: {
readonly customClass: {
readonly type: StringConstructor;
readonly default: "";
};
readonly textAlign: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, "left" | "right" | "center", never, "left", false>;
readonly dangerouslyUseHTMLString: {
readonly type: BooleanConstructor;
readonly default: false;
};
readonly duration: {
readonly type: NumberConstructor;
readonly default: 3000;
};
readonly id: {
readonly type: StringConstructor;
readonly default: "";
};
readonly message: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<string | VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | (() => VNode)>, never, never, "", false>;
readonly icon: {
readonly type: import("vue").PropType<VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly onClose: {
readonly type: import("vue").PropType<() => void>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly showClose: {
readonly type: BooleanConstructor;
readonly default: false;
};
readonly type: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, "success" | "info" | "warning" | "danger" | "error", never, "info", false>;
readonly offset: {
readonly type: NumberConstructor;
readonly default: 16;
};
readonly zIndex: {
readonly type: NumberConstructor;
readonly default: 0;
};
readonly grouping: {
readonly type: BooleanConstructor;
readonly default: false;
};
readonly repeatNum: {
readonly type: NumberConstructor;
readonly default: 1;
};
};
export declare type MessageProps = ExtractPropTypes<typeof messageProps>;
export declare const messageEmits: {
destroy: () => boolean;
};
export declare type MessageEmits = typeof messageEmits;
export declare type MessageInstance = InstanceType<typeof MessageConstructor>;
export declare type MessageOptions = Partial<Mutable<Omit<MessageProps, 'id'> & {
appendTo?: HTMLElement | string;
}>>;
export declare type MessageParams = MessageOptions | MessageOptions['message'];
export declare type MessageParamsNormalized = Omit<MessageProps, 'id'> & {
/**
* @description set the root element for the message, default to `document.body`
*/
appendTo: HTMLElement;
};
export declare type MessageOptionsWithType = Omit<MessageOptions, 'type'>;
export declare type MessageParamsWithType = MessageOptionsWithType | MessageOptions['message'];
export interface MessageHandler {
/**
* @description close the Message
*/
close: () => void;
}
export declare type MessageFn = {
(options?: MessageParams, appContext?: null | AppContext): MessageHandler;
closeAll(type?: messageType): void;
};
export declare type MessageTypedFn = (options?: MessageParamsWithType, appContext?: null | AppContext) => MessageHandler;
export interface Message extends MessageFn {
success: MessageTypedFn;
warning: MessageTypedFn;
info: MessageTypedFn;
error: MessageTypedFn;
danger: MessageTypedFn;
}