| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | <div class="container-xl" *ngIf="(node$ | async) as node"> | 
					
						
							| 
									
										
										
										
											2022-08-22 09:17:23 +02:00
										 |  |  |   <h5 class="mb-0" style="color: #ffffff66" i18n="lightning.node">Lightning node</h5> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |   <div class="title-container mb-2" *ngIf="!error"> | 
					
						
							| 
									
										
										
										
											2022-05-15 19:22:14 +04:00
										 |  |  |     <h1 class="mb-0">{{ node.alias }}</h1> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  |     <span class="tx-link"> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |       <a [routerLink]="['/lightning/node' | relativeUrl, node.public_key]"> | 
					
						
							|  |  |  |         {{ node.public_key | shortenString : publicKeySize }} | 
					
						
							|  |  |  |       </a> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  |       <app-clipboard [text]="node.public_key"></app-clipboard> | 
					
						
							|  |  |  |     </span> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <div class="clearfix"></div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |   <div *ngIf="error" class="d-flex flex-column justify-content-around align-items-center mt-5 w-100" style="min-height: 100px"> | 
					
						
							|  |  |  |     <span i18n="lightning.node-not-found">No node found for public key "{{ node.public_key | shortenString : 12}}"</span> | 
					
						
							|  |  |  |     <a [routerLink]="['/lightning' | relativeUrl]" i18n="lightning.back-to-lightning-dashboard">Back to the lightning dashboard</a> | 
					
						
							|  |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |   <div class="box" *ngIf="!error"> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |     <div class="row"> | 
					
						
							|  |  |  |       <div class="col-md"> | 
					
						
							|  |  |  |         <table class="table table-borderless table-striped"> | 
					
						
							|  |  |  |           <tbody> | 
					
						
							|  |  |  |             <tr> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |               <td i18n="lightning.active-capacity">Active capacity</td> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               <td> | 
					
						
							|  |  |  |                 <app-sats [satoshis]="node.capacity"></app-sats> | 
					
						
							|  |  |  |                 <app-fiat [value]="node.capacity" digitsInfo="1.0-0"></app-fiat> | 
					
						
							|  |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |             <tr> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |               <td i18n="lightning.active-channels">Active channels</td> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |                 {{ node.active_channel_count }} | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |             <tr> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |               <td i18n="lightning.active-channels-avg">Average channel size</td> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |                 <app-sats [satoshis]="node.avgCapacity"></app-sats> | 
					
						
							|  |  |  |                 <app-fiat [value]="node.avgCapacity" digitsInfo="1.0-0"></app-fiat> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							| 
									
										
										
										
											2022-08-18 17:14:09 +02:00
										 |  |  |             <tr *ngIf="node.geolocation"> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               <td i18n="location">Location</td> | 
					
						
							| 
									
										
										
										
											2022-07-26 12:26:44 +02:00
										 |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-08-18 17:14:09 +02:00
										 |  |  |                 <app-geolocation [data]="node.geolocation" [type]="'node'"></app-geolocation> | 
					
						
							| 
									
										
										
										
											2022-07-26 12:26:44 +02:00
										 |  |  |               </td> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |             </tr> | 
					
						
							|  |  |  |           </tbody> | 
					
						
							|  |  |  |         </table> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |       <div class="w-100 d-block d-md-none"></div> | 
					
						
							|  |  |  |       <div class="col-md"> | 
					
						
							|  |  |  |         <table class="table table-borderless table-striped"> | 
					
						
							|  |  |  |           <tbody> | 
					
						
							|  |  |  |             <tr> | 
					
						
							|  |  |  |               <td i18n="address.total-received">First seen</td> | 
					
						
							|  |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |                 <app-timestamp [unixTime]="node.first_seen"></app-timestamp> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |             <tr> | 
					
						
							|  |  |  |               <td i18n="address.total-sent">Last update</td> | 
					
						
							|  |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-08-04 11:30:32 +02:00
										 |  |  |                 <app-timestamp [unixTime]="node.updated_at"></app-timestamp> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |             <tr> | 
					
						
							|  |  |  |               <td i18n="address.balance">Color</td> | 
					
						
							|  |  |  |               <td> | 
					
						
							|  |  |  |                 <div [ngStyle]="{'color': node.color}">{{ node.color }}</div> | 
					
						
							|  |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |             <tr *ngIf="node.country"> | 
					
						
							|  |  |  |               <td i18n="isp">ISP</td> | 
					
						
							|  |  |  |               <td> | 
					
						
							| 
									
										
										
										
											2022-07-26 12:26:44 +02:00
										 |  |  |                 <a [routerLink]="['/lightning/nodes/isp' | relativeUrl, node.as_number]"> | 
					
						
							|  |  |  |                   {{ node.as_organization }} [ASN {{node.as_number}}] | 
					
						
							|  |  |  |                 </a>                 | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |               </td> | 
					
						
							|  |  |  |             </tr> | 
					
						
							|  |  |  |           </tbody> | 
					
						
							|  |  |  |         </table> | 
					
						
							|  |  |  |       </div> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2022-05-06 00:20:14 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2022-05-06 00:20:14 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-05 10:11:29 +02:00
										 |  |  |   <div class="input-group mt-3" *ngIf="!error && node.socketsObject.length"> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |     <div class="d-inline-block" ngbDropdown #myDrop="ngbDropdown" | 
					
						
							|  |  |  |       *ngIf="node.socketsObject.length > 1; else noDropdown"> | 
					
						
							|  |  |  |       <button class="btn btn-secondary dropdown-toggle" type="button" aria-expanded="false" ngbDropdownAnchor | 
					
						
							|  |  |  |         (focus)="myDrop.open()"> | 
					
						
							|  |  |  |         <div class="dropdownLabel">{{ node.socketsObject[selectedSocketIndex].label }}</div> | 
					
						
							| 
									
										
										
										
											2022-05-06 00:20:14 +04:00
										 |  |  |       </button> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |       <div ngbDropdownMenu aria-labelledby="dropdownManual"> | 
					
						
							|  |  |  |         <button *ngFor="let socket of node.socketsObject; let i = index;" ngbDropdownItem (click)="changeSocket(i)">{{ | 
					
						
							|  |  |  |           socket.label }}</button> | 
					
						
							|  |  |  |       </div> | 
					
						
							| 
									
										
										
										
											2022-05-06 00:20:14 +04:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |     <ng-template #noDropdown> | 
					
						
							|  |  |  |       <span class="input-group-text" id="basic-addon3">{{ node.socketsObject[selectedSocketIndex].label }}</span> | 
					
						
							|  |  |  |     </ng-template> | 
					
						
							|  |  |  |     <input type="text" class="form-control" aria-label="Text input with dropdown button" | 
					
						
							|  |  |  |       [value]="node.socketsObject[selectedSocketIndex].socket"> | 
					
						
							|  |  |  |     <button class="btn btn-secondary ml-1" type="button" id="inputGroupFileAddon04" (mouseover)="qrCodeVisible = true" | 
					
						
							|  |  |  |       (mouseout)="qrCodeVisible = false"> | 
					
						
							|  |  |  |       <fa-icon [icon]="['fas', 'qrcode']" [fixedWidth]="true"></fa-icon> | 
					
						
							|  |  |  |       <div class="qr-wrapper" [hidden]="!qrCodeVisible"> | 
					
						
							|  |  |  |         <app-qrcode [size]="200" [data]="node.socketsObject[selectedSocketIndex].socket"></app-qrcode> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </button> | 
					
						
							|  |  |  |     <button class="btn btn-secondary ml-1" type="button" id="inputGroupFileAddon04"> | 
					
						
							|  |  |  |       <app-clipboard [text]="node.socketsObject[selectedSocketIndex].socket"></app-clipboard> | 
					
						
							|  |  |  |     </button> | 
					
						
							|  |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2022-07-02 16:46:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-23 11:26:00 +02:00
										 |  |  |   <div *ngIf="!error"> | 
					
						
							|  |  |  |     <app-nodes-channels-map [style]="'nodepage'" [publicKey]="node.public_key"></app-nodes-channels-map> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-23 11:26:00 +02:00
										 |  |  |     <h2 i18n="lightning.node-history">Node history</h2> | 
					
						
							|  |  |  |     <app-node-statistics-chart [publicKey]="node.public_key"></app-node-statistics-chart> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <h2 i18n="lightning.active-channels-map">Active channels map</h2> | 
					
						
							|  |  |  |     <app-node-channels style="display:block;margin-bottom: 40px" [publicKey]="node.public_key"></app-node-channels> | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-23 11:26:00 +02:00
										 |  |  |     <div class="d-flex justify-content-between"> | 
					
						
							|  |  |  |       <h2>Channels ({{ channelsListStatus === 'open' ? node.opened_channel_count : node.closed_channel_count }})</h2> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <app-channels-list [publicKey]="node.public_key" | 
					
						
							|  |  |  |       (channelsStatusChangedEvent)="onChannelsListStatusChanged($event)"></app-channels-list> | 
					
						
							|  |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2022-07-24 12:34:50 +02:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2022-05-01 03:01:27 +04:00
										 |  |  | </div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-05 10:11:29 +02:00
										 |  |  | <br> |