UNPKG

1.63 kBTypeScriptView Raw
1import { VNode, CreateElement } from 'vue';
2import { ElementUIComponent } from './component'
3
4/** Trigger mode of expanding current item */
5export type ExpandTrigger = 'click' | 'hover'
6
7/** Cascader Option */
8export interface CascaderOption {
9 label: string,
10 value: any,
11 children?: CascaderOption[],
12 disabled?: boolean,
13 leaf?: boolean
14}
15
16/** Cascader Props */
17export interface CascaderProps<V, D> {
18 expandTrigger?: ExpandTrigger,
19 multiple?: boolean,
20 checkStrictly?: boolean,
21 emitPath?: boolean,
22 lazy?: boolean,
23 lazyLoad?: (node: CascaderNode<V, D>, resolve: Resolve<D>) => void,
24 value?: string,
25 label?: string,
26 children?: string,
27 disabled?: string
28 leaf?: string
29}
30
31/** Cascader Node */
32export interface CascaderNode<V, D> {
33 uid: number,
34 data: D,
35 value: V,
36 label: string,
37 level: number,
38 isDisabled: boolean,
39 isLeaf: boolean,
40 parent: CascaderNode<V, D> | null,
41 children: CascaderNode<V, D>[]
42 config: CascaderProps<V, D>
43}
44
45type Resolve<D> = (dataList?: D[]) => void
46
47export interface CascaderPanelSlots {
48 /** Custom label content */
49 default: VNode[]
50
51 [key: string]: VNode[]
52}
53
54/** CascaderPanel Component */
55export declare class ElCascaderPanel<V = any, D = CascaderOption> extends ElementUIComponent {
56 /** Selected value */
57 value: V | V[]
58
59 /** Data of the options */
60 options: D[]
61
62 /** Configuration options */
63 props: CascaderProps<V, D>
64
65 /** Whether to add border */
66 border: boolean
67
68 /** Render function of custom label content */
69 renderLabel: (h: CreateElement, context: { node: CascaderNode<V, D>; data: D }) => VNode
70
71 $slots: CascaderPanelSlots
72}