import { BasicDataItem } from '@douyinfe/semi-foundation/lib/es/transfer/foundation'; import '@douyinfe/semi-foundation/lib/es/transfer/transfer.css'; import { InputProps } from '../input/index'; import { TreeProps } from '../tree/interface'; import { CSSProperties, PropType, VNode } from 'vue'; import { CombineProps, VueJsxNode } from '../interface'; import type { Events } from '@kousum/dnd-kit-vue'; export interface DataItem extends BasicDataItem { label?: VueJsxNode; style?: CSSProperties; } export interface GroupItem { title?: string; children?: Array; } export interface TreeItem extends DataItem { children: Array; } export interface RenderSourceItemProps extends DataItem { checked: boolean; onChange?: () => void; } export interface RenderSelectedItemProps extends DataItem { onRemove?: () => void; sortableHandle?: any; } export interface EmptyContent { left?: VueJsxNode; right?: VueJsxNode; search?: VueJsxNode; } export type Type = 'list' | 'groupList' | 'treeList'; export interface SourcePanelProps { value: Array; loading: boolean; noMatch: boolean; filterData: Array; sourceData: Array; propsDataSource: DataSource; allChecked: boolean; showNumber: number; inputValue: string; onSearch: (searchString: string) => void; onAllClick: () => void; selectedItems: Map; onSelectOrRemove: (item: DataItem) => void; onSelect: (value: Array) => void; } export type OnSortEnd = (event: Parameters[0]) => void; export interface SelectedPanelProps { length: number; selectedData: Array; onClear: () => void; onRemove: (item: DataItem) => void; onSortEnd: OnSortEnd; } export interface ResolvedDataItem extends DataItem { _parent?: { title: string; }; _optionKey?: string | number; } export interface DraggableResolvedDataItem { key?: string | number; index?: number; item?: ResolvedDataItem; } export type DataSource = Array | Array | Array; type SourceHeaderProps = { num: number; showButton: boolean; allChecked: boolean; onAllClick: () => void; }; type SelectedHeaderProps = { num: number; showButton: boolean; onClear: () => void; }; export interface TransferState { data: ResolvedDataItem[]; selectedItems: Map; searchResult: Set; inputValue: string; } export interface TransferProps { style?: CSSProperties; className?: string; disabled?: boolean; dataSource?: DataSource; filter?: boolean | ((sugInput: string, item: DataItem) => boolean); defaultValue?: Array; value?: Array; inputProps?: InputProps; type?: Type; emptyContent?: EmptyContent; draggable?: boolean; treeProps?: Omit; showPath?: boolean; loading?: boolean; onChange?: (values: Array, items: Array) => void; onSelect?: (item: DataItem) => void; onDeselect?: (item: DataItem) => void; onSearch?: (sunInput: string) => void; renderSourceItem?: (item: RenderSourceItemProps) => VNode; renderSelectedItem?: (item: RenderSelectedItemProps) => VueJsxNode; renderSourcePanel?: (sourcePanelProps: SourcePanelProps) => VueJsxNode; renderSelectedPanel?: (selectedPanelProps: SelectedPanelProps) => VueJsxNode; renderSourceHeader?: (headProps: SourceHeaderProps) => VueJsxNode; renderSelectedHeader?: (headProps: SelectedHeaderProps) => VueJsxNode; } export declare const prefixCls: string; export declare const vuePropsType: CombineProps; declare const Transfer: import("vue").DefineComponent | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; dataSource: PropType | { type: PropType; default?: any; required?: false; }; filter: PropType boolean)> | { type: PropType boolean)>; default?: any; required?: false; }; defaultValue: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; value: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; inputProps: PropType | { type: PropType; default?: any; required?: false; }; type: PropType | { type: PropType; default?: any; required?: false; }; emptyContent: PropType | { type: PropType; default?: any; required?: false; }; draggable: PropType | { type: PropType; default?: any; required?: false; }; treeProps: PropType> | { type: PropType>; default?: any; required?: false; }; showPath: PropType | { type: PropType; default?: any; required?: false; }; loading: PropType | { type: PropType; default?: any; required?: false; }; onChange: PropType<(values: Array, items: Array) => void> | { type: PropType<(values: Array, items: Array) => void>; default?: any; required?: false; }; onSelect: PropType<(item: DataItem) => void> | { type: PropType<(item: DataItem) => void>; default?: any; required?: false; }; onDeselect: PropType<(item: DataItem) => void> | { type: PropType<(item: DataItem) => void>; default?: any; required?: false; }; onSearch: PropType<(sunInput: string) => void> | { type: PropType<(sunInput: string) => void>; default?: any; required?: false; }; renderSourceItem: PropType<(item: RenderSourceItemProps) => VNode> | { type: PropType<(item: RenderSourceItemProps) => VNode>; default?: any; required?: false; }; renderSelectedItem: PropType<(item: RenderSelectedItemProps) => VueJsxNode> | { type: PropType<(item: RenderSelectedItemProps) => VueJsxNode>; default?: any; required?: false; }; renderSourcePanel: PropType<(sourcePanelProps: SourcePanelProps) => VueJsxNode> | { type: PropType<(sourcePanelProps: SourcePanelProps) => VueJsxNode>; default?: any; required?: false; }; renderSelectedPanel: PropType<(selectedPanelProps: SelectedPanelProps) => VueJsxNode> | { type: PropType<(selectedPanelProps: SelectedPanelProps) => VueJsxNode>; default?: any; required?: false; }; renderSourceHeader: PropType<(headProps: SourceHeaderProps) => VueJsxNode> | { type: PropType<(headProps: SourceHeaderProps) => VueJsxNode>; default?: any; required?: false; }; renderSelectedHeader: PropType<(headProps: SelectedHeaderProps) => VueJsxNode> | { type: PropType<(headProps: SelectedHeaderProps) => VueJsxNode>; default?: any; required?: false; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | { type: PropType; default?: any; required?: false; }; className: PropType | { type: PropType; default?: any; required?: false; }; disabled: PropType | { type: PropType; default?: any; required?: false; }; dataSource: PropType | { type: PropType; default?: any; required?: false; }; filter: PropType boolean)> | { type: PropType boolean)>; default?: any; required?: false; }; defaultValue: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; value: PropType<(string | number)[]> | { type: PropType<(string | number)[]>; default?: any; required?: false; }; inputProps: PropType | { type: PropType; default?: any; required?: false; }; type: PropType | { type: PropType; default?: any; required?: false; }; emptyContent: PropType | { type: PropType; default?: any; required?: false; }; draggable: PropType | { type: PropType; default?: any; required?: false; }; treeProps: PropType> | { type: PropType>; default?: any; required?: false; }; showPath: PropType | { type: PropType; default?: any; required?: false; }; loading: PropType | { type: PropType; default?: any; required?: false; }; onChange: PropType<(values: Array, items: Array) => void> | { type: PropType<(values: Array, items: Array) => void>; default?: any; required?: false; }; onSelect: PropType<(item: DataItem) => void> | { type: PropType<(item: DataItem) => void>; default?: any; required?: false; }; onDeselect: PropType<(item: DataItem) => void> | { type: PropType<(item: DataItem) => void>; default?: any; required?: false; }; onSearch: PropType<(sunInput: string) => void> | { type: PropType<(sunInput: string) => void>; default?: any; required?: false; }; renderSourceItem: PropType<(item: RenderSourceItemProps) => VNode> | { type: PropType<(item: RenderSourceItemProps) => VNode>; default?: any; required?: false; }; renderSelectedItem: PropType<(item: RenderSelectedItemProps) => VueJsxNode> | { type: PropType<(item: RenderSelectedItemProps) => VueJsxNode>; default?: any; required?: false; }; renderSourcePanel: PropType<(sourcePanelProps: SourcePanelProps) => VueJsxNode> | { type: PropType<(sourcePanelProps: SourcePanelProps) => VueJsxNode>; default?: any; required?: false; }; renderSelectedPanel: PropType<(selectedPanelProps: SelectedPanelProps) => VueJsxNode> | { type: PropType<(selectedPanelProps: SelectedPanelProps) => VueJsxNode>; default?: any; required?: false; }; renderSourceHeader: PropType<(headProps: SourceHeaderProps) => VueJsxNode> | { type: PropType<(headProps: SourceHeaderProps) => VueJsxNode>; default?: any; required?: false; }; renderSelectedHeader: PropType<(headProps: SelectedHeaderProps) => VueJsxNode> | { type: PropType<(headProps: SelectedHeaderProps) => VueJsxNode>; default?: any; required?: false; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export default Transfer;