{"version":3,"file":"upload.mjs","sources":["../../../../../../packages/components/upload/src/upload.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[\n      namespace,\n      drag && 'is-drag'\n    ]\"\n    :style=\"[\n      gap ? `--upload-item-gap: ${gap}` : '',\n    ]\"\n  >\n    <upload-list\n      v-if=\"listType === 'card' && showFileList\"\n      :disabled=\"uploadDisabled\"\n      :list-type=\"listType\"\n      :files=\"uploadFiles\"\n      :handle-preview=\"onPreview\"\n      :crossorigin=\"crossorigin\"\n      @remove=\"handleRemove\"\n    >\n      <template v-if=\"$slots.file\" #default=\"{ file, index }\">\n        <slot name=\"file\" :file=\"file\" :index=\"index\"></slot>\n      </template>\n      <template v-if=\"$slots['file-preview']\" #file-preview=\"{ file, index }\">\n        <slot name=\"file-preview\" :file=\"file\" :index=\"index\"></slot>\n      </template>\n      <template v-if=\"$slots['file-icon']\" #file-icon=\"{ file, index }\">\n        <slot name=\"file-icon\" :file=\"file\" :index=\"index\"></slot>\n      </template>\n    </upload-list>\n    <upload-content\n      ref=\"uploadRef\"\n      :type=\"type\"\n      :drag=\"drag\"\n      :action=\"action\"\n      :multiple=\"multiple\"\n      :with-credentials=\"withCredentials\"\n      :headers=\"headers\"\n      :method=\"method\"\n      :name=\"name\"\n      :data=\"data\"\n      :accept=\"accept\"\n      :file-list=\"uploadFiles\"\n      :auto-upload=\"autoUpload\"\n      :list-type=\"listType\"\n      :disabled=\"uploadDisabled\"\n      :limit=\"limit\"\n      :http-request=\"httpRequest\"\n      :before-upload=\"beforeUpload\"\n      :on-exceed=\"onExceed\"\n      :on-start=\"handleStart\"\n      :on-progress=\"handleProgress\"\n      :on-success=\"handleSuccess\"\n      :on-error=\"handleError\"\n      :on-remove=\"handleRemove\"\n    >\n      <template #default>\n        <slot v-if=\"$slots.trigger\" name=\"trigger\"></slot>\n        <slot v-if=\"!$slots.trigger && $slots.default\"></slot>\n      </template>\n    </upload-content>\n    <slot v-if=\"$slots.trigger\"></slot>\n    <slot name=\"tip\"></slot>\n    <upload-list\n      v-if=\"listType !== 'card' && showFileList\"\n      :disabled=\"uploadDisabled\"\n      :list-type=\"listType\"\n      :files=\"uploadFiles\"\n      :crossorigin=\"crossorigin\"\n      :handle-preview=\"onPreview\"\n      @remove=\"handleRemove\"\n    >\n      <template v-if=\"$slots.file\" #default=\"{ file, index }\">\n        <slot name=\"file\" :file=\"file\" :index=\"index\"></slot>\n      </template>\n      <template v-if=\"$slots['file-icon']\" #file-icon=\"{ file, index }\">\n        <slot name=\"file-icon\" :file=\"file\" :index=\"index\"></slot>\n      </template>\n    </upload-list>\n  </div>\n</template>\n<script lang=\"ts\" setup>\nimport { provide, onBeforeUnmount, toRef, shallowRef } from 'vue'\nimport { uploadContextKey } from '@hongluan-ui/tokens'\nimport { useConsistentProp, useNamespace } from '@hongluan-ui/hooks'\n\nimport UploadList from './upload-list.vue'\nimport UploadContent from './upload-content.vue'\nimport { useHandlers } from './use-handlers'\nimport { uploadProps } from './upload'\nimport type { UploadContentInstance } from './upload-content'\n\ndefineOptions({\n  name: 'Upload',\n})\n\nconst props = defineProps(uploadProps)\nconst { disabled: uploadDisabled } = useConsistentProp()\nconst { namespace } = useNamespace('upload')\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  revokeFileObjectURL,\n} = useHandlers(props, uploadRef)\n\nonBeforeUnmount(() => {\n  uploadFiles.value.forEach(revokeFileObjectURL)\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</script>\n"],"names":[],"mappings":";;;;;;;;;;;oCA2Fc;AAAA,EACZ,MAAM;AACR;;;;;;AAGA,UAAM,EAAE,UAAU,mBAAmB;AACrC,UAAM,EAAE,cAAc,aAAa,QAAQ;AAE3C,UAAM,YAAY;AAClB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,YAAY,OAAO,SAAS;AAEhC,oBAAgB,MAAM;AACpB,kBAAY,MAAM,QAAQ,mBAAmB;AAAA,KAC9C;AAED,YAAQ,kBAAkB;AAAA,MACxB,QAAQ,MAAM,OAAO,QAAQ;AAAA,KAC9B;AAED,WAAa;AAAA,MAEX;AAAA,MAEA;AAAA,MAEA;AAAA,MAEA;AAAA,MAEA;AAAA,KACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}