Back to Trilium

Interface FancytreeNode

docs/Script API/interfaces/Frontend_Script_API._internal_.FancytreeNode.html

0.102.236.4 KB
Original Source

Interface FancytreeNode

A FancytreeNode represents the hierarchical data model and operations.

interface FancytreeNode {
children: FancytreeNode[];
data: any;
expanded: boolean;
extraClasses: string;
folder: boolean;
icon: string;
key: string;
lazy: boolean;
parent: FancytreeNode;
span: HTMLElement;
statusNodeType: string;
title: string;
tooltip: string;
tr: HTMLTableRowElement;
tree: Fancytree;
unselectable?: boolean;
unselectableIgnore?: boolean;
unselectableStatus?: boolean;
addChildren(
children: NodeData[],
insertBefore?: FancytreeNode,
): FancytreeNode;
addChildren(children: NodeData[], insertBefore?: string): FancytreeNode;
addChildren(children: NodeData[], insertBefore?: number): FancytreeNode;
addChildren(child: NodeData, insertBefore?: FancytreeNode): FancytreeNode;
addChildren(child: NodeData, insertBefore?: string): FancytreeNode;
addChildren(child: NodeData, insertBefore?: number): FancytreeNode;
addClass(className: string): void;
addNode(node: NodeData, mode?: string): FancytreeNode;
applyPatch(patch: NodePatch): JQueryPromise<any>;
collapseSiblings(): JQueryPromise<any>;
copyTo(
node: FancytreeNode,
mode?: string,
map?: (node: NodeData) => void,
): FancytreeNode;
countChildren(deep?: boolean): number;
debug(msg: any): void;
editCreateNode(mode?: string, init?: Object): void;
editEnd(applyChanges: boolean): void;
editStart(): void;
findAll(match: string): FancytreeNode[];
findAll(match: (node: FancytreeNode) => boolean): FancytreeNode[];
findFirst(match: string): FancytreeNode;
findFirst(match: (node: FancytreeNode) => boolean): FancytreeNode;
fixSelection3AfterClick(): void;
fixSelection3FromEndNodes(): void;
fromDict(dict: NodeData): void;
getChildren(): FancytreeNode[];
getCloneList(includeSelf?: boolean): FancytreeNode[];
getFirstChild(): FancytreeNode;
getIndex(): number;
getIndexHier(): string;
getKeyPath(excludeSelf: boolean): string;
getLastChild(): FancytreeNode;
getLevel(): number;
getNextSibling(): FancytreeNode;
getParent(): FancytreeNode;
getParentList(includeRoot: boolean, includeSelf: boolean): FancytreeNode[];
getPrevSibling(): FancytreeNode;
hasChildren(): boolean;
hasFocus(): boolean;
info(msg: string): void;
isActive(): boolean;
isChildOf(otherNode: FancytreeNode): boolean;
isClone(): boolean;
isDescendantOf(otherNode: FancytreeNode): boolean;
isEditing(): boolean;
isExpanded(): boolean;
isFirstSibling(): boolean;
isFolder(): boolean;
isLastSibling(): boolean;
isLazy(): boolean;
isLoaded(): boolean;
isLoading(): boolean;
isRootNode(): boolean;
isSelected(): boolean;
isStatusNode(): boolean;
isTopLevel(): boolean;
isUndefined(): boolean;
isVisible(): boolean;
load(forceReload?: boolean): JQueryPromise<any>;
makeVisible(opts?: Object): JQueryPromise<any>;
moveTo(
targetNode: FancytreeNode,
mode: string,
map?: (node: FancytreeNode) => void,
): void;
navigate(where: number, activate?: boolean): JQueryPromise<any>;
remove(): void;
removeChild(childNode: FancytreeNode): void;
removeChildren(): void;
removeClass(className: string): void;
render(force?: boolean, deep?: boolean): void;
renderStatus(): void;
renderTitle(): void;
reRegister(key: string, refKey: string): boolean;
resetLazy(): void;
scheduleAction(mode: string, ms: number): void;
scrollIntoView(effects?: boolean, options?: Object): JQueryPromise<any>;
scrollIntoView(effects?: Object, options?: Object): JQueryPromise<any>;
setActive(flag?: boolean, opts?: Object): JQueryPromise<any>;
setExpanded(flag?: boolean, opts?: Object): JQueryPromise<any>;
setFocus(flag?: boolean): void;
setSelected(flag?: boolean): void;
setStatus(status: string, message?: string, details?: string): void;
setTitle(title: string): void;
sortChildren(
cmp?: (a: FancytreeNode, b: FancytreeNode) => number,
deep?: boolean,
): void;
toDict(recursive?: boolean, callback?: (dict: NodeData) => void): NodeData;
toggleClass(className: string, flag?: boolean): boolean;
toggleExpanded(): void;
toggleSelected(): void;
visit(fn: (node: FancytreeNode) => any, includeSelf?: boolean): boolean;
visitAndLoad(
fn: (node: FancytreeNode) => any,
includeSelf?: boolean,
): JQueryPromise<any>;
visitParents(
fn: (node: FancytreeNode) => any,
includeSelf?: boolean,
): boolean;
warn(msg: any): void;
}

