1.1.4 • Published 5 years ago

general-tree v1.1.4

Weekly downloads
10
License
MIT
Repository
github
Last release
5 years ago

general-tree

npm version Build Status

A general tree support tree operation.

Install

Install by Yarn:

yarn add general-tree

Install by NPM:

npm install --save general-tree

Usage

Import the module in file:

import Tree from 'general-tree';

Construct

You can convert a javascript object to a tree. It will use several key to identify id and children.

Constructor declaration is:

constructor(
    root,
    parent = undefined,
    childrenKey = 'children',
    idKey = 'id',
    onStatusChange = undefined
)
  • root: Object to be converted.
  • parent: A Tree object to be parent node.
  • childrenKey: root[childrenKey] will be used to generate children Tree node. root[childrenKey] === undefined means it is a leaf node.
  • idKey: root[idKey] is an identifier of node, and will be used when initialization. It will be converted to a string when used.
  • onStatusChange: When a tree node's selection status change, it will be called with current node.

Example:

const node = {
    code: 1,
    label: 'Hello',
    childs: [
        {code: 2, label: 'aaa', childs: []}, // not a leaf
        {code: 3, label: 'bbb'}, // a leaf
    ]
};
const tree = new Tree(node, null, 'childs', 'code', null);

Selection Status

A tree node have a selection status.

export const NotSelect = 0;
export const IncompleteSelect = 0.5;
export const FullSelect = 1;

A leaf node only have two status: NotSelect or FullSelect.

A not leaf node have all three status. IncompleteSelect means its children is not all selected.

The selection status will be initialized in constructor with NotSelect. And you can use setInitialState to set a initial selection state of a tree.

Then you can call update method to change a tree node selection status automatically.

Interface

  • isLeaf(): boolean
  • isEqual(treeNode: Tree): boolean
  • selectStatus(cascade: boolean): 0 | 0.5 | 1
  • isFullSelect(cascade: boolean): boolean
  • isNotSelect(cascade: boolean): boolean
  • isIncompleteSelect(cascade: boolean): boolean
  • getLeafCount(): number
  • getSelectedLeafCount(): number
  • getDeepth(): number
  • getInfo(): object
  • getId(): any
  • getStringId(): string
  • getParent(): Tree?
  • getChildren(): Tree[]?
  • getLeafChildren(): Tree[]
  • getLeafChildrenCount(): number
  • getSelectedLeafChildrenCount(): number
  • getPath(): string
  • setInitialState(selectedIds: any[], cascade: boolean): Tree[]
  • update(cascade: boolean): void
  • search(text: string, keys: string[], multiselect: boolean, exactly: boolean, canSearch: boolean): Tree[]
  • hasAncestor(ancestor: Tree): boolean
  • findById(childId: any): Tree[]
1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

1.0.0

6 years ago