cascader-panel.d.ts 1.6 KB

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