Index

Properties

childrendataexpandedextraClassesfoldericonkeylazyparentspanstatusNodeTypetitletooltiptrtreeunselectable?unselectableIgnore?unselectableStatus?

Methods

addChildrenaddClassaddNodeapplyPatchcollapseSiblingscopyTocountChildrendebugeditCreateNodeeditEndeditStartfindAllfindFirstfixSelection3AfterClickfixSelection3FromEndNodesfromDictgetChildrengetCloneListgetFirstChildgetIndexgetIndexHiergetKeyPathgetLastChildgetLevelgetNextSiblinggetParentgetParentListgetPrevSiblinghasChildrenhasFocusinfoisActiveisChildOfisCloneisDescendantOfisEditingisExpandedisFirstSiblingisFolderisLastSiblingisLazyisLoadedisLoadingisRootNodeisSelectedisStatusNodeisTopLevelisUndefinedisVisibleloadmakeVisiblemoveTonavigateremoveremoveChildremoveChildrenremoveClassrenderrenderStatusrenderTitlereRegisterresetLazyscheduleActionscrollIntoViewsetActivesetExpandedsetFocussetSelectedsetStatussetTitlesortChildrentoDicttoggleClasstoggleExpandedtoggleSelectedvisitvisitAndLoadvisitParentswarn

Properties

children

children: FancytreeNode[]

Array of child nodes. For lazy nodes, null or undefined means 'not yet loaded'. Use an empty array to define a node that has no children.

data

data: any

Contains all extra data that was passed on node creation

expanded

expanded: boolean

Use isExpanded(), setExpanded() to access this property.

extraClasses

extraClasses: string

Addtional CSS classes, added to the node's <span>.

folder

folder: boolean

Folder nodes have different default icons and click behavior. Note: Also non-folders may have children.

icon

icon: string

Icon of the tree node.

key

key: string

Node id (must be unique inside the tree)

lazy

lazy: boolean

True if this node is loaded on demand, i.e. on first expansion.

parent

parent: FancytreeNode

The parent node

span

span: HTMLElement

Outer element of single nodes

statusNodeType

statusNodeType: string

null or type of temporarily generated system node like 'loading', or 'error'.

title

title: string

Display name (may contain HTML)

tooltip

tooltip: string

Alternative description used as hover banner

tr

tr: HTMLTableRowElement

Outer element of single nodes for table extension

tree

tree: Fancytree

The tree instance

Optionalunselectable

unselectable?: boolean

OptionalunselectableIgnore

unselectableIgnore?: boolean

OptionalunselectableStatus

unselectableStatus?: boolean

Methods

addChildren

addChildren(children: NodeData[], insertBefore?: FancytreeNode): FancytreeNode

Append (or insert) a list of child nodes.

Parameters

array of child node definitions (also single child accepted)

  • OptionalinsertBefore: FancytreeNode

child node to insert nodes before. If omitted, the new children is appended.

Returns FancytreeNode

The first child added.

addChildren(children: NodeData[], insertBefore?: string): FancytreeNode

Append (or insert) a list of child nodes.

Parameters

array of child node definitions (also single child accepted)

  • OptionalinsertBefore: string

key of the child node to insert nodes before. If omitted, the new children is appended.

Returns FancytreeNode

The first child added.

addChildren(children: NodeData[], insertBefore?: number): FancytreeNode

Append (or insert) a list of child nodes.

Parameters

array of child node definitions (also single child accepted)

  • OptionalinsertBefore: number

index of the child node to insert nodes before. If omitted, the new children is appended.

Returns FancytreeNode

The first child added.

addChildren(child: NodeData, insertBefore?: FancytreeNode): FancytreeNode

Append (or insert) a single child node.

Parameters

node to add

  • OptionalinsertBefore: FancytreeNode

