node.d.ts 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import type { VNode } from 'vue';
  2. export declare type CascaderNodeValue = string | number;
  3. export declare type CascaderNodePathValue = CascaderNodeValue[];
  4. export declare type CascaderValue = CascaderNodeValue | CascaderNodePathValue | (CascaderNodeValue | CascaderNodePathValue)[];
  5. export declare type CascaderConfig = Required<CascaderProps>;
  6. export declare type ExpandTrigger = 'click' | 'hover';
  7. export declare type isDisabled = (data: CascaderOption, node: Node) => boolean;
  8. export declare type isLeaf = (data: CascaderOption, node: Node) => boolean;
  9. export declare type Resolve = (dataList?: CascaderOption[]) => void;
  10. export declare type LazyLoad = (node: Node, resolve: Resolve) => void;
  11. export declare type RenderLabel = ({ node: Node, data: CascaderOption, }: {
  12. node: any;
  13. data: any;
  14. }) => VNode | VNode[];
  15. export interface CascaderOption extends Record<string, unknown> {
  16. label?: string;
  17. value?: CascaderNodeValue;
  18. children?: CascaderOption[];
  19. disabled?: boolean;
  20. leaf?: boolean;
  21. }
  22. export interface CascaderProps {
  23. expandTrigger?: ExpandTrigger;
  24. multiple?: boolean;
  25. checkStrictly?: boolean;
  26. emitPath?: boolean;
  27. lazy?: boolean;
  28. lazyLoad?: LazyLoad;
  29. value?: string;
  30. label?: string;
  31. children?: string;
  32. disabled?: string | isDisabled;
  33. leaf?: string | isLeaf;
  34. hoverThreshold?: number;
  35. }
  36. export declare type Nullable<T> = null | T;
  37. declare type ChildrenData = CascaderOption[] | undefined;
  38. declare class Node {
  39. readonly data: Nullable<CascaderOption>;
  40. readonly config: CascaderConfig;
  41. readonly parent?: Node | undefined;
  42. readonly root: boolean;
  43. readonly uid: number;
  44. readonly level: number;
  45. readonly value: CascaderNodeValue;
  46. readonly label: string;
  47. readonly pathNodes: Node[];
  48. readonly pathValues: CascaderNodePathValue;
  49. readonly pathLabels: string[];
  50. childrenData: ChildrenData;
  51. children: Node[];
  52. text: string;
  53. loaded: boolean;
  54. checked: boolean;
  55. indeterminate: boolean;
  56. loading: boolean;
  57. constructor(data: Nullable<CascaderOption>, config: CascaderConfig, parent?: Node | undefined, root?: boolean);
  58. get isDisabled(): boolean;
  59. get isLeaf(): boolean;
  60. get valueByOption(): CascaderNodeValue | CascaderNodePathValue;
  61. appendChild(childData: CascaderOption): Node;
  62. calcText(allLevels: boolean, separator: string): string;
  63. broadcast(event: string, ...args: unknown[]): void;
  64. emit(event: string, ...args: unknown[]): void;
  65. onParentCheck(checked: boolean): void;
  66. onChildCheck(): void;
  67. setCheckState(checked: boolean): void;
  68. doCheck(checked: boolean): void;
  69. }
  70. export default Node;