0.0.3 • Published 3 years ago

custom-element-tree v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Custom Element Tree

Usage

Generate a Custom Element Tree

const tree = new CustomElementTree();

Log the tree structure

tree.logTree();
// or
tree.logTreeCollapsed();
Custom Element Tree
|_<my-wrapper>
|_<list-wrapper>
|_<list-item>
|_<list-item>
|_<list-item>
|_<list-wrapper>
|_<list-item>
|_<list-item>
|_<list-item>
|_<list-wrapper>
|_<list-item>
|_<list-item>
|\_<list-item>

Get the tree nodes as a flat array

tree.flat();

// [{...}, {...}, {...}, {...}]

Access nodes in tree

tree.elements[1].children[0].children[2];
// > CustomElementNode { id: 552255 tagName: "tree-item", ...}

Query trees in the node

const treeItem = tree.elements[1].children[0].children[2];
const otherTreeItem = tree.elements[1];

treeItem.isChildOf(otherTreeItem);
// true
otherTreeItem.isParentOf(treeItem);
// true
otherTreeItem.isSiblingOf(treeItem);
// false

Get children recursively

const treeItem = tree.elements[1].children[0];

treeItem.allChildren();
// [{...}, {...}, {...}, {...}]

Custom Element Node API

CustomElementNode

Properties
NameTypeDescription
idnumberA randomly assigned unique ID to identify a tree element
tagNamestringHTML Tag name of custom element
elementHTMLElementThe HTML element reference of the CustomElementNode
parentCustomElementNodeThe Custom Element Node of custom element node's parent
parentIdnumberThe id number of the custom element node's parent. Same as node.parent.id
documentDocumentThe ownerDocument of the CustomElementNode's element
rootNodeThe rootNode of the CustomElementNode's element
childrenArray<CustomElementNode>Array of CustomElementNodes that are children of this CustomElementNode and not children of a child of this node
siblingsArray<CustomElementNode>Array of CustomElementNodes that are siblings of this CustomElementNode
inShadowRootbooleanTells is the CustomElementNode's element is in the shadowRoot of the parent node's element
Methods
NameReturns
isChildOf(otherNode)If the caller is a child of the passed node
isParentOf(otherNode)If the caller is a paren of the passed node
isSiblingOf(otherNode)If the caller is a sibling of the passed node
allChildren()A array of all children of caller, recursively
logNode()Logs the node's data to the developer console