123456789101112131415161718192021222324252627282930313233343536373839 |
- import { buildProps, definePropType } from '@element-plus/utils'
- import { transferCheckedChangeFn, transferProps } from './transfer'
- import type { ExtractPropTypes, VNode } from 'vue'
- import type { TransferDataItem, TransferKey } from './transfer'
- import type TransferPanel from './transfer-panel.vue'
- export interface TransferPanelState {
- checked: TransferKey[]
- allChecked: boolean
- query: string
- checkChangeByUser: boolean
- }
- export const CHECKED_CHANGE_EVENT = 'checked-change'
- export const transferPanelProps = buildProps({
- data: transferProps.data,
- optionRender: {
- type: definePropType<(option: TransferDataItem) => VNode | VNode[]>(
- Function
- ),
- },
- placeholder: String,
- title: String,
- filterable: Boolean,
- format: transferProps.format,
- filterMethod: transferProps.filterMethod,
- defaultChecked: transferProps.leftDefaultChecked,
- props: transferProps.props,
- } as const)
- export type TransferPanelProps = ExtractPropTypes<typeof transferPanelProps>
- export const transferPanelEmits = {
- [CHECKED_CHANGE_EVENT]: transferCheckedChangeFn,
- }
- export type TransferPanelEmits = typeof transferPanelEmits
- export type TransferPanelInstance = InstanceType<typeof TransferPanel>
|