| 
									
										
										
										
											2020-08-02 16:00:08 +07:00
										 |  |  | <ng-container *ngIf="{ val: network$ | async } as network"> | 
					
						
							| 
									
										
										
										
											2023-08-21 22:08:25 +02:00
										 |  |  | <header *ngIf="headerVisible" class="sticky-header"> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-10 12:25:30 +09:00
										 |  |  |   <nav class="navbar navbar-expand-md navbar-dark"> | 
					
						
							| 
									
										
										
										
											2023-08-18 17:56:07 +02:00
										 |  |  |   <!-- Hamburger --> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:04:17 +02:00
										 |  |  |   <ng-container *ngIf="servicesEnabled"> | 
					
						
							| 
									
										
										
										
											2023-08-23 11:50:47 +02:00
										 |  |  |     <div *ngIf="user" class="profile_image_container" [class]="{'anon': !user.imageMd5}" (click)="hamburgerClick($event)"> | 
					
						
							| 
									
										
										
										
											2023-11-18 15:20:53 +09:00
										 |  |  |       <img *ngIf="user.imageMd5" [src]="'/api/v1/services/account/images/' + user.username + '?md5=' + user.imageMd5" class="profile_image"> | 
					
						
							| 
									
										
										
										
											2023-08-21 23:18:55 +02:00
										 |  |  |       <app-svg-images style="color: lightgrey; fill: lightgray" *ngIf="!user.imageMd5" name="anon"></app-svg-images> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:04:17 +02:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2023-08-23 14:39:58 +02:00
										 |  |  |     <div *ngIf="false && user === null" class="profile_image_container" (click)="hamburgerClick($event)"> | 
					
						
							| 
									
										
										
										
											2023-08-21 17:04:17 +02:00
										 |  |  |       <app-svg-images name="hamburger" height="40"></app-svg-images> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |     <!-- Empty placeholder --> | 
					
						
							|  |  |  |     <div *ngIf="user === undefined" class="profile_image_container"></div> | 
					
						
							|  |  |  |   </ng-container> | 
					
						
							| 
									
										
										
										
											2023-08-18 17:56:07 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-26 11:36:20 +09:00
										 |  |  |   <!-- Large screen --> | 
					
						
							|  |  |  |   <a class="navbar-brand d-none d-md-flex" [ngClass]="{'dual-logos': subdomain}" [routerLink]="['/' | relativeUrl]" (click)="brandClick($event)"> | 
					
						
							|  |  |  |     <ng-container *ngIf="{ val: connectionState$ | async } as connectionState"> | 
					
						
							| 
									
										
										
										
											2024-04-27 20:39:53 +00:00
										 |  |  |       @if (enterpriseInfo?.header_img) { | 
					
						
							| 
									
										
										
										
											2024-05-07 22:42:06 +00:00
										 |  |  |         <img [src]="enterpriseInfo?.header_img" alt="enterpriseInfo.title" height="48px" class="mr-3"> | 
					
						
							| 
									
										
										
										
											2024-04-27 20:39:53 +00:00
										 |  |  |       } @else { | 
					
						
							| 
									
										
										
										
											2024-05-07 22:42:06 +00:00
										 |  |  |         <ng-template [ngIf]="subdomain && enterpriseInfo"> | 
					
						
							|  |  |  |           <div class="subdomain_container"> | 
					
						
							|  |  |  |             <img [src]="enterpriseInfo.img || '/api/v1/services/enterprise/images/' + subdomain + '/logo?imageMd5=' + enterpriseInfo.imageMd5" class="subdomain_logo" [class]="{'rounded': enterpriseInfo.rounded_corner}"> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |           <div class="vertical-line"></div> | 
					
						
							|  |  |  |         </ng-template> | 
					
						
							| 
									
										
										
										
											2024-04-27 20:39:53 +00:00
										 |  |  |         <app-svg-images *ngIf="!officialMempoolSpace" name="mempoolSpace" viewBox="0 0 500 126" class="mempool-logo" [ngStyle]="{'opacity': connectionState.val === 2 ? 1 : 0.5 }"></app-svg-images> | 
					
						
							|  |  |  |         <app-svg-images *ngIf="officialMempoolSpace" name="officialMempoolSpace" viewBox="0 0 500 126"></app-svg-images> | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2024-03-26 11:36:20 +09:00
										 |  |  |       <div class="connection-badge"> | 
					
						
							|  |  |  |         <div class="badge badge-warning" *ngIf="connectionState.val === 0" i18n="master-page.offline">Offline</div> | 
					
						
							|  |  |  |         <div class="badge badge-warning" *ngIf="connectionState.val === 1" i18n="master-page.reconnecting">Reconnecting...</div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </ng-container> | 
					
						
							|  |  |  |   </a> | 
					
						
							|  |  |  |   <!-- Mobile --> | 
					
						
							|  |  |  |   <a class="navbar-brand d-flex d-md-none justify-content-center" [ngClass]="{'dual-logos': subdomain, 'mr-0': subdomain}" [routerLink]="['/' | relativeUrl]" (click)="brandClick($event)"> | 
					
						
							| 
									
										
										
										
											2024-05-07 22:42:06 +00:00
										 |  |  |     @if (enterpriseInfo?.header_img) { | 
					
						
							|  |  |  |       <img [src]="enterpriseInfo?.header_img" alt="enterpriseInfo.title" height="42px"> | 
					
						
							|  |  |  |     } @else { | 
					
						
							|  |  |  |       <ng-template [ngIf]="subdomain && enterpriseInfo"> | 
					
						
							|  |  |  |         <div class="subdomain_container"> | 
					
						
							|  |  |  |           <img [src]="enterpriseInfo.img || '/api/v1/services/enterprise/images/' + subdomain + '/logo?imageMd5=' + enterpriseInfo.imageMd5" class="subdomain_logo" [class]="{'rounded': enterpriseInfo.rounded_corner}"> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |         <div class="vertical-line"></div> | 
					
						
							|  |  |  |       </ng-template> | 
					
						
							|  |  |  |       <ng-container *ngIf="{ val: connectionState$ | async } as connectionState"> | 
					
						
							|  |  |  |         @if (enterpriseInfo?.header_img) { | 
					
						
							|  |  |  |           <img [src]="enterpriseInfo?.header_img" alt="enterpriseInfo.title" height="36px"> | 
					
						
							|  |  |  |         } @else { | 
					
						
							|  |  |  |           <app-svg-images *ngIf="!officialMempoolSpace" name="mempoolSpace" viewBox="0 0 500 126" class="mempool-logo" [ngStyle]="{'opacity': connectionState.val === 2 ? 1 : 0.5 }"></app-svg-images> | 
					
						
							|  |  |  |           <app-svg-images *ngIf="officialMempoolSpace" name="officialMempoolSpace" viewBox="0 0 500 126"></app-svg-images> | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |           <div class="connection-badge"> | 
					
						
							|  |  |  |           <div class="badge badge-warning" *ngIf="connectionState.val === 0" i18n="master-page.offline">Offline</div> | 
					
						
							|  |  |  |           <div class="badge badge-warning" *ngIf="connectionState.val === 1" i18n="master-page.reconnecting">Reconnecting...</div> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </ng-container> | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2020-03-09 17:53:54 +07:00
										 |  |  |   </a> | 
					
						
							| 
									
										
										
										
											2020-05-09 20:37:50 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-06 15:40:32 +00:00
										 |  |  |   <div (window:resize)="onResize()" ngbDropdown class="dropdown-container" *ngIf="env.TESTNET_ENABLED || env.TESTNET4_ENABLED || env.SIGNET_ENABLED || env.LIQUID_ENABLED || env.LIQUID_TESTNET_ENABLED"> | 
					
						
							| 
									
										
										
										
											2023-07-15 16:26:25 +09:00
										 |  |  |     <button ngbDropdownToggle type="button" class="btn btn-secondary dropdown-toggle-split d-flex justify-content-center align-items-center" aria-haspopup="true"> | 
					
						
							| 
									
										
										
										
											2023-07-15 16:50:18 +09:00
										 |  |  |       <app-svg-images class="d-flex justify-content-center align-items-center current-network-svg" [name]="network.val === '' ? 'bitcoin' : network.val" width="20" height="20" viewBox="0 0 65 65"></app-svg-images> | 
					
						
							| 
									
										
										
										
											2020-05-09 20:37:50 +07:00
										 |  |  |     </button> | 
					
						
							| 
									
										
										
										
											2021-08-18 21:48:12 +05:30
										 |  |  |     <div ngbDropdownMenu [ngClass]="{'dropdown-menu-right' : isMobile}"> | 
					
						
							| 
									
										
										
										
											2022-10-12 22:13:29 +00:00
										 |  |  |       <a ngbDropdownItem class="mainnet" [routerLink]="networkPaths['mainnet'] || '/'"><app-svg-images name="bitcoin" width="22" height="22" viewBox="0 0 65 65" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Mainnet</a> | 
					
						
							|  |  |  |       <a ngbDropdownItem *ngIf="env.SIGNET_ENABLED" class="signet" [class.active]="network.val === 'signet'" [routerLink]="networkPaths['signet'] || '/signet'"><app-svg-images name="signet" width="22" height="22" viewBox="0 0 65 65" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Signet</a> | 
					
						
							| 
									
										
										
										
											2024-05-06 15:40:32 +00:00
										 |  |  |       <a ngbDropdownItem *ngIf="env.TESTNET_ENABLED" class="testnet" [class.active]="network.val === 'testnet'" [routerLink]="networkPaths['testnet'] || '/testnet'"><app-svg-images name="testnet" width="22" height="22" viewBox="0 0 65 65" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Testnet3</a> | 
					
						
							| 
									
										
										
										
											2024-05-06 17:31:16 +00:00
										 |  |  |       <a ngbDropdownItem *ngIf="env.TESTNET4_ENABLED" class="testnet" [class.active]="network.val === 'testnet4'" [routerLink]="networkPaths['testnet4'] || '/testnet4'"><app-svg-images name="testnet4" width="22" height="22" viewBox="0 0 65 65" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Testnet4 <span class="badge badge-pill badge-warning beta-network" i18n="beta">beta</span></a> | 
					
						
							| 
									
										
										
										
											2024-03-17 18:22:38 +09:00
										 |  |  |       <h6 *ngIf="env.LIQUID_ENABLED" class="dropdown-header" i18n="master-page.layer2-networks-header">Layer 2 Networks</h6> | 
					
						
							| 
									
										
										
										
											2022-10-12 22:13:29 +00:00
										 |  |  |       <a [href]="env.LIQUID_WEBSITE_URL + urlLanguage + (networkPaths['liquid'] || '')" ngbDropdownItem *ngIf="env.LIQUID_ENABLED" class="liquid" [class.active]="network.val === 'liquid'"><app-svg-images name="liquid" width="22" height="22" viewBox="0 0 125 125" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Liquid</a> | 
					
						
							|  |  |  |       <a [href]="env.LIQUID_WEBSITE_URL + urlLanguage  + (networkPaths['liquidtestnet'] || '/testnet')" ngbDropdownItem *ngIf="env.LIQUID_TESTNET_ENABLED" class="liquidtestnet" [class.active]="network.val === 'liquid'"><app-svg-images name="liquidtestnet" width="22" height="22" viewBox="0 0 125 125" style="width: 25px; height: 25px;" class="mainnet mr-1"></app-svg-images> Liquid Testnet</a> | 
					
						
							| 
									
										
										
										
											2020-06-01 15:08:27 +07:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2020-05-09 20:37:50 +07:00
										 |  |  |   </div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-22 06:13:27 +07:00
										 |  |  |   <div class="navbar-collapse" id="navbarCollapse"> | 
					
						
							| 
									
										
										
										
											2021-04-19 10:01:04 -03:00
										 |  |  |     <ul class="navbar-nav {{ network.val }}"> | 
					
						
							| 
									
										
										
										
											2023-12-09 22:33:02 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 14:21:46 -08:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-home"> | 
					
						
							| 
									
										
										
										
											2021-02-27 04:19:56 +07:00
										 |  |  |         <a class="nav-link" [routerLink]="['/' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'tachometer-alt']" [fixedWidth]="true" i18n-title="master-page.dashboard" title="Dashboard"></fa-icon></a> | 
					
						
							|  |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2024-02-29 11:49:12 +07:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-home" *ngIf="network.val === '' && stateService.env.ACCELERATOR"> | 
					
						
							| 
									
										
										
										
											2024-01-27 18:03:53 +00:00
										 |  |  |         <a class="nav-link" [routerLink]="['/acceleration' | relativeUrl]" (click)="collapse()"> | 
					
						
							|  |  |  |           <fa-icon [icon]="['fas', 'rocket']" [fixedWidth]="true" i18n-title="master-page.accelerator-dashboard" title="Accelerator Dashboard"></fa-icon> | 
					
						
							|  |  |  |           <span class="badge badge-pill badge-warning beta" i18n="beta">beta</span> | 
					
						
							|  |  |  |         </a> | 
					
						
							| 
									
										
										
										
											2024-01-15 23:39:51 +00:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2024-04-02 17:07:18 +09:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-pools" *ngIf="stateService.env.MINING_DASHBOARD"> | 
					
						
							| 
									
										
										
										
											2022-05-10 17:05:07 +04:00
										 |  |  |         <a class="nav-link" [routerLink]="['/mining' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'hammer']" [fixedWidth]="true" i18n-title="mining.mining-dashboard" title="Mining Dashboard"></fa-icon></a> | 
					
						
							| 
									
										
										
										
											2022-01-24 18:22:15 +09:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2024-05-12 16:44:07 +00:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" id="btn-lightning" *ngIf="stateService.networkSupportsLightning()"> | 
					
						
							| 
									
										
										
										
											2022-08-22 10:56:27 +02:00
										 |  |  |         <a class="nav-link" [routerLink]="['/lightning' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'bolt']" [fixedWidth]="true" i18n-title="master-page.lightning" title="Lightning Explorer"></fa-icon> | 
					
						
							|  |  |  |         </a> | 
					
						
							| 
									
										
										
										
											2022-04-27 02:52:23 +04:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2022-02-15 16:02:30 +09:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" id="btn-blocks" *ngIf="!stateService.env.MINING_DASHBOARD"> | 
					
						
							|  |  |  |         <a class="nav-link" [routerLink]="['/blocks' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cubes']" [fixedWidth]="true" i18n-title="master-page.blocks" title="Blocks"></fa-icon></a> | 
					
						
							|  |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2022-01-24 18:22:15 +09:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" id="btn-graphs"> | 
					
						
							| 
									
										
										
										
											2022-05-20 18:22:04 +04:00
										 |  |  |         <a class="nav-link" [routerLink]="['/graphs' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'chart-area']" [fixedWidth]="true" i18n-title="master-page.graphs" title="Graphs"></fa-icon></a> | 
					
						
							| 
									
										
										
										
											2022-01-24 18:22:15 +09:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2024-05-16 07:36:13 +00:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" id="btn-faucet" *ngIf="stateService.env.OFFICIAL_MEMPOOL_SPACE && stateService.network === 'testnet4'"> | 
					
						
							|  |  |  |         <a class="nav-link" [routerLink]="['/faucet' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'faucet-drip']" [fixedWidth]="true" i18n-title="master-page.faucet" title="Faucet"></fa-icon></a> | 
					
						
							|  |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2022-01-22 14:21:46 -08:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" id="btn-docs"> | 
					
						
							| 
									
										
										
										
											2021-12-09 17:49:36 +04:00
										 |  |  |         <a class="nav-link" [routerLink]="['/docs' | relativeUrl ]" (click)="collapse()"><fa-icon [icon]="['fas', 'book']" [fixedWidth]="true" i18n-title="documentation.title" title="Documentation"></fa-icon></a> | 
					
						
							| 
									
										
										
										
											2020-10-07 23:24:01 +07:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2022-01-22 14:21:46 -08:00
										 |  |  |       <li class="nav-item" routerLinkActive="active" id="btn-about"> | 
					
						
							| 
									
										
										
										
											2020-12-04 21:49:03 +07:00
										 |  |  |         <a class="nav-link" [routerLink]="['/about']" (click)="collapse()"><fa-icon [icon]="['fas', 'info-circle']" [fixedWidth]="true" i18n-title="master-page.about" title="About"></fa-icon></a> | 
					
						
							| 
									
										
										
										
											2020-10-08 17:51:10 +07:00
										 |  |  |       </li> | 
					
						
							| 
									
										
										
										
											2020-02-16 22:15:07 +07:00
										 |  |  |     </ul> | 
					
						
							| 
									
										
										
										
											2024-03-26 11:36:20 +09:00
										 |  |  |     <app-search-form [hamburgerOpen]="enterpriseInfo === null && user != null" class="search-form-container" location="top" (searchTriggered)="collapse()"></app-search-form> | 
					
						
							| 
									
										
										
										
											2020-02-16 22:15:07 +07:00
										 |  |  |   </div> | 
					
						
							|  |  |  | </nav> | 
					
						
							| 
									
										
										
										
											2024-03-21 13:46:03 +09:00
										 |  |  | <app-menu *ngIf="servicesEnabled" [navOpen]="menuOpen" (loggedOut)="onLoggedOut()" (menuToggled)="menuToggled($event)"></app-menu> | 
					
						
							| 
									
										
										
										
											2020-02-16 22:15:07 +07:00
										 |  |  | </header> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-22 08:35:10 +02:00
										 |  |  | <div class="d-flex" style="overflow: clip"> | 
					
						
							| 
									
										
										
										
											2024-04-03 11:28:25 +09:00
										 |  |  |   <div class="empty-sidenav"><!-- empty sidenav needed to push footer down the screen --></div> | 
					
						
							| 
									
										
										
										
											2023-08-22 08:35:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-29 14:34:56 +02:00
										 |  |  |   <div class="flex-grow-1 d-flex flex-column"> | 
					
						
							| 
									
										
										
										
											2024-05-06 15:40:32 +00:00
										 |  |  |     <app-testnet-alert *ngIf="network.val === 'testnet' || network.val === 'testnet4' || network.val === 'signet'"></app-testnet-alert> | 
					
						
							| 
									
										
										
										
											2023-03-18 17:01:31 +09:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-18 16:49:33 +09:00
										 |  |  |     <main style="min-width: 375px; max-width: 100vw"> | 
					
						
							| 
									
										
										
										
											2023-08-22 08:35:10 +02:00
										 |  |  |       <router-outlet></router-outlet> | 
					
						
							|  |  |  |     </main> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-29 14:34:56 +02:00
										 |  |  |     <div class="flex-grow-1"></div> | 
					
						
							| 
									
										
										
										
											2023-08-22 08:35:10 +02:00
										 |  |  |     <app-global-footer *ngIf="footerVisible"></app-global-footer> | 
					
						
							|  |  |  |   </div> | 
					
						
							|  |  |  | </div> | 
					
						
							| 
									
										
										
										
											2020-02-16 22:15:07 +07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-02 16:00:08 +07:00
										 |  |  | </ng-container> |