{"version":3,"file":"ListItem.cjs","sources":["../../../../../../../packages/components/upload/src/UploadList/ListItem.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { CSSProperties, ExtractPropTypes } from 'vue';\nimport type { ItemRender, UploadFile, UploadListProgressProps, UploadListType, UploadLocale } from '../interface';\nimport { DeleteOutlined, DownloadOutlined, EyeOutlined } from '@ant-design/icons-vue';\nimport { arrayType, booleanType, functionType, objectType, stringType } from '@antdv/utils';\nimport { getTransitionProps } from '@antdv/vue-components';\nimport {\n  computed,\n  defineComponent,\n  onBeforeUnmount,\n  onMounted,\n  shallowRef,\n  Transition,\n  watch,\n} from 'vue';\nimport useConfigInject from '../../../config-provider/src/hooks/useConfigInject';\nimport Progress from '../../../progress';\nimport Tooltip from '../../../tooltip';\n\nexport function listItemProps() {\n  return {\n    prefixCls: String,\n    locale: objectType<UploadLocale>(undefined as UploadLocale),\n    file: objectType<UploadFile>(),\n    items: arrayType<UploadFile[]>(),\n    listType: stringType<UploadListType>(),\n    isImgUrl: functionType<(file: UploadFile) => boolean>(),\n\n    showRemoveIcon: booleanType(),\n    showDownloadIcon: booleanType(),\n    showPreviewIcon: booleanType(),\n    removeIcon: functionType<(opt: { file: UploadFile }) => VueNode>(),\n    downloadIcon: functionType<(opt: { file: UploadFile }) => VueNode>(),\n    previewIcon: functionType<(opt: { file: UploadFile }) => VueNode>(),\n\n    iconRender: functionType<(opt: { file: UploadFile }) => VueNode>(),\n    actionIconRender:\n      functionType<\n        (opt: {\n          customIcon: VueNode;\n          callback: () => void;\n          prefixCls: string;\n          title?: string | undefined;\n        }) => VueNode\n      >(),\n    itemRender: functionType<ItemRender>(),\n    onPreview: functionType<(file: UploadFile, e: Event) => void>(),\n    onClose: functionType<(file: UploadFile) => void>(),\n    onDownload: functionType<(file: UploadFile) => void>(),\n    progress: objectType<UploadListProgressProps>(),\n  };\n}\n\nexport type ListItemProps = Partial<ExtractPropTypes<ReturnType<typeof listItemProps>>>;\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ListItem',\n  inheritAttrs: false,\n  props: listItemProps(),\n  setup(props, { slots, attrs }) {\n    const showProgress = shallowRef(false);\n    const progressRafRef = shallowRef();\n    onMounted(() => {\n      progressRafRef.value = setTimeout(() => {\n        showProgress.value = true;\n      }, 300);\n    });\n    onBeforeUnmount(() => {\n      clearTimeout(progressRafRef.value);\n    });\n    const mergedStatus = shallowRef(props.file?.status);\n    watch(\n      () => props.file?.status,\n      (status) => {\n        if (status !== 'removed')\n          mergedStatus.value = status;\n      },\n    );\n    const { rootPrefixCls } = useConfigInject('upload', props);\n    const transitionProps = computed(() => getTransitionProps(`${rootPrefixCls.value}-fade`));\n    return () => {\n      const {\n        prefixCls,\n        locale,\n        listType,\n        file,\n        items,\n        progress: progressProps,\n        iconRender = slots.iconRender,\n        actionIconRender = slots.actionIconRender,\n        itemRender = slots.itemRender,\n        isImgUrl,\n        showPreviewIcon,\n        showRemoveIcon,\n        showDownloadIcon,\n        previewIcon: customPreviewIcon = slots.previewIcon,\n        removeIcon: customRemoveIcon = slots.removeIcon,\n        downloadIcon: customDownloadIcon = slots.downloadIcon,\n        onPreview,\n        onDownload,\n        onClose,\n      } = props;\n      const { class: className, style } = attrs;\n      // This is used for legacy span make scrollHeight the wrong value.\n      // We will force these to be `display: block` with non `picture-card`\n\n      const iconNode = iconRender({ file });\n      let icon = <div class={`${prefixCls}-text-icon`}>{iconNode}</div>;\n      if (listType === 'picture' || listType === 'picture-card') {\n        if (mergedStatus.value === 'uploading' || (!file.thumbUrl && !file.url)) {\n          const uploadingClassName = {\n            [`${prefixCls}-list-item-thumbnail`]: true,\n            [`${prefixCls}-list-item-file`]: mergedStatus.value !== 'uploading',\n          };\n          icon = <div class={uploadingClassName}>{iconNode}</div>;\n        } else {\n          const thumbnail = isImgUrl?.(file)\n            ? (\n                <img\n                  src={file.thumbUrl || file.url}\n                  alt={file.name}\n                  class={`${prefixCls}-list-item-image`}\n                  crossorigin={file.crossOrigin}\n                />\n              )\n            : (\n                iconNode\n              );\n          const aClassName = {\n            [`${prefixCls}-list-item-thumbnail`]: true,\n            [`${prefixCls}-list-item-file`]: isImgUrl && !isImgUrl(file),\n          };\n          icon = (\n            <a\n              class={aClassName}\n              onClick={e => onPreview(file, e)}\n              href={file.url || file.thumbUrl}\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              {thumbnail}\n            </a>\n          );\n        }\n      }\n\n      const infoUploadingClass = {\n        [`${prefixCls}-list-item`]: true,\n        [`${prefixCls}-list-item-${mergedStatus.value}`]: true,\n      };\n      const linkProps\n        = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n\n      const removeIcon = showRemoveIcon\n        ? actionIconRender({\n            customIcon: customRemoveIcon ? customRemoveIcon({ file }) : <DeleteOutlined />,\n            callback: () => onClose(file),\n            prefixCls,\n            title: locale.removeFile,\n          })\n        : null;\n      const downloadIcon\n        = showDownloadIcon && mergedStatus.value === 'done'\n          ? actionIconRender({\n              customIcon: customDownloadIcon ? customDownloadIcon({ file }) : <DownloadOutlined />,\n              callback: () => onDownload(file),\n              prefixCls,\n              title: locale.downloadFile,\n            })\n          : null;\n      const downloadOrDelete = listType !== 'picture-card' && (\n        <span\n          key=\"download-delete\"\n          class={[\n            `${prefixCls}-list-item-actions`,\n            {\n              picture: listType === 'picture',\n            },\n          ]}\n        >\n          {downloadIcon}\n          {removeIcon}\n        </span>\n      );\n      const listItemNameClass = `${prefixCls}-list-item-name`;\n      const fileName = file.url\n        ? [\n            <a\n              key=\"view\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n              class={listItemNameClass}\n              title={file.name}\n              {...linkProps}\n              href={file.url}\n              onClick={e => onPreview(file, e)}\n            >\n              {file.name}\n            </a>,\n            downloadOrDelete,\n          ]\n        : [\n            <span\n              key=\"view\"\n              class={listItemNameClass}\n              onClick={e => onPreview(file, e)}\n              title={file.name}\n            >\n              {file.name}\n            </span>,\n            downloadOrDelete,\n          ];\n      const previewStyle: CSSProperties = {\n        pointerEvents: 'none',\n        opacity: 0.5,\n      };\n      const previewIcon = showPreviewIcon\n        ? (\n            <a\n              href={file.url || file.thumbUrl}\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n              style={file.url || file.thumbUrl ? undefined : previewStyle}\n              onClick={e => onPreview(file, e)}\n              title={locale.previewFile}\n            >\n              {customPreviewIcon ? customPreviewIcon({ file }) : <EyeOutlined />}\n            </a>\n          )\n        : null;\n\n      const pictureCardActions = listType === 'picture-card'\n        && mergedStatus.value !== 'uploading' && (\n        <span class={`${prefixCls}-list-item-actions`}>\n          {previewIcon}\n          {mergedStatus.value === 'done' && downloadIcon}\n          {removeIcon}\n        </span>\n      );\n\n      const dom = (\n        <div class={infoUploadingClass}>\n          {icon}\n          {fileName}\n          {pictureCardActions}\n          {showProgress.value && (\n            <Transition {...transitionProps.value}>\n              <div\n                v-show={mergedStatus.value === 'uploading'}\n                class={`${prefixCls}-list-item-progress`}\n              >\n                {'percent' in file\n                  ? (\n                      <Progress\n                        {...(progressProps as UploadListProgressProps)}\n                        type=\"line\"\n                        percent={file.percent}\n                      />\n                    )\n                  : null}\n              </div>\n            </Transition>\n          )}\n        </div>\n      );\n      const listContainerNameClass = {\n        [`${prefixCls}-list-item-container`]: true,\n        [`${className}`]: !!className,\n      };\n      const message\n        = file.response && typeof file.response === 'string'\n          ? file.response\n          : file.error?.statusText || file.error?.message || locale.uploadError;\n      const item\n        = mergedStatus.value === 'error'\n          ? (\n              <Tooltip title={message} getPopupContainer={node => node.parentNode as HTMLElement}>\n                {dom}\n              </Tooltip>\n            )\n          : (\n              dom\n            );\n\n      return (\n        <div class={listContainerNameClass} style={style as CSSProperties}>\n          {itemRender\n            ? itemRender({\n                originNode: item,\n                file,\n                fileList: items,\n                actions: {\n                  download: onDownload.bind(null, file),\n                  preview: onPreview.bind(null, file),\n                  remove: onClose.bind(null, file),\n                },\n              })\n            : item}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["listItemProps","prefixCls","String","locale","objectType","undefined","file","items","arrayType","listType","stringType","isImgUrl","functionType","showRemoveIcon","booleanType","showDownloadIcon","showPreviewIcon","removeIcon","downloadIcon","previewIcon","iconRender","actionIconRender","itemRender","onPreview","onClose","onDownload","progress","defineComponent","compatConfig","MODE","name","inheritAttrs","props","setup","slots","attrs","showProgress","shallowRef","progressRafRef","onMounted","value","setTimeout","onBeforeUnmount","clearTimeout","mergedStatus","status","watch","rootPrefixCls","useConfigInject","transitionProps","computed","getTransitionProps","progressProps","customPreviewIcon","customRemoveIcon","customDownloadIcon","class","className","style","iconNode","icon","_createVNode","thumbUrl","url","uploadingClassName","thumbnail","crossOrigin","aClassName","e","infoUploadingClass","linkProps","JSON","parse","customIcon","DeleteOutlined","callback","title","removeFile","DownloadOutlined","downloadFile","downloadOrDelete","picture","listItemNameClass","fileName","previewStyle","pointerEvents","opacity","previewFile","EyeOutlined","pictureCardActions","dom","Transition","default","_withDirectives","Progress","percent","_vShow","listContainerNameClass","message","response","error","statusText","uploadError","item","Tooltip","node","parentNode","originNode","fileList","actions","download","bind","preview","remove"],"mappings":"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"}