#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# tree Module

User Guide & Examples
Defined in: `tree/js/tree.js:17`

Provides a generic tree data structure and related functionality.

A tree has a root node, which may contain any number of child nodes, which may themselves contain child nodes, ad infinitum.

Child nodes are lightweight function instances which delegate to the tree for all significant functionality, so trees remain performant and memory-efficient even with thousands and thousands of nodes.

This module provides the following classes:

- Plugin.Tree.Lazy
- Tree
- Tree.Labelable
- Tree.Node
- Tree.Node.Labelable
- Tree.Node.Openable
- Tree.Node.Selectable
- Tree.Node.Sortable
- Tree.Openable
- Tree.Selectable
- Tree.Sortable

This module is a rollup of the following modules:

- tree-labelable
  Extension for `Tree` that adds baked-in support for node labels like you might see in a treeview or menu.
- tree-lazy
  Provides `Plugin.Tree.Lazy`, a plugin for `Tree.Openable` that makes it easy to lazily load and populate the contents of tree nodes the first time they're opened.
- tree-node
  Provides the `Tree.Node` class, which represents a tree node contained in a `Tree` data structure.
- tree-openable
  Extension for `Tree` that adds the concept of open/closed state for nodes.
- tree-selectable
  Extension for `Tree` that adds the concept of selection state for nodes.
- tree-sortable
  Extension for `Tree` that makes nodes sortable.