Files
element-plus/packages/components/upload/src/upload-list.ts
yuhengshen cfc661c626 feat(types): [components] add public prop types (#21222)
* feat(types): [utils] add ExtractPublicPropTypes type

* feat(types): [components] add props public type

* chore(types): use type-only import for Prop from 'vue'

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>

---------

Co-authored-by: Noblet Ouways <91417411+Dsaquel@users.noreply.github.com>
2025-07-07 00:51:32 +08:00

40 lines
1.2 KiB
TypeScript

import { NOOP, buildProps, definePropType, mutable } from '@element-plus/utils'
import { uploadListTypes } from './upload'
import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'
import type { UploadFile, UploadFiles, UploadHooks } from './upload'
import type UploadList from './upload-list.vue'
export const uploadListProps = buildProps({
files: {
type: definePropType<UploadFiles>(Array),
default: () => mutable([]),
},
disabled: Boolean,
handlePreview: {
type: definePropType<UploadHooks['onPreview']>(Function),
default: NOOP,
},
listType: {
type: String,
values: uploadListTypes,
default: 'text',
},
/**
* @description set HTML attribute: crossorigin.
*/
crossorigin: {
type: definePropType<'anonymous' | 'use-credentials' | ''>(String),
},
} as const)
export type UploadListProps = ExtractPropTypes<typeof uploadListProps>
export type UploadListPropsPublic = __ExtractPublicPropTypes<
typeof uploadListProps
>
export const uploadListEmits = {
remove: (file: UploadFile) => !!file,
}
export type UploadListEmits = typeof uploadListEmits
export type UploadListInstance = InstanceType<typeof UploadList> & unknown