cic-staff-client/docs/compodoc/components/AccountDetailsComponent.html
2021-06-15 16:37:33 +00:00

3010 lines
149 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">
</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>
</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="#accountStatus">accountStatus</a>
</li>
<li>
<a href="#accountsType">accountsType</a>
</li>
<li>
<a href="#accountTypes">accountTypes</a>
</li>
<li>
<a href="#areaNames">areaNames</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="#genders">genders</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="#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="#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>
<span class="modifier">Async</span>
<a href="#ngOnInit">ngOnInit</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="#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">LocationService</a>, transactionService: <a href="../injectables/TransactionService.html">TransactionService</a>, userService: <a href="../injectables/UserService.html">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">TokenService</a>, loggingService: <a href="../injectables/LoggingService.html">LoggingService</a>, blockSyncService: <a href="../injectables/BlockSyncService.html">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="67" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:67</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="copyAddress"></a>
<span class="name">
<b>
copyAddress
</b>
<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="285"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:285</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">
<b>
doTransactionFilter
</b>
<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="200"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:200</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">
<b>
doUserFilter
</b>
<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="204"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:204</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">
<b>
downloadCsv
</b>
<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="281"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:281</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">
<b>
filterAccounts
</b>
<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="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>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">
<b>
filterTransactions
</b>
<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="256"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:256</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">
<b>
<span class="modifier">Async</span>
ngOnInit
</b>
<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="89"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:89</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="resetPin"></a>
<span class="name">
<b>
resetPin
</b>
<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="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>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">
<b>
<span class="modifier">Async</span>
saveInfo
</b>
<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="222"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:222</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">
<b>
viewAccount
</b>
<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="212"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:212</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="viewTransaction"></a>
<span class="name">
<b>
viewTransaction
</b>
<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="208"
class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:208</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">
<b>
account</b>
<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="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="accountAddress"></a>
<span class="name">
<b>
accountAddress</b>
<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="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="accountInfoForm"></a>
<span class="name">
<b>
accountInfoForm</b>
<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="49" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:49</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">
<b>
accounts</b>
<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="53" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:53</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">
<b>
accountStatus</b>
<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="52" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:52</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">
<b>
accountsType</b>
<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="54" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:54</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">
<b>
accountTypes</b>
<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="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="areaNames"></a>
<span class="name">
<b>
areaNames</b>
<a href="#areaNames"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AreaName.html" target="_self" >Array&lt;AreaName&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="56" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:56</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">
<b>
areaTypes</b>
<a href="#areaTypes"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/AreaType.html" target="_self" >Array&lt;AreaType&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="57" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:57</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">
<b>
bloxbergLink</b>
<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="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="categories"></a>
<span class="name">
<b>
categories</b>
<a href="#categories"><span class="icon ion-ios-link"></span></a>
</span>
</td>
</tr>
<tr>
<td class="col-md-4">
<i>Type : </i> <code><a href="../interfaces/Category.html" target="_self" >Array&lt;Category&gt;</a></code>
</td>
</tr>
<tr>
<td class="col-md-4">
<div class="io-line">Defined in <a href="" data-line="55" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:55</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">
<b>
genders</b>
<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="63" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:63</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">
<b>
matcher</b>
<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="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="submitted"></a>
<span class="name">
<b>
submitted</b>
<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="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="tokenSymbol"></a>
<span class="name">
<b>
tokenSymbol</b>
<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="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="transaction"></a>
<span class="name">
<b>
transaction</b>
<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="58" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:58</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">
<b>
transactions</b>
<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="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="transactionsDataSource"></a>
<span class="name">
<b>
transactionsDataSource</b>
<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="35" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:35</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">
<b>
transactionsDefaultPageSize</b>
<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="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="transactionsDisplayedColumns"></a>
<span class="name">
<b>
transactionsDisplayedColumns</b>
<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="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="transactionsPageSizeOptions"></a>
<span class="name">
<b>
transactionsPageSizeOptions</b>
<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="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="transactionsType"></a>
<span class="name">
<b>
transactionsType</b>
<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="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="transactionsTypes"></a>
<span class="name">
<b>
transactionsTypes</b>
<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="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="transactionTablePaginator"></a>
<span class="name">
<b>
transactionTablePaginator</b>
<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="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="transactionTableSort"></a>
<span class="name">
<b>
transactionTableSort</b>
<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="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="userDataSource"></a>
<span class="name">
<b>
userDataSource</b>
<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="42" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:42</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">
<b>
userDisplayedColumns</b>
<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="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="usersDefaultPageSize"></a>
<span class="name">
<b>
usersDefaultPageSize</b>
<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="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="usersPageSizeOptions"></a>
<span class="name">
<b>
usersPageSizeOptions</b>
<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="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="userTablePaginator"></a>
<span class="name">
<b>
userTablePaginator</b>
<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="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="userTableSort"></a>
<span class="name">
<b>
userTableSort</b>
<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="47" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:47</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="218" class="link-to-prism">src/app/pages/accounts/account-details/account-details.component.ts:218</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 {
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, AreaName, AreaType, Category, 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 {
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;
accountInfoForm: FormGroup;
account: AccountDetails;
accountAddress: string;
accountStatus: any;
accounts: Array&lt;AccountDetails&gt; &#x3D; [];
accountsType: string &#x3D; &#x27;all&#x27;;
categories: Array&lt;Category&gt;;
areaNames: Array&lt;AreaName&gt;;
areaTypes: Array&lt;AreaType&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;
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.accountInfoForm &#x3D; this.formBuilder.group({
firstName: [&#x27;&#x27;, Validators.required],
lastName: [&#x27;&#x27;, Validators.required],
phoneNumber: [&#x27;&#x27;, Validators.required],
age: [&#x27;&#x27;, Validators.required],
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],
});
await this.blockSyncService.init();
await this.tokenService.init();
await this.transactionService.init();
await this.userService.init();
await this.blockSyncService.blockSync(this.accountAddress);
this.userService.resetAccountsList();
(await this.userService.getAccountByAddress(this.accountAddress, 100)).subscribe(
async (res) &#x3D;&gt; {
if (res !&#x3D;&#x3D; undefined) {
this.account &#x3D; res;
this.cdr.detectChanges();
this.loggingService.sendInfoLevelMessage(this.account);
const fullName &#x3D; this.account.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: this.account.vcard?.tel[0].value,
age: this.account.age,
type: this.account.type,
bio: this.account.products,
gender: this.account.gender,
businessCategory:
this.account.category ||
this.userService.getCategoryByProduct(this.account.products[0]),
userLocation: this.account.location.area_name,
location:
this.account.location.area ||
this.locationService
.getAreaNameByLocation(this.account.location.area_name)
.pipe(first())
.subscribe((response) &#x3D;&gt; {
return response;
}),
locationType:
this.account.location.area_type ||
this.locationService
.getAreaTypeByArea(this.accountInfoFormStub.location.value)
.pipe(first())
.subscribe((response) &#x3D;&gt; {
return response;
}),
});
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;);
}
}
);
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;
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;
this.cdr.detectChanges();
});
this.userService
.getCategories()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.categories &#x3D; res));
this.locationService
.getAreaNames()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.areaNames &#x3D; res));
this.locationService
.getAreaTypes()
.pipe(first())
.subscribe((res) &#x3D;&gt; (this.areaTypes &#x3D; 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));
this.tokenService.load.subscribe(async (status: boolean) &#x3D;&gt; {
if (status) {
this.tokenSymbol &#x3D; await this.tokenService.getTokenSymbol();
}
});
}
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;
}
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 accountKey &#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.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 &#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,
});
}
}
}
</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;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; 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;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; 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; BUSINESS CATEGORY: &lt;/mat-label&gt;
&lt;mat-select
id&#x3D;&quot;businessCategory&quot;
[(value)]&#x3D;&quot;account.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;account.location.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;account.location.area_type&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-primary mb-3&quot;
&gt;
Add User KYC
&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;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 }}&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;mat-tab-group *ngIf&#x3D;&quot;account&quot; 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;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;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>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> 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>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> 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> BUSINESS CATEGORY: </mat-label> <mat-select id="businessCategory" [(value)]="account.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)]="account.location.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)]="account.location.area_type" 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-primary mb-3" > Add User KYC </button> </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 }}</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> <mat-tab-group *ngIf="account" 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> <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> <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': '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>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="../js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="../js/menu-wc.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>