@matechat/core
Version:
前端智能化场景解决方案UI库,轻松构建你的AI应用。
72 lines (71 loc) • 2.69 kB
TypeScript
import type { ExtractPropTypes, InjectionKey, PropType, Ref, VNode } from "vue";
import type { UploadOptions, FileStatus, FileItem, BeforeUpload, ValidResultType, IValidResult } from "@matechat/common/Attachment/common/attachment-types.ts";
export { UploadOptions, FileStatus, FileItem, BeforeUpload, ValidResultType, IValidResult, };
export declare const AttachmentProps: {
readonly uploadOptions: {
readonly type: PropType<UploadOptions>;
readonly default: () => {};
};
readonly disabled: {
readonly type: BooleanConstructor;
readonly default: false;
};
readonly accept: {
readonly type: StringConstructor;
readonly default: "";
};
readonly dropPlaceholder: {
readonly type: StringConstructor;
};
readonly maxCount: {
readonly type: NumberConstructor;
readonly default: number;
};
readonly maxSize: {
readonly type: NumberConstructor;
readonly default: number;
};
readonly multiple: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly draggable: {
readonly type: BooleanConstructor;
readonly default: true;
};
readonly beforeUpload: {
readonly type: PropType<BeforeUpload>;
readonly default: null;
};
readonly getDropContainer: {
readonly type: PropType<() => HTMLElement>;
};
};
export type AttachmentProps = ExtractPropTypes<typeof AttachmentProps>;
export declare const AttachmentEmits: {
change: (file: File, fileList: FileItem[]) => boolean;
success: (file: File, response: FileItem["response"], fileList: FileItem[]) => boolean;
error: (file: File, error: FileItem["error"], fileList: FileItem[]) => boolean;
progress: (file: File, fileList: FileItem[]) => boolean;
drop: (files: File[]) => boolean;
validChange: (e: IValidResult[]) => boolean;
};
export type AttachmentEmits = {
(e: "change", file: File, fileList: FileItem[]): void;
(e: "success", file: File, response: FileItem["response"], fileList: FileItem[]): void;
(e: "error", file: File, error: FileItem["error"], fileList: FileItem[]): void;
(e: "progress", file: File, fileList: FileItem[]): void;
(e: "drop", files: File[]): void;
(e: "validChange", validResult: IValidResult[]): void;
};
export interface AttachmentSlots {
default(): VNode;
dropPlaceholder(): VNode;
}
export interface IAttachmentCtx {
rootProps: AttachmentProps;
rootEmits: AttachmentEmits;
isDisabled: Ref<boolean>;
uploadFiles: (files: File[]) => Promise<void>;
}
export declare const AttachmentInjectKey: InjectionKey<IAttachmentCtx>;