{"version":3,"file":"upload-list.vue2.mjs","sources":["../../../components/upload/upload-list.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Renderer } from '@/components/renderer'\r\nimport { UploadFile } from '@/components/upload-file'\r\n\r\nimport { computed } from 'vue'\r\n\r\nimport { emitEvent, useNameHelper, useProps } from '@vexip-ui/config'\r\nimport { uploadListProps } from './props'\r\nimport { uploadListTypes } from './symbol'\r\n\r\nimport type { UploadFileState, UploadListSlots } from './symbol'\r\n\r\ndefineOptions({ name: 'UploadList' })\r\n\r\nconst _props = defineProps(uploadListProps)\r\nconst props = useProps('uploadList', _props, {\r\n  files: {\r\n    default: () => [],\r\n    static: true,\r\n  },\r\n  selectToAdd: false,\r\n  iconRenderer: {\r\n    default: null,\r\n    isFunc: true,\r\n  },\r\n  type: {\r\n    default: 'name',\r\n    validator: value => uploadListTypes.includes(value),\r\n  },\r\n  loadingText: null,\r\n  style: null,\r\n  precision: 2,\r\n  // 'canPreview' using UploadFile default\r\n  slots: () => ({}),\r\n})\r\n\r\nconst slots = defineSlots<UploadListSlots>()\r\n\r\nconst nh = useNameHelper('upload')\r\nconst transitionName = computed(() => nh.ns('fade'))\r\n\r\nfunction handleDelete(file: UploadFileState) {\r\n  emitEvent(props.onDelete, file)\r\n}\r\n\r\nfunction handlePreview(file: UploadFileState) {\r\n  emitEvent(props.onPreview, file)\r\n}\r\n</script>\r\n\r\n<template>\r\n  <ul\r\n    :class=\"[nh.be('files'), nh.bs('vars'), props.inherit && nh.bem('files', 'inherit')]\"\r\n    :style=\"props.style\"\r\n  >\r\n    <Transition\r\n      v-for=\"item in props.files\"\r\n      :key=\"item.id\"\r\n      appear\r\n      :name=\"props.selectToAdd ? transitionName : undefined\"\r\n    >\r\n      <UploadFile\r\n        inherit\r\n        :file=\"item\"\r\n        :icon-renderer=\"props.iconRenderer\"\r\n        :list-type=\"props.type\"\r\n        :loading-text=\"props.loadingText\"\r\n        :select-to-add=\"props.selectToAdd\"\r\n        :precision=\"props.precision\"\r\n        :can-preview=\"props.canPreview\"\r\n        @delete=\"handleDelete\"\r\n        @preview=\"handlePreview\"\r\n      >\r\n        <template v-if=\"slots.item || props.slots.item\" #default=\"{ file, status, percentage }\">\r\n          <slot\r\n            name=\"item\"\r\n            :file=\"file\"\r\n            :status=\"status\"\r\n            :percentage=\"percentage\"\r\n          >\r\n            <Renderer\r\n              :renderer=\"props.slots.item\"\r\n              :data=\"{\r\n                file,\r\n                status,\r\n                percentage\r\n              }\"\r\n            ></Renderer>\r\n          </slot>\r\n        </template>\r\n        <template v-if=\"slots.icon || props.slots.icon\" #icon=\"{ file, status, percentage }\">\r\n          <slot\r\n            name=\"icon\"\r\n            :file=\"file\"\r\n            :status=\"status\"\r\n            :percentage=\"percentage\"\r\n          >\r\n            <Renderer :renderer=\"props.slots.icon\" :data=\"{ file, status, percentage }\"></Renderer>\r\n          </slot>\r\n        </template>\r\n      </UploadFile>\r\n    </Transition>\r\n    <slot name=\"suffix\">\r\n      <Renderer :renderer=\"props.slots.suffix\"></Renderer>\r\n    </slot>\r\n  </ul>\r\n</template>\r\n"],"names":["props","useProps","__props","value","uploadListTypes","slots","_useSlots","nh","useNameHelper","transitionName","computed","handleDelete","file","emitEvent","handlePreview","_createElementBlock","_normalizeClass","_unref","_normalizeStyle","_openBlock","_Fragment","_renderList","item","_createBlock","_Transition","_createVNode","UploadFile","_withCtx","status","percentage","_renderSlot","_ctx","Renderer"],"mappings":"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"}