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.
110 lines
6.7 KiB
HTML
110 lines
6.7 KiB
HTML
<div fxLayout="column" fxLayout.gt-sm="row" fxLayoutAlign="space-between stretch">
|
|
<div fxFlex="35" class="modal-qr-code-container padding-gap-large" [fxLayoutAlign]="invoice?.serialized && invoice?.serialized !== '' ? 'center start' : 'center center'" [ngClass]="{'display-none': screenSize === screenSizeEnum.XS || screenSize === screenSizeEnum.SM}">
|
|
<qr-code *ngIf="invoice?.serialized && invoice?.serialized !== ''" [value]="invoice?.serialized" [size]="qrWidth" [errorCorrectionLevel]="'L'" />
|
|
<span *ngIf="!invoice?.serialized || invoice?.serialized === ''" class="font-size-300">N/A</span>
|
|
</div>
|
|
<div fxFlex="65">
|
|
<mat-card-header fxLayout="row" fxLayoutAlign="space-between center" class="modal-info-header">
|
|
<div fxFlex="95" fxLayoutAlign="start start">
|
|
<fa-icon class="page-title-img mr-1" [icon]="faReceipt" />
|
|
<span class="page-title">{{screenSize === screenSizeEnum.XS ? (newlyAdded ? 'Created' : 'Invoice') : (newlyAdded ? 'Invoice Created' : 'Invoice Information')}}</span>
|
|
</div>
|
|
<button tabindex="3" fxFlex="5" fxLayoutAlign="center center" class="btn-close-x p-0" mat-button (click)="onClose()">X</button>
|
|
</mat-card-header>
|
|
<mat-card-content class="padding-gap-x-large" [ngClass]="{'xs-scroll-y': screenSize === screenSizeEnum.XS}">
|
|
<div fxLayout="column">
|
|
<div fxFlex="30" class="modal-qr-code-container padding-gap" [fxLayoutAlign]="invoice?.serialized && invoice?.serialized !== '' ? 'center start' : 'center center'" [ngClass]="{'display-none': screenSize !== screenSizeEnum.XS && screenSize !== screenSizeEnum.SM}">
|
|
<qr-code *ngIf="invoice?.serialized && invoice?.serialized !== ''" [value]="invoice?.serialized" [size]="qrWidth" [errorCorrectionLevel]="'L'" />
|
|
<span *ngIf="!invoice?.serialized || invoice?.serialized === ''" class="font-size-120">QR Code Not Applicable</span>
|
|
</div>
|
|
<mat-divider *ngIf="screenSize === screenSizeEnum.XS || screenSize === screenSizeEnum.SM" class="my-1" [inset]="true" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="50">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Amount Requested</h4>
|
|
<span class="foreground-secondary-text">{{(invoice?.amount || 0) | number}} Sats<ng-container *ngIf="!invoice?.amount || invoice?.amount === '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">
|
|
<ng-container *ngIf="invoice?.amountSettled">
|
|
<div *ngIf="flgInvoicePaid" class="invoice-animation-container">
|
|
<div class="invoice-animation-div">
|
|
<span class="wiggle">{{invoice?.amountSettled | number}} Sats</span>
|
|
<span *ngFor="let i of [].constructor(35)" class="particles-circle"></span>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="!flgInvoicePaid">{{invoice?.amountSettled | number}} Sats</div>
|
|
</ng-container>
|
|
<ng-container *ngIf="!invoice?.amountSettled">
|
|
<span *ngIf="invoice?.status !== 'unpaid' || !flgVersionCompatible">-</span>
|
|
<mat-spinner *ngIf="invoice?.status === 'unpaid' && flgVersionCompatible" [diameter]="20" />
|
|
</ng-container>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="50">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Date Created</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{(invoice?.timestamp * 1000) | date:'dd/MMM/y HH:mm'}}</span>
|
|
</div>
|
|
<div fxFlex="50">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Status</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{invoice?.status | titlecase}}</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="100">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Description</h4>
|
|
<span class="foreground-secondary-text">{{invoice?.description || '-'}}</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="100">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Invoice</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{invoice?.serialized || 'N/A'}}</span>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="showAdvanced">
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="40">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Date Expiry</h4>
|
|
<span class="foreground-secondary-text">{{(invoice?.expiresAt * 1000) | date:'dd/MMM/y HH:mm'}}</span>
|
|
</div>
|
|
<div fxFlex="60">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Date Settled</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{(invoice?.receivedAt * 1000) | date:'dd/MMM/y HH:mm'}}</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="100">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Payment Hash</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{invoice?.paymentHash}}</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
<div fxLayout="row">
|
|
<div fxFlex="100">
|
|
<h4 fxLayoutAlign="start" class="font-bold-500">Node ID</h4>
|
|
<span class="overflow-wrap foreground-secondary-text">{{invoice?.nodeId}}</span>
|
|
</div>
|
|
</div>
|
|
<mat-divider class="w-100 my-1" />
|
|
</div>
|
|
<div fxLayout="row" fxLayoutAlign="end center" [ngClass]="{'mt-2': !showAdvanced, 'mt-1': showAdvanced}">
|
|
<button class="mr-1" mat-button color="primary" type="reset" tabindex="1" (click)="onShowAdvanced()">
|
|
<p *ngIf="!showAdvanced; else hideAdvancedText">Show Advanced</p>
|
|
<ng-template #hideAdvancedText><p>Hide Advanced</p></ng-template>
|
|
</button>
|
|
<button *ngIf="invoice?.serialized && invoice?.serialized !== ''" autoFocus mat-button color="primary" tabindex="2" type="submit" rtlClipboard [payload]="invoice?.serialized" (copied)="onCopyPayment($event)">Copy Invoice</button>
|
|
<button *ngIf="!invoice?.serialized || invoice?.serialized === ''" autoFocus mat-button color="primary" tabindex="2" type="button" (click)="onClose()">OK</button>
|
|
</div>
|
|
</div>
|
|
</mat-card-content>
|
|
</div>
|
|
</div>
|