treeUtil.d.ts 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import type { DataNode, FlattenNode, DataEntity, Key, EventDataNode, GetKey, FieldNames, BasicDataNode } from '../interface';
  2. import type { TreeNodeProps } from '../props';
  3. import type { VueNode } from '../../_util/type';
  4. export declare function getKey(key: Key, pos: string): Key;
  5. export declare function fillFieldNames(fieldNames?: FieldNames): Required<FieldNames>;
  6. /**
  7. * Warning if TreeNode do not provides key
  8. */
  9. export declare function warningWithoutKey(treeData: DataNode[], fieldNames: FieldNames): void;
  10. /**
  11. * Convert `children` of Tree into `treeData` structure.
  12. */
  13. export declare function convertTreeToData(rootNodes: VueNode): DataNode[];
  14. /**
  15. * Flat nest tree data into flatten list. This is used for virtual list render.
  16. * @param treeNodeList Origin data node list
  17. * @param expandedKeys
  18. * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).
  19. */
  20. export declare function flattenTreeData(treeNodeList: DataNode[], expandedKeys: Key[] | true, fieldNames: FieldNames): FlattenNode[];
  21. type ExternalGetKey = GetKey<DataNode> | string;
  22. interface TraverseDataNodesConfig {
  23. childrenPropName?: string;
  24. externalGetKey?: ExternalGetKey;
  25. fieldNames?: FieldNames;
  26. }
  27. /**
  28. * Traverse all the data by `treeData`.
  29. * Please not use it out of the `rc-tree` since we may refactor this code.
  30. */
  31. export declare function traverseDataNodes(dataNodes: DataNode[], callback: (data: {
  32. node: DataNode;
  33. index: number;
  34. pos: string;
  35. key: Key;
  36. parentPos: string | number;
  37. level: number;
  38. nodes: DataNode[];
  39. }) => void, config?: TraverseDataNodesConfig | string): void;
  40. interface Wrapper {
  41. posEntities: Record<string, DataEntity>;
  42. keyEntities: Record<Key, DataEntity>;
  43. }
  44. /**
  45. * Convert `treeData` into entity records.
  46. */
  47. export declare function convertDataToEntities(dataNodes: DataNode[], { initWrapper, processEntity, onProcessFinished, externalGetKey, childrenPropName, fieldNames, }?: {
  48. initWrapper?: (wrapper: Wrapper) => Wrapper;
  49. processEntity?: (entity: DataEntity, wrapper: Wrapper) => void;
  50. onProcessFinished?: (wrapper: Wrapper) => void;
  51. externalGetKey?: ExternalGetKey;
  52. childrenPropName?: string;
  53. fieldNames?: FieldNames;
  54. },
  55. /** @deprecated Use `config.externalGetKey` instead */
  56. legacyExternalGetKey?: ExternalGetKey): {
  57. posEntities: {};
  58. keyEntities: {};
  59. };
  60. export interface TreeNodeRequiredProps<TreeDataType extends BasicDataNode = DataNode> {
  61. expandedKeysSet: Set<Key>;
  62. selectedKeysSet: Set<Key>;
  63. loadedKeysSet: Set<Key>;
  64. loadingKeysSet: Set<Key>;
  65. checkedKeysSet: Set<Key>;
  66. halfCheckedKeysSet: Set<Key>;
  67. dragOverNodeKey: Key;
  68. dropPosition: number;
  69. keyEntities: Record<Key, DataEntity<TreeDataType>>;
  70. }
  71. /**
  72. * Get TreeNode props with Tree props.
  73. */
  74. export declare function getTreeNodeProps<TreeDataType extends BasicDataNode = DataNode>(key: Key, { expandedKeysSet, selectedKeysSet, loadedKeysSet, loadingKeysSet, checkedKeysSet, halfCheckedKeysSet, dragOverNodeKey, dropPosition, keyEntities, }: TreeNodeRequiredProps<TreeDataType>): {
  75. eventKey: Key;
  76. expanded: boolean;
  77. selected: boolean;
  78. loaded: boolean;
  79. loading: boolean;
  80. checked: boolean;
  81. halfChecked: boolean;
  82. pos: string;
  83. parent: DataEntity<TreeDataType>;
  84. dragOver: boolean;
  85. dragOverGapTop: boolean;
  86. dragOverGapBottom: boolean;
  87. };
  88. export declare function convertNodePropsToEventData(props: TreeNodeProps & ReturnType<typeof getTreeNodeProps>): EventDataNode;
  89. export {};