upload.d.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. import type { Awaitable, Mutable } from 'element-plus/es/utils';
  2. import type { UploadAjaxError } from './ajax';
  3. import type { ExtractPropTypes } 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: BooleanConstructor;
  81. readonly limit: NumberConstructor;
  82. };
  83. export declare const uploadProps: {
  84. 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>) | {
  85. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  86. new (): any;
  87. readonly prototype: any;
  88. } | ((new (...args: any[]) => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | (() => (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>) | {
  89. (): (rawFile: UploadRawFile) => Awaitable<void | undefined | null | boolean | File | Blob>;
  90. new (): any;
  91. readonly prototype: any;
  92. })[], unknown, unknown, () => void, boolean>;
  93. readonly beforeRemove: {
  94. readonly type: import("vue").PropType<(uploadFile: UploadFile, uploadFiles: UploadFiles) => Awaitable<boolean>>;
  95. readonly required: false;
  96. readonly validator: ((val: unknown) => boolean) | undefined;
  97. __epPropKey: true;
  98. };
  99. readonly onRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  100. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  101. new (): any;
  102. readonly prototype: any;
  103. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  104. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  105. new (): any;
  106. readonly prototype: any;
  107. })[], unknown, unknown, () => void, boolean>;
  108. readonly onChange: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  109. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  110. new (): any;
  111. readonly prototype: any;
  112. } | ((new (...args: any[]) => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  113. (): (uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  114. new (): any;
  115. readonly prototype: any;
  116. })[], unknown, unknown, () => void, boolean>;
  117. readonly onPreview: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  118. (): (uploadFile: UploadFile) => void;
  119. new (): any;
  120. readonly prototype: any;
  121. } | ((new (...args: any[]) => (uploadFile: UploadFile) => void) | (() => (uploadFile: UploadFile) => void) | {
  122. (): (uploadFile: UploadFile) => void;
  123. new (): any;
  124. readonly prototype: any;
  125. })[], unknown, unknown, () => void, boolean>;
  126. 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) | {
  127. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  128. new (): any;
  129. readonly prototype: any;
  130. } | ((new (...args: any[]) => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  131. (): (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  132. new (): any;
  133. readonly prototype: any;
  134. })[], unknown, unknown, () => void, boolean>;
  135. 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) | {
  136. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  137. new (): any;
  138. readonly prototype: any;
  139. } | ((new (...args: any[]) => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  140. (): (evt: UploadProgressEvent, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  141. new (): any;
  142. readonly prototype: any;
  143. })[], unknown, unknown, () => void, boolean>;
  144. 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) | {
  145. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  146. new (): any;
  147. readonly prototype: any;
  148. } | ((new (...args: any[]) => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | (() => (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void) | {
  149. (): (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => void;
  150. new (): any;
  151. readonly prototype: any;
  152. })[], unknown, unknown, () => void, boolean>;
  153. readonly onExceed: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  154. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  155. new (): any;
  156. readonly prototype: any;
  157. } | ((new (...args: any[]) => (files: File[], uploadFiles: UploadUserFile[]) => void) | (() => (files: File[], uploadFiles: UploadUserFile[]) => void) | {
  158. (): (files: File[], uploadFiles: UploadUserFile[]) => void;
  159. new (): any;
  160. readonly prototype: any;
  161. })[], unknown, unknown, () => void, boolean>;
  162. readonly crossorigin: {
  163. 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>>;
  164. readonly required: false;
  165. readonly validator: ((val: unknown) => boolean) | undefined;
  166. __epPropKey: true;
  167. };
  168. readonly action: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "#", boolean>;
  169. readonly headers: {
  170. 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>>;
  171. readonly required: false;
  172. readonly validator: ((val: unknown) => boolean) | undefined;
  173. __epPropKey: true;
  174. };
  175. readonly method: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "post", boolean>;
  176. 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>;
  177. readonly multiple: BooleanConstructor;
  178. readonly name: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "file", boolean>;
  179. readonly drag: BooleanConstructor;
  180. readonly withCredentials: BooleanConstructor;
  181. readonly showFileList: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  182. readonly accept: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  183. readonly fileList: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]) | ((new (...args: any[]) => UploadUserFile[]) | (() => UploadUserFile[]))[], unknown, unknown, () => [], boolean>;
  184. readonly autoUpload: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  185. readonly listType: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "picture" | "text" | "picture-card", unknown, "text", boolean>;
  186. readonly httpRequest: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  187. (): UploadRequestHandler;
  188. new (): any;
  189. readonly prototype: any;
  190. } | ((new (...args: any[]) => UploadRequestHandler) | (() => UploadRequestHandler) | {
  191. (): UploadRequestHandler;
  192. new (): any;
  193. readonly prototype: any;
  194. })[], unknown, unknown, UploadRequestHandler, boolean>;
  195. readonly disabled: BooleanConstructor;
  196. readonly limit: NumberConstructor;
  197. };
  198. export type UploadProps = ExtractPropTypes<typeof uploadProps>;
  199. export type UploadInstance = InstanceType<typeof Upload> & unknown;