{"version":3,"file":"index.cjs","sources":["../../../../../../../packages/components/upload/src/UploadList/index.tsx"],"sourcesContent":["import type { VueNode } from '@antdv/types';\nimport type { HTMLAttributes } from 'vue';\nimport type { ButtonProps } from '../../../button';\nimport type { InternalUploadFile, UploadFile } from '../interface';\nimport { FileTwoTone, LoadingOutlined, PaperClipOutlined, PictureTwoTone } from '@ant-design/icons-vue';\nimport { filterEmpty, initDefaultProps, isValidElement } from '@antdv/utils';\nimport { collapseMotion, getTransitionGroupProps } from '@antdv/vue-components';\nimport {\n  computed,\n  defineComponent,\n  onMounted,\n  shallowRef,\n  TransitionGroup,\n  triggerRef,\n  watch,\n  watchEffect,\n} from 'vue';\nimport Button from '../../../button';\nimport useConfigInject from '../../../config-provider/src/hooks/useConfigInject';\nimport { uploadListProps } from '../interface';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\n\nfunction HackSlot(_, { slots }) {\n  return filterEmpty(slots.default?.())[0];\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AUploadList',\n  props: initDefaultProps(uploadListProps(), {\n    listType: 'text', // or picture\n    progress: {\n      strokeWidth: 2,\n      showInfo: false,\n    },\n    showRemoveIcon: true,\n    showDownloadIcon: false,\n    showPreviewIcon: true,\n    previewFile: previewImage,\n    isImageUrl,\n    items: [],\n    appendActionVisible: true,\n  }),\n  setup(props, { slots, expose }) {\n    const motionAppear = shallowRef(false);\n\n    onMounted(() => {\n      motionAppear.value === true;\n    });\n    const mergedItems = shallowRef([]);\n    watch(\n      () => props.items,\n      (val = []) => {\n        mergedItems.value = val.slice();\n      },\n      {\n        immediate: true,\n        deep: true,\n      },\n    );\n    watchEffect(() => {\n      if (props.listType !== 'picture' && props.listType !== 'picture-card')\n        return;\n      let hasUpdate = false;\n      (props.items || []).forEach((file: InternalUploadFile, index) => {\n        if (\n          typeof document === 'undefined'\n          || typeof window === 'undefined'\n          || !(window as any).FileReader\n          || !(window as any).File\n          || !(file.originFileObj instanceof File || (file.originFileObj as Blob) instanceof Blob)\n          || file.thumbUrl !== undefined\n        ) {\n          return;\n        }\n\n        file.thumbUrl = '';\n        if (props.previewFile) {\n          props.previewFile(file.originFileObj as File).then((previewDataUrl: string) => {\n            // Need append '' to avoid dead loop\n            const thumbUrl = previewDataUrl || '';\n            if (thumbUrl !== file.thumbUrl) {\n              mergedItems.value[index].thumbUrl = thumbUrl;\n              hasUpdate = true;\n            }\n          });\n        }\n      });\n      if (hasUpdate)\n        triggerRef(mergedItems);\n    });\n\n    // ============================= Events =============================\n    const onInternalPreview = (file: UploadFile, e?: Event) => {\n      if (!props.onPreview)\n        return;\n\n      e?.preventDefault();\n      return props.onPreview(file);\n    };\n\n    const onInternalDownload = (file: UploadFile) => {\n      if (typeof props.onDownload === 'function')\n        props.onDownload(file);\n      else if (file.url)\n        window.open(file.url);\n    };\n\n    const onInternalClose = (file: UploadFile) => {\n      props.onRemove?.(file);\n    };\n\n    const internalIconRender = ({ file }: { file: UploadFile }) => {\n      const iconRender = props.iconRender || slots.iconRender;\n      if (iconRender)\n        return iconRender({ file, listType: props.listType });\n\n      const isLoading = file.status === 'uploading';\n      const fileIcon\n        = props.isImageUrl && props.isImageUrl(file) ? <PictureTwoTone /> : <FileTwoTone />;\n      let icon: VueNode = isLoading ? <LoadingOutlined /> : <PaperClipOutlined />;\n      if (props.listType === 'picture')\n        icon = isLoading ? <LoadingOutlined /> : fileIcon;\n      else if (props.listType === 'picture-card')\n        icon = isLoading ? props.locale.uploading : fileIcon;\n\n      return icon;\n    };\n\n    const actionIconRender = (opt: {\n      customIcon: VueNode;\n      callback: () => void;\n      prefixCls: string;\n      title?: string;\n    }) => {\n      const { customIcon, callback, prefixCls, title } = opt;\n      const btnProps: ButtonProps & HTMLAttributes = {\n        type: 'text',\n        size: 'small',\n        title,\n        onClick: () => {\n          callback();\n        },\n        class: `${prefixCls}-list-item-action`,\n      };\n      if (isValidElement(customIcon))\n        return <Button {...btnProps} v-slots={{ icon: () => customIcon }} />;\n\n      return (\n        <Button {...btnProps}>\n          <span>{customIcon}</span>\n        </Button>\n      );\n    };\n\n    expose({\n      handlePreview: onInternalPreview,\n      handleDownload: onInternalDownload,\n    });\n\n    const { prefixCls, rootPrefixCls } = useConfigInject('upload', props);\n\n    const listClassNames = computed(() => ({\n      [`${prefixCls.value}-list`]: true,\n      [`${prefixCls.value}-list-${props.listType}`]: true,\n    }));\n    const transitionGroupProps = computed(() => {\n      const motion = {\n        ...collapseMotion(`${rootPrefixCls.value}-motion-collapse`),\n      };\n      delete motion.onAfterAppear;\n      delete motion.onAfterEnter;\n      delete motion.onAfterLeave;\n      const motionConfig = {\n        ...getTransitionGroupProps(\n          `${prefixCls.value}-${props.listType === 'picture-card' ? 'animate-inline' : 'animate'}`,\n        ),\n        class: listClassNames.value,\n        appear: motionAppear.value,\n      };\n      return props.listType !== 'picture-card'\n        ? {\n            ...motion,\n            ...motionConfig,\n          }\n        : motionConfig;\n    });\n    return () => {\n      const {\n        listType,\n        locale,\n        isImageUrl: isImgUrl,\n        showPreviewIcon,\n        showRemoveIcon,\n        showDownloadIcon,\n        removeIcon,\n        previewIcon,\n        downloadIcon,\n        progress,\n        appendAction,\n        itemRender,\n        appendActionVisible,\n      } = props;\n      const appendActionDom = appendAction?.();\n      const items = mergedItems.value;\n      return (\n        <TransitionGroup {...transitionGroupProps.value} tag=\"div\">\n          {items.map((file) => {\n            const { uid: key } = file;\n            return (\n              <ListItem\n                key={key}\n                locale={locale}\n                prefixCls={prefixCls.value}\n                file={file}\n                items={items}\n                progress={progress}\n                listType={listType}\n                isImgUrl={isImgUrl}\n                showPreviewIcon={showPreviewIcon}\n                showRemoveIcon={showRemoveIcon}\n                showDownloadIcon={showDownloadIcon}\n                onPreview={onInternalPreview}\n                onDownload={onInternalDownload}\n                onClose={onInternalClose}\n                removeIcon={removeIcon}\n                previewIcon={previewIcon}\n                downloadIcon={downloadIcon}\n                itemRender={itemRender}\n                v-slots={{\n                  ...slots,\n                  iconRender: internalIconRender,\n                  actionIconRender,\n                }}\n              />\n            );\n          })}\n          {appendAction\n            ? (\n                <HackSlot\n                  key=\"__ant_upload_appendAction\"\n                  v-show={!!appendActionVisible}\n                  v-slots={{ default: () => appendActionDom }}\n                >\n                </HackSlot>\n              )\n            : null}\n        </TransitionGroup>\n      );\n    };\n  },\n});\n"],"names":["HackSlot","_","slots","filterEmpty","default","defineComponent","compatConfig","MODE","name","props","initDefaultProps","uploadListProps","listType","progress","strokeWidth","showInfo","showRemoveIcon","showDownloadIcon","showPreviewIcon","previewFile","previewImage","isImageUrl","items","appendActionVisible","setup","expose","motionAppear","shallowRef","onMounted","value","mergedItems","watch","val","slice","immediate","deep","watchEffect","hasUpdate","forEach","file","index","document","window","FileReader","File","originFileObj","Blob","thumbUrl","undefined","then","previewDataUrl","triggerRef","onInternalPreview","e","onPreview","preventDefault","onInternalDownload","onDownload","url","open","onInternalClose","onRemove","internalIconRender","iconRender","isLoading","status","fileIcon","_createVNode","PictureTwoTone","FileTwoTone","icon","LoadingOutlined","PaperClipOutlined","locale","uploading","actionIconRender","opt","customIcon","callback","prefixCls","title","btnProps","type","size","onClick","class","isValidElement","Button","handlePreview","handleDownload","rootPrefixCls","useConfigInject","listClassNames","computed","transitionGroupProps","motion","collapseMotion","onAfterAppear","onAfterEnter","onAfterLeave","motionConfig","getTransitionGroupProps","appear","isImgUrl","removeIcon","previewIcon","downloadIcon","appendAction","itemRender","appendActionDom","TransitionGroup","map","uid","key","ListItem","_withDirectives","_vShow"],"mappings":"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"}