@rxap/tree
Version:
This package provides a tree component and data source for Angular applications. It includes features such as searching, filtering, and displaying hierarchical data. The package also offers directives for customizing the content of tree nodes.
1,175 lines (1,011 loc) • 141 kB
HTML
<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>angular-tree</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="../images/favicon.ico">
<link rel="stylesheet" href="../styles/style.css">
<link rel="stylesheet" href="../styles/dark.css">
</head>
<body>
<script>
// Blocking script to avoid flickering dark mode
// Dark mode toggle button
var useDark = window.matchMedia('(prefers-color-scheme: dark)');
var darkModeState = useDark.matches;
var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
var $darkModeToggles = document.querySelectorAll('.dark-mode-switch');
var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state');
function checkToggle(check) {
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
$darkModeToggleSwitchers[i].checked = check;
}
}
function toggleDarkMode(state) {
if (window.localStorage) {
localStorage.setItem('compodoc_darkmode-state', state);
}
checkToggle(state);
const hasClass = document.body.classList.contains('dark');
if (state) {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.add('dark');
}
if (!hasClass) {
document.body.classList.add('dark');
}
} else {
for (var i = 0; i < $darkModeToggles.length; i++) {
$darkModeToggles[i].classList.remove('dark');
}
if (hasClass) {
document.body.classList.remove('dark');
}
}
}
useDark.addEventListener('change', function (evt) {
toggleDarkMode(evt.matches);
});
if (darkModeStateLocal) {
darkModeState = darkModeStateLocal === 'true';
}
toggleDarkMode(darkModeState);
</script>
<div class="navbar navbar-default navbar-fixed-top d-md-none p-0">
<div class="d-flex">
<a href="../" class="navbar-brand">angular-tree</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="d-none d-md-block menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content injectable">
<div class="content-data">
<ol class="breadcrumb">
<li class="breadcrumb-item">Injectables</li>
<li class="breadcrumb-item" >TreeDataSource</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="nav-item">
<a href="#info"
class="nav-link"
class="nav-link active"
role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
</li>
<li class="nav-item">
<a href="#source"
class="nav-link"
role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="info">
<p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/lib/tree.data-source.ts</code>
</p>
<p class="comment">
<h3>Extends</h3>
</p>
<p class="comment">
<code>BaseDataSource</code>
</p>
<section data-compodoc="block-index">
<h3 id="index">Index</h3>
<table class="table table-sm table-bordered index-table">
<tbody>
<tr>
<td class="col-md-4">
<h6><b>Properties</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Protected</span>
<span class="modifier"></span>
<a href="#_data$" >_data$</a>
</li>
<li>
<span class="modifier"></span>
<span class="modifier"></span>
<span class="modifier">Public</span>
<span class="modifier">Readonly</span>
<a href="#childrenRemoteMethod" >childrenRemoteMethod</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#expanded" >expanded</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#getIcon" >getIcon</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#getStyle" >getStyle</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#getType" >getType</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#hasDetails" >hasDetails</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier"></span>
<a href="#loading$" >loading$</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#matchFilter" >matchFilter</a>
</li>
<li>
<span class="modifier"></span>
<span class="modifier">Public</span>
<span class="modifier">Readonly</span>
<a href="#rootRemoteMethod" >rootRemoteMethod</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#searchForm" >searchForm</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#selected" >selected</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#toDisplay" >toDisplay</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#tree$" >tree$</a>
</li>
<li>
<span class="modifier"></span>
<span class="modifier">Public</span>
<a href="#treeControl" >treeControl</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Methods</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<span class="modifier">Protected</span>
<span class="modifier"></span>
<a href="#_connect" >_connect</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#collapseNode" >collapseNode</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#deselectNode" >deselectNode</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier"></span>
<a href="#destroy" >destroy</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#expandNode" >expandNode</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#flatTree" >flatTree</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#getChildren" >getChildren</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#getNodeById" >getNodeById</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#getRoot" >getRoot</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#getRootParameters" >getRootParameters</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#getTreeRoot" >getTreeRoot</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier"></span>
<span class="modifier">Async</span>
<a href="#refresh" >refresh</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#refreshMatchFilter" >refreshMatchFilter</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier"></span>
<a href="#reset" >reset</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#selectNode" >selectNode</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setGetIcon" >setGetIcon</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setGetStyle" >setGetStyle</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setGetType" >setGetType</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setHasDetails" >setHasDetails</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setMatchFilter" >setMatchFilter</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setToDisplay" >setToDisplay</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#setTreeControl" >setTreeControl</a>
</li>
<li>
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<a href="#toNode" >toNode</a>
</li>
<li>
<span class="modifier">Public</span>
<a href="#updateNodes" >updateNodes</a>
</li>
</ul>
</td>
</tr>
<tr>
<td class="col-md-4">
<h6><b>Accessors</b></h6>
</td>
</tr>
<tr>
<td class="col-md-4">
<ul class="index-list">
<li>
<a href="#nodeParameters" >nodeParameters</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-constructor">
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(rootRemoteMethod: Method<Data | [] | RootParameters>, childrenRemoteMethod: Method<Data[] | Node<Data>> | null, applyFilterMethod: <a href="../interfaces/TreeApplyFilterParameter.html" target="_self">Method<Array<Node<Data>> | TreeApplyFilterParameter> | null</a>, metadata: <a href="../injectables/TreeDataSource.html" target="_self">TreeDataSourceMetadata | null</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="256" class="link-to-prism">src/lib/tree.data-source.ts:256</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div>
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>rootRemoteMethod</td>
<td>
<code>Method<Data | [] | RootParameters></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>childrenRemoteMethod</td>
<td>
<code>Method<Data[] | Node<Data>> | null</code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>applyFilterMethod</td>
<td>
<code><a href="../interfaces/TreeApplyFilterParameter.html" target="_self" >Method<Array<Node<Data>> | TreeApplyFilterParameter> | null</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>metadata</td>
<td>
<code><a href="../injectables/TreeDataSource.html" target="_self" >TreeDataSourceMetadata | null</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section data-compodoc="block-methods">
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="_connect"></a>
<span class="name">
<span class="modifier">Protected</span>
<span class="modifier"></span>
<span ><b>_connect</b></span>
<a href="#_connect"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>_connect(collectionViewer: Required<BaseDataSourceViewer>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="622"
class="link-to-prism">src/lib/tree.data-source.ts:622</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>collectionViewer</td>
<td>
<code>Required<BaseDataSourceViewer></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Observable<Array<Node<Data>>></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="collapseNode"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>collapseNode</b></span>
<a href="#collapseNode"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>collapseNode(node: Node<Data>, options?: EventOptions)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="510"
class="link-to-prism">src/lib/tree.data-source.ts:510</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>node</td>
<td>
<code>Node<Data></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>options</td>
<td>
<code>EventOptions</code>
</td>
<td>
Yes
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<void></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="deselectNode"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>deselectNode</b></span>
<a href="#deselectNode"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>deselectNode(node: Node<Data>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="400"
class="link-to-prism">src/lib/tree.data-source.ts:400</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>node</td>
<td>
<code>Node<Data></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<void></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="destroy"></a>
<span class="name">
<span class="modifier">Public</span>
<span class="modifier"></span>
<span ><b>destroy</b></span>
<a href="#destroy"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>destroy()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="538"
class="link-to-prism">src/lib/tree.data-source.ts:538</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="expandNode"></a>
<span class="name">
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<span ><b>expandNode</b></span>
<a href="#expandNode"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>expandNode(node: Node<Data>, options?: EventOptions)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="405"
class="link-to-prism">src/lib/tree.data-source.ts:405</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>node</td>
<td>
<code>Node<Data></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>options</td>
<td>
<code>EventOptions</code>
</td>
<td>
Yes
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<void></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="flatTree"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>flatTree</b></span>
<a href="#flatTree"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>flatTree(tree: Node<Data>, all)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="534"
class="link-to-prism">src/lib/tree.data-source.ts:534</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description"><p>Converts the tree structure into a list.</p>
</div>
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>tree</td>
<td>
<code>Node<Data></code>
</td>
<td>
No
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>all</td>
<td>
</td>
<td>
No
</td>
<td>
<code>false</code>
</td>
<td>
<p>true - include nodes children that are not expanded</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Array<Node<Data>></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getChildren"></a>
<span class="name">
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<span ><b>getChildren</b></span>
<a href="#getChildren"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>getChildren(node: Node<Data>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="445"
class="link-to-prism">src/lib/tree.data-source.ts:445</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>node</td>
<td>
<code>Node<Data></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<Data[]></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getNodeById"></a>
<span class="name">
<span class="modifier">Public</span>
<span ><b>getNodeById</b></span>
<a href="#getNodeById"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>getNodeById(id: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="465"
class="link-to-prism">src/lib/tree.data-source.ts:465</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>id</td>
<td>
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Node | null</code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getRoot"></a>
<span class="name">
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<span ><b>getRoot</b></span>
<a href="#getRoot"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>getRoot(options: literal type)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="453"
class="link-to-prism">src/lib/tree.data-source.ts:453</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>options</td>
<td>
<code>literal type</code>
</td>
<td>
No
</td>
<td>
<code>{}</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<Data | []></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getRootParameters"></a>
<span class="name">
<span class="modifier">Public</span>
<span class="modifier">Async</span>
<span ><b>getRootParameters</b></span>
<a href="#getRootParameters"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="modifier-icon icon ion-ios-reset"></span>
<code>getRootParameters(options: literal type)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="458"
class="link-to-prism">src/lib/tree.data-source.ts:458</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Parameters :</b>
<table class="params">
<thead>
<tr>
<td>Name</td>
<td>Type</td>
<td>Optional</td>
<td>Default value</td>
</tr>
</thead>
<tbody>
<tr>
<td>options</td>
<td>
<code>literal type</code>
</td>
<td>
No
</td>
<td>
<code>{}</code>
</td>
</tr>
</tbody>
</table>
</div>
<div class="io-description">
<b>Returns : </b> <code>Promise<RootParameters></code>
</div>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="getTreeRoot"></a>