child node to insert this node before. If omitted, the new child is appended.

Returns FancytreeNode

The child added.

addChildren(child: NodeData, insertBefore?: string): FancytreeNode

Append (or insert) a single child node.

Parameters

node to add

  • OptionalinsertBefore: string

key of the child node to insert this node before. If omitted, the new child is appended.

Returns FancytreeNode

The child added.

addChildren(child: NodeData, insertBefore?: number): FancytreeNode

Append (or insert) a single child node.

Parameters

node to add

  • OptionalinsertBefore: number

index of the child node to insert this node before. If omitted, the new child is appended.

Returns FancytreeNode

The child added.

addClass

addClass(className: string): void

Add class to node's span tag and to .extraClasses.

Parameters

  • className: string

class name

Returns void

addNode

addNode(node: NodeData, mode?: string): FancytreeNode

Append or prepend a node, or append a child node. This a convenience function that calls addChildren()

Parameters

'before', 'after', 'firstChild', or 'child' ('over' is a synonym for 'child') (default='child')

Returns FancytreeNode

new node.

applyPatch

applyPatch(patch: NodePatch): JQueryPromise<any>

Modify existing child nodes.

Parameters

Returns JQueryPromise<any>

collapseSiblings

collapseSiblings(): JQueryPromise<any>

Collapse all sibling nodes.

Returns JQueryPromise<any>

copyTo

copyTo(
node: FancytreeNode,
mode?: string,
map?: (node: NodeData) => void,
): FancytreeNode

Copy this node as sibling or child of node.

Parameters

  • node: FancytreeNode

source node

  • Optionalmode: string

'before' | 'after' | 'child' (default='child')

callback function(NodeData) that could modify the new node

Returns FancytreeNode

new node.

countChildren

countChildren(deep?: boolean): number

Count direct and indirect children.

Parameters

  • Optionaldeep: boolean

pass 'false' to only count direct children. (default=true)

Returns number

debug

debug(msg: any): void

Write to browser console if debugLevel >= 2 (prepending node info)

Parameters

  • msg: any

Returns void

editCreateNode

editCreateNode(mode?: string, init?: Object): void

[ext-edit] Create a new child or sibling node and start edit mode.

Parameters

  • Optionalmode: string

'before', 'after', or 'child' (default='child')

NodeData (or simple title string)

Returns void

editEnd

editEnd(applyChanges: boolean): void

[ext-edit] Stop inline editing.

Parameters

  • applyChanges: boolean

false: cancel edit, true: save (if modified)

Returns void

editStart

editStart(): void

[ext-edit] Start inline editing of current node title.

Returns void

findAll

findAll(match: string): FancytreeNode[]

Find all nodes that contain match in the title.

Parameters

  • match: string

string to search for

Returns FancytreeNode[]

findAll(match: (node: FancytreeNode) => boolean): FancytreeNode[]

Find all nodes that contain match in the title.

Parameters

  • match: (node: FancytreeNode) => boolean

a function that returns true if a node is matched.

Returns FancytreeNode[]

findFirst

findFirst(match: string): FancytreeNode

Find first node that contains match in the title (not including self).

Parameters

  • match: string

string to search for

Returns FancytreeNode

findFirst(match: (node: FancytreeNode) => boolean): FancytreeNode

Find first node that contains match in the title (not including self).

Parameters

  • match: (node: FancytreeNode) => boolean

a function that returns true if a node is matched.

Returns FancytreeNode

fixSelection3AfterClick

fixSelection3AfterClick(): void

Fix selection status, after this node was (de)selected in multi-hier mode. This includes (de)selecting all children.

Returns void

fixSelection3FromEndNodes

fixSelection3FromEndNodes(): void

Fix selection status for multi-hier mode. Only end-nodes are considered to update the descendants branch and parents. Should be called after this node has loaded new children or after children have been modified using the API.

Returns void

fromDict

fromDict(dict: NodeData): void

Update node data. If dict contains 'children', then also replace the hole sub tree.

Parameters

Returns void

getChildren

getChildren(): FancytreeNode[]

Return the list of child nodes (undefined for unexpanded lazy nodes).

Returns FancytreeNode[]

getCloneList

getCloneList(includeSelf?: boolean): FancytreeNode[]

[ext-clones] Return a list of clone-nodes or null.

Parameters

  • OptionalincludeSelf: boolean

Returns FancytreeNode[]

getFirstChild

getFirstChild(): FancytreeNode

