<div class="container-xl">
  <h1 style="float: left;" i18n>Transactions</h1>

  <div class="d-block float-right">
    <form [formGroup]="radioGroupForm">
      <ngx-bootrap-multiselect [options]="txTypeOptions" [settings]="txTypeDropdownSettings" [texts]="txTypeDropdownTexts" formControlName="txTypes"></ngx-bootrap-multiselect>
    </form>
  </div>

  <br>

  <div class="clearfix"></div>

  <ng-container *ngIf="{ value: (transactions$ | async) } as transactions">

  <table class="table table-borderless table-striped">
    <thead>
      <th style="width: 20%;" i18n>Transaction</th>
      <th class="d-none d-md-block" style="width: 100%;" i18n>Type</th>
      <th style="width: 20%;" i18n>Amount</th>
      <th style="width: 20%;" i18n>Confirmed</th>
      <th class="d-none d-md-block" i18n>Height</th>
    </thead>
    <tbody *ngIf="transactions.value; else loadingTmpl">
      <tr *ngFor="let tx of transactions.value[0]; trackBy: trackByFn">
        <td><a [routerLink]="['/tx/' | relativeUrl, tx.id]" [state]="{ data: tx }">{{ tx.id | slice : 0 : 8 }}</a></td>
        <td class="d-none d-md-block">
          <app-bisq-icon class="mr-1" [txType]="tx.txType"></app-bisq-icon>
          <span class="d-none d-md-inline"> {{ tx.txTypeDisplayString }}</span>
        </td>
        <td>
          <app-bisq-icon class="d-inline d-md-none mr-1" [txType]="tx.txType"></app-bisq-icon>
          <ng-template [ngIf]="tx.txType === 'PAY_TRADE_FEE' || tx.txType === 'ASSET_LISTING_FEE'" [ngIfElse]="defaultTxType">
            {{ tx.burntFee / 100 | number: '1.2-2' }}<span class="d-none d-md-inline"> BSQ</span>
          </ng-template>
          <ng-template #defaultTxType>
            {{ calculateTotalOutput(tx.outputs) / 100 | number: '1.2-2' }}<span class="d-none d-md-inline"> BSQ</span>
          </ng-template>
        </td>
        <td><app-time-since [time]="tx.time / 1000" [fastRender]="true"></app-time-since></td>
        <td class="d-none d-md-block"><a [routerLink]="['/block/' | relativeUrl, tx.blockHash]" [state]="{ data: { blockHeight: tx.blockHeight } }">{{ tx.blockHeight }}</a></td>
      </tr> 
    </tbody>
  </table>

  <br>

  <ngb-pagination *ngIf="transactions.value" [size]="paginationSize" [collectionSize]="transactions.value[1]" [rotate]="true" [pageSize]="itemsPerPage" [(page)]="page" (pageChange)="pageChange(page)" [maxSize]="paginationMaxSize" [boundaryLinks]="true"></ngb-pagination>

  </ng-container>
</div>

<ng-template #loadingTmpl>
  <tr *ngFor="let i of loadingItems">
    <td *ngFor="let j of [1, 2, 3, 4, 5]"><span class="skeleton-loader"></span></td>
  </tr>
</ng-template>