0.0.3 • Published 4 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
| Name | Type | Description | 
|---|
| id | number | A randomly assigned unique ID to identify a tree element | 
| tagName | string | HTML Tag name of custom element | 
| element | HTMLElement | The HTML element reference of the CustomElementNode | 
| parent | CustomElementNode | The Custom Element Node of custom element node's parent | 
| parentId | number | The id number of the custom element node's parent. Same as node.parent.id | 
| document | Document | The ownerDocument of the CustomElementNode's element | 
| root | Node | The rootNode of the CustomElementNode's element | 
| children | Array<CustomElementNode> | Array of CustomElementNodes that are children of this CustomElementNode and not children of a child of this node | 
| siblings | Array<CustomElementNode> | Array of CustomElementNodes that are siblings of this CustomElementNode | 
| inShadowRoot | boolean | Tells is the CustomElementNode's element is in the shadowRoot of the parent node's element | 
Methods
| Name | Returns | 
|---|
| 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 |