Return the first child node or null.

Returns FancytreeNode

getIndex

getIndex(): number

Return the 0-based child index.

Returns number

getIndexHier

getIndexHier(): string

Return the hierarchical child index (1-based, e.g. '3.2.4').

Returns string

getKeyPath

getKeyPath(excludeSelf: boolean): string

Return the parent keys separated by options.keyPathSeparator, e.g. "id_1/id_17/id_32".

Parameters

  • excludeSelf: boolean

Returns string

getLastChild

getLastChild(): FancytreeNode

Return the last child of this node or null.

Returns FancytreeNode

getLevel

getLevel(): number

Return node depth. 0: System root node, 1: visible top-level node, 2: first sub-level, ... .

Returns number

getNextSibling

getNextSibling(): FancytreeNode

Return the successor node (under the same parent) or null.

Returns FancytreeNode

getParent

getParent(): FancytreeNode

Return the parent node (null for the system root node).

Returns FancytreeNode

getParentList

getParentList(includeRoot: boolean, includeSelf: boolean): FancytreeNode[]

Return an array of all parent nodes (top-down).

Parameters

  • includeRoot: boolean

Include the invisible system root node. (default=false)

  • includeSelf: boolean

Include the node itself (default=false).

Returns FancytreeNode[]

getPrevSibling

getPrevSibling(): FancytreeNode

Return the predecessor node (under the same parent) or null.

Returns FancytreeNode

hasChildren

hasChildren(): boolean

Return true if node has children. Return undefined if not sure, i.e. the node is lazy and not yet loaded).

Returns boolean

hasFocus

hasFocus(): boolean

Return true if node has keyboard focus.

Returns boolean

info

info(msg: string): void

Write to browser console if debugLevel >= 1 (prepending node info)

Parameters

  • msg: string

Returns void

isActive

isActive(): boolean

Return true if node is active (see also FancytreeNode.isSelected).

Returns boolean

isChildOf

isChildOf(otherNode: FancytreeNode): boolean

Return true if node is a direct child of otherNode.

Parameters

  • otherNode: FancytreeNode

Returns boolean

isClone

isClone(): boolean

[ext-clones] Return true if this node has at least another clone with same refKey.

Returns boolean

isDescendantOf

isDescendantOf(otherNode: FancytreeNode): boolean

Return true, if node is a direct or indirect sub node of otherNode.

Parameters

  • otherNode: FancytreeNode

Returns boolean

isEditing

isEditing(): boolean

[ext-edit] Check if this node is in edit mode.

Returns boolean

isExpanded

isExpanded(): boolean

Return true if node is expanded.

Returns boolean

isFirstSibling

isFirstSibling(): boolean

Return true if node is the first node of its parent's children.

Returns boolean

isFolder

isFolder(): boolean

Return true if node is a folder, i.e. has the node.folder attribute set.

Returns boolean

isLastSibling

isLastSibling(): boolean

Return true if node is the last node of its parent's children.

Returns boolean

isLazy

isLazy(): boolean

Return true if node is lazy (even if data was already loaded)

Returns boolean

isLoaded

isLoaded(): boolean

Return true if node is lazy and loaded. For non-lazy nodes always return true.

Returns boolean

isLoading

isLoading(): boolean

Return true if children are currently beeing loaded, i.e. a Ajax request is pending.

Returns boolean

isRootNode

isRootNode(): boolean

Return true if this is the (invisible) system root node.

Returns boolean

isSelected

isSelected(): boolean

