cic-staff-client/docs/compodoc/components/AccountDetailsComponent.html

4083 lines
190 KiB
HTML

<!doctype html>
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>CICADA</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" media="(prefers-color-scheme: dark)">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="../" class="navbar-brand">CICADA</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</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="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content component">
<div class="content-data">
<ol class="breadcrumb">
<li>Components</li>
<li
>
AccountDetailsComponent</li>
</ol>
<ul class="nav nav-tabs" role="tablist">
<li class="active">
<a href="#info" role="tab" id="info-tab" data-toggle="tab" data-link="info">Info</a>
</li>
<li >
<a href="#source" role="tab" id="source-tab" data-toggle="tab" data-link="source">Source</a>
</li>
<li >
<a href="#templateData" role="tab" id="templateData-tab" data-toggle="tab" data-link="template">Template</a>
</li>
<li >
<a href="#styleData" role="tab" id="styleData-tab" data-toggle="tab" data-link="style">Styles</a>
</li>
<li >
<a href="#tree" role="tab" id="tree-tab" data-toggle="tab" data-link="dom-tree">DOM Tree</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active in" id="c-info"><p class="comment">
<h3>File</h3>
</p>
<p class="comment">
<code>src/app/pages/accounts/account-details/account-details.component.ts</code>
</p>
<p class="comment">
<h3>Implements</h3>
</p>
<p class="comment">
<code><a href="https://angular.io/api/core/OnInit" target="_blank" >OnInit</a></code>
<code><a href="https://angular.io/api/core/AfterViewInit" target="_blank" >AfterViewInit</a></code>
</p>
<section>
<h3>Metadata</h3>
<table class="table table-sm table-hover">
<tbody>
<tr>
<td class="col-md-3">changeDetection</td>
<td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
</tr>
<tr>
<td class="col-md-3">selector</td>
<td class="col-md-9"><code>app-account-details</code></td>
</tr>
<tr>
<td class="col-md-3">styleUrls</td>
<td class="col-md-9"><code>./account-details.component.scss</code></td>
</tr>
<tr>
<td class="col-md-3">templateUrl</td>
<td class="col-md-9"><code>./account-details.component.html</code></td>
</tr>
</tbody>
</table>
</section>
<section>
<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>
<a href="#account" >account</a>
</li>
<li>
<a href="#accountAddress" >accountAddress</a>
</li>
<li>
<a href="#accountInfoForm" >accountInfoForm</a>
</li>
<li>
<a href="#accounts" >accounts</a>
</li>
<li>
<a href="#accountsLoading" >accountsLoading</a>
</li>
<li>
<a href="#accountStatus" >accountStatus</a>
</li>
<li>
<a href="#accountsType" >accountsType</a>
</li>
<li>
<a href="#accountTypes" >accountTypes</a>
</li>
<li>
<a href="#area" >area</a>
</li>
<li>
<a href="#areaNames" >areaNames</a>
</li>
<li>
<a href="#areaType" >areaType</a>
</li>
<li>
<a href="#areaTypes" >areaTypes</a>
</li>
<li>
<a href="#bloxbergLink" >bloxbergLink</a>
</li>
<li>
<a href="#categories" >categories</a>
</li>
<li>
<a href="#category" >category</a>
</li>
<li>
<a href="#genders" >genders</a>
</li>
<li>
<a href="#histories" >histories</a>
</li>
<li>
<a href="#history" >history</a>
</li>
<li>
<a href="#historyDataSource" >historyDataSource</a>
</li>
<li>
<a href="#historyDefaultPageSize" >historyDefaultPageSize</a>
</li>
<li>
<a href="#historyDisplayedColumns" >historyDisplayedColumns</a>
</li>
<li>
<a href="#historyLoading" >historyLoading</a>
</li>
<li>
<a href="#historyPageSizeOptions" >historyPageSizeOptions</a>
</li>
<li>
<a href="#historyTablePaginator" >historyTablePaginator</a>
</li>
<li>
<a href="#historyTableSort" >historyTableSort</a>
</li>
<li>
<a href="#matcher" >matcher</a>
</li>
<li>
<a href="#submitted" >submitted</a>
</li>
<li>
<a href="#tokenSymbol" >tokenSymbol</a>
</li>
<li>
<a href="#transaction" >transaction</a>
</li>
<li>
<a href="#transactions" >transactions</a>
</li>
<li>
<a href="#transactionsDataSource" >transactionsDataSource</a>
</li>
<li>
<a href="#transactionsDefaultPageSize" >transactionsDefaultPageSize</a>
</li>
<li>
<a href="#transactionsDisplayedColumns" >transactionsDisplayedColumns</a>
</li>
<li>
<a href="#transactionsLoading" >transactionsLoading</a>
</li>
<li>
<a href="#transactionsPageSizeOptions" >transactionsPageSizeOptions</a>
</li>
<li>
<a href="#transactionsType" >transactionsType</a>
</li>
<li>
<a href="#transactionsTypes" >transactionsTypes</a>
</li>
<li>
<a href="#transactionTablePaginator" >transactionTablePaginator</a>
</li>
<li>
<a href="#transactionTableSort" >transactionTableSort</a>
</li>
<li>
<a href="#userDataSource" >userDataSource</a>
</li>
<li>
<a href="#userDisplayedColumns" >userDisplayedColumns</a>
</li>
<li>
<a href="#usersDefaultPageSize" >usersDefaultPageSize</a>
</li>
<li>
<a href="#usersPageSizeOptions" >usersPageSizeOptions</a>
</li>
<li>
<a href="#userTablePaginator" >userTablePaginator</a>
</li>
<li>
<a href="#userTableSort" >userTableSort</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>
<a href="#buildAccountsInfoForm" >buildAccountsInfoForm</a>
</li>
<li>
<a href="#copyAddress" >copyAddress</a>
</li>
<li>
<a href="#doTransactionFilter" >doTransactionFilter</a>
</li>
<li>
<a href="#doUserFilter" >doUserFilter</a>
</li>
<li>
<a href="#downloadCsv" >downloadCsv</a>
</li>
<li>
<a href="#filterAccounts" >filterAccounts</a>
</li>
<li>
<a href="#filterTransactions" >filterTransactions</a>
</li>
<li>
<a href="#getKeyValue" >getKeyValue</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#loadAccount" >loadAccount</a>
</li>
<li>
<a href="#loadSearchData" >loadSearchData</a>
</li>
<li>
<a href="#ngAfterViewInit" >ngAfterViewInit</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#ngOnInit" >ngOnInit</a>
</li>
<li>
<a href="#populateAccountsInfoForm" >populateAccountsInfoForm</a>
</li>
<li>
<a href="#populateDataTables" >populateDataTables</a>
</li>
<li>
<a href="#queryLocationAndCategory" >queryLocationAndCategory</a>
</li>
<li>
<a href="#resetPin" >resetPin</a>
</li>
<li>
<span class="modifier">Async</span>
<a href="#saveInfo" >saveInfo</a>
</li>
<li>
<a href="#viewAccount" >viewAccount</a>
</li>
<li>
<a href="#viewHistory" >viewHistory</a>
</li>
<li>
<a href="#viewTransaction" >viewTransaction</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="#accountInfoFormStub" >accountInfoFormStub</a>
</li>
</ul>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="constructor">Constructor</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<code>constructor(formBuilder: <a href="https://angular.io/api/forms/FormBuilder" target="_blank">FormBuilder</a>, locationService: <a href="../injectables/LocationService.html" target="_self">LocationService</a>, transactionService: <a href="../injectables/TransactionService.html" target="_self">TransactionService</a>, userService: <a href="../injectables/UserService.html" target="_self">UserService</a>, route: <a href="https://angular.io/api/router/ActivatedRoute" target="_blank">ActivatedRoute</a>, router: <a href="https://angular.io/api/router/Router" target="_blank">Router</a>, tokenService: <a href="../injectables/TokenService.html" target="_self">TokenService</a>, loggingService: <a href="../injectables/LoggingService.html" target="_self">LoggingService</a>, blockSyncService: <a href="../injectables/BlockSyncService.html" target="_self">BlockSyncService</a>, cdr: <a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank">ChangeDetectorRef</a>, snackBar: MatSnackBar)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="90" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:90</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>formBuilder</td>
<td>
<code><a href="https://angular.io/api/forms/FormBuilder" target="_blank" >FormBuilder</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>locationService</td>
<td>
<code><a href="../injectables/LocationService.html" target="_self" >LocationService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>transactionService</td>
<td>
<code><a href="../injectables/TransactionService.html" target="_self" >TransactionService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>userService</td>
<td>
<code><a href="../injectables/UserService.html" target="_self" >UserService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>route</td>
<td>
<code><a href="https://angular.io/api/router/ActivatedRoute" target="_blank" >ActivatedRoute</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>router</td>
<td>
<code><a href="https://angular.io/api/router/Router" target="_blank" >Router</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>tokenService</td>
<td>
<code><a href="../injectables/TokenService.html" target="_self" >TokenService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>loggingService</td>
<td>
<code><a href="../injectables/LoggingService.html" target="_self" >LoggingService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>blockSyncService</td>
<td>
<code><a href="../injectables/BlockSyncService.html" target="_self" >BlockSyncService</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>cdr</td>
<td>
<code><a href="https://angular.io/api/core/ChangeDetectorRef" target="_blank" >ChangeDetectorRef</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>snackBar</td>
<td>
<code>MatSnackBar</code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="methods">
Methods
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="buildAccountsInfoForm"></a>
<span class="name">
<span ><b>buildAccountsInfoForm</b></span>
<a href="#buildAccountsInfoForm"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>buildAccountsInfoForm()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="253"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:253</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="copyAddress"></a>
<span class="name">
<span ><b>copyAddress</b></span>
<a href="#copyAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>copyAddress()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="235"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:235</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="doTransactionFilter"></a>
<span class="name">
<span ><b>doTransactionFilter</b></span>
<a href="#doTransactionFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>doTransactionFilter(value: <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="142"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:142</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>value</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>
</div>
<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>
<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="doUserFilter"></a>
<span class="name">
<span ><b>doUserFilter</b></span>
<a href="#doUserFilter"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>doUserFilter(value: <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="146"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:146</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>value</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>
</div>
<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>
<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="downloadCsv"></a>
<span class="name">
<span ><b>downloadCsv</b></span>
<a href="#downloadCsv"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>downloadCsv(data: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>, filename: <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="231"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:231</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>data</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
<tr>
<td>filename</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>
</div>
<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>
<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="filterAccounts"></a>
<span class="name">
<span ><b>filterAccounts</b></span>
<a href="#filterAccounts"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>filterAccounts()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="193"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:193</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="filterTransactions"></a>
<span class="name">
<span ><b>filterTransactions</b></span>
<a href="#filterTransactions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>filterTransactions()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="206"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:206</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="getKeyValue"></a>
<span class="name">
<span ><b>getKeyValue</b></span>
<a href="#getKeyValue"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>getKeyValue(obj: <a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank">any</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="243"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:243</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>obj</td>
<td>
<code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<div class="io-description">
<b>Returns : </b> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></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="loadAccount"></a>
<span class="name">
<span class="modifier">Async</span>
<span ><b>loadAccount</b></span>
<a href="#loadAccount"><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>loadAccount()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="366"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:366</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="loadSearchData"></a>
<span class="name">
<span ><b>loadSearchData</b></span>
<a href="#loadSearchData"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>loadSearchData()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="339"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:339</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="ngAfterViewInit"></a>
<span class="name">
<span ><b>ngAfterViewInit</b></span>
<a href="#ngAfterViewInit"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>ngAfterViewInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="127"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:127</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="ngOnInit"></a>
<span class="name">
<span class="modifier">Async</span>
<span ><b>ngOnInit</b></span>
<a href="#ngOnInit"><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>ngOnInit()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="112"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:112</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="populateAccountsInfoForm"></a>
<span class="name">
<span ><b>populateAccountsInfoForm</b></span>
<a href="#populateAccountsInfoForm"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>populateAccountsInfoForm(accountInfo: <a href="../interfaces/AccountDetails.html" target="_self">AccountDetails</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="269"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:269</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>accountInfo</td>
<td>
<code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<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>
<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="populateDataTables"></a>
<span class="name">
<span ><b>populateDataTables</b></span>
<a href="#populateDataTables"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>populateDataTables()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="286"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:286</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="queryLocationAndCategory"></a>
<span class="name">
<span ><b>queryLocationAndCategory</b></span>
<a href="#queryLocationAndCategory"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>queryLocationAndCategory(accountInfo: <a href="../interfaces/AccountDetails.html" target="_self">AccountDetails</a>)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="321"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:321</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>accountInfo</td>
<td>
<code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<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>
<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="resetPin"></a>
<span class="name">
<span ><b>resetPin</b></span>
<a href="#resetPin"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>resetPin()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="219"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:219</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="saveInfo"></a>
<span class="name">
<span class="modifier">Async</span>
<span ><b>saveInfo</b></span>
<a href="#saveInfo"><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>saveInfo()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="168"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:168</a></div>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-description">
<b>Returns : </b> <code>Promise&lt;void&gt;</code>
</div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="viewAccount"></a>
<span class="name">
<span ><b>viewAccount</b></span>
<a href="#viewAccount"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>viewAccount(account)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="158"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:158</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>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>account</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<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>
<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="viewHistory"></a>
<span class="name">
<span ><b>viewHistory</b></span>
<a href="#viewHistory"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>viewHistory(history)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="154"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:154</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>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>history</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<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>
<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="viewTransaction"></a>
<span class="name">
<span ><b>viewTransaction</b></span>
<a href="#viewTransaction"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<code>viewTransaction(transaction)</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="150"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:150</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>Optional</td>
</tr>
</thead>
<tbody>
<tr>
<td>transaction</td>
<td>
No
</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
<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>
<div class="io-description">
</div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="inputs">
Properties
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="account"></a>
<span class="name">
<span ><b>account</b></span>
<a href="#account"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AccountDetails.html" target="_self" >AccountDetails</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="65" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:65</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountAddress"></a>
<span class="name">
<span ><b>accountAddress</b></span>
<a href="#accountAddress"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="66" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:66</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountInfoForm"></a>
<span class="name">
<span ><b>accountInfoForm</b></span>
<a href="#accountInfoForm"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://angular.io/api/forms/FormGroup" target="_blank" >FormGroup</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="64" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:64</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accounts"></a>
<span class="name">
<span ><b>accounts</b></span>
<a href="#accounts"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AccountDetails.html" target="_self" >Array&lt;AccountDetails&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="68" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:68</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountsLoading"></a>
<span class="name">
<span ><b>accountsLoading</b></span>
<a href="#accountsLoading"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="86" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:86</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountStatus"></a>
<span class="name">
<span ><b>accountStatus</b></span>
<a href="#accountStatus"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="67" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:67</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountsType"></a>
<span class="name">
<span ><b>accountsType</b></span>
<a href="#accountsType"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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">
<i>Default value : </i><code>&#x27;all&#x27;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="69" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:69</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountTypes"></a>
<span class="name">
<span ><b>accountTypes</b></span>
<a href="#accountTypes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="76" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:76</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="area"></a>
<span class="name">
<span ><b>area</b></span>
<a href="#area"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="84" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:84</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="areaNames"></a>
<span class="name">
<span ><b>areaNames</b></span>
<a href="#areaNames"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="71" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:71</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="areaType"></a>
<span class="name">
<span ><b>areaType</b></span>
<a href="#areaType"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="85" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:85</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="areaTypes"></a>
<span class="name">
<span ><b>areaTypes</b></span>
<a href="#areaTypes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="72" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:72</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="bloxbergLink"></a>
<span class="name">
<span ><b>bloxbergLink</b></span>
<a href="#bloxbergLink"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="81" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:81</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="categories"></a>
<span class="name">
<span ><b>categories</b></span>
<a href="#categories"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="70" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:70</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="category"></a>
<span class="name">
<span ><b>category</b></span>
<a href="#category"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="83" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:83</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="genders"></a>
<span class="name">
<span ><b>genders</b></span>
<a href="#genders"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="78" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:78</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="histories"></a>
<span class="name">
<span ><b>histories</b></span>
<a href="#histories"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="88" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:88</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="history"></a>
<span class="name">
<span ><b>history</b></span>
<a href="#history"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="89" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:89</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyDataSource"></a>
<span class="name">
<span ><b>historyDataSource</b></span>
<a href="#historyDataSource"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatTableDataSource&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="50" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:50</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyDefaultPageSize"></a>
<span class="name">
<span ><b>historyDefaultPageSize</b></span>
<a href="#historyDefaultPageSize"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>5</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="59" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:59</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyDisplayedColumns"></a>
<span class="name">
<span ><b>historyDisplayedColumns</b></span>
<a href="#historyDisplayedColumns"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[
&#x27;actor&#x27;,
&#x27;signer&#x27;,
&#x27;message&#x27;,
&#x27;sequence&#x27;,
&#x27;dependencies&#x27;,
&#x27;timestamp&#x27;,
]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="51" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:51</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyLoading"></a>
<span class="name">
<span ><b>historyLoading</b></span>
<a href="#historyLoading"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="90" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:90</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyPageSizeOptions"></a>
<span class="name">
<span ><b>historyPageSizeOptions</b></span>
<a href="#historyPageSizeOptions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;number&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[5, 10, 20, 50, 100]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="60" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:60</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyTablePaginator"></a>
<span class="name">
<span ><b>historyTablePaginator</b></span>
<a href="#historyTablePaginator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatPaginator</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;HistoryTablePaginator&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="61" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:61</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="historyTableSort"></a>
<span class="name">
<span ><b>historyTableSort</b></span>
<a href="#historyTableSort"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatSort</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;HistoryTableSort&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="62" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:62</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="matcher"></a>
<span class="name">
<span ><b>matcher</b></span>
<a href="#matcher"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../classes/CustomErrorStateMatcher.html" target="_self" >CustomErrorStateMatcher</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>new CustomErrorStateMatcher()</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="79" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:79</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="submitted"></a>
<span class="name">
<span ><b>submitted</b></span>
<a href="#submitted"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>false</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="80" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:80</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="tokenSymbol"></a>
<span class="name">
<span ><b>tokenSymbol</b></span>
<a href="#tokenSymbol"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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="82" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:82</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transaction"></a>
<span class="name">
<span ><b>transaction</b></span>
<a href="#transaction"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="73" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:73</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactions"></a>
<span class="name">
<span ><b>transactions</b></span>
<a href="#transactions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Transaction.html" target="_self" >Array&lt;Transaction&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="74" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:74</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsDataSource"></a>
<span class="name">
<span ><b>transactionsDataSource</b></span>
<a href="#transactionsDataSource"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatTableDataSource&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="36" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:36</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsDefaultPageSize"></a>
<span class="name">
<span ><b>transactionsDefaultPageSize</b></span>
<a href="#transactionsDefaultPageSize"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>10</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="38" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:38</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsDisplayedColumns"></a>
<span class="name">
<span ><b>transactionsDisplayedColumns</b></span>
<a href="#transactionsDisplayedColumns"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[&#x27;sender&#x27;, &#x27;recipient&#x27;, &#x27;value&#x27;, &#x27;created&#x27;, &#x27;type&#x27;]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="37" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:37</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsLoading"></a>
<span class="name">
<span ><b>transactionsLoading</b></span>
<a href="#transactionsLoading"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>true</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="87" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:87</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsPageSizeOptions"></a>
<span class="name">
<span ><b>transactionsPageSizeOptions</b></span>
<a href="#transactionsPageSizeOptions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;number&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[10, 20, 50, 100]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="39" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:39</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsType"></a>
<span class="name">
<span ><b>transactionsType</b></span>
<a href="#transactionsType"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><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">
<i>Default value : </i><code>&#x27;all&#x27;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="75" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:75</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionsTypes"></a>
<span class="name">
<span ><b>transactionsTypes</b></span>
<a href="#transactionsTypes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="77" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:77</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionTablePaginator"></a>
<span class="name">
<span ><b>transactionTablePaginator</b></span>
<a href="#transactionTablePaginator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatPaginator</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;TransactionTablePaginator&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="40" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:40</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="transactionTableSort"></a>
<span class="name">
<span ><b>transactionTableSort</b></span>
<a href="#transactionTableSort"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatSort</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;TransactionTableSort&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="41" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:41</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="userDataSource"></a>
<span class="name">
<span ><b>userDataSource</b></span>
<a href="#userDataSource"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatTableDataSource&lt;any&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="43" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:43</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="userDisplayedColumns"></a>
<span class="name">
<span ><b>userDisplayedColumns</b></span>
<a href="#userDisplayedColumns"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;string&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[&#x27;name&#x27;, &#x27;phone&#x27;, &#x27;created&#x27;, &#x27;balance&#x27;, &#x27;location&#x27;]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="44" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:44</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="usersDefaultPageSize"></a>
<span class="name">
<span ><b>usersDefaultPageSize</b></span>
<a href="#usersDefaultPageSize"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/number" target="_blank" >number</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>10</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="45" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:45</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="usersPageSizeOptions"></a>
<span class="name">
<span ><b>usersPageSizeOptions</b></span>
<a href="#usersPageSizeOptions"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>Array&lt;number&gt;</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Default value : </i><code>[10, 20, 50, 100]</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="46" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:46</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="userTablePaginator"></a>
<span class="name">
<span ><b>userTablePaginator</b></span>
<a href="#userTablePaginator"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatPaginator</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;UserTablePaginator&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="47" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:47</a></div>
</td>
</tr>
</tbody>
</table>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="userTableSort"></a>
<span class="name">
<span ><b>userTableSort</b></span>
<a href="#userTableSort"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code>MatSort</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<b>Decorators : </b>
<br />
<code>
@ViewChild(&#x27;UserTableSort&#x27;, {static: true})<br />
</code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="48" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:48</a></div>
</td>
</tr>
</tbody>
</table>
</section>
<section>
<h3 id="accessors">
Accessors
</h3>
<table class="table table-sm table-bordered">
<tbody>
<tr>
<td class="col-md-4">
<a name="accountInfoFormStub"></a>
<span class="name"><b>accountInfoFormStub</b><a href="#accountInfoFormStub"><span class="icon ion-ios-link"></span></a></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<span class="accessor"><b>get</b><code>accountInfoFormStub()</code></span>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="164" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:164</a></div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div class="tab-pane fade tab-source-code" id="c-source">
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
AfterViewInit,
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
OnInit,
ViewChild,
} from &#x27;@angular/core&#x27;;
import { MatTableDataSource } from &#x27;@angular/material/table&#x27;;
import { MatPaginator } from &#x27;@angular/material/paginator&#x27;;
import { MatSort } from &#x27;@angular/material/sort&#x27;;
import {
BlockSyncService,
LocationService,
LoggingService,
TokenService,
TransactionService,
UserService,
} from &#x27;@app/_services&#x27;;
import { ActivatedRoute, Params, Router } from &#x27;@angular/router&#x27;;
import { first } from &#x27;rxjs/operators&#x27;;
import { FormBuilder, FormGroup, Validators } from &#x27;@angular/forms&#x27;;
import { copyToClipboard, CustomErrorStateMatcher, exportCsv } from &#x27;@app/_helpers&#x27;;
import { MatSnackBar } from &#x27;@angular/material/snack-bar&#x27;;
import { add0x, strip0x } from &#x27;@src/assets/js/ethtx/dist/hex&#x27;;
import { environment } from &#x27;@src/environments/environment&#x27;;
import { AccountDetails, Transaction } from &#x27;@app/_models&#x27;;
@Component({
selector: &#x27;app-account-details&#x27;,
templateUrl: &#x27;./account-details.component.html&#x27;,
styleUrls: [&#x27;./account-details.component.scss&#x27;],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AccountDetailsComponent implements OnInit, AfterViewInit {
transactionsDataSource: MatTableDataSource&lt;any&gt;;
transactionsDisplayedColumns: Array&lt;string&gt; &#x3D; [&#x27;sender&#x27;, &#x27;recipient&#x27;, &#x27;value&#x27;, &#x27;created&#x27;, &#x27;type&#x27;];
transactionsDefaultPageSize: number &#x3D; 10;
transactionsPageSizeOptions: Array&lt;number&gt; &#x3D; [10, 20, 50, 100];
@ViewChild(&#x27;TransactionTablePaginator&#x27;, { static: true }) transactionTablePaginator: MatPaginator;
@ViewChild(&#x27;TransactionTableSort&#x27;, { static: true }) transactionTableSort: MatSort;
userDataSource: MatTableDataSource&lt;any&gt;;
userDisplayedColumns: Array&lt;string&gt; &#x3D; [&#x27;name&#x27;, &#x27;phone&#x27;, &#x27;created&#x27;, &#x27;balance&#x27;, &#x27;location&#x27;];
usersDefaultPageSize: number &#x3D; 10;
usersPageSizeOptions: Array&lt;number&gt; &#x3D; [10, 20, 50, 100];
@ViewChild(&#x27;UserTablePaginator&#x27;, { static: true }) userTablePaginator: MatPaginator;
@ViewChild(&#x27;UserTableSort&#x27;, { static: true }) userTableSort: MatSort;
historyDataSource: MatTableDataSource&lt;any&gt;;
historyDisplayedColumns: Array&lt;string&gt; &#x3D; [
&#x27;actor&#x27;,
&#x27;signer&#x27;,
&#x27;message&#x27;,
&#x27;sequence&#x27;,
&#x27;dependencies&#x27;,
&#x27;timestamp&#x27;,
];
historyDefaultPageSize: number &#x3D; 5;
historyPageSizeOptions: Array&lt;number&gt; &#x3D; [5, 10, 20, 50, 100];
@ViewChild(&#x27;HistoryTablePaginator&#x27;, { static: true }) historyTablePaginator: MatPaginator;
@ViewChild(&#x27;HistoryTableSort&#x27;, { static: true }) historyTableSort: MatSort;
accountInfoForm: FormGroup;
account: AccountDetails;
accountAddress: string;
accountStatus: any;
accounts: Array&lt;AccountDetails&gt; &#x3D; [];
accountsType: string &#x3D; &#x27;all&#x27;;
categories: Array&lt;string&gt;;
areaNames: Array&lt;string&gt;;
areaTypes: Array&lt;string&gt;;
transaction: any;
transactions: Array&lt;Transaction&gt;;
transactionsType: string &#x3D; &#x27;all&#x27;;
accountTypes: Array&lt;string&gt;;
transactionsTypes: Array&lt;string&gt;;
genders: Array&lt;string&gt;;
matcher: CustomErrorStateMatcher &#x3D; new CustomErrorStateMatcher();
submitted: boolean &#x3D; false;
bloxbergLink: string;
tokenSymbol: string;
category: string;
area: string;
areaType: string;
accountsLoading: boolean &#x3D; true;
transactionsLoading: boolean &#x3D; true;
histories: Array&lt;any&gt; &#x3D; [];
history: any;
historyLoading: boolean &#x3D; true;
constructor(
private formBuilder: FormBuilder,
private locationService: LocationService,
private transactionService: TransactionService,
private userService: UserService,
private route: ActivatedRoute,
private router: Router,
private tokenService: TokenService,
private loggingService: LoggingService,
private blockSyncService: BlockSyncService,
private cdr: ChangeDetectorRef,
private snackBar: MatSnackBar
) {
this.route.paramMap.subscribe((params: Params) &#x3D;&gt; {
this.accountAddress &#x3D; add0x(params.get(&#x27;id&#x27;));
this.bloxbergLink &#x3D;
&#x27;https://blockexplorer.bloxberg.org/address/&#x27; + this.accountAddress + &#x27;/transactions&#x27;;
});
}
async ngOnInit(): Promise&lt;void&gt; {
this.buildAccountsInfoForm();
this.transactionService.resetTransactionsList();
await this.blockSyncService.blockSync(this.accountAddress);
this.userService.resetAccountsList();
await this.loadAccount();
this.populateDataTables();
this.loadSearchData();
this.tokenService.load.subscribe(async (status: boolean) &#x3D;&gt; {
if (status) {
this.tokenSymbol &#x3D; await this.tokenService.getTokenSymbol();
}
});
}
ngAfterViewInit(): void {
if (this.userDataSource) {
this.userDataSource.paginator &#x3D; this.userTablePaginator;
this.userDataSource.sort &#x3D; this.userTableSort;
}
if (this.transactionsDataSource) {
this.transactionsDataSource.paginator &#x3D; this.transactionTablePaginator;
this.transactionsDataSource.sort &#x3D; this.transactionTableSort;
}
if (this.historyDataSource) {
this.historyDataSource.paginator &#x3D; this.historyTablePaginator;
this.historyDataSource.sort &#x3D; this.historyTableSort;
}
}
doTransactionFilter(value: string): void {
this.transactionsDataSource.filter &#x3D; value.trim().toLocaleLowerCase();
}
doUserFilter(value: string): void {
this.userDataSource.filter &#x3D; value.trim().toLocaleLowerCase();
}
viewTransaction(transaction): void {
this.transaction &#x3D; transaction;
}
viewHistory(history): void {
this.history &#x3D; history;
}
viewAccount(account): void {
this.router.navigateByUrl(
&#x60;/accounts/${strip0x(account.identities.evm[&#x60;bloxberg:${environment.bloxbergChainId}&#x60;][0])}&#x60;
);
}
get accountInfoFormStub(): any {
return this.accountInfoForm.controls;
}
async saveInfo(): Promise&lt;void&gt; {
this.submitted &#x3D; true;
if (this.accountInfoForm.invalid || !confirm(&#x60;Change user&#x27;s profile information?&#x60;)) {
return;
}
const status &#x3D; await this.userService.changeAccountInfo(
this.accountAddress,
this.accountInfoFormStub.firstName.value + &#x27;, &#x27; + this.accountInfoFormStub.lastName.value,
this.accountInfoFormStub.phoneNumber.value,
this.accountInfoFormStub.age.value,
this.accountInfoFormStub.type.value,
this.accountInfoFormStub.bio.value,
this.accountInfoFormStub.gender.value,
this.accountInfoFormStub.businessCategory.value,
this.accountInfoFormStub.userLocation.value,
this.accountInfoFormStub.location.value,
this.accountInfoFormStub.locationType.value,
this.account.vcard?.tel[0].value
);
if (status) {
await this.loadAccount();
}
this.submitted &#x3D; false;
}
filterAccounts(): void {
if (this.accountsType &#x3D;&#x3D;&#x3D; &#x27;all&#x27;) {
this.userService.accountsSubject.subscribe((accounts) &#x3D;&gt; {
this.userDataSource.data &#x3D; accounts;
this.accounts &#x3D; accounts;
});
} else {
this.userDataSource.data &#x3D; this.accounts.filter(
(account) &#x3D;&gt; account.type &#x3D;&#x3D;&#x3D; this.accountsType
);
}
}
filterTransactions(): void {
if (this.transactionsType &#x3D;&#x3D;&#x3D; &#x27;all&#x27;) {
this.transactionService.transactionsSubject.subscribe((transactions) &#x3D;&gt; {
this.transactionsDataSource.data &#x3D; transactions;
this.transactions &#x3D; transactions;
});
} else {
this.transactionsDataSource.data &#x3D; this.transactions.filter(
(transaction) &#x3D;&gt; transaction.type + &#x27;s&#x27; &#x3D;&#x3D;&#x3D; this.transactionsType
);
}
}
resetPin(): void {
if (!confirm(&#x60;Reset user&#x27;s pin?&#x60;)) {
return;
}
this.userService
.resetPin(this.account.vcard.tel[0].value)
.pipe(first())
.subscribe((res) &#x3D;&gt; {
this.loggingService.sendInfoLevelMessage(&#x60;Response: ${res}&#x60;);
});
}
downloadCsv(data: any, filename: string): void {
exportCsv(data, filename);
}
copyAddress(): void {
if (copyToClipboard(this.accountAddress)) {
this.snackBar.open(this.accountAddress + &#x27; copied successfully!&#x27;, &#x27;Close&#x27;, {
duration: 3000,
});
}
}
getKeyValue(obj: any): string {
let str &#x3D; &#x27;&#x27;;
if (obj instanceof Object) {
for (const [key, value] of Object.entries(obj)) {
str +&#x3D; &#x60;${key}: ${value} &#x60;;
}
}
return str;
}
buildAccountsInfoForm(): void {
this.accountInfoForm &#x3D; this.formBuilder.group({
firstName: [&#x27;&#x27;, Validators.required],
lastName: [&#x27;&#x27;, Validators.required],
phoneNumber: [&#x27;&#x27;, Validators.required],
age: [&#x27;&#x27;],
type: [&#x27;&#x27;, Validators.required],
bio: [&#x27;&#x27;, Validators.required],
gender: [&#x27;&#x27;, Validators.required],
businessCategory: [&#x27;&#x27;, Validators.required],
userLocation: [&#x27;&#x27;, Validators.required],
location: [&#x27;&#x27;, Validators.required],
locationType: [&#x27;&#x27;, Validators.required],
});
}
populateAccountsInfoForm(accountInfo: AccountDetails): void {
const fullName &#x3D; accountInfo.vcard?.fn[0].value.split(&#x27; &#x27;);
this.accountInfoForm.patchValue({
firstName: fullName[0].split(&#x27;,&#x27;)[0],
lastName: fullName.slice(1).join(&#x27; &#x27;),
phoneNumber: accountInfo.vcard?.tel[0].value,
age: accountInfo.age,
type: accountInfo.type,
bio: accountInfo.products,
gender: accountInfo.gender,
businessCategory: accountInfo.category || this.category || &#x27;other&#x27;,
userLocation: accountInfo.location.area_name,
location: accountInfo.location.area || this.area || &#x27;other&#x27;,
locationType: accountInfo.location.area_type || this.areaType || &#x27;other&#x27;,
});
}
populateDataTables(): void {
this.userService.accountsSubject.subscribe((accounts) &#x3D;&gt; {
this.userDataSource &#x3D; new MatTableDataSource&lt;any&gt;(accounts);
this.userDataSource.paginator &#x3D; this.userTablePaginator;
this.userDataSource.sort &#x3D; this.userTableSort;
this.accounts &#x3D; accounts;
if (accounts.length &gt; 0) {
this.accountsLoading &#x3D; false;
}
this.cdr.detectChanges();
});
this.transactionService.transactionsSubject.subscribe((transactions) &#x3D;&gt; {
this.transactionsDataSource &#x3D; new MatTableDataSource&lt;any&gt;(transactions);
this.transactionsDataSource.paginator &#x3D; this.transactionTablePaginator;
this.transactionsDataSource.sort &#x3D; this.transactionTableSort;
this.transactions &#x3D; transactions;
if (transactions.length &gt; 0) {
this.transactionsLoading &#x3D; false;
}
this.cdr.detectChanges();
});
this.userService.historySubject.subscribe(async (histories) &#x3D;&gt; {
this.historyDataSource &#x3D; new MatTableDataSource&lt;any&gt;(histories);
this.historyDataSource.paginator &#x3D; this.historyTablePaginator;
this.historyDataSource.sort &#x3D; this.historyTableSort;
this.histories &#x3D; histories;
if (histories.length &gt; 0) {
this.historyLoading &#x3D; false;
}
this.cdr.detectChanges();
});
}
queryLocationAndCategory(accountInfo: AccountDetails): void {
this.locationService.areaNamesSubject.subscribe((response) &#x3D;&gt; {
this.area &#x3D; this.locationService.getAreaNameByLocation(
accountInfo.location.area_name,
response
);
this.cdr.detectChanges();
this.locationService.areaTypesSubject.subscribe((result) &#x3D;&gt; {
this.areaType &#x3D; this.locationService.getAreaTypeByArea(this.area, result);
this.cdr.detectChanges();
});
});
this.userService.categoriesSubject.subscribe((result) &#x3D;&gt; {
this.category &#x3D; this.userService.getCategoryByProduct(accountInfo.products[0], result);
this.cdr.detectChanges();
});
}
loadSearchData(): void {
this.userService.getCategories();
this.userService.categoriesSubject.subscribe((res) &#x3D;&gt; {
this.categories &#x3D; Object.keys(res);
});
this.locationService.getAreaNames();
this.locationService.areaNamesSubject.subscribe((res) &#x3D;&gt; {
this.areaNames &#x3D; Object.keys(res);
});
this.locationService.getAreaTypes();
this.locationService.areaTypesSubject.subscribe((res) &#x3D;&gt; {
this.areaTypes &#x3D; Object.keys(res);
});
this.userService
.getAccountTypes()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.accountTypes &#x3D; res));
this.userService
.getTransactionTypes()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.transactionsTypes &#x3D; res));
this.userService
.getGenders()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.genders &#x3D; res));
}
async loadAccount(): Promise&lt;void&gt; {
(await this.userService.getAccountByAddress(this.accountAddress, 100, true)).subscribe(
async (res) &#x3D;&gt; {
if (res !&#x3D;&#x3D; undefined) {
this.account &#x3D; res;
this.cdr.detectChanges();
this.queryLocationAndCategory(this.account);
this.populateAccountsInfoForm(this.account);
this.userService
.getAccountStatus(this.account.vcard?.tel[0].value)
.pipe(first())
.subscribe((response) &#x3D;&gt; (this.accountStatus &#x3D; response.status));
} else {
alert(&#x27;Account not found!&#x27;);
}
}
);
}
}
</code></pre>
</div>
<div class="tab-pane fade " id="c-templateData">
<pre class="line-numbers"><code class="language-html">&lt;!-- Begin page --&gt;
&lt;div class&#x3D;&quot;wrapper&quot;&gt;
&lt;app-sidebar&gt;&lt;/app-sidebar&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- Start Page Content here --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;div id&#x3D;&quot;content&quot;&gt;
&lt;app-topbar&gt;&lt;/app-topbar&gt;
&lt;!-- Start Content--&gt;
&lt;div class&#x3D;&quot;container-fluid&quot; appMenuSelection&gt;
&lt;nav aria-label&#x3D;&quot;breadcrumb&quot;&gt;
&lt;ol class&#x3D;&quot;breadcrumb&quot;&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/home&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
&lt;li class&#x3D;&quot;breadcrumb-item&quot;&gt;&lt;a routerLink&#x3D;&quot;/accounts&quot;&gt;Accounts&lt;/a&gt;&lt;/li&gt;
&lt;li *ngIf&#x3D;&quot;account&quot; class&#x3D;&quot;breadcrumb-item active&quot; aria-current&#x3D;&quot;page&quot;&gt;
{{ account?.vcard?.fn[0].value }}
&lt;/li&gt;
&lt;/ol&gt;
&lt;/nav&gt;
&lt;div *ngIf&#x3D;&quot;!account&quot; class&#x3D;&quot;text-center&quot;&gt;
&lt;div class&#x3D;&quot;spinner-grow text-primary m-1&quot; role&#x3D;&quot;status&quot; style&#x3D;&quot;width: 3rem; height: 3rem&quot;&gt;
&lt;span class&#x3D;&quot;sr-only&quot;&gt;Loading...&lt;/span&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;spinner-grow text-primary m-1&quot; role&#x3D;&quot;status&quot; style&#x3D;&quot;width: 3rem; height: 3rem&quot;&gt;
&lt;span class&#x3D;&quot;sr-only&quot;&gt;Loading...&lt;/span&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;spinner-grow text-primary m-1&quot; role&#x3D;&quot;status&quot; style&#x3D;&quot;width: 3rem; height: 3rem&quot;&gt;
&lt;span class&#x3D;&quot;sr-only&quot;&gt;Loading...&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div *ngIf&#x3D;&quot;account&quot; class&#x3D;&quot;card mb-3&quot;&gt;
&lt;div class&#x3D;&quot;row card-body&quot;&gt;
&lt;h3&gt;
&lt;strong&gt; {{ account?.vcard?.fn[0].value }} &lt;/strong&gt;
&lt;/h3&gt;
&lt;span class&#x3D;&quot;ml-auto&quot;
&gt;&lt;strong&gt;Balance:&lt;/strong&gt; {{ account?.balance | tokenRatio }}
{{ tokenSymbol | uppercase }}&lt;/span
&gt;
&lt;span class&#x3D;&quot;ml-2&quot;
&gt;&lt;strong&gt;Created:&lt;/strong&gt; {{ account?.date_registered | unixDate }}&lt;/span
&gt;
&lt;span class&#x3D;&quot;ml-2&quot;
&gt;&lt;strong&gt;Address:&lt;/strong&gt;
&lt;a href&#x3D;&quot;{{ bloxbergLink }}&quot; target&#x3D;&quot;_blank&quot;&gt; {{ accountAddress }} &lt;/a&gt;
&lt;img
src&#x3D;&quot;assets/images/checklist.svg&quot;
class&#x3D;&quot;ml-2&quot;
height&#x3D;&quot;20rem&quot;
(click)&#x3D;&quot;copyAddress()&quot;
alt&#x3D;&quot;Copy&quot;
/&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div *ngIf&#x3D;&quot;account&quot; class&#x3D;&quot;card mt-3 mb-3&quot;&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;form [formGroup]&#x3D;&quot;accountInfoForm&quot; (ngSubmit)&#x3D;&quot;saveInfo()&quot;&gt;
&lt;div class&#x3D;&quot;row form-inline&quot;&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;First Name: *&lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;firstName&quot;
placeholder&#x3D;&quot;{{ account?.vcard?.fn[0].value.split(&#x27; &#x27;)[0] }}&quot;
value&#x3D;&quot;{{ account?.vcard?.fn[0].value.split(&#x27; &#x27;)[0] }}&quot;
formControlName&#x3D;&quot;firstName&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.firstName.errors&quot;
&gt;First Name is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Last Name(s): *&lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;lastName&quot;
placeholder&#x3D;&quot;{{ account?.vcard?.fn[0].value.split(&#x27; &#x27;).slice(1).join(&#x27; &#x27;) }}&quot;
value&#x3D;&quot;{{ account?.vcard?.fn[0].value.split(&#x27; &#x27;).slice(1).join(&#x27; &#x27;) }}&quot;
formControlName&#x3D;&quot;lastName&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.lastName.errors&quot;
&gt;Last Name is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Phone Number: &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;phoneNumber&quot;
placeholder&#x3D;&quot;{{ account?.vcard?.tel[0].value }}&quot;
value&#x3D;&quot;{{ account?.vcard?.tel[0].value }}&quot;
formControlName&#x3D;&quot;phoneNumber&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.phoneNumber.errors&quot;
&gt;Phone Number is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; ACCOUNT TYPE: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;accountType&quot;
[(value)]&#x3D;&quot;account.type&quot;
formControlName&#x3D;&quot;type&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option *ngFor&#x3D;&quot;let accountType of accountTypes&quot; [value]&#x3D;&quot;accountType&quot;&gt;
{{ accountType | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.type.errors&quot;
&gt;Type is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; GENDER: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;gender&quot;
[(value)]&#x3D;&quot;account.gender&quot;
formControlName&#x3D;&quot;gender&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option *ngFor&#x3D;&quot;let gender of genders&quot; [value]&#x3D;&quot;gender&quot;&gt;
{{ gender | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.gender.errors&quot;
&gt;Gender is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Age: &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;age&quot;
placeholder&#x3D;&quot;{{ account?.age }}&quot;
value&#x3D;&quot;{{ account?.age }}&quot;
formControlName&#x3D;&quot;age&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.age.errors&quot;
&gt;Age is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;Bio: &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;bio&quot;
placeholder&#x3D;&quot;{{ account?.products }}&quot;
value&#x3D;&quot;{{ account?.products }}&quot;
formControlName&#x3D;&quot;bio&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.bio.errors&quot;
&gt;Bio is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; BUSINESS CATEGORY: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;businessCategory&quot;
[(value)]&#x3D;&quot;category&quot;
formControlName&#x3D;&quot;businessCategory&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option *ngFor&#x3D;&quot;let category of categories&quot; [value]&#x3D;&quot;category&quot;&gt;
{{ category | titlecase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.businessCategory.errors&quot;&gt;
Category is required.
&lt;/mat-error&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt;User Location: &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
id&#x3D;&quot;userLocation&quot;
placeholder&#x3D;&quot;{{ account?.location.area_name }}&quot;
value&#x3D;&quot;{{ account?.location.area_name }}&quot;
formControlName&#x3D;&quot;userLocation&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
/&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.userLocation.errors&quot;&gt;
User Location is required.
&lt;/mat-error&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; LOCATION: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;location&quot;
[(value)]&#x3D;&quot;area&quot;
formControlName&#x3D;&quot;location&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option *ngFor&#x3D;&quot;let area of areaNames&quot; [value]&#x3D;&quot;area&quot;&gt;
{{ area | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.location.errors&quot;
&gt;Location is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; LOCATION TYPE: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;locationType&quot;
[(value)]&#x3D;&quot;areaType&quot;
formControlName&#x3D;&quot;locationType&quot;
[errorStateMatcher]&#x3D;&quot;matcher&quot;
&gt;
&lt;mat-option *ngFor&#x3D;&quot;let type of areaTypes&quot; [value]&#x3D;&quot;type&quot;&gt;
{{ type | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;mat-error *ngIf&#x3D;&quot;submitted &amp;&amp; accountInfoFormStub.locationType.errors&quot;
&gt;Location Type is required.&lt;/mat-error
&gt;
&lt;/mat-form-field&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-success mb-3&quot;
(click)&#x3D;&quot;resetPin()&quot;
&gt;
Reset Pin
&lt;/button&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;warn&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-danger mb-3&quot;
&gt;
Delete User
&lt;/button&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;col-md-6 col-lg-4&quot;&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;submit&quot;
class&#x3D;&quot;btn btn-outline-primary&quot;
&gt;
SAVE DETAILS
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;card mb-3&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt; USER &lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;div class&#x3D;&quot;table-responsive&quot;&gt;
&lt;table class&#x3D;&quot;table table-striped table-bordered table-hover&quot;&gt;
&lt;caption&gt;
1 user
&lt;/caption&gt;
&lt;thead class&#x3D;&quot;thead-dark&quot;&gt;
&lt;tr&gt;
&lt;th scope&#x3D;&quot;col&quot;&gt;NAME&lt;/th&gt;
&lt;th scope&#x3D;&quot;col&quot;&gt;BALANCE&lt;/th&gt;
&lt;th scope&#x3D;&quot;col&quot;&gt;CREATED&lt;/th&gt;
&lt;th scope&#x3D;&quot;col&quot;&gt;STATUS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;{{ account?.vcard?.fn[0].value || accountAddress }}&lt;/td&gt;
&lt;td&gt;{{ account?.balance | tokenRatio }} {{ tokenSymbol | uppercase }}&lt;/td&gt;
&lt;td&gt;{{ account?.date_registered | unixDate }}&lt;/td&gt;
&lt;td&gt;
&lt;span class&#x3D;&quot;badge badge-success badge-pill&quot;&gt;
{{ accountStatus }}
&lt;/span&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;card mt-1&quot;&gt;
&lt;app-account-history
*ngIf&#x3D;&quot;history&quot;
[account]&#x3D;&quot;history?.snapshot.data&quot;
(closeWindow)&#x3D;&quot;history &#x3D; $event&quot;
&gt;&lt;/app-account-history&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt; HISTORY &lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;div *ngIf&#x3D;&quot;historyLoading&quot;&gt;
&lt;h2 class&#x3D;&quot;text-center&quot;&gt;&lt;strong&gt;Loading History!&lt;/strong&gt;&lt;/h2&gt;
&lt;mat-progress-bar [mode]&#x3D;&quot;&#x27;query&#x27;&quot;&gt;&lt;/mat-progress-bar&gt;
&lt;/div&gt;
&lt;mat-table
class&#x3D;&quot;mat-elevation-z10&quot;
[dataSource]&#x3D;&quot;historyDataSource&quot;
matSort
matSortActive&#x3D;&quot;timestamp&quot;
#HistoryTableSort&#x3D;&quot;matSort&quot;
matSortDirection&#x3D;&quot;asc&quot;
matSortDisableClear
&gt;
&lt;ng-container matColumnDef&#x3D;&quot;actor&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;Actor&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ history?.change.actor }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;signer&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;Signer&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ history?.snapshot.signature?.data | signatureUser | async }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;message&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;Message&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ history?.change.message }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;sequence&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;Sequence&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ history?.change.seq }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;dependencies&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;Dependencies&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ getKeyValue(history?.change.deps) }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;timestamp&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;ChangedAt&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let history&quot;&gt;
{{ history?.snapshot.timestamp | unixDate }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;mat-header-row *matHeaderRowDef&#x3D;&quot;historyDisplayedColumns&quot;&gt;&lt;/mat-header-row&gt;
&lt;mat-row
*matRowDef&#x3D;&quot;let history; columns: historyDisplayedColumns&quot;
(click)&#x3D;&quot;viewHistory(history)&quot;
matRipple
&gt;&lt;/mat-row&gt;
&lt;/mat-table&gt;
&lt;mat-paginator
#HistoryTablePaginator&#x3D;&quot;matPaginator&quot;
[pageSize]&#x3D;&quot;historyDefaultPageSize&quot;
[pageSizeOptions]&#x3D;&quot;historyPageSizeOptions&quot;
showFirstLastButtons
&gt;&lt;/mat-paginator&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;mat-tab-group dynamicHeight mat-align-tabs&#x3D;&quot;start&quot;&gt;
&lt;mat-tab label&#x3D;&quot;Transactions&quot;&gt;
&lt;app-transaction-details
[transaction]&#x3D;&quot;transaction&quot;
(closeWindow)&#x3D;&quot;transaction &#x3D; $event&quot;
&gt;&lt;/app-transaction-details&gt;
&lt;div class&#x3D;&quot;card mt-1&quot;&gt;
&lt;div class&#x3D;&quot;card-header&quot;&gt;
&lt;div class&#x3D;&quot;row&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; TRANSACTION TYPE &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;transferSelect&quot;
[(value)]&#x3D;&quot;transactionsType&quot;
(selectionChange)&#x3D;&quot;filterTransactions()&quot;
&gt;
&lt;mat-option value&#x3D;&quot;all&quot;&gt;ALL TRANSFERS&lt;/mat-option&gt;
&lt;mat-option
*ngFor&#x3D;&quot;let transactionType of transactionsTypes&quot;
[value]&#x3D;&quot;transactionType&quot;
&gt;
{{ transactionType | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;/mat-form-field&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-primary ml-auto mr-2&quot;
(click)&#x3D;&quot;downloadCsv(transactions, &#x27;transactions&#x27;)&quot;
&gt;
EXPORT
&lt;/button&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; Filter &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
(keyup)&#x3D;&quot;doTransactionFilter($event.target.value)&quot;
placeholder&#x3D;&quot;Filter&quot;
/&gt;
&lt;mat-icon matSuffix&gt;search&lt;/mat-icon&gt;
&lt;/mat-form-field&gt;
&lt;div *ngIf&#x3D;&quot;transactionsLoading&quot;&gt;
&lt;h2 class&#x3D;&quot;text-center&quot;&gt;&lt;strong&gt;Loading Transactions!&lt;/strong&gt;&lt;/h2&gt;
&lt;mat-progress-bar [mode]&#x3D;&quot;&#x27;query&#x27;&quot;&gt;&lt;/mat-progress-bar&gt;
&lt;/div&gt;
&lt;table
mat-table
class&#x3D;&quot;mat-elevation-z10&quot;
[dataSource]&#x3D;&quot;transactionsDataSource&quot;
matSort
matSortActive&#x3D;&quot;created&quot;
#TransactionTableSort&#x3D;&quot;matSort&quot;
matSortDirection&#x3D;&quot;asc&quot;
matSortDisableClear
&gt;
&lt;ng-container matColumnDef&#x3D;&quot;sender&quot;&gt;
&lt;th mat-header-cell *matHeaderCellDef mat-sort-header&gt;Sender&lt;/th&gt;
&lt;td mat-cell *matCellDef&#x3D;&quot;let transaction&quot;&gt;
{{ transaction?.sender?.vcard.fn[0].value || transaction.from }}
&lt;/td&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;recipient&quot;&gt;
&lt;th mat-header-cell *matHeaderCellDef mat-sort-header&gt;Recipient&lt;/th&gt;
&lt;td mat-cell *matCellDef&#x3D;&quot;let transaction&quot;&gt;
{{ transaction?.recipient?.vcard.fn[0].value || transaction.to }}
&lt;/td&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;value&quot;&gt;
&lt;th mat-header-cell *matHeaderCellDef mat-sort-header&gt;Value&lt;/th&gt;
&lt;td mat-cell *matCellDef&#x3D;&quot;let transaction&quot;&gt;
&lt;span *ngIf&#x3D;&quot;transaction.type &#x3D;&#x3D; &#x27;transaction&#x27;&quot;
&gt;{{ transaction?.value | tokenRatio }} {{ tokenSymbol | uppercase }}&lt;/span
&gt;
&lt;span *ngIf&#x3D;&quot;transaction.type &#x3D;&#x3D; &#x27;conversion&#x27;&quot;
&gt;{{ transaction?.toValue | tokenRatio }} {{ tokenSymbol | uppercase }}&lt;/span
&gt;
&lt;/td&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;created&quot;&gt;
&lt;th mat-header-cell *matHeaderCellDef mat-sort-header&gt;Created&lt;/th&gt;
&lt;td mat-cell *matCellDef&#x3D;&quot;let transaction&quot;&gt;
{{ transaction?.tx.timestamp | unixDate }}
&lt;/td&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;type&quot;&gt;
&lt;th mat-header-cell *matHeaderCellDef mat-sort-header&gt;TYPE&lt;/th&gt;
&lt;td mat-cell *matCellDef&#x3D;&quot;let transaction&quot;&gt;
&lt;span class&#x3D;&quot;badge badge-success badge-pill&quot;&gt; {{ transaction?.type }} &lt;/span&gt;
&lt;/td&gt;
&lt;/ng-container&gt;
&lt;tr mat-header-row *matHeaderRowDef&#x3D;&quot;transactionsDisplayedColumns&quot;&gt;&lt;/tr&gt;
&lt;tr
mat-row
*matRowDef&#x3D;&quot;let transaction; columns: transactionsDisplayedColumns&quot;
matRipple
(click)&#x3D;&quot;viewTransaction(transaction)&quot;
&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;mat-paginator
#TransactionTablePaginator&#x3D;&quot;matPaginator&quot;
[pageSize]&#x3D;&quot;transactionsDefaultPageSize&quot;
[pageSizeOptions]&#x3D;&quot;transactionsPageSizeOptions&quot;
showFirstLastButtons
&gt;&lt;/mat-paginator&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/mat-tab&gt;
&lt;mat-tab label&#x3D;&quot;Users&quot;&gt;
&lt;div class&#x3D;&quot;card mt-1&quot;&gt;
&lt;mat-card-title class&#x3D;&quot;card-header&quot;&gt; Accounts &lt;/mat-card-title&gt;
&lt;div class&#x3D;&quot;card-body&quot;&gt;
&lt;div class&#x3D;&quot;row card-header&quot;&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; ACCOUNT TYPE &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;typeSelect&quot;
[(value)]&#x3D;&quot;accountsType&quot;
(selectionChange)&#x3D;&quot;filterAccounts()&quot;
&gt;
&lt;mat-option value&#x3D;&quot;all&quot;&gt;ALL&lt;/mat-option&gt;
&lt;mat-option *ngFor&#x3D;&quot;let accountType of accountTypes&quot; [value]&#x3D;&quot;accountType&quot;&gt;
{{ accountType | uppercase }}
&lt;/mat-option&gt;
&lt;/mat-select&gt;
&lt;/mat-form-field&gt;
&lt;button
mat-raised-button
color&#x3D;&quot;primary&quot;
type&#x3D;&quot;button&quot;
class&#x3D;&quot;btn btn-outline-primary ml-auto mr-2&quot;
(click)&#x3D;&quot;downloadCsv(accounts, &#x27;accounts&#x27;)&quot;
&gt;
EXPORT
&lt;/button&gt;
&lt;/div&gt;
&lt;mat-form-field appearance&#x3D;&quot;outline&quot;&gt;
&lt;mat-label&gt; Filter &lt;/mat-label&gt;
&lt;input
matInput
type&#x3D;&quot;text&quot;
(keyup)&#x3D;&quot;doUserFilter($event.target.value)&quot;
placeholder&#x3D;&quot;Filter&quot;
/&gt;
&lt;mat-icon matSuffix&gt;search&lt;/mat-icon&gt;
&lt;/mat-form-field&gt;
&lt;div *ngIf&#x3D;&quot;accountsLoading&quot;&gt;
&lt;h2 class&#x3D;&quot;text-center&quot;&gt;&lt;strong&gt;Loading Accounts!&lt;/strong&gt;&lt;/h2&gt;
&lt;mat-progress-bar [mode]&#x3D;&quot;&#x27;query&#x27;&quot;&gt;&lt;/mat-progress-bar&gt;
&lt;/div&gt;
&lt;mat-table
class&#x3D;&quot;mat-elevation-z10&quot;
[dataSource]&#x3D;&quot;userDataSource&quot;
matSort
#UserTableSort&#x3D;&quot;matSort&quot;
matSortActive&#x3D;&quot;created&quot;
matSortDirection&#x3D;&quot;desc&quot;
matSortDisableClear
&gt;
&lt;ng-container matColumnDef&#x3D;&quot;name&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; NAME &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user?.vcard.fn[0].value }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;phone&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt;
PHONE NUMBER
&lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user?.vcard.tel[0].value }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;created&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; CREATED &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt;
{{ user?.date_registered | unixDate }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;balance&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; BALANCE &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt;
{{ user?.balance | tokenRatio }} {{ tokenSymbol | uppercase }}
&lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;ng-container matColumnDef&#x3D;&quot;location&quot;&gt;
&lt;mat-header-cell *matHeaderCellDef mat-sort-header&gt; LOCATION &lt;/mat-header-cell&gt;
&lt;mat-cell *matCellDef&#x3D;&quot;let user&quot;&gt; {{ user?.location.area_name }} &lt;/mat-cell&gt;
&lt;/ng-container&gt;
&lt;mat-header-row *matHeaderRowDef&#x3D;&quot;userDisplayedColumns&quot;&gt;&lt;/mat-header-row&gt;
&lt;mat-row
*matRowDef&#x3D;&quot;let account; columns: userDisplayedColumns&quot;
(click)&#x3D;&quot;viewAccount(account)&quot;
matRipple
&gt;&lt;/mat-row&gt;
&lt;/mat-table&gt;
&lt;mat-paginator
#UserTablePaginator&#x3D;&quot;matPaginator&quot;
[pageSize]&#x3D;&quot;usersDefaultPageSize&quot;
[pageSizeOptions]&#x3D;&quot;usersPageSizeOptions&quot;
showFirstLastButtons
&gt;&lt;/mat-paginator&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/mat-tab&gt;
&lt;/mat-tab-group&gt;
&lt;/div&gt;
&lt;app-footer appMenuSelection&gt;&lt;/app-footer&gt;
&lt;/div&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;!-- End Page content --&gt;
&lt;!-- &#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D;&#x3D; --&gt;
&lt;/div&gt;
</code></pre>
</div>
<div class="tab-pane fade " id="c-styleData">
<p class="comment">
<code>./account-details.component.scss</code>
</p>
<pre class="line-numbers"><code class="language-scss"></code></pre>
</div>
<div class="tab-pane fade " id="c-tree">
<div id="tree-container"></div>
<div class="tree-legend">
<div class="title">
<b>Legend</b>
</div>
<div>
<div class="color htmlelement"></div><span>Html element</span>
</div>
<div>
<div class="color component"></div><span>Component</span>
</div>
<div>
<div class="color directive"></div><span>Html element with directive</span>
</div>
</div>
</div>
</div>
<script src="../js/libs/vis.min.js"></script>
<script src="../js/libs/htmlparser.js"></script>
<script src="../js/libs/deep-iterator.js"></script>
<script>
var COMPONENT_TEMPLATE = '<div><!-- Begin page --><div class="wrapper"> <app-sidebar></app-sidebar> <!-- ============================================================== --> <!-- Start Page Content here --> <!-- ============================================================== --> <div id="content"> <app-topbar></app-topbar> <!-- Start Content--> <div class="container-fluid" appMenuSelection> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a routerLink="/home">Home</a></li> <li class="breadcrumb-item"><a routerLink="/accounts">Accounts</a></li> <li *ngIf="account" class="breadcrumb-item active" aria-current="page"> {{ account?.vcard?.fn[0].value }} </li> </ol> </nav> <div *ngIf="!account" class="text-center"> <div class="spinner-grow text-primary m-1" role="status" style="width: 3rem; height: 3rem"> <span class="sr-only">Loading...</span> </div> <div class="spinner-grow text-primary m-1" role="status" style="width: 3rem; height: 3rem"> <span class="sr-only">Loading...</span> </div> <div class="spinner-grow text-primary m-1" role="status" style="width: 3rem; height: 3rem"> <span class="sr-only">Loading...</span> </div> </div> <div *ngIf="account" class="card mb-3"> <div class="row card-body"> <h3> <strong> {{ account?.vcard?.fn[0].value }} </strong> </h3> <span class="ml-auto" ><strong>Balance:</strong> {{ account?.balance | tokenRatio }} {{ tokenSymbol | uppercase }}</span > <span class="ml-2" ><strong>Created:</strong> {{ account?.date_registered | unixDate }}</span > <span class="ml-2" ><strong>Address:</strong> <a href="{{ bloxbergLink }}" target="_blank"> {{ accountAddress }} </a> <img src="assets/images/checklist.svg" class="ml-2" height="20rem" (click)="copyAddress()" alt="Copy" /> </span> </div> </div> <div *ngIf="account" class="card mt-3 mb-3"> <div class="card-body"> <form [formGroup]="accountInfoForm" (ngSubmit)="saveInfo()"> <div class="row form-inline"> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>First Name: *</mat-label> <input matInput type="text" id="firstName" placeholder="{{ account?.vcard?.fn[0].value.split(\' \')[0] }}" value="{{ account?.vcard?.fn[0].value.split(\' \')[0] }}" formControlName="firstName" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.firstName.errors" >First Name is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>Last Name(s): *</mat-label> <input matInput type="text" id="lastName" placeholder="{{ account?.vcard?.fn[0].value.split(\' \').slice(1).join(\' \') }}" value="{{ account?.vcard?.fn[0].value.split(\' \').slice(1).join(\' \') }}" formControlName="lastName" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.lastName.errors" >Last Name is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>Phone Number: </mat-label> <input matInput type="text" id="phoneNumber" placeholder="{{ account?.vcard?.tel[0].value }}" value="{{ account?.vcard?.tel[0].value }}" formControlName="phoneNumber" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.phoneNumber.errors" >Phone Number is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label> ACCOUNT TYPE: </mat-label> <mat-select id="accountType" [(value)]="account.type" formControlName="type" [errorStateMatcher]="matcher" > <mat-option *ngFor="let accountType of accountTypes" [value]="accountType"> {{ accountType | uppercase }} </mat-option> </mat-select> <mat-error *ngIf="submitted && accountInfoFormStub.type.errors" >Type is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label> GENDER: </mat-label> <mat-select id="gender" [(value)]="account.gender" formControlName="gender" [errorStateMatcher]="matcher" > <mat-option *ngFor="let gender of genders" [value]="gender"> {{ gender | uppercase }} </mat-option> </mat-select> <mat-error *ngIf="submitted && accountInfoFormStub.gender.errors" >Gender is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>Age: </mat-label> <input matInput type="text" id="age" placeholder="{{ account?.age }}" value="{{ account?.age }}" formControlName="age" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.age.errors" >Age is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>Bio: </mat-label> <input matInput type="text" id="bio" placeholder="{{ account?.products }}" value="{{ account?.products }}" formControlName="bio" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.bio.errors" >Bio is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label> BUSINESS CATEGORY: </mat-label> <mat-select id="businessCategory" [(value)]="category" formControlName="businessCategory" [errorStateMatcher]="matcher" > <mat-option *ngFor="let category of categories" [value]="category"> {{ category | titlecase }} </mat-option> </mat-select> <mat-error *ngIf="submitted && accountInfoFormStub.businessCategory.errors"> Category is required. </mat-error> </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label>User Location: </mat-label> <input matInput type="text" id="userLocation" placeholder="{{ account?.location.area_name }}" value="{{ account?.location.area_name }}" formControlName="userLocation" [errorStateMatcher]="matcher" /> <mat-error *ngIf="submitted && accountInfoFormStub.userLocation.errors"> User Location is required. </mat-error> </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label> LOCATION: </mat-label> <mat-select id="location" [(value)]="area" formControlName="location" [errorStateMatcher]="matcher" > <mat-option *ngFor="let area of areaNames" [value]="area"> {{ area | uppercase }} </mat-option> </mat-select> <mat-error *ngIf="submitted && accountInfoFormStub.location.errors" >Location is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <mat-form-field appearance="outline"> <mat-label> LOCATION TYPE: </mat-label> <mat-select id="locationType" [(value)]="areaType" formControlName="locationType" [errorStateMatcher]="matcher" > <mat-option *ngFor="let type of areaTypes" [value]="type"> {{ type | uppercase }} </mat-option> </mat-select> <mat-error *ngIf="submitted && accountInfoFormStub.locationType.errors" >Location Type is required.</mat-error > </mat-form-field> </div> <div class="col-md-6 col-lg-4"> <button mat-raised-button color="primary" type="button" class="btn btn-outline-success mb-3" (click)="resetPin()" > Reset Pin </button> </div> <div class="col-md-6 col-lg-4"> <button mat-raised-button color="warn" type="button" class="btn btn-outline-danger mb-3" > Delete User </button> </div> <div class="col-md-6 col-lg-4"> <button mat-raised-button color="primary" type="submit" class="btn btn-outline-primary" > SAVE DETAILS </button> </div> </div> </form> </div> </div> <div class="card mb-3"> <mat-card-title class="card-header"> USER </mat-card-title> <div class="card-body"> <div class="table-responsive"> <table class="table table-striped table-bordered table-hover"> <caption> 1 user </caption> <thead class="thead-dark"> <tr> <th scope="col">NAME</th> <th scope="col">BALANCE</th> <th scope="col">CREATED</th> <th scope="col">STATUS</th> </tr> </thead> <tbody> <tr> <td>{{ account?.vcard?.fn[0].value || accountAddress }}</td> <td>{{ account?.balance | tokenRatio }} {{ tokenSymbol | uppercase }}</td> <td>{{ account?.date_registered | unixDate }}</td> <td> <span class="badge badge-success badge-pill"> {{ accountStatus }} </span> </td> </tr> </tbody> </table> </div> </div> </div> <div class="card mt-1"> <app-account-history *ngIf="history" [account]="history?.snapshot.data" (closeWindow)="history = $event" ></app-account-history> <mat-card-title class="card-header"> HISTORY </mat-card-title> <div class="card-body"> <div *ngIf="historyLoading"> <h2 class="text-center"><strong>Loading History!</strong></h2> <mat-progress-bar [mode]="\'query\'"></mat-progress-bar> </div> <mat-table class="mat-elevation-z10" [dataSource]="historyDataSource" matSort matSortActive="timestamp" #HistoryTableSort="matSort" matSortDirection="asc" matSortDisableClear > <ng-container matColumnDef="actor"> <mat-header-cell *matHeaderCellDef mat-sort-header>Actor</mat-header-cell> <mat-cell *matCellDef="let history"> {{ history?.change.actor }} </mat-cell> </ng-container> <ng-container matColumnDef="signer"> <mat-header-cell *matHeaderCellDef mat-sort-header>Signer</mat-header-cell> <mat-cell *matCellDef="let history"> {{ history?.snapshot.signature?.data | signatureUser | async }} </mat-cell> </ng-container> <ng-container matColumnDef="message"> <mat-header-cell *matHeaderCellDef mat-sort-header>Message</mat-header-cell> <mat-cell *matCellDef="let history"> {{ history?.change.message }} </mat-cell> </ng-container> <ng-container matColumnDef="sequence"> <mat-header-cell *matHeaderCellDef mat-sort-header>Sequence</mat-header-cell> <mat-cell *matCellDef="let history"> {{ history?.change.seq }} </mat-cell> </ng-container> <ng-container matColumnDef="dependencies"> <mat-header-cell *matHeaderCellDef mat-sort-header>Dependencies</mat-header-cell> <mat-cell *matCellDef="let history"> {{ getKeyValue(history?.change.deps) }} </mat-cell> </ng-container> <ng-container matColumnDef="timestamp"> <mat-header-cell *matHeaderCellDef mat-sort-header>ChangedAt</mat-header-cell> <mat-cell *matCellDef="let history"> {{ history?.snapshot.timestamp | unixDate }} </mat-cell> </ng-container> <mat-header-row *matHeaderRowDef="historyDisplayedColumns"></mat-header-row> <mat-row *matRowDef="let history; columns: historyDisplayedColumns" (click)="viewHistory(history)" matRipple ></mat-row> </mat-table> <mat-paginator #HistoryTablePaginator="matPaginator" [pageSize]="historyDefaultPageSize" [pageSizeOptions]="historyPageSizeOptions" showFirstLastButtons ></mat-paginator> </div> </div> <mat-tab-group dynamicHeight mat-align-tabs="start"> <mat-tab label="Transactions"> <app-transaction-details [transaction]="transaction" (closeWindow)="transaction = $event" ></app-transaction-details> <div class="card mt-1"> <div class="card-header"> <div class="row"> <mat-form-field appearance="outline"> <mat-label> TRANSACTION TYPE </mat-label> <mat-select id="transferSelect" [(value)]="transactionsType" (selectionChange)="filterTransactions()" > <mat-option value="all">ALL TRANSFERS</mat-option> <mat-option *ngFor="let transactionType of transactionsTypes" [value]="transactionType" > {{ transactionType | uppercase }} </mat-option> </mat-select> </mat-form-field> <button mat-raised-button color="primary" type="button" class="btn btn-outline-primary ml-auto mr-2" (click)="downloadCsv(transactions, \'transactions\')" > EXPORT </button> </div> </div> <div class="card-body"> <mat-form-field appearance="outline"> <mat-label> Filter </mat-label> <input matInput type="text" (keyup)="doTransactionFilter($event.target.value)" placeholder="Filter" /> <mat-icon matSuffix>search</mat-icon> </mat-form-field> <div *ngIf="transactionsLoading"> <h2 class="text-center"><strong>Loading Transactions!</strong></h2> <mat-progress-bar [mode]="\'query\'"></mat-progress-bar> </div> <table mat-table class="mat-elevation-z10" [dataSource]="transactionsDataSource" matSort matSortActive="created" #TransactionTableSort="matSort" matSortDirection="asc" matSortDisableClear > <ng-container matColumnDef="sender"> <th mat-header-cell *matHeaderCellDef mat-sort-header>Sender</th> <td mat-cell *matCellDef="let transaction"> {{ transaction?.sender?.vcard.fn[0].value || transaction.from }} </td> </ng-container> <ng-container matColumnDef="recipient"> <th mat-header-cell *matHeaderCellDef mat-sort-header>Recipient</th> <td mat-cell *matCellDef="let transaction"> {{ transaction?.recipient?.vcard.fn[0].value || transaction.to }} </td> </ng-container> <ng-container matColumnDef="value"> <th mat-header-cell *matHeaderCellDef mat-sort-header>Value</th> <td mat-cell *matCellDef="let transaction"> <span *ngIf="transaction.type == \'transaction\'" >{{ transaction?.value | tokenRatio }} {{ tokenSymbol | uppercase }}</span > <span *ngIf="transaction.type == \'conversion\'" >{{ transaction?.toValue | tokenRatio }} {{ tokenSymbol | uppercase }}</span > </td> </ng-container> <ng-container matColumnDef="created"> <th mat-header-cell *matHeaderCellDef mat-sort-header>Created</th> <td mat-cell *matCellDef="let transaction"> {{ transaction?.tx.timestamp | unixDate }} </td> </ng-container> <ng-container matColumnDef="type"> <th mat-header-cell *matHeaderCellDef mat-sort-header>TYPE</th> <td mat-cell *matCellDef="let transaction"> <span class="badge badge-success badge-pill"> {{ transaction?.type }} </span> </td> </ng-container> <tr mat-header-row *matHeaderRowDef="transactionsDisplayedColumns"></tr> <tr mat-row *matRowDef="let transaction; columns: transactionsDisplayedColumns" matRipple (click)="viewTransaction(transaction)" ></tr> </table> <mat-paginator #TransactionTablePaginator="matPaginator" [pageSize]="transactionsDefaultPageSize" [pageSizeOptions]="transactionsPageSizeOptions" showFirstLastButtons ></mat-paginator> </div> </div> </mat-tab> <mat-tab label="Users"> <div class="card mt-1"> <mat-card-title class="card-header"> Accounts </mat-card-title> <div class="card-body"> <div class="row card-header"> <mat-form-field appearance="outline"> <mat-label> ACCOUNT TYPE </mat-label> <mat-select id="typeSelect" [(value)]="accountsType" (selectionChange)="filterAccounts()" > <mat-option value="all">ALL</mat-option> <mat-option *ngFor="let accountType of accountTypes" [value]="accountType"> {{ accountType | uppercase }} </mat-option> </mat-select> </mat-form-field> <button mat-raised-button color="primary" type="button" class="btn btn-outline-primary ml-auto mr-2" (click)="downloadCsv(accounts, \'accounts\')" > EXPORT </button> </div> <mat-form-field appearance="outline"> <mat-label> Filter </mat-label> <input matInput type="text" (keyup)="doUserFilter($event.target.value)" placeholder="Filter" /> <mat-icon matSuffix>search</mat-icon> </mat-form-field> <div *ngIf="accountsLoading"> <h2 class="text-center"><strong>Loading Accounts!</strong></h2> <mat-progress-bar [mode]="\'query\'"></mat-progress-bar> </div> <mat-table class="mat-elevation-z10" [dataSource]="userDataSource" matSort #UserTableSort="matSort" matSortActive="created" matSortDirection="desc" matSortDisableClear > <ng-container matColumnDef="name"> <mat-header-cell *matHeaderCellDef mat-sort-header> NAME </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user?.vcard.fn[0].value }} </mat-cell> </ng-container> <ng-container matColumnDef="phone"> <mat-header-cell *matHeaderCellDef mat-sort-header> PHONE NUMBER </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user?.vcard.tel[0].value }} </mat-cell> </ng-container> <ng-container matColumnDef="created"> <mat-header-cell *matHeaderCellDef mat-sort-header> CREATED </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user?.date_registered | unixDate }} </mat-cell> </ng-container> <ng-container matColumnDef="balance"> <mat-header-cell *matHeaderCellDef mat-sort-header> BALANCE </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user?.balance | tokenRatio }} {{ tokenSymbol | uppercase }} </mat-cell> </ng-container> <ng-container matColumnDef="location"> <mat-header-cell *matHeaderCellDef mat-sort-header> LOCATION </mat-header-cell> <mat-cell *matCellDef="let user"> {{ user?.location.area_name }} </mat-cell> </ng-container> <mat-header-row *matHeaderRowDef="userDisplayedColumns"></mat-header-row> <mat-row *matRowDef="let account; columns: userDisplayedColumns" (click)="viewAccount(account)" matRipple ></mat-row> </mat-table> <mat-paginator #UserTablePaginator="matPaginator" [pageSize]="usersDefaultPageSize" [pageSizeOptions]="usersPageSizeOptions" showFirstLastButtons ></mat-paginator> </div> </div> </mat-tab> </mat-tab-group> </div> <app-footer appMenuSelection></app-footer> </div> <!-- ============================================================== --> <!-- End Page content --> <!-- ============================================================== --></div></div>'
var COMPONENTS = [{'name': 'AccountDetailsComponent', 'selector': 'app-account-details'},{'name': 'AccountHistoryComponent', 'selector': 'app-account-history'},{'name': 'AccountsComponent', 'selector': 'app-accounts'},{'name': 'AccountSearchComponent', 'selector': 'app-account-search'},{'name': 'AdminComponent', 'selector': 'app-admin'},{'name': 'AppComponent', 'selector': 'app-root'},{'name': 'AuthComponent', 'selector': 'app-auth'},{'name': 'CreateAccountComponent', 'selector': 'app-create-account'},{'name': 'ErrorDialogComponent', 'selector': 'app-error-dialog'},{'name': 'FooterComponent', 'selector': 'app-footer'},{'name': 'FooterStubComponent', 'selector': 'app-footer'},{'name': 'NetworkStatusComponent', 'selector': 'app-network-status'},{'name': 'OrganizationComponent', 'selector': 'app-organization'},{'name': 'PagesComponent', 'selector': 'app-pages'},{'name': 'SettingsComponent', 'selector': 'app-settings'},{'name': 'SidebarComponent', 'selector': 'app-sidebar'},{'name': 'SidebarStubComponent', 'selector': 'app-sidebar'},{'name': 'TokenDetailsComponent', 'selector': 'app-token-details'},{'name': 'TokensComponent', 'selector': 'app-tokens'},{'name': 'TopbarComponent', 'selector': 'app-topbar'},{'name': 'TopbarStubComponent', 'selector': 'app-topbar'},{'name': 'TransactionDetailsComponent', 'selector': 'app-transaction-details'},{'name': 'TransactionsComponent', 'selector': 'app-transactions'}];
var DIRECTIVES = [{'name': 'MenuSelectionDirective', 'selector': '[appMenuSelection]'},{'name': 'MenuToggleDirective', 'selector': '[appMenuToggle]'},{'name': 'PasswordToggleDirective', 'selector': '[appPasswordToggle]'},{'name': 'RouterLinkDirectiveStub', 'selector': '[appRouterLink]'}];
var ACTUAL_COMPONENT = {'name': 'AccountDetailsComponent'};
</script>
<script src="../js/tree.js"></script>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
var COMPODOC_CURRENT_PAGE_URL = 'AccountDetailsComponent.html';
var MAX_SEARCH_RESULTS = 15;
</script>
<script src="../js/libs/custom-elements.min.js"></script>
<script src="../js/libs/lit-html.js"></script>
<script type="module" src="../js/menu-wc.js" defer></script>
<script nomodule src="../js/menu-wc_es5.js" defer></script>
<script src="../js/libs/bootstrap-native.js"></script>
<script src="../js/libs/es6-shim.min.js"></script>
<script src="../js/libs/EventDispatcher.js"></script>
<script src="../js/libs/promise.min.js"></script>
<script src="../js/libs/zepto.min.js"></script>
<script src="../js/compodoc.js"></script>
<script src="../js/tabs.js"></script>
<script src="../js/menu.js"></script>
<script src="../js/libs/clipboard.min.js"></script>
<script src="../js/libs/prism.js"></script>
<script src="../js/sourceCode.js"></script>
<script src="../js/search/search.js"></script>
<script src="../js/search/lunr.min.js"></script>
<script src="../js/search/search-lunr.js"></script>
<script src="../js/search/search_index.js"></script>
<script src="../js/lazy-load-graphs.js"></script>
</body>
</html>