1 | import { VNode, CreateElement } from 'vue';
|
2 | import { ElementUIComponent } from './component'
|
3 |
|
4 |
|
5 | export type ExpandTrigger = 'click' | 'hover'
|
6 |
|
7 |
|
8 | export interface CascaderOption {
|
9 | label: string,
|
10 | value: any,
|
11 | children?: CascaderOption[],
|
12 | disabled?: boolean,
|
13 | leaf?: boolean
|
14 | }
|
15 |
|
16 |
|
17 | export 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 |
|
32 | export 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 |
|
45 | type Resolve<D> = (dataList?: D[]) => void
|
46 |
|
47 | export interface CascaderPanelSlots {
|
48 |
|
49 | default: VNode[]
|
50 |
|
51 | [key: string]: VNode[]
|
52 | }
|
53 |
|
54 |
|
55 | export declare class ElCascaderPanel<V = any, D = CascaderOption> extends ElementUIComponent {
|
56 |
|
57 | value: V | V[]
|
58 |
|
59 |
|
60 | options: D[]
|
61 |
|
62 |
|
63 | props: CascaderProps<V, D>
|
64 |
|
65 |
|
66 | border: boolean
|
67 |
|
68 |
|
69 | renderLabel: (h: CreateElement, context: { node: CascaderNode<V, D>; data: D }) => VNode
|
70 |
|
71 | $slots: CascaderPanelSlots
|
72 | }
|