{"version":3,"file":"dragger-file.mjs","sources":["../../../../components/upload/components/dragger-file.tsx"],"sourcesContent":["import { defineComponent, toRefs, PropType, ref, computed, h } from 'vue';\nimport {\n  CheckCircleFilledIcon as TdCheckCircleFilledIcon,\n  ErrorCircleFilledIcon as TdErrorCircleFilledIcon,\n} from 'tdesign-icons-vue-next';\nimport { abridgeName, getFileSizeText } from '@tdesign/common-js/upload/utils';\nimport { TdUploadProps, UploadFile } from '../type';\nimport Button from '../../button';\nimport { CommonDisplayFileProps } from '../types';\nimport { commonProps } from '../constants';\nimport { useTNodeJSX, useGlobalIcon, useCommonClassName } from '@tdesign/shared-hooks';\nimport TLoading from '../../loading';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\n\nimport ImageViewer, { ImageViewerProps } from '../../image-viewer';\n\nimport { UploadConfig } from '../../config-provider';\nimport Image from '../../image';\n\nexport interface DraggerProps extends CommonDisplayFileProps {\n  trigger?: TdUploadProps['trigger'];\n  triggerUpload?: (e: MouseEvent) => void;\n  uploadFiles?: (toFiles?: UploadFile[]) => void;\n  cancelUpload?: (context: { e: MouseEvent; file: UploadFile }) => void;\n  dragEvents: UploadDragEvents;\n}\n\nexport default defineComponent({\n  name: 'UploadDraggerFile',\n  props: {\n    ...commonProps,\n    trigger: Function as PropType<DraggerProps['trigger']>,\n    triggerUpload: Function as PropType<DraggerProps['triggerUpload']>,\n    uploadFiles: Function as PropType<DraggerProps['uploadFiles']>,\n    cancelUpload: Function as PropType<DraggerProps['cancelUpload']>,\n    dragEvents: Object as PropType<DraggerProps['dragEvents']>,\n  },\n  setup(props, { slots }) {\n    const { displayFiles, disabled, accept } = toRefs(props);\n    const locale = computed(() => props.locale as UploadConfig);\n\n    const renderTNodeJSX = useTNodeJSX();\n\n    const { SIZE } = useCommonClassName();\n    const uploadPrefix = `${props.classPrefix}-upload`;\n\n    const drag = useDrag(props.dragEvents, accept);\n    const { dragActive } = drag;\n\n    const draggerFileRef = ref();\n\n    const classes = computed(() => [\n      `${uploadPrefix}__dragger`,\n      { [`${uploadPrefix}__dragger-center`]: !displayFiles.value[0] },\n      { [`${uploadPrefix}__dragger-error`]: displayFiles.value[0]?.status === 'fail' },\n    ]);\n\n    const { CheckCircleFilledIcon, ErrorCircleFilledIcon } = useGlobalIcon({\n      CheckCircleFilledIcon: TdCheckCircleFilledIcon,\n      ErrorCircleFilledIcon: TdErrorCircleFilledIcon,\n    });\n\n    const renderImage = () => {\n      if (!props.displayFiles.length) return;\n      const file = displayFiles.value[0];\n      if (!file) return null;\n      const url = file?.url || file?.response?.url;\n      return (\n        <div class={`${uploadPrefix}__dragger-img-wrap`}>\n          <ImageViewer\n            images={[url]}\n            trigger={(h, { open }: any) => (\n              <div onClick={open}>\n                <Image src={url || file.raw} error=\"\" loading=\"\" />\n              </div>\n            )}\n            {...(props.imageViewerProps as ImageViewerProps)}\n          ></ImageViewer>\n        </div>\n      );\n    };\n\n    const renderUploading = () => {\n      if (!props.displayFiles.length) return;\n      const file = displayFiles.value[0];\n      if (!file) return null;\n      if (file?.status === 'progress') {\n        return (\n          <div class={`${uploadPrefix}__single-progress`}>\n            <TLoading />\n            {props.showUploadProgress && <span class={`${uploadPrefix}__single-percent`}>{file.percent}%</span>}\n          </div>\n        );\n      }\n    };\n\n    const renderMainPreview = () => {\n      const file = displayFiles.value[0];\n      const fileName = props.abridgeName ? abridgeName(file.name, ...props.abridgeName) : file.name;\n\n      const fileInfo = [\n        <div class={`${uploadPrefix}__dragger-text`} key=\"info\">\n          <span class={`${uploadPrefix}__single-name`}>{fileName}</span>\n          {file.status === 'progress' && renderUploading()}\n          {file.status === 'success' && <CheckCircleFilledIcon />}\n          {file.status === 'fail' && <ErrorCircleFilledIcon />}\n        </div>,\n        <small class={`${SIZE.value.small}`} key=\"size\">\n          {locale.value.file.fileSizeText}：{getFileSizeText(file.size)}\n        </small>,\n        <small class={`${SIZE.value.small}`} key=\"time\">\n          {locale.value.file.fileOperationDateText}：{file.uploadTime || '-'}\n        </small>,\n      ];\n      return (\n        <div class={`${uploadPrefix}__dragger-progress`}>\n          {props.theme === 'image' && renderImage()}\n          <div class={`${uploadPrefix}__dragger-progress-info`}>\n            {renderTNodeJSX('fileListDisplay', { params: { files: props.displayFiles } }) || fileInfo}\n\n            <div class={`${uploadPrefix}__dragger-btns`}>\n              {['progress', 'waiting'].includes(file.status) && !disabled.value && (\n                <Button\n                  theme=\"primary\"\n                  variant=\"text\"\n                  class={`${uploadPrefix}__dragger-progress-cancel`}\n                  onClick={(e: MouseEvent) =>\n                    props.cancelUpload?.({\n                      e,\n                      file: props.toUploadFiles[0] || props.files[0],\n                    })\n                  }\n                >\n                  {locale.value?.cancelUploadText}\n                </Button>\n              )}\n              {!props.autoUpload && file.status === 'waiting' && (\n                <Button\n                  theme=\"primary\"\n                  variant=\"text\"\n                  disabled={disabled.value}\n                  onClick={() => props.uploadFiles?.()}\n                  class={`${uploadPrefix}__dragger-upload-btn`}\n                >\n                  {locale.value.triggerUploadText.normal}\n                </Button>\n              )}\n            </div>\n            {['fail', 'success'].includes(file?.status) && !disabled.value && (\n              <div class={`${uploadPrefix}__dragger-btns`}>\n                <Button\n                  theme=\"primary\"\n                  variant=\"text\"\n                  disabled={disabled.value}\n                  class={`${uploadPrefix}__dragger-progress-cancel`}\n                  onClick={props.triggerUpload}\n                >\n                  {locale.value.triggerUploadText.reupload}\n                </Button>\n                <Button\n                  theme=\"danger\"\n                  variant=\"text\"\n                  disabled={disabled.value}\n                  class={`${uploadPrefix}__dragger-delete-btn`}\n                  onClick={(e: MouseEvent) => props.onRemove({ e, index: 0, file })}\n                >\n                  {locale.value.triggerUploadText.delete}\n                </Button>\n              </div>\n            )}\n          </div>\n        </div>\n      );\n    };\n\n    const renderDefaultDragElement = () => {\n      const unActiveElement = (\n        <div>\n          <span class={`${uploadPrefix}--highlight`}>{locale.value.triggerUploadText?.normal}</span>\n          <span>&nbsp;&nbsp;/&nbsp;&nbsp;{locale.value.dragger.draggingText}</span>\n        </div>\n      );\n      const activeElement = <div>{locale.value.dragger.dragDropText}</div>;\n      return dragActive.value ? activeElement : unActiveElement;\n    };\n\n    const getContent = () => {\n      const file = displayFiles.value[0];\n      if (file && (['progress', 'success', 'fail', 'waiting'].includes(file.status) || !file.status)) {\n        return renderMainPreview();\n      }\n      return (\n        <div class={`${uploadPrefix}__trigger`} onClick={props.triggerUpload}>\n          {slots.default?.() || renderDefaultDragElement()}\n        </div>\n      );\n    };\n\n    return () => (\n      <div\n        ref={draggerFileRef}\n        class={classes.value}\n        onDrop={drag.handleDrop}\n        onDragenter={drag.handleDragenter}\n        onDragover={drag.handleDragover}\n        onDragleave={drag.handleDragleave}\n      >\n        {props.trigger?.(h, { files: displayFiles.value, dragActive: dragActive.value }) || getContent()}\n      </div>\n    );\n  },\n});\n"],"names":["defineComponent","name","props","_objectSpread","commonProps","trigger","Function","triggerUpload","uploadFiles","cancelUpload","dragEvents","Object","setup","_ref","slots","_toRefs","toRefs","displayFiles","disabled","accept","locale","computed","renderTNodeJSX","useTNodeJSX","_useCommonClassName","useCommonClassName","SIZE","uploadPrefix","concat","classPrefix","drag","useDrag","dragActive","draggerFileRef","ref","classes","_displayFiles$value$","_defineProperty","value","status","_useGlobalIcon","useGlobalIcon","CheckCircleFilledIcon","TdCheckCircleFilledIcon","ErrorCircleFilledIcon","TdErrorCircleFilledIcon","renderImage","_file$response","length","file","url","response","_createVNode","ImageViewer","_mergeProps","h","_ref4","open","raw","imageViewerProps","renderUploading","TLoading","showUploadProgress","percent","renderMainPreview","_locale$value","fileName","abridgeName","apply","fileInfo","small","fileSizeText","getFileSizeText","size","fileOperationDateText","uploadTime","theme","params","files","includes","Button","onClick","e","_props$cancelUpload","call","toUploadFiles","_default","cancelUploadText","autoUpload","_props$uploadFiles","triggerUploadText","normal","reupload","onRemove","index","renderDefaultDragElement","_locale$value$trigger","unActiveElement","dragger","draggingText","activeElement","dragDropText","getContent","_slots$default","_props$trigger","handleDrop","handleDragenter","handleDragover","handleDragleave"],"mappings":"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"}