node.d.ts 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import type { VNode } from 'vue';
  2. export type CascaderNodeValue = string | number;
  3. export type CascaderNodePathValue = CascaderNodeValue[];
  4. export type CascaderValue = CascaderNodeValue | CascaderNodePathValue | (CascaderNodeValue | CascaderNodePathValue)[];
  5. export type CascaderConfig = Required<CascaderProps>;
  6. export type ExpandTrigger = 'click' | 'hover';
  7. export type isDisabled = (data: CascaderOption, node: Node) => boolean;
  8. export type isLeaf = (data: CascaderOption, node: Node) => boolean;
  9. export type Resolve = (dataList?: CascaderOption[]) => void;
  10. export type LazyLoad = (node: Node, resolve: Resolve) => void;
  11. export 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 type Nullable<T> = null | T;
  37. 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. /**
  55. * Is it checked
  56. *
  57. * @default false
  58. */
  59. checked: boolean;
  60. /**
  61. * Used to indicate the intermediate state of unchecked and fully checked child nodes
  62. *
  63. * @default false
  64. */
  65. indeterminate: boolean;
  66. /**
  67. * Loading Status
  68. *
  69. * @default false
  70. */
  71. loading: boolean;
  72. constructor(data: Nullable<CascaderOption>, config: CascaderConfig, parent?: Node | undefined, root?: boolean);
  73. get isDisabled(): boolean;
  74. get isLeaf(): boolean;
  75. get valueByOption(): CascaderNodeValue | CascaderNodePathValue;
  76. appendChild(childData: CascaderOption): Node;
  77. calcText(allLevels: boolean, separator: string): string;
  78. broadcast(event: string, ...args: unknown[]): void;
  79. emit(event: string, ...args: unknown[]): void;
  80. onParentCheck(checked: boolean): void;
  81. onChildCheck(): void;
  82. setCheckState(checked: boolean): void;
  83. doCheck(checked: boolean): void;
  84. }
  85. export default Node;