Return true if node is selected, i.e. has a checkmark set (see also FancytreeNode#isActive).

Returns boolean

isStatusNode

isStatusNode(): boolean

Return true if this node is a temporarily generated system node like 'loading', or 'error' (node.statusNodeType contains the type).

Returns boolean

isTopLevel

isTopLevel(): boolean

Return true if this a top level node, i.e. a direct child of the (invisible) system root node.

Returns boolean

isUndefined

isUndefined(): boolean

Return true if node is lazy and not yet loaded. For non-lazy nodes always return false.

Returns boolean

isVisible

isVisible(): boolean

Return true if all parent nodes are expanded. Note: this does not check whether the node is scrolled into the visible part of the screen.

Returns boolean

load

load(forceReload?: boolean): JQueryPromise<any>

Load all children of a lazy node if neccessary. The expanded state is maintained.

Parameters

  • OptionalforceReload: boolean

Pass true to discard any existing nodes before.

Returns JQueryPromise<any>

makeVisible

makeVisible(opts?: Object): JQueryPromise<any>

Expand all parents and optionally scroll into visible area as neccessary. Promise is resolved, when lazy loading and animations are done.

Parameters

passed to setExpanded(). Defaults to {noAnimation: false, noEvents: false, scrollIntoView: true}

Returns JQueryPromise<any>

moveTo

moveTo(
targetNode: FancytreeNode,
mode: string,
map?: (node: FancytreeNode) => void,
): void

Move this node to targetNode.

Parameters

  • targetNode: FancytreeNode
  • mode: string

'child': append this node as last child of targetNode. This is the default. To be compatble with the D'n'd hitMode, we also accept 'over'. 'before': add this node as sibling before targetNode. 'after': add this node as sibling after targetNode.

  • Optionalmap: (node: FancytreeNode) => void

optional callback(FancytreeNode) to allow modifcations

Returns void

navigate(where: number, activate?: boolean): JQueryPromise<any>

Set focus relative to this node and optionally activate.

Parameters

  • where: number

The keyCode that would normally trigger this move, e.g. $.ui.keyCode.LEFT would collapse the node if it is expanded or move to the parent oterwise.

  • Optionalactivate: boolean

(default=true)

Returns JQueryPromise<any>

remove

remove(): void

Remove this node (not allowed for system root).

Returns void

removeChild

removeChild(childNode: FancytreeNode): void

Remove childNode from list of direct children.

Parameters

  • childNode: FancytreeNode

Returns void

removeChildren

removeChildren(): void

Remove all child nodes and descendents. This converts the node into a leaf. If this was a lazy node, it is still considered 'loaded'; call node.resetLazy() in order to trigger lazyLoad on next expand.

Returns void

removeClass

removeClass(className: string): void

Remove class from node's span tag and .extraClasses.

Parameters

  • className: string

class name

Returns void

render

render(force?: boolean, deep?: boolean): void

This method renders and updates all HTML markup that is required to display this node in its current state.

Parameters

  • Optionalforce: boolean

re-render, even if html markup was already created

  • Optionaldeep: boolean

also render all descendants, even if parent is collapsed

Returns void

renderStatus

renderStatus(): void

Update element's CSS classes according to node state.

Returns void

renderTitle

renderTitle(): void

Create HTML markup for the node's outer (expander, checkbox, icon, and title).

Returns void

reRegister

reRegister(key: string, refKey: string): boolean

[ext-clones] Update key and/or refKey for an existing node.

Parameters

  • key: string
  • refKey: string

Returns boolean

resetLazy

resetLazy(): void

Remove all children, collapse, and set the lazy-flag, so that the lazyLoad event is triggered on next expand.

Returns void

scheduleAction

scheduleAction(mode: string, ms: number): void

Schedule activity for delayed execution (cancel any pending request). scheduleAction('cancel') will only cancel a pending request (if any).

Parameters

  • mode: string
  • ms: number

Returns void

scrollIntoView

scrollIntoView(effects?: boolean, options?: Object): JQueryPromise<any>

Parameters

  • Optionaleffects: boolean

animation options.

{topNode: null, effects: ..., parent: ...} this node will remain visible in any case, even if this is outside the scroll pane.

Returns JQueryPromise<any>

scrollIntoView(effects?: Object, options?: Object): JQueryPromise<any>

Parameters

animation options.

{topNode: null, effects: ..., parent: ...} this node will remain visible in any case, even if this is outside the scroll pane.

Returns JQueryPromise<any>

setActive

setActive(flag?: boolean, opts?: Object): JQueryPromise<any>

Parameters

  • Optionalflag: boolean

pass false to deactivate

additional options. Defaults to {noEvents: false}

Returns JQueryPromise<any>

setExpanded

setExpanded(flag?: boolean, opts?: Object): JQueryPromise<any>

Parameters

  • Optionalflag: boolean

pass false to collapse.

additional options. Defaults to {noAnimation:false, noEvents:false}

Returns JQueryPromise<any>

setFocus

setFocus(flag?: boolean): void

Set keyboard focus to this node.

Parameters

  • Optionalflag: boolean

pass false to blur.

Returns void

setSelected

setSelected(flag?: boolean): void

Select this node, i.e. check the checkbox.

Parameters

  • Optionalflag: boolean

pass false to deselect.

Returns void

setStatus

setStatus(status: string, message?: string, details?: string): void

Mark a lazy node as 'error', 'loading', or 'ok'.

Parameters

  • status: string

'error', 'ok'

  • Optionalmessage: string
  • Optionaldetails: string

Returns void

setTitle

setTitle(title: string): void

Rename this node.

Parameters

  • title: string

Returns void

sortChildren

sortChildren(
cmp?: (a: FancytreeNode, b: FancytreeNode) => number,
deep?: boolean,
): void

Sort child list by title.

Parameters

  • Optionalcmp: (a: FancytreeNode, b: FancytreeNode) => number

custom compare function(a, b) that returns -1, 0, or 1 (defaults to sort by title).

  • Optionaldeep: boolean

pass true to sort all descendant nodes

Returns void

toDict

toDict(recursive?: boolean, callback?: (dict: NodeData) => void): NodeData

Convert node (or whole branch) into a plain object. The result is compatible with node.addChildren().

Parameters

  • Optionalrecursive: boolean

include child nodes.

  • Optionalcallback: (dict: NodeData) => void

callback(dict) is called for every node, in order to allow modifications

Returns NodeData

toggleClass

toggleClass(className: string, flag?: boolean): boolean

Set, clear, or toggle class of node's span tag and .extraClasses.

Parameters

  • className: string

class name (separate multiple classes by space)

  • Optionalflag: boolean

true/false to add/remove class. If omitted, class is toggled.

Returns boolean

true if a class was added

toggleExpanded

toggleExpanded(): void

Flip expanded status.

Returns void

toggleSelected

toggleSelected(): void

Flip selection status.

Returns void

visit

visit(fn: (node: FancytreeNode) => any, includeSelf?: boolean): boolean

Call fn(node) for all child nodes. Stop iteration, if fn() returns false. Skip current branch, if fn() returns "skip". Return false if iteration was stopped.

Parameters

  • fn: (node: FancytreeNode) => any

the callback function. Return false to stop iteration, return "skip" to skip this node and its children only.

  • OptionalincludeSelf: boolean

(default=false)

Returns boolean

visitAndLoad

visitAndLoad(
fn: (node: FancytreeNode) => any,
includeSelf?: boolean,
): JQueryPromise<any>

Call fn(node) for all child nodes and recursively load lazy children. Note: If you need this method, you probably should consider to review your architecture! Recursivley loading nodes is a perfect way for lazy programmers to flood the server with requests ;-)

