{"version":3,"file":"upload2.mjs","sources":["../../../../../../packages/components/upload/src/upload.vue"],"sourcesContent":["<template>\n  <div>\n    <upload-list\n      v-if=\"isPictureCard && showFileList\"\n      :disabled=\"disabled\"\n      :list-type=\"listType\"\n      :files=\"uploadFiles\"\n      :handle-preview=\"onPreview\"\n      @remove=\"handleRemove\"\n    >\n      <template v-if=\"$slots.file\" #default=\"{ file }\">\n        <slot name=\"file\" :file=\"file\" />\n      </template>\n      <template #append>\n        <upload-content\n          v-if=\"listType === 'picture-card'\"\n          ref=\"uploadRef\"\n          v-bind=\"uploadContentProps\"\n        >\n          <slot v-if=\"slots.trigger\" name=\"trigger\" />\n          <slot v-if=\"!slots.trigger && slots.default\" />\n        </upload-content>\n      </template>\n    </upload-list>\n\n    <upload-content\n      v-if=\"listType !== 'picture-card'\"\n      ref=\"uploadRef\"\n      v-bind=\"uploadContentProps\"\n    >\n      <slot v-if=\"slots.trigger\" name=\"trigger\" />\n      <slot v-if=\"!slots.trigger && slots.default\" />\n    </upload-content>\n\n    <slot v-if=\"$slots.trigger\" />\n    <slot name=\"tip\" />\n    <upload-list\n      v-if=\"!isPictureCard && showFileList\"\n      :disabled=\"disabled\"\n      :list-type=\"listType\"\n      :files=\"uploadFiles\"\n      :handle-preview=\"onPreview\"\n      @remove=\"handleRemove\"\n    >\n      <template v-if=\"$slots.file\" #default=\"{ file }\">\n        <slot name=\"file\" :file=\"file\" />\n      </template>\n    </upload-list>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n  computed,\n  provide,\n  onBeforeUnmount,\n  toRef,\n  shallowRef,\n  useSlots,\n} from 'vue'\nimport { uploadContextKey } from '@element-plus/tokens'\nimport { useDisabled } from '@element-plus/hooks'\n\nimport UploadList from './upload-list.vue'\nimport UploadContent from './upload-content.vue'\nimport { useHandlers } from './use-handlers'\nimport { uploadProps, type UploadFiles } from './upload'\nimport type {\n  UploadContentInstance,\n  UploadContentProps,\n} from './upload-content'\n\ndefineOptions({\n  name: 'ElUpload',\n})\n\nconst props = defineProps(uploadProps)\nconst disabled = useDisabled()\n\nconst uploadRef = shallowRef<UploadContentInstance>()\nconst {\n  abort,\n  submit,\n  clearFiles,\n  uploadFiles,\n  handleStart,\n  handleError,\n  handleRemove,\n  handleSuccess,\n  handleProgress,\n} = useHandlers(props, uploadRef)\n\nconst isPictureCard = computed(() => props.listType === 'picture-card')\n\nonBeforeUnmount(() => {\n  uploadFiles.value.forEach(({ url }) => {\n    if (url?.startsWith('blob:')) URL.revokeObjectURL(url)\n  })\n})\n\nprovide(uploadContextKey, {\n  accept: toRef(props, 'accept'),\n})\n\ndefineExpose({\n  /** @description cancel upload request */\n  abort,\n  /** @description upload the file list manually */\n  submit,\n  /** @description clear the file list  */\n  clearFiles,\n  /** @description select the file manually */\n  handleStart,\n  /** @description remove the file manually */\n  handleRemove,\n})\n\nconst slots = useSlots()\n\n// did not use `defineComponent` for performance\nconst uploadContentProps = computed<UploadContentProps>(() => ({\n  type: props.type,\n  drag: props.drag,\n  action: props.action,\n  multiple: props.multiple,\n  withCredentials: props.withCredentials,\n  headers: props.headers,\n  method: props.method,\n  name: props.name,\n  data: props.data,\n  accept: props.accept,\n  autoUpload: props.autoUpload,\n  listType: props.listType,\n  disabled: props.disabled,\n  limit: props.limit,\n  fileList: props.fileList as UploadFiles,\n  showFileList: props.showFileList,\n  httpRequest: props.httpRequest,\n  beforeUpload: props.beforeUpload,\n  onExceed: props.onExceed,\n  onStart: handleStart,\n  onProgress: handleProgress,\n  onSuccess: handleSuccess,\n  onError: handleError,\n  onRemove: handleRemove,\n}))\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA6EA,IAAA,MAAA,QAAA,GAAA,WAAA,EAAA,CAAA;AAEA,IAAA,MAAA,SAAA,GAAA,UAAA,EAAA,CAAA;AACA,IAAA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,KAAA,GACA,YAAA,KAAA,EAAA,SAAA,CAAA,CAAA;AAEA,IAAA,MAAA,aAAA,GAAA,QAAA,CAAA,MAAA,KAAA,CAAA,QAAA,KAAA,cAAA,CAAA,CAAA;AAEA,IAAA,eAAA,CAAA,MAAA;AACA,MAAA,WAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA,EAAA,GAAA,EAAA,KAAA;AACA,QAAA,IAAA,OAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA;AAAA,UAAA,GAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAIA,IAAA,OAAA,CAAA,gBAAA,EAAA;AAAA,MACA,MAAA,EAAA,MAAA,KAAA,EAAA,QAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,CAAA;AAAA,MAEA,KAAA;AAAA,MAEA,MAAA;AAAA,MAEA,UAAA;AAAA,MAEA,WAAA;AAAA,MAEA,YAAA;AAAA,KAAA,CAAA,CAAA;AAGA,IAAA,MAAA,KAAA,GAAA,QAAA,EAAA,CAAA;AAGA,IAAA,MAAA,kBAAA,GAAA,SAAA,OAAA;AAAA,MACA,MAAA,KAAA,CAAA,IAAA;AAAA,MACA,MAAA,KAAA,CAAA,IAAA;AAAA,MACA,QAAA,KAAA,CAAA,MAAA;AAAA,MACA,UAAA,KAAA,CAAA,QAAA;AAAA,MACA,iBAAA,KAAA,CAAA,eAAA;AAAA,MACA,SAAA,KAAA,CAAA,OAAA;AAAA,MACA,QAAA,KAAA,CAAA,MAAA;AAAA,MACA,MAAA,KAAA,CAAA,IAAA;AAAA,MACA,MAAA,KAAA,CAAA,IAAA;AAAA,MACA,QAAA,KAAA,CAAA,MAAA;AAAA,MACA,YAAA,KAAA,CAAA,UAAA;AAAA,MACA,UAAA,KAAA,CAAA,QAAA;AAAA,MACA,UAAA,KAAA,CAAA,QAAA;AAAA,MACA,OAAA,KAAA,CAAA,KAAA;AAAA,MACA,UAAA,KAAA,CAAA,QAAA;AAAA,MACA,cAAA,KAAA,CAAA,YAAA;AAAA,MACA,aAAA,KAAA,CAAA,WAAA;AAAA,MACA,cAAA,KAAA,CAAA,YAAA;AAAA,MACA,UAAA,KAAA,CAAA,QAAA;AAAA,MACA,OAAA,EAAA,WAAA;AAAA,MACA,UAAA,EAAA,cAAA;AAAA,MACA,SAAA,EAAA,aAAA;AAAA,MACA,OAAA,EAAA,WAAA;AAAA,MACA,QAAA,EAAA,YAAA;AAAA,KAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}