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/peers-channels/channels/channels-tables/channel-pending-table/channel-pending-table.compo...

360 lines
26 KiB
HTML

<div fxLayout="column" class="mb-2">
<span class="page-title">Total Limbo Balance: {{pendingChannels.total_limbo_balance | number}} Sats</span>
<mat-accordion displayMode="flat" class="mt-1">
<mat-progress-bar *ngIf="apiCallStatus.status === apiCallStatusEnum.INITIATED" mode="indeterminate"></mat-progress-bar>
<mat-expansion-panel fxLayout="column" class="flat-expansion-panel">
<mat-expansion-panel-header>
<mat-panel-title>Pending Open ({{pendingOpenChannelsLength}})</mat-panel-title>
</mat-expansion-panel-header>
<div [perfectScrollbar] fxLayout="column" fxFlex="100" class="table-container">
<mat-progress-bar *ngIf="apiCallStatus.status === apiCallStatusEnum.INITIATED" mode="indeterminate"></mat-progress-bar>
<table mat-table #table fxFlex="100" [dataSource]="pendingOpenChannels" matSort [ngClass]="{'error-border bordered-box': errorMessage !== '','bordered-box': true}">
<ng-container matColumnDef="remote_alias">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Peer</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_alias}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_node_pub">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Pubkey</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_node_pub}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="channel_point">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Channel Point</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.channel_point}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="initiator">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Initiator</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.initiator | camelcaseWithReplace:'initiator_'}}</td>
</ng-container>
<ng-container matColumnDef="commitment_type">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Commitment Type</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.commitment_type | camelcaseWithReplace:'commitment_type':'_'}}</td>
</ng-container>
<ng-container matColumnDef="confirmation_height">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Confirmation Height</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.confirmation_height | number}}</span></td>
</ng-container>
<ng-container matColumnDef="commit_fee">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Commit Fee (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.commit_fee | number}}</span></td>
</ng-container>
<ng-container matColumnDef="commit_weight">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Commit Weight</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.commit_weight | number}}</span></td>
</ng-container>
<ng-container matColumnDef="fee_per_kw">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Fee/KW</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.fee_per_kw | number}}</span></td>
</ng-container>
<ng-container matColumnDef="capacity">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Capacity (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.capacity | number}}</span></td>
</ng-container>
<ng-container matColumnDef="local_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Local Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.local_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="remote_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Remote Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.remote_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>
<div class="bordered-box table-actions-select" fxLayoutAlign="center center">Actions</div>
</th>
<td mat-cell fxLayoutAlign="end center" *matCellDef="let channel">
<div class="bordered-box table-actions-select" fxLayoutAlign="center center">
<mat-select placeholder="Actions" tabindex="1" class="mr-0">
<mat-select-trigger></mat-select-trigger>
<mat-option (click)="onOpenClick(channel)">View Info</mat-option>
<mat-option (click)="onBumpFee(channel)">Bump Fee</mat-option>
</mat-select>
</div>
</td>
</ng-container>
<ng-container matColumnDef="no_pending_open">
<td mat-footer-cell *matFooterCellDef colspan="4">
<p *ngIf="(!pendingOpenChannels || !pendingOpenChannels?.data || pendingOpenChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.COMPLETED">No pending channel.</p>
<p *ngIf="(!pendingOpenChannels || !pendingOpenChannels?.data || pendingOpenChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.INITIATED">Getting pending channels...</p>
<p *ngIf="(!pendingOpenChannels || !pendingOpenChannels?.data || pendingOpenChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.ERROR">{{errorMessage}}</p>
</td>
</ng-container>
<tr mat-footer-row fxLayoutAlign="start center" *matFooterRowDef="['no_pending_open']" [ngClass]="{'display-none': pendingOpenChannels && pendingOpenChannels?.data && pendingOpenChannels?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedOpenColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedOpenColumns;"></tr>
</table>
</div>
</mat-expansion-panel>
<mat-progress-bar *ngIf="apiCallStatus.status === apiCallStatusEnum.INITIATED" mode="indeterminate"></mat-progress-bar>
<mat-expansion-panel fxLayout="column" class="flat-expansion-panel">
<mat-expansion-panel-header>
<mat-panel-title>Pending Force Closing ({{pendingForceClosingChannelsLength}})</mat-panel-title>
</mat-expansion-panel-header>
<div [perfectScrollbar] fxLayout="column" fxFlex="100" class="table-container">
<table mat-table #table [dataSource]="pendingForceClosingChannels" matSort [ngClass]="{'error-border bordered-box': errorMessage !== '','bordered-box': true}">
<ng-container matColumnDef="closing_txid">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Closing Tx ID</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.closing_txid}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_alias">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Peer</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_alias}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_node_pub">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Pubkey</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_node_pub}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="channel_point">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Channel Point</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.channel_point}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="initiator">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Initiator</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.initiator | camelcaseWithReplace:'initiator_'}}</td>
</ng-container>
<ng-container matColumnDef="commitment_type">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Commitment Type</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.commitment_type | camelcaseWithReplace:'commitment_type':'_'}}</td>
</ng-container>
<ng-container matColumnDef="limbo_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Limbo Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.limbo_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="maturity_height">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Maturity Height</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.maturity_height | number}}</span></td>
</ng-container>
<ng-container matColumnDef="blocks_til_maturity">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Blocks till Maturity</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.blocks_til_maturity | number}}</span></td>
</ng-container>
<ng-container matColumnDef="recovered_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Recovered Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.recovered_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="capacity">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Capacity (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.capacity | number}}</span></td>
</ng-container>
<ng-container matColumnDef="local_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Local Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.local_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="remote_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Remote Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.remote_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>
<div class="bordered-box table-actions-select" fxLayoutAlign="center center">Actions</div>
</th>
<td mat-cell fxLayoutAlign="end center" *matCellDef="let channel">
<button mat-stroked-button color="primary" type="button" tabindex="2" (click)="onForceClosingClick(channel)" class="table-actions-button">View Info</button>
</td>
</ng-container>
<ng-container matColumnDef="no_pending_force_closing">
<td mat-footer-cell *matFooterCellDef colspan="4">
<p *ngIf="(!pendingForceClosingChannels || !pendingForceClosingChannels?.data || pendingForceClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.COMPLETED">No pending channel.</p>
<p *ngIf="(!pendingForceClosingChannels || !pendingForceClosingChannels?.data || pendingForceClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.INITIATED">Getting pending channels...</p>
<p *ngIf="(!pendingForceClosingChannels || !pendingForceClosingChannels?.data || pendingForceClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.ERROR">{{errorMessage}}</p>
</td>
</ng-container>
<tr mat-footer-row fxLayoutAlign="start center" *matFooterRowDef="['no_pending_force_closing']" [ngClass]="{'display-none': pendingForceClosingChannels && pendingForceClosingChannels?.data && pendingForceClosingChannels?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedForceClosingColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedForceClosingColumns;"></tr>
</table>
</div>
</mat-expansion-panel>
<mat-progress-bar *ngIf="apiCallStatus.status === apiCallStatusEnum.INITIATED" mode="indeterminate"></mat-progress-bar>
<mat-expansion-panel fxLayout="column" class="flat-expansion-panel">
<mat-expansion-panel-header>
<mat-panel-title>Pending Closing ({{pendingClosingChannelsLength}})</mat-panel-title>
</mat-expansion-panel-header>
<div [perfectScrollbar] fxLayout="column" fxFlex="100" class="table-container">
<table mat-table #table [dataSource]="pendingClosingChannels" matSort [ngClass]="{'error-border bordered-box': errorMessage !== '','bordered-box': true}">
<ng-container matColumnDef="closing_txid">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Closing Tx ID</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.closing_txid}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_alias">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Peer</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_alias}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_node_pub">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Pubkey</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_node_pub}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="channel_point">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Channel Point</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.channel_point}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="initiator">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Initiator</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.initiator | camelcaseWithReplace:'initiator_'}}</td>
</ng-container>
<ng-container matColumnDef="commitment_type">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Commitment Type</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.commitment_type | camelcaseWithReplace:'commitment_type':'_'}}</td>
</ng-container>
<ng-container matColumnDef="capacity">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Capacity (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.capacity | number}}</span></td>
</ng-container>
<ng-container matColumnDef="local_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Local Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.local_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="remote_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Remote Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.remote_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef>
<div class="bordered-box table-actions-select" fxLayoutAlign="center center">Actions</div>
</th>
<td mat-cell fxLayoutAlign="end center" *matCellDef="let channel">
<button mat-stroked-button color="primary" type="button" tabindex="3" (click)="onClosingClick(channel)" class="table-actions-button">View Info</button>
</td>
</ng-container>
<ng-container matColumnDef="no_pending_closing">
<td mat-footer-cell *matFooterCellDef colspan="4">
<p *ngIf="(!pendingClosingChannels || !pendingClosingChannels?.data || pendingClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.COMPLETED">No pending channel.</p>
<p *ngIf="(!pendingClosingChannels || !pendingClosingChannels?.data || pendingClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.INITIATED">Getting pending channels...</p>
<p *ngIf="(!pendingClosingChannels || !pendingClosingChannels?.data || pendingClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.ERROR">{{errorMessage}}</p>
</td>
</ng-container>
<tr mat-footer-row fxLayoutAlign="start center" *matFooterRowDef="['no_pending_closing']" [ngClass]="{'display-none': pendingClosingChannels && pendingClosingChannels?.data && pendingClosingChannels?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedClosingColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedClosingColumns;"></tr>
</table>
</div>
</mat-expansion-panel>
<mat-progress-bar *ngIf="apiCallStatus.status === apiCallStatusEnum.INITIATED" mode="indeterminate"></mat-progress-bar>
<mat-expansion-panel fxLayout="column" class="flat-expansion-panel">
<mat-expansion-panel-header>
<mat-panel-title>Waiting Close ({{pendingWaitClosingChannelsLength}})</mat-panel-title>
</mat-expansion-panel-header>
<div [perfectScrollbar] fxLayout="column" fxFlex="100" class="table-container">
<table mat-table #table [dataSource]="pendingWaitClosingChannels" matSort [ngClass]="{'error-border bordered-box': errorMessage !== '','bordered-box': true}">
<ng-container matColumnDef="closing_txid">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Closing Tx ID</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.closing_txid}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_alias">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Peer</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_alias}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="remote_node_pub">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Pubkey</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.remote_node_pub}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="channel_point">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Channel Point</th>
<td mat-cell *matCellDef="let channel">
<div class="ellipsis-parent" [ngStyle]="{'width': (screenSize === screenSizeEnum.XS) ? '10rem' : colWidth}">
<span class="ellipsis-child">{{channel.channel.channel_point}}</span>
</div>
</td>
</ng-container>
<ng-container matColumnDef="initiator">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Initiator</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.initiator | camelcaseWithReplace:'initiator_'}}</td>
</ng-container>
<ng-container matColumnDef="commitment_type">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Commitment Type</th>
<td mat-cell *matCellDef="let channel">{{channel.channel.commitment_type | camelcaseWithReplace:'commitment_type':'_'}}</td>
</ng-container>
<ng-container matColumnDef="limbo_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Limbo Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.limbo_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="capacity">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Capacity (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.capacity | number}}</span></td>
</ng-container>
<ng-container matColumnDef="local_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Local Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.local_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="remote_balance">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Remote Balance (Sats)</th>
<td mat-cell *matCellDef="let channel"><span fxLayoutAlign="end center">{{channel.channel.remote_balance | number}}</span></td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell fxLayoutAlign="end center" *matHeaderCellDef>
<div class="bordered-box table-actions-select" fxLayoutAlign="center center">Actions</div>
</th>
<td mat-cell fxLayoutAlign="end center" *matCellDef="let channel">
<button mat-stroked-button color="primary" type="button" tabindex="4" (click)="onWaitClosingClick(channel)" class="table-actions-button">View Info</button>
</td>
</ng-container>
<ng-container matColumnDef="no_pending_wait_closing">
<td mat-footer-cell *matFooterCellDef colspan="4">
<p *ngIf="(!pendingWaitClosingChannels || !pendingWaitClosingChannels?.data || pendingWaitClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.COMPLETED">No pending channel.</p>
<p *ngIf="(!pendingWaitClosingChannels || !pendingWaitClosingChannels?.data || pendingWaitClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.INITIATED">Getting pending channels...</p>
<p *ngIf="(!pendingWaitClosingChannels || !pendingWaitClosingChannels?.data || pendingWaitClosingChannels?.data?.length<1) && apiCallStatus.status === apiCallStatusEnum.ERROR">{{errorMessage}}</p>
</td>
</ng-container>
<tr mat-footer-row fxLayoutAlign="start center" *matFooterRowDef="['no_pending_wait_closing']" [ngClass]="{'py-0': true, 'display-none': pendingWaitClosingChannels && pendingWaitClosingChannels?.data && pendingWaitClosingChannels?.data?.length>0}"></tr>
<tr mat-header-row *matHeaderRowDef="displayedWaitClosingColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedWaitClosingColumns;"></tr>
</table>
</div>
</mat-expansion-panel>
</mat-accordion>
</div>