{"version":3,"file":"AjaxUploader.cjs","sources":["../../../../../../packages/vue-components/vc-upload/src/AjaxUploader.tsx"],"sourcesContent":["import type { ChangeEvent } from '@antdv/types';\nimport type { BeforeUploadFileType, RcFile, UploadProgressEvent, UploadRequestError } from './interface';\nimport { pickAttrs } from '@antdv/utils';\nimport { partition } from 'lodash-es';\nimport { defineComponent, onBeforeUnmount, onMounted, ref } from 'vue';\nimport attrAccept from './attr-accept';\nimport { uploadProps } from './interface';\nimport defaultRequest from './request';\nimport traverseFileTree from './traverseFileTree';\nimport getUid from './uid';\n\ninterface ParsedFileInfo {\n  origin: RcFile;\n  action: string;\n  data: Record<string, unknown>;\n  parsedFile: RcFile;\n}\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AjaxUploader',\n  inheritAttrs: false,\n  props: uploadProps(),\n  setup(props, { slots, attrs, expose }) {\n    const uid = ref(getUid());\n    const reqs: any = {};\n\n    const fileInput = ref<HTMLInputElement>();\n\n    let isMounted = false;\n\n    /**\n     * Process file before upload. When all the file is ready, we start upload.\n     */\n    const processFile = async (file: RcFile, fileList: RcFile[]): Promise<ParsedFileInfo> => {\n      const { beforeUpload } = props;\n\n      let transformedFile: BeforeUploadFileType | void = file;\n      if (beforeUpload) {\n        try {\n          transformedFile = await beforeUpload(file, fileList);\n        } catch (e) {\n          // Rejection will also trade as false\n          transformedFile = false;\n        }\n        if (transformedFile === false) {\n          return {\n            origin: file,\n            parsedFile: null,\n            action: null,\n            data: null,\n          };\n        }\n      }\n\n      // Get latest action\n      const { action } = props;\n      let mergedAction: string;\n      if (typeof action === 'function')\n        mergedAction = await action(file);\n      else\n        mergedAction = action;\n\n      // Get latest data\n      const { data } = props;\n      let mergedData: Record<string, unknown>;\n      if (typeof data === 'function')\n        mergedData = await data(file);\n      else\n        mergedData = data;\n\n      const parsedData\n        // string type is from legacy `transformFile`.\n        // Not sure if this will work since no related test case works with it\n        = (typeof transformedFile === 'object' || typeof transformedFile === 'string')\n        && transformedFile\n          ? transformedFile\n          : file;\n\n      let parsedFile: File;\n      if (parsedData instanceof File)\n        parsedFile = parsedData;\n      else\n        parsedFile = new File([parsedData], file.name, { type: file.type });\n\n      const mergedParsedFile: RcFile = parsedFile as RcFile;\n      mergedParsedFile.uid = file.uid;\n\n      return {\n        origin: file,\n        data: mergedData,\n        parsedFile: mergedParsedFile,\n        action: mergedAction,\n      };\n    };\n\n    const post = ({ data, origin, action, parsedFile }: ParsedFileInfo) => {\n      if (!isMounted)\n        return;\n\n      const { onStart, customRequest, name, headers, withCredentials, method } = props;\n\n      const { uid } = origin;\n      const request = customRequest || defaultRequest;\n\n      const requestOption = {\n        action,\n        filename: name,\n        data,\n        file: parsedFile,\n        headers,\n        withCredentials,\n        method: method || 'post',\n        onProgress: (e: UploadProgressEvent) => {\n          const { onProgress } = props;\n          onProgress?.(e, parsedFile);\n        },\n        onSuccess: (ret: any, xhr: XMLHttpRequest) => {\n          const { onSuccess } = props;\n          onSuccess?.(ret, parsedFile, xhr);\n\n          delete reqs[uid];\n        },\n        onError: (err: UploadRequestError, ret: any) => {\n          const { onError } = props;\n          onError?.(err, ret, parsedFile);\n\n          delete reqs[uid];\n        },\n      };\n\n      onStart(origin);\n      reqs[uid] = request(requestOption);\n    };\n\n    const reset = () => {\n      uid.value = getUid();\n    };\n\n    const abort = (file?: any) => {\n      if (file) {\n        const uid = file.uid ? file.uid : file;\n        if (reqs[uid] && reqs[uid].abort)\n          reqs[uid].abort();\n\n        delete reqs[uid];\n      } else {\n        Object.keys(reqs).forEach((uid) => {\n          if (reqs[uid] && reqs[uid].abort)\n            reqs[uid].abort();\n\n          delete reqs[uid];\n        });\n      }\n    };\n\n    onMounted(() => {\n      isMounted = true;\n    });\n\n    onBeforeUnmount(() => {\n      isMounted = false;\n      abort();\n    });\n    const uploadFiles = (files: File[]) => {\n      const originFiles = [...files] as RcFile[];\n      const postFiles = originFiles.map((file: RcFile & { uid?: string }) => {\n        file.uid = getUid();\n        return processFile(file, originFiles);\n      });\n\n      // Batch upload files\n      Promise.all(postFiles).then((fileList) => {\n        const { onBatchStart } = props;\n\n        onBatchStart?.(fileList.map(({ origin, parsedFile }) => ({ file: origin, parsedFile })));\n\n        fileList\n          .filter(file => file.parsedFile !== null)\n          .forEach((file) => {\n            post(file);\n          });\n      });\n    };\n\n    const onChange = (e: ChangeEvent) => {\n      const { accept, directory } = props;\n      const { files } = e.target as any;\n      const acceptedFiles = [...files].filter(\n        (file: RcFile) => !directory || attrAccept(file, accept),\n      );\n      uploadFiles(acceptedFiles);\n      reset();\n    };\n\n    const onClick = (e: MouseEvent | KeyboardEvent) => {\n      const el = fileInput.value;\n      if (!el)\n        return;\n\n      const { onClick } = props;\n      // TODO\n      // if (children && (children as any).type === 'button') {\n      //   const parent = el.parentNode as HTMLInputElement;\n      //   parent.focus();\n      //   parent.querySelector('button').blur();\n      // }\n      el.click();\n      if (onClick)\n        onClick(e);\n    };\n\n    const onKeyDown = (e: KeyboardEvent) => {\n      if (e.key === 'Enter')\n        onClick(e);\n    };\n\n    const onFileDrop = (e: DragEvent) => {\n      const { multiple } = props;\n\n      e.preventDefault();\n\n      if (e.type === 'dragover')\n        return;\n\n      if (props.directory) {\n        traverseFileTree(\n          Array.prototype.slice.call(e.dataTransfer.items),\n          uploadFiles,\n          (_file: RcFile) => attrAccept(_file, props.accept),\n        );\n      } else {\n        const files: [RcFile[], RcFile[]] = partition(\n          Array.prototype.slice.call(e.dataTransfer.files),\n          (file: RcFile) => attrAccept(file, props.accept),\n        );\n        let successFiles = files[0];\n        const errorFiles = files[1];\n        if (multiple === false)\n          successFiles = successFiles.slice(0, 1);\n\n        uploadFiles(successFiles);\n        if (errorFiles.length && props.onReject) props.onReject(errorFiles);\n      }\n    };\n    expose({\n      abort,\n    });\n    return () => {\n      const {\n        componentTag: Tag,\n        prefixCls,\n        disabled,\n        id,\n        multiple,\n        accept,\n        capture,\n        directory,\n        openFileDialogOnClick,\n        onMouseenter,\n        onMouseleave,\n        ...otherProps\n      } = props;\n      const cls = {\n        [prefixCls]: true,\n        [`${prefixCls}-disabled`]: disabled,\n        [attrs.class as string]: !!attrs.class,\n      };\n      // because input don't have directory/webkitdirectory type declaration\n      const dirProps: any = directory\n        ? { directory: 'directory', webkitdirectory: 'webkitdirectory' }\n        : {};\n      const events = disabled\n        ? {}\n        : {\n            onClick: openFileDialogOnClick ? onClick : () => {},\n            onKeydown: openFileDialogOnClick ? onKeyDown : () => {},\n            onMouseenter,\n            onMouseleave,\n            onDrop: onFileDrop,\n            onDragover: onFileDrop,\n            tabindex: '0',\n          };\n      return (\n        <Tag {...events} class={cls} role=\"button\" style={attrs.style}>\n          <input\n            {...pickAttrs(otherProps, { aria: true, data: true })}\n            id={id}\n            type=\"file\"\n            ref={fileInput}\n            onClick={e => e.stopPropagation()} // https://github.com/ant-design/ant-design/issues/19948\n            onCancel={e => e.stopPropagation()}\n            key={uid.value}\n            style={{ display: 'none' }}\n            accept={accept}\n            {...dirProps}\n            multiple={multiple}\n            onChange={onChange}\n            {...(capture != null ? { capture } : {})}\n          />\n          {slots.default?.()}\n        </Tag>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","uploadProps","setup","slots","attrs","expose","uid","ref","getUid","reqs","fileInput","isMounted","processFile","file","fileList","beforeUpload","transformedFile","e","origin","parsedFile","action","data","mergedAction","mergedData","parsedData","File","type","mergedParsedFile","post","onStart","customRequest","headers","withCredentials","method","request","defaultRequest","requestOption","filename","onProgress","onSuccess","ret","xhr","onError","err","reset","value","abort","Object","keys","forEach","onMounted","onBeforeUnmount","uploadFiles","files","originFiles","postFiles","map","Promise","all","then","onBatchStart","filter","onChange","accept","directory","target","acceptedFiles","attrAccept","onClick","el","click","onKeyDown","key","onFileDrop","multiple","preventDefault","traverseFileTree","Array","prototype","slice","call","dataTransfer","items","_file","partition","successFiles","errorFiles","length","onReject","componentTag","Tag","prefixCls","disabled","id","capture","openFileDialogOnClick","onMouseenter","onMouseleave","otherProps","cls","class","dirProps","webkitdirectory","events","onKeydown","onDrop","onDragover","tabindex","_createVNode","style","default","pickAttrs","aria","stopPropagation","display"],"mappings":"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"}