You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RTL/src/app/lnd/transactions/lookup-transactions/invoice-lookup/invoice-lookup.component.html

118 lines
7.5 KiB
HTML

<div fxLayout="column" fxLayout.gt-sm="row" fxLayoutAlign.gt-sm="space-between stretch">
<div fxFlex="20" [fxLayoutAlign]="invoice?.payment_request && invoice?.payment_request !== '' ? 'center start' : 'center center'" class="modal-qr-code-container padding-gap-large" [ngClass]="{'display-none': screenSize === screenSizeEnum.XS || screenSize === screenSizeEnum.SM}">
<qr-code *ngIf="invoice?.payment_request && invoice?.payment_request !== ''" [value]="invoice?.payment_request" [size]="qrWidth" [errorCorrectionLevel]="'L'"></qr-code>
<span *ngIf="!invoice?.payment_request || invoice?.payment_request === ''" class="font-size-300">N/A</span>
</div>
<div fxLayout="column" fxFlex="80">
<mat-card-content class="padding-gap-x-large">
<div fxLayout="column">
<div fxFlex="30" [fxLayoutAlign]="invoice?.payment_request && invoice?.payment_request !== '' ? 'center start' : 'center center'" class="modal-qr-code-container padding-gap" [ngClass]="{'display-none': screenSize !== screenSizeEnum.XS && screenSize !== screenSizeEnum.SM}">
<qr-code *ngIf="invoice?.payment_request && invoice?.payment_request !== ''" [value]="invoice?.payment_request" [size]="qrWidth" [errorCorrectionLevel]="'L'"></qr-code>
<span *ngIf="!invoice?.payment_request || invoice?.payment_request === ''" class="font-size-120">QR Code Not Applicable</span>
</div>
<mat-divider *ngIf="screenSize === screenSizeEnum.XS || screenSize === screenSizeEnum.SM" [inset]="true" class="my-1"></mat-divider>
<div [perfectScrollbar]>
<div fxLayout="row">
<div fxFlex="50">
<h4 fxLayoutAlign="start" class="font-bold-500">{{screenSize === screenSizeEnum.XS ? 'Amount' : 'Amount Requested'}}</h4>
<span class="foreground-secondary-text">{{(invoice?.value || 0) | number}} Sats<ng-container *ngIf="!invoice?.value || invoice?.value === '0'"> (zero amount) </ng-container></span>
</div>
<div fxFlex="50">
<h4 fxLayoutAlign="start" class="font-bold-500">Amount Settled</h4>
<span class="foreground-secondary-text">
<div>{{invoice?.amt_paid_sat | number}} Sats</div>
</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="50">
<h4 fxLayoutAlign="start" class="font-bold-500">Date Created</h4>
<span class="foreground-secondary-text">{{invoice?.creation_date * 1000 | date:'dd/MMM/y HH:mm'}}</span>
</div>
<div fxFlex="50">
<h4 fxLayoutAlign="start" class="font-bold-500">Date Settled</h4>
<span class="foreground-secondary-text">{{(+invoice?.settle_date !== 0 ? ((+invoice?.settle_date * 1000) | date:'dd/MMM/y HH:mm') : '-')}}</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="100">
<h4 fxLayoutAlign="start" class="font-bold-500">Memo</h4>
<span class="foreground-secondary-text">{{invoice?.memo}}</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="100">
<h4 fxLayoutAlign="start" class="font-bold-500">Payment Request</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.payment_request || 'N/A'}}</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="100">
<h4 fxLayoutAlign="start" class="font-bold-500">Payment Hash</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.r_hash || ''}}</span>
</div>
</div>
<div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="100">
<h4 fxLayoutAlign="start" class="font-bold-500">Preimage</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.r_preimage || '-'}}</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row">
<div fxFlex="34">
<h4 fxLayoutAlign="start" class="font-bold-500">State</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.state}}</span>
</div>
<div fxFlex="33">
<h4 fxLayoutAlign="start" class="font-bold-500">Expiry</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.expiry}}</span>
</div>
<div fxFlex="33">
<h4 fxLayoutAlign="start" class="font-bold-500">Private Routing Hints</h4>
<span class="overflow-wrap foreground-secondary-text">{{invoice?.private ? 'Yes' : 'No'}}</span>
</div>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="row" *ngIf="invoice?.htlcs && invoice?.htlcs.length > 0">
<mat-expansion-panel (opened)="flgOpened = true" (closed)="onExpansionClosed()" class="flat-expansion-panel" fxLayout="column" fxLayoutAlign="start stretch" fxFlex="100">
<mat-expansion-panel-header>
<mat-panel-title>
<h4 fxLayoutAlign="start center" fxFlex="100" class="font-bold-500">HTLCs</h4>
</mat-panel-title>
</mat-expansion-panel-header>
<div fxLayout="column" fxLayoutAlign="start stretch" fxFlex="100">
<div fxLayout="row" fxLayoutAlign="start start" fxFlex="100" class="mt-minus-1">
<span fxFlex="60" class="foreground-secondary-text font-bold-500">Channel ID</span>
<span fxFlex="40" class="foreground-secondary-text font-bold-500">Amount (Sats)</span>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
<div fxLayout="column" fxLayoutAlign="start stretch" fxFlex="100" *ngFor="let htlc of invoice?.htlcs">
<div fxLayout="row" fxLayoutAlign="start start" fxFlex="100">
<span fxFlex="60" class="foreground-secondary-text">
<span *ngIf="htlc.state === 'SETTLED'" class="dot green" matTooltip="Settled" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="htlc.state === 'ACCEPTED'" class="dot yellow" matTooltip="Accepted" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
<span *ngIf="htlc.state === 'CANCELED'" class="dot red" matTooltip="Canceled" matTooltipPosition="right" [ngClass]="{'mr-0': screenSize === screenSizeEnum.XS}"></span>
{{htlc.chan_id}}
</span>
<span fxFlex="40" class="foreground-secondary-text">{{((+htlc.amt_msat/1000) || 0) | number:getDecimalFormat(htlc)}}</span>
</div>
<mat-divider [inset]="true" class="my-1"></mat-divider>
</div>
</div>
</mat-expansion-panel>
</div>
<mat-divider [inset]="true" class="my-1" *ngIf="invoice?.htlcs && invoice?.htlcs.length > 0"></mat-divider>
</div>
</div>
</div>
</mat-card-content>
</div>
</div>