tav-ui
Version:
409 lines (408 loc) • 11.1 kB
TypeScript
import type { ButtonProps } from 'ant-design-vue/es/button/buttonTypes';
import type { CSSProperties, ComputedRef, PropType, VNodeChild } from 'vue';
export declare type VueNode = VNodeChild | JSX.Element;
export declare const modalProps: {
visible: {
type: BooleanConstructor;
};
scrollTop: {
type: BooleanConstructor;
default: boolean;
};
height: {
type: NumberConstructor;
};
minHeight: {
type: NumberConstructor;
};
draggable: {
type: BooleanConstructor;
default: boolean;
};
centered: {
type: BooleanConstructor;
};
cancelText: {
type: StringConstructor;
};
okText: {
type: StringConstructor;
};
closeFunc: PropType<() => Promise<boolean>>;
};
export declare const basicProps: {
visible: {
type: BooleanConstructor;
};
scrollTop: {
type: BooleanConstructor;
default: boolean;
};
height: {
type: NumberConstructor;
};
minHeight: {
type: NumberConstructor;
};
draggable: {
type: BooleanConstructor;
default: boolean;
};
centered: {
type: BooleanConstructor;
};
cancelText: {
type: StringConstructor;
};
okText: {
type: StringConstructor;
};
closeFunc: PropType<() => Promise<boolean>>;
} & {
defaultFullscreen: {
type: BooleanConstructor;
};
canFullscreen: {
type: BooleanConstructor;
default: boolean;
};
wrapperFooterOffset: {
type: NumberConstructor;
default: number;
};
helpMessage: PropType<string | string[]>;
useWrapper: {
type: BooleanConstructor;
default: boolean;
};
loading: {
type: BooleanConstructor;
};
loadingTip: {
type: StringConstructor;
};
/**
* @description: Show close button
*/
showCancelBtn: {
type: BooleanConstructor;
default: boolean;
};
/**
* @description: Show confirmation button
*/
showOkBtn: {
type: BooleanConstructor;
default: boolean;
};
wrapperProps: PropType<Partial<ModalWrapperProps>>;
afterClose: PropType<() => Promise<VueNode>>;
bodyStyle: PropType<CSSProperties>;
style: PropType<CSSProperties>;
closable: {
type: BooleanConstructor;
default: boolean;
};
closeIcon: PropType<VueNode>;
confirmLoading: {
type: BooleanConstructor;
};
destroyOnClose: {
type: BooleanConstructor;
};
footer: PropType<VueNode>;
getContainer: PropType<() => any>;
mask: {
type: BooleanConstructor;
default: boolean;
};
maskClosable: {
type: BooleanConstructor;
default: boolean;
};
keyboard: {
type: BooleanConstructor;
default: boolean;
};
maskStyle: PropType<CSSProperties>;
okType: {
type: StringConstructor;
default: string;
};
okButtonProps: PropType<Partial<{
prefixCls?: unknown;
type?: unknown;
htmlType?: unknown;
shape?: unknown;
size?: unknown;
loading?: unknown;
disabled?: unknown;
ghost?: unknown;
block?: unknown;
danger?: unknown;
icon?: unknown;
href?: unknown;
target?: unknown;
title?: unknown;
onClick?: unknown;
onMousedown?: unknown;
} & {
htmlType: import("ant-design-vue/es/button/buttonTypes").ButtonHTMLType;
loading: boolean | {
delay?: number | undefined;
};
} & {
type?: import("ant-design-vue/es/button/buttonTypes").ButtonType | undefined;
target?: string | undefined;
size?: import("ant-design-vue/es/button").ButtonSize;
icon?: any;
prefixCls?: string | undefined;
ghost?: boolean | undefined;
shape?: import("ant-design-vue/es/button/buttonTypes").ButtonShape | undefined;
block?: boolean | undefined;
danger?: boolean | undefined;
href?: string | undefined;
title?: string | undefined;
disabled?: boolean | undefined;
onClick?: ((event: MouseEvent) => void) | undefined;
onMousedown?: ((event: MouseEvent) => void) | undefined;
}>>;
cancelButtonProps: PropType<Partial<{
prefixCls?: unknown;
type?: unknown;
htmlType?: unknown;
shape?: unknown;
size?: unknown;
loading?: unknown;
disabled?: unknown;
ghost?: unknown;
block?: unknown;
danger?: unknown;
icon?: unknown;
href?: unknown;
target?: unknown;
title?: unknown;
onClick?: unknown;
onMousedown?: unknown;
} & {
htmlType: import("ant-design-vue/es/button/buttonTypes").ButtonHTMLType;
loading: boolean | {
delay?: number | undefined;
};
} & {
type?: import("ant-design-vue/es/button/buttonTypes").ButtonType | undefined;
target?: string | undefined;
size?: import("ant-design-vue/es/button").ButtonSize;
icon?: any;
prefixCls?: string | undefined;
ghost?: boolean | undefined;
shape?: import("ant-design-vue/es/button/buttonTypes").ButtonShape | undefined;
block?: boolean | undefined;
danger?: boolean | undefined;
href?: string | undefined;
title?: string | undefined;
disabled?: boolean | undefined;
onClick?: ((event: MouseEvent) => void) | undefined;
onMousedown?: ((event: MouseEvent) => void) | undefined;
}>>;
title: {
type: StringConstructor;
};
visible: {
type: BooleanConstructor;
};
width: PropType<string | number>;
wrapClassName: {
type: StringConstructor;
};
zIndex: {
type: NumberConstructor;
};
};
/**
* @description: 弹窗对外暴露的方法
*/
export interface ModalMethods {
redoThumbHeight: () => void;
setModalProps: (props: Partial<ModalProps>) => void;
emitVisible?: (visible: boolean, uid: number) => void;
redoModalHeight?: () => void;
}
declare type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void;
export interface ModalReturnMethods extends ModalMethods {
openModal: <T = any>(props?: boolean, data?: T, openOnSet?: boolean) => void;
closeModal: () => void;
getVisible?: ComputedRef<boolean>;
}
export declare type UseModalReturnType = [RegisterFn, ModalReturnMethods];
export interface ReturnInnerMethods extends ModalMethods {
closeModal: () => void;
changeLoading: (loading: boolean) => void;
changeOkLoading: (loading: boolean) => void;
getVisible?: ComputedRef<boolean>;
redoModalHeight: () => void;
}
export declare type UseModalInnerReturnType = [RegisterFn, ReturnInnerMethods];
export interface ModalProps {
minHeight?: number;
height?: number;
wrapperFooterOffset?: number;
draggable?: boolean;
scrollTop?: boolean;
canFullscreen?: boolean;
defaultFullscreen?: boolean;
visible?: boolean;
helpMessage: string | string[];
useWrapper: boolean;
loading: boolean;
loadingTip?: string;
wrapperProps: Omit<ModalWrapperProps, 'loading'>;
showOkBtn: boolean;
showCancelBtn: boolean;
closeFunc: () => Promise<any>;
/**
* Specify a function that will be called when modal is closed completely.
* @type Function
*/
afterClose?: () => any;
/**
* Body style for modal body element. Such as height, padding etc.
* @default {}
* @type object
*/
bodyStyle?: CSSProperties;
style?: CSSProperties;
/**
* Text of the Cancel button
* @default 'cancel'
* @type string
*/
cancelText?: string;
/**
* Centered Modal
* @default false
* @type boolean
*/
centered?: boolean;
/**
* Whether a close (x) button is visible on top right of the modal dialog or not
* @default true
* @type boolean
*/
closable?: boolean;
/**
* Whether a close (x) button is visible on top right of the modal dialog or not
*/
closeIcon?: VNodeChild | JSX.Element;
/**
* Whether to apply loading visual effect for OK button or not
* @default false
* @type boolean
*/
confirmLoading?: boolean;
/**
* Whether to unmount child components on onClose
* @default false
* @type boolean
*/
destroyOnClose?: boolean;
/**
* Footer content, set as :footer="null" when you don't need default buttons
* @default OK and Cancel buttons
* @type any (string | slot)
*/
footer?: VNodeChild | JSX.Element;
/**
* Return the mount node for Modal
* @default () => document.body
* @type Function
*/
getContainer?: (instance: any) => HTMLElement;
/**
* Whether show mask or not.
* @default true
* @type boolean
*/
mask?: boolean;
/**
* Whether to close the modal dialog when the mask (area outside the modal) is clicked
* @default true
* @type boolean
*/
maskClosable?: boolean;
/**
* Style for modal's mask element.
* @default {}
* @type object
*/
maskStyle?: CSSProperties;
/**
* Text of the OK button
* @default 'OK'
* @type string
*/
okText?: string;
/**
* Button type of the OK button
* @default 'primary'
* @type string
*/
okType?: 'primary' | 'danger' | 'dashed' | 'ghost' | 'default';
/**
* The ok button props, follow jsx rules
* @type object
*/
okButtonProps?: ButtonProps;
/**
* The cancel button props, follow jsx rules
* @type object
*/
cancelButtonProps?: ButtonProps;
/**
* The modal dialog's title
* @type any (string | slot)
*/
title?: VNodeChild | JSX.Element;
/**
* Width of the modal dialog
* @default 520
* @type string | number
*/
width?: string | number;
/**
* The class name of the container of the modal dialog
* @type string
*/
wrapClassName?: string;
/**
* The z-index of the Modal
* @default 1000
* @type number
*/
zIndex?: number;
}
export interface ModalWrapperProps {
footerOffset?: number;
loading: boolean;
modalHeaderHeight: number;
modalFooterHeight: number;
minHeight: number;
height: number;
visible: boolean;
fullScreen: boolean;
useWrapper: boolean;
}
export declare type Recordable<T = any> = Record<string, T>;
export declare type Record<K extends keyof any, T> = {
[P in K]: T;
};
export interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
$el: T;
}
export declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null;
export interface Fn<T = any, R = T> {
(...arg: T[]): R;
}
export declare type Nullable<T> = T | null;
export declare type ElRef<T extends HTMLElement = HTMLDivElement> = Nullable<T>;
export {};