UNPKG

@layui/layui-vue

Version:

a component library for Vue 3 base on layui-vue

53 lines (52 loc) 2 kB
import type { OriginalTreeData, StringOrNumber, ReplaceFieldsOptions, SearchNodeMethodType } from "./tree.type"; import type { Nullable } from "../../types"; type CustomKey = string | number; type CustomString = (() => string) | string; export interface TreeData { id: CustomKey; title: CustomString; children: TreeData[]; parentKey: Nullable<StringOrNumber>; isRoot: boolean; visible: boolean; isChecked: boolean; isDisabled: boolean; isLeaf: boolean; isLazy: boolean; isLoading: boolean; hasNextSibling: boolean; parentNode: Nullable<TreeData>; [key: string]: any; } interface TreeConfig { checkStrictly: boolean | string; showCheckbox: boolean; checkedKeys: StringOrNumber[]; expandKeys: StringOrNumber[]; nodeMap: Map<StringOrNumber, TreeData>; originMap: Map<StringOrNumber, OriginalTreeData>; replaceFields: ReplaceFieldsOptions; defaultExpandAll: boolean; lazy: boolean; searchNodeMethod: SearchNodeMethodType; } declare class Tree { protected config: TreeConfig; protected treeData: TreeData[]; constructor(config: TreeConfig, origin: OriginalTreeData | OriginalTreeData[]); init(origin: OriginalTreeData | OriginalTreeData[]): void; createTree(origin: OriginalTreeData | OriginalTreeData[], parentKey?: StringOrNumber): TreeData[]; getNode(origin: OriginalTreeData, parentKey: StringOrNumber, hasNextSibling: boolean): TreeData; treeForeach(tree: TreeData[], func: Function): void; setCheckedKeys(checked: boolean, checkStrictly: boolean | string, node: TreeData): void; setParentChecked(parent: TreeData): void; setChildrenChecked(checked: boolean, nodes: TreeData[]): boolean; getData(): TreeData[]; getKeys(): { checkedKeys: StringOrNumber[]; expandKeys: any[]; }; getOriginData(key: StringOrNumber): OriginalTreeData; _filter(value: string): void; } export { Tree };