Parameters

  • fn: (node: FancytreeNode) => any

the callback function. Return false to stop iteration, return "skip" to skip this node and its children only.

  • OptionalincludeSelf: boolean

(default=false)

Returns JQueryPromise<any>

visitParents

visitParents(fn: (node: FancytreeNode) => any, includeSelf?: boolean): boolean

Call fn(node) for all parent nodes, bottom-up, including invisible system root. Stop iteration, if fn() returns false. Return false if iteration was stopped.

Parameters

  • fn: (node: FancytreeNode) => any

the callback function. Return false to stop iteration, return "skip" to skip this node and its children only.

  • OptionalincludeSelf: boolean

(default=false)

Returns boolean

warn

warn(msg: any): void

Write warning to browser console (prepending node info)

Parameters

  • msg: any

Returns void

Settings

Member Visibility

  • Protected
  • Inherited
  • External

ThemeOSLightDark

On This Page

Properties childrendataexpandedextraClassesfoldericonkeylazyparentspanstatusNodeTypetitletooltiptrtreeunselectableunselectableIgnoreunselectableStatus Methods addChildrenaddClassaddNodeapplyPatchcollapseSiblingscopyTocountChildrendebugeditCreateNodeeditEndeditStartfindAllfindFirstfixSelection3AfterClickfixSelection3FromEndNodesfromDictgetChildrengetCloneListgetFirstChildgetIndexgetIndexHiergetKeyPathgetLastChildgetLevelgetNextSiblinggetParentgetParentListgetPrevSiblinghasChildrenhasFocusinfoisActiveisChildOfisCloneisDescendantOfisEditingisExpandedisFirstSiblingisFolderisLastSiblingisLazyisLoadedisLoadingisRootNodeisSelectedisStatusNodeisTopLevelisUndefinedisVisibleloadmakeVisiblemoveTonavigateremoveremoveChildremoveChildrenremoveClassrenderrenderStatusrenderTitlereRegisterresetLazyscheduleActionscrollIntoViewsetActivesetExpandedsetFocussetSelectedsetStatussetTitlesortChildrentoDicttoggleClasstoggleExpandedtoggleSelectedvisitvisitAndLoadvisitParentswarn