upload.d.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import type { Awaitable, Mutable } from 'element-plus/es/utils';
  2. import type { UploadAjaxError } from './ajax';
  3. import type { ExtractPropTypes, ExtractPublicPropTypes } from 'vue';
  4. import type Upload from './upload.vue';
  5. export declare const uploadListTypes: readonly ["text", "picture", "picture-card"];
  6. export declare const genFileId: () => number;
  7. export type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail';
  8. export interface UploadProgressEvent extends ProgressEvent {
  9. percent: number;
  10. }
  11. export interface UploadRequestOptions {
  12. action: string;
  13. method: string;
  14. data: Record<string, string | Blob | [Blob, string]>;
  15. filename: string;
  16. file: UploadRawFile;
  17. headers: Headers | Record<string, string | number | null | undefined>;
  18. onError: (evt: UploadAjaxError) => void;
  19. onProgress: (evt: UploadProgressEvent) => void;
  20. onSuccess: (response: any) => void;
  21. withCredentials: boolean;
  22. }
  23. export interface UploadFile {
  24. name: string;
  25. percentage?: number;
  26. status: UploadStatus;
  27. size?: number;
  28. response?: unknown;
  29. uid: number;
  30. url?: string;
  31. raw?: UploadRawFile;
  32. }
  33. export type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> & Partial<Pick<UploadFile, 'status' | 'uid'>>;
  34. export type UploadFiles = UploadFile[];
  35. export interface UploadRawFile extends File {
  36. uid: number;
  37. isDirectory?: boolean;
  38. }
  39. export type UploadRequestHandler = (options: UploadRequestOptions) => XMLHttpRequest | Promise<unknown>;
  40. export interface UploadHooks {
  41. beforeUpload: (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  42. beforeRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>;
  43. onRemove: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  44. onChange: (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  45. onPreview: (uploadFile: UploadFile) => void;
  46. onSuccess: (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  47. onProgress: (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  48. onError: (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  49. onExceed: (files: File[], uploadFiles: UploadUserFile[]) => void;
  50. }
  51. export type UploadData = Mutable<Record<string, any>>;
  52. export declare const uploadBaseProps: {
  53. readonly action: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
  54. readonly headers: {
  55. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers) | ((new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers))[], unknown, unknown>>;
  56. readonly required: false;
  57. readonly validator: ((val: unknown) => boolean) | undefined;
  58. __epPropKey: true;
  59. };
  60. readonly method: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
  61. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | ((new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)))[], unknown, unknown, () => Mutable<{}>, boolean>;
  62. readonly multiple: BooleanConstructor;
  63. readonly name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
  64. readonly drag: BooleanConstructor;
  65. readonly withCredentials: BooleanConstructor;
  66. readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  67. readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  68. readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
  69. readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  70. readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "picture" | "text" | "picture-card", unknown, "text", boolean>;
  71. readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  72. (): UploadRequestHandler;
  73. new (): any;
  74. readonly prototype: any;
  75. } | ((new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  76. (): UploadRequestHandler;
  77. new (): any;
  78. readonly prototype: any;
  79. })[], unknown, unknown, UploadRequestHandler, boolean>;
  80. readonly disabled: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
  81. readonly limit: NumberConstructor;
  82. readonly directory: BooleanConstructor;
  83. };
  84. export declare const uploadProps: {
  85. readonly beforeUpload: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
  86. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  87. new (): any;
  88. readonly prototype: any;
  89. } | ((new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
  90. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  91. new (): any;
  92. readonly prototype: any;
  93. })[], unknown, unknown, () => void, boolean>;
  94. readonly beforeRemove: {
  95. readonly type: import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>>;
  96. readonly required: false;
  97. readonly validator: ((val: unknown) => boolean) | undefined;
  98. __epPropKey: true;
  99. };
  100. readonly onRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  101. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  102. new (): any;
  103. readonly prototype: any;
  104. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  105. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  106. new (): any;
  107. readonly prototype: any;
  108. })[], unknown, unknown, () => void, boolean>;
  109. readonly onChange: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  110. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  111. new (): any;
  112. readonly prototype: any;
  113. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  114. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  115. new (): any;
  116. readonly prototype: any;
  117. })[], unknown, unknown, () => void, boolean>;
  118. readonly onPreview: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  119. (): (uploadFile: UploadFile) => void;
  120. new (): any;
  121. readonly prototype: any;
  122. } | ((new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  123. (): (uploadFile: UploadFile) => void;
  124. new (): any;
  125. readonly prototype: any;
  126. })[], unknown, unknown, () => void, boolean>;
  127. readonly onSuccess: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  128. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  129. new (): any;
  130. readonly prototype: any;
  131. } | ((new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  132. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  133. new (): any;
  134. readonly prototype: any;
  135. })[], unknown, unknown, () => void, boolean>;
  136. readonly onProgress: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  137. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  138. new (): any;
  139. readonly prototype: any;
  140. } | ((new (...args: any[]) => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  141. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  142. new (): any;
  143. readonly prototype: any;
  144. })[], unknown, unknown, () => void, boolean>;
  145. readonly onError: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  146. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  147. new (): any;
  148. readonly prototype: any;
  149. } | ((new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  150. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  151. new (): any;
  152. readonly prototype: any;
  153. })[], unknown, unknown, () => void, boolean>;
  154. readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  155. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  156. new (): any;
  157. readonly prototype: any;
  158. } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  159. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  160. new (): any;
  161. readonly prototype: any;
  162. })[], unknown, unknown, () => void, boolean>;
  163. readonly crossorigin: {
  164. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "" | "anonymous" | "use-credentials") | (() => "" | "anonymous" | "use-credentials") | ((new (...args: any[]) => "" | "anonymous" | "use-credentials") | (() => "" | "anonymous" | "use-credentials"))[], unknown, unknown>>;
  165. readonly required: false;
  166. readonly validator: ((val: unknown) => boolean) | undefined;
  167. __epPropKey: true;
  168. };
  169. readonly action: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
  170. readonly headers: {
  171. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers) | ((new (...args: any[]) => Record<string, any> | Headers) | (() => Record<string, any> | Headers))[], unknown, unknown>>;
  172. readonly required: false;
  173. readonly validator: ((val: unknown) => boolean) | undefined;
  174. __epPropKey: true;
  175. };
  176. readonly method: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
  177. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | ((new (...args: any[]) => Mutable<Record<string, any>> | Promise<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)) | (() => Awaitable<Mutable<Record<string, any>>> | ((rawFile: UploadRawFile) => Awaitable<UploadData>)))[], unknown, unknown, () => Mutable<{}>, boolean>;
  178. readonly multiple: BooleanConstructor;
  179. readonly name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
  180. readonly drag: BooleanConstructor;
  181. readonly withCredentials: BooleanConstructor;
  182. readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  183. readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  184. readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
  185. readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  186. readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "picture" | "text" | "picture-card", unknown, "text", boolean>;
  187. readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  188. (): UploadRequestHandler;
  189. new (): any;
  190. readonly prototype: any;
  191. } | ((new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  192. (): UploadRequestHandler;
  193. new (): any;
  194. readonly prototype: any;
  195. })[], unknown, unknown, UploadRequestHandler, boolean>;
  196. readonly disabled: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
  197. readonly limit: NumberConstructor;
  198. readonly directory: BooleanConstructor;
  199. };
  200. export type UploadProps = ExtractPropTypes<typeof uploadProps>;
  201. export type UploadPropsPublic = ExtractPublicPropTypes<typeof uploadProps>;
  202. export type UploadInstance = InstanceType<typeof Upload> & unknown;