import { VNode, CreateElement } from 'vue'; import { ElementUIComponent } from './component'; /** Trigger mode of expanding current item */ export type ExpandTrigger = 'click' | 'hover'; /** Cascader Option */ export interface CascaderOption { label: string; value: any; children?: CascaderOption[]; disabled?: boolean; leaf?: boolean; } /** Cascader Props */ export interface CascaderProps { expandTrigger?: ExpandTrigger; multiple?: boolean; checkStrictly?: boolean; emitPath?: boolean; lazy?: boolean; lazyLoad?: (node: CascaderNode, resolve: Resolve) => void; value?: string; label?: string; children?: string; disabled?: string; leaf?: string; } /** Cascader Node */ export interface CascaderNode { uid: number; data: D; value: V; label: string; level: number; isDisabled: boolean; isLeaf: boolean; parent: CascaderNode | null; children: CascaderNode[]; config: CascaderProps; } type Resolve = (dataList?: D[]) => void; export interface CascaderPanelSlots { /** Custom label content */ default: VNode[]; [key: string]: VNode[]; } /** CascaderPanel Component */ export declare class ElCascaderPanel extends ElementUIComponent { /** Selected value */ value: V | V[]; /** Data of the options */ options: D[]; /** Configuration options */ props: CascaderProps; /** Whether to add border */ border: boolean; /** Render function of custom label content */ renderLabel: (h: CreateElement, context: { node: CascaderNode; data: D }) => VNode; $slots: CascaderPanelSlots; }