hongluan-ui
Version:
Hongluan Component Library for Vue 3
121 lines (120 loc) • 8.51 kB
TypeScript
import type { UploadAjaxError } from './ajax';
import type { Awaitable, Mutable } from 'hongluan-ui/es/utils';
import type { ExtractPropTypes } from 'vue';
import type Upload from './upload.vue';
export declare const uploadListTypes: readonly ["text", "picture", "card"];
export declare const genFileId: () => number;
export declare type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail';
export interface UploadProgressEvent extends ProgressEvent {
percent: number;
}
export interface UploadRequestOptions {
action: string;
method: string;
data: Record<string, string | Blob | [string | Blob, string]>;
filename: string;
file: UploadRawFile;
headers: Headers | Record<string, string | number | null | undefined>;
onError: (evt: UploadAjaxError) => void;
onProgress: (evt: UploadProgressEvent) => void;
onSuccess: (response: any) => void;
withCredentials: boolean;
}
export interface UploadFile {
name: string;
percentage?: number;
status: UploadStatus;
size?: number;
response?: unknown;
uid: number;
url?: string;
raw?: UploadRawFile;
}
export declare type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> & Partial<Pick<UploadFile, 'status' | 'uid'>>;
export declare type UploadFiles = UploadFile[];
export interface UploadRawFile extends File {
uid: number;
}
export declare type UploadRequestHandler = (options: UploadRequestOptions) => XMLHttpRequest | Promise<unknown>;
export interface UploadHooks {
beforeUpload: (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
beforeRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>;
onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
onPreview: (uploadFile: UploadFile) => void;
onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
onProgress: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
}
export declare type UploadData = Mutable<Record<string, any>>;
export declare const uploadBaseProps: {
readonly action: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
readonly headers: {
readonly type: import("vue").PropType<unknown>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly method: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
readonly data: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<((rawFile: UploadRawFile) => Awaitable<UploadData>) | Awaitable<Mutable<Record<string, any>>>>, unknown, unknown, () => Mutable<{}>, boolean>;
readonly multiple: BooleanConstructor;
readonly name: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
readonly drag: BooleanConstructor;
readonly withCredentials: BooleanConstructor;
readonly showFileList: import("hongluan-ui/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly accept: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly fileList: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<UploadUserFile[]>, unknown, unknown, () => [], boolean>;
readonly autoUpload: import("hongluan-ui/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly listType: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, "text" | "card" | "picture", unknown, "text", boolean>;
readonly httpRequest: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<UploadRequestHandler>, unknown, unknown, UploadRequestHandler, boolean>;
readonly disabled: BooleanConstructor;
readonly limit: NumberConstructor;
readonly gap: StringConstructor;
};
export declare const uploadProps: {
readonly beforeUpload: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>>, unknown, unknown, () => void, boolean>;
readonly beforeRemove: {
readonly type: import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly onRemove: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => void>, unknown, unknown, () => void, boolean>;
readonly onChange: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => void>, unknown, unknown, () => void, boolean>;
readonly onPreview: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(uploadFile: UploadFile) => void>, unknown, unknown, () => void, boolean>;
readonly onSuccess: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void>, unknown, unknown, () => void, boolean>;
readonly onProgress: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void>, unknown, unknown, () => void, boolean>;
readonly onError: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void>, unknown, unknown, () => void, boolean>;
readonly onExceed: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<(files: File[], uploadFiles: UploadUserFile[]) => void>, unknown, unknown, () => void, boolean>;
readonly crossorigin: {
readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<import("vue").PropType<"" | "anonymous" | "use-credentials">, unknown, unknown>>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly action: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
readonly headers: {
readonly type: import("vue").PropType<unknown>;
readonly required: false;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
readonly method: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
readonly data: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<((rawFile: UploadRawFile) => Awaitable<UploadData>) | Awaitable<Mutable<Record<string, any>>>>, unknown, unknown, () => Mutable<{}>, boolean>;
readonly multiple: BooleanConstructor;
readonly name: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
readonly drag: BooleanConstructor;
readonly withCredentials: BooleanConstructor;
readonly showFileList: import("hongluan-ui/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly accept: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
readonly fileList: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<UploadUserFile[]>, unknown, unknown, () => [], boolean>;
readonly autoUpload: import("hongluan-ui/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
readonly listType: import("hongluan-ui/es/utils").EpPropFinalized<StringConstructor, "text" | "card" | "picture", unknown, "text", boolean>;
readonly httpRequest: import("hongluan-ui/es/utils").EpPropFinalized<import("vue").PropType<UploadRequestHandler>, unknown, unknown, UploadRequestHandler, boolean>;
readonly disabled: BooleanConstructor;
readonly limit: NumberConstructor;
readonly gap: StringConstructor;
};
export declare type UploadProps = ExtractPropTypes<typeof uploadProps>;
export declare type UploadInstance = InstanceType<typeof Upload>;