interface.d.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import type { ExtractPropTypes, PropType } from 'vue';
  2. export declare type BeforeUploadFileType = File | Blob | boolean | string;
  3. export declare type Action = string | ((file: RcFile) => string | PromiseLike<string>);
  4. export declare const uploadProps: () => {
  5. capture: PropType<boolean | "user" | "environment">;
  6. multipart: {
  7. type: BooleanConstructor;
  8. default: any;
  9. };
  10. name: StringConstructor;
  11. disabled: {
  12. type: BooleanConstructor;
  13. default: any;
  14. };
  15. componentTag: PropType<any>;
  16. action: PropType<Action>;
  17. method: PropType<UploadRequestMethod>;
  18. directory: {
  19. type: BooleanConstructor;
  20. default: any;
  21. };
  22. data: PropType<Record<string, unknown> | ((file: RcFile | string | Blob) => Record<string, unknown>)>;
  23. headers: PropType<UploadRequestHeader>;
  24. accept: StringConstructor;
  25. multiple: {
  26. type: BooleanConstructor;
  27. default: any;
  28. };
  29. onBatchStart: PropType<(fileList: {
  30. file: RcFile;
  31. parsedFile: Exclude<BeforeUploadFileType, boolean>;
  32. }[]) => void>;
  33. onReject: PropType<(fileList: RcFile[]) => void>;
  34. onStart: PropType<(file: RcFile) => void>;
  35. onError: PropType<(error: Error, ret: Record<string, unknown>, file: RcFile) => void>;
  36. onSuccess: PropType<(response: Record<string, unknown>, file: RcFile, xhr: XMLHttpRequest) => void>;
  37. onProgress: PropType<(event: UploadProgressEvent, file: RcFile) => void>;
  38. beforeUpload: PropType<(file: RcFile, FileList: RcFile[]) => BeforeUploadFileType | Promise<void | BeforeUploadFileType>>;
  39. customRequest: PropType<(option: UploadRequestOption) => void>;
  40. withCredentials: {
  41. type: BooleanConstructor;
  42. default: any;
  43. };
  44. openFileDialogOnClick: {
  45. type: BooleanConstructor;
  46. default: any;
  47. };
  48. prefixCls: StringConstructor;
  49. id: StringConstructor;
  50. onMouseenter: PropType<(e: MouseEvent) => void>;
  51. onMouseleave: PropType<(e: MouseEvent) => void>;
  52. onClick: PropType<(e: MouseEvent | KeyboardEvent) => void>;
  53. };
  54. export declare type UploadProps = Partial<ExtractPropTypes<ReturnType<typeof uploadProps>>>;
  55. export interface UploadProgressEvent extends Partial<ProgressEvent> {
  56. percent?: number;
  57. }
  58. export declare type UploadRequestMethod = 'POST' | 'PUT' | 'PATCH' | 'post' | 'put' | 'patch';
  59. export declare type UploadRequestHeader = Record<string, string>;
  60. export interface UploadRequestError extends Error {
  61. status?: number;
  62. method?: UploadRequestMethod;
  63. url?: string;
  64. }
  65. export interface UploadRequestOption<T = any> {
  66. onProgress?: (event: UploadProgressEvent) => void;
  67. onError?: (event: UploadRequestError | ProgressEvent, body?: T) => void;
  68. onSuccess?: (body: T, xhr?: XMLHttpRequest) => void;
  69. data?: Record<string, unknown>;
  70. filename?: string;
  71. file: Exclude<BeforeUploadFileType, File | boolean> | RcFile;
  72. withCredentials?: boolean;
  73. action: string;
  74. headers?: UploadRequestHeader;
  75. method: UploadRequestMethod;
  76. }
  77. export interface RcFile extends File {
  78. uid: string;
  79. }