mirror of
https://github.com/Ride-The-Lightning/RTL
synced 2024-11-09 13:10:44 +00:00
e00834521a
API resolution fix
1 line
162 KiB
Plaintext
1 line
162 KiB
Plaintext
{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/pages/channels/channels.component.css","webpack:///./src/app/pages/channels/channels.component.html","webpack:///./src/app/pages/channels/channels.component.ts","webpack:///./src/app/pages/errors/error/error.component.html","webpack:///./src/app/pages/errors/error/error.component.ts","webpack:///./src/app/pages/errors/not-found/not-found.component.html","webpack:///./src/app/pages/errors/not-found/not-found.component.ts","webpack:///./src/app/pages/get-started/get-started.component.html","webpack:///./src/app/pages/get-started/get-started.component.scss","webpack:///./src/app/pages/get-started/get-started.component.ts","webpack:///./src/app/pages/help/help.component.css","webpack:///./src/app/pages/help/help.component.html","webpack:///./src/app/pages/help/help.component.ts","webpack:///./src/app/pages/home/home.component.css","webpack:///./src/app/pages/home/home.component.html","webpack:///./src/app/pages/home/home.component.ts","webpack:///./src/app/pages/invoices/invoices.component.html","webpack:///./src/app/pages/invoices/invoices.component.scss","webpack:///./src/app/pages/invoices/invoices.component.ts","webpack:///./src/app/pages/pages.component.html","webpack:///./src/app/pages/pages.component.scss","webpack:///./src/app/pages/pages.component.ts","webpack:///./src/app/pages/peers/peers.component.css","webpack:///./src/app/pages/peers/peers.component.html","webpack:///./src/app/pages/peers/peers.component.ts","webpack:///./src/app/pages/server-config/server-config.component.html","webpack:///./src/app/pages/server-config/server-config.component.scss","webpack:///./src/app/pages/server-config/server-config.component.ts","webpack:///./src/app/pages/wallet/wallet.component.html","webpack:///./src/app/pages/wallet/wallet.component.scss","webpack:///./src/app/pages/wallet/wallet.component.ts","webpack:///./src/app/shared/models/app.settings.ts","webpack:///./src/app/shared/services/logger.service.ts","webpack:///./src/app/shared/services/rtl.service.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/app/theme/components/alert-message/alert-message.component.html","webpack:///./src/app/theme/components/alert-message/alert-message.component.scss","webpack:///./src/app/theme/components/alert-message/alert-message.component.ts","webpack:///./src/app/theme/components/breadcrumb/breadcrumb.component.html","webpack:///./src/app/theme/components/breadcrumb/breadcrumb.component.scss","webpack:///./src/app/theme/components/breadcrumb/breadcrumb.component.ts","webpack:///./src/app/theme/components/fullscreen/fullscreen.component.ts","webpack:///./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.html","webpack:///./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.scss","webpack:///./src/app/theme/components/menu/horizontal-menu/horizontal-menu.component.ts","webpack:///./src/app/theme/components/menu/menu.service.ts","webpack:///./src/app/theme/components/menu/menu.ts","webpack:///./src/app/theme/components/menu/vertical-menu/vertical-menu.component.html","webpack:///./src/app/theme/components/menu/vertical-menu/vertical-menu.component.scss","webpack:///./src/app/theme/components/menu/vertical-menu/vertical-menu.component.ts","webpack:///./src/app/theme/components/sidenav/sidenav.component.html","webpack:///./src/app/theme/components/sidenav/sidenav.component.scss","webpack:///./src/app/theme/components/sidenav/sidenav.component.ts","webpack:///./src/app/theme/components/spinner-dialog/spinner-dialog.component.html","webpack:///./src/app/theme/components/spinner-dialog/spinner-dialog.component.scss","webpack:///./src/app/theme/components/spinner-dialog/spinner-dialog.component.ts","webpack:///./src/app/theme/components/user-menu/user-menu.component.html","webpack:///./src/app/theme/components/user-menu/user-menu.component.scss","webpack:///./src/app/theme/components/user-menu/user-menu.component.ts","webpack:///./src/app/theme/pipes/pagination/pagination.pipe.ts","webpack:///./src/app/theme/pipes/pipes.module.ts","webpack:///./src/app/theme/pipes/profilePicture/profilePicture.pipe.ts","webpack:///./src/app/theme/pipes/truncate/truncate.pipe.ts","webpack:///./src/app/theme/utils/custom-overlay-container.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"<div id=\\\"app\\\" class=\\\"app\\\" [dir]=\\\"(settings.rtl) ? 'rtl' : 'ltr'\\\" [ngClass]=\\\"settings.theme\\\" [class.fixed-header]=\\\"settings.fixedHeader\\\"\\r\\n [class.horizontal-menu]=\\\"settings.menu == 'horizontal'\\\" [class.compact]=\\\"settings.menuType == 'compact'\\\" [class.mini]=\\\"settings.menuType == 'mini'\\\">\\r\\n <router-outlet></router-outlet>\\r\\n <div id=\\\"rtl-spinner\\\" [class.hide]=\\\"!settings.loadingSpinner\\\">\\r\\n <mat-spinner color=\\\"primary\\\"></mat-spinner>\\r\\n <h4>loading...</h4>\\r\\n </div>\\r\\n</div>\"","module.exports = \".app {\\n position: absolute;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0; }\\n\\n#rtl-spinner {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n height: 100%;\\n width: 100%;\\n position: fixed;\\n top: 0;\\n background: #fff;\\n z-index: 999999;\\n visibility: visible;\\n opacity: 1;\\n transition: visibility 0.5s, opacity 0.3s linear; }\\n\\n#rtl-spinner.hide {\\n visibility: hidden;\\n opacity: 0; }\\n\\n#rtl-spinner h4 {\\n margin-top: 10px;\\n letter-spacing: 0.02em;\\n opacity: 0;\\n text-transform: uppercase;\\n -webkit-animation: loading-text-opacity 2s linear 0s infinite normal;\\n animation: loading-text-opacity 2s linear 0s infinite normal; }\\n\\n@keyframes loading-text-opacity {\\n 0% {\\n opacity: 0; }\\n 20% {\\n opacity: 0; }\\n 50% {\\n opacity: 1; }\\n 100% {\\n opacity: 0; } }\\n\\n@-webkit-keyframes loading-text-opacity {\\n 0% {\\n opacity: 0; }\\n 20% {\\n opacity: 0; }\\n 50% {\\n opacity: 1; }\\n 100% {\\n opacity: 0; } }\\n\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { Settings } from './shared/models/app.settings';\r\nimport { RTLService } from './shared/services/rtl.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'rtl-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n public settings: Settings;\r\n unsubscribe = new Subject();\r\n\r\n constructor(private rtlService: RTLService) {\r\n this.rtlService.fetchUISettings();\r\n this.settings = this.rtlService.getUISettings();\r\n }\r\n \r\n ngOnInit() {\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.unsubscribe)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe.next();\r\n this.unsubscribe.complete();\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\nimport { CustomOverlayContainer } from './theme/utils/custom-overlay-container';\r\n\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\r\nimport { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar';\r\nimport { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar';\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n wheelPropagation: true,\r\n suppressScrollX: true\r\n};\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { PipesModule } from './theme/pipes/pipes.module';\r\nimport { routing } from './app.routing';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { NotFoundComponent } from './pages/errors/not-found/not-found.component';\r\nimport { ErrorComponent } from './pages/errors/error/error.component';\r\n\r\nimport { SidenavComponent } from './theme/components/sidenav/sidenav.component';\r\nimport { VerticalMenuComponent } from './theme/components/menu/vertical-menu/vertical-menu.component';\r\nimport { HorizontalMenuComponent } from './theme/components/menu/horizontal-menu/horizontal-menu.component';\r\nimport { BreadcrumbComponent } from './theme/components/breadcrumb/breadcrumb.component';\r\nimport { FullScreenComponent } from './theme/components/fullscreen/fullscreen.component';\r\nimport { UserMenuComponent } from './theme/components/user-menu/user-menu.component';\r\nimport { HomeComponent } from './pages/home/home.component';\r\nimport { ChannelsComponent } from './pages/channels/channels.component';\r\nimport { PeersComponent } from './pages/peers/peers.component';\r\nimport { WalletComponent } from './pages/wallet/wallet.component';\r\nimport { InvoicesComponent } from './pages/invoices/invoices.component';\r\n\r\nimport { RTLService } from './shared/services/rtl.service';\r\nimport { LoggerService, ConsoleLoggerService } from './shared/services/logger.service';\r\nimport { ServerConfigComponent } from './pages/server-config/server-config.component';\r\nimport { HelpComponent } from './pages/help/help.component';\r\nimport { GetStartedComponent } from './pages/get-started/get-started.component';\r\nimport { AlertMessageComponent } from './theme/components/alert-message/alert-message.component';\r\nimport { SpinnerDialogComponent } from './theme/components/spinner-dialog/spinner-dialog.component';\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyDe_oVpi9eRSN99G4o6TwVjJbFBNr58NxE'\r\n }),\r\n PerfectScrollbarModule,\r\n SharedModule,\r\n PipesModule,\r\n routing\r\n ],\r\n declarations: [\r\n AppComponent,\r\n PagesComponent,\r\n NotFoundComponent,\r\n ErrorComponent,\r\n SidenavComponent,\r\n VerticalMenuComponent,\r\n HorizontalMenuComponent,\r\n BreadcrumbComponent,\r\n FullScreenComponent,\r\n UserMenuComponent,\r\n HomeComponent,\r\n ChannelsComponent,\r\n PeersComponent,\r\n WalletComponent,\r\n InvoicesComponent,\r\n ServerConfigComponent,\r\n HelpComponent,\r\n GetStartedComponent,\r\n AlertMessageComponent,\r\n SpinnerDialogComponent\r\n ],\r\n entryComponents: [\r\n VerticalMenuComponent,\r\n AlertMessageComponent,\r\n SpinnerDialogComponent\r\n ],\r\n providers: [\r\n RTLService,\r\n { provide: LoggerService, useClass: ConsoleLoggerService },\r\n { provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG },\r\n { provide: OverlayContainer, useClass: CustomOverlayContainer }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","import { Routes, RouterModule } from '@angular/router';\r\nimport { ModuleWithProviders } from '@angular/core';\r\n\r\nimport { PagesComponent } from './pages/pages.component';\r\nimport { NotFoundComponent } from './pages/errors/not-found/not-found.component';\r\nimport { ErrorComponent } from './pages/errors/error/error.component';\r\n\r\nimport { HomeComponent } from './pages/home/home.component';\r\nimport { GetStartedComponent } from './pages/get-started/get-started.component';\r\nimport { ChannelsComponent } from './pages/channels/channels.component';\r\nimport { PeersComponent } from './pages/peers/peers.component';\r\nimport { WalletComponent } from './pages/wallet/wallet.component';\r\nimport { InvoicesComponent } from './pages/invoices/invoices.component';\r\nimport { ServerConfigComponent } from './pages/server-config/server-config.component';\r\nimport { HelpComponent } from './pages/help/help.component';\r\n\r\nexport const routes: Routes = [\r\n { path: '', component: PagesComponent,\r\n children: [\r\n { path: '', redirectTo: '/home', pathMatch: 'full'},\r\n { path: 'start', component: GetStartedComponent },\r\n { path: 'home', component: HomeComponent },\r\n { path: 'peers', component: PeersComponent },\r\n { path: 'channels', component: ChannelsComponent },\r\n // { path: 'wallet', component: WalletComponent },\r\n // { path: 'invoices', component: InvoicesComponent },\r\n // { path: 'sconfig', component: ServerConfigComponent },\r\n { path: 'help', component: HelpComponent }\r\n ]\r\n },\r\n { path: 'error', component: ErrorComponent, data: { breadcrumb: 'Error' } },\r\n { path: '**', component: NotFoundComponent }\r\n];\r\n\r\nexport const routing: ModuleWithProviders = RouterModule.forRoot(routes, {\r\n // preloadingStrategy: PreloadAllModules,\r\n // useHash: true\r\n});\r\n","module.exports = \".mat-column-capacity, .mat-column-local_balance, .mat-column-remote_balance, .mat-column-total_satoshis_sent, .mat-column-total_satoshis_received {\\r\\n flex: 0 0 90px;\\r\\n}\\r\\n\\r\\n.mat-column-active, .mat-column-commit_fee {\\r\\n flex: 0 0 70px;\\r\\n}\\r\\n\\r\\n.mat-column-chan_id {\\r\\n flex: 0 0 180px;\\r\\n}\\r\\n\\r\\n.mat-column-remote_pubkey {\\r\\n margin-right: 30px;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n display: table-cell;\\r\\n padding-top: 5px;\\r\\n line-height: 25px;\\r\\n min-height: 25px;\\r\\n}\\r\\n\\r\\n.mx-14 {\\r\\n margin: 0 14%;\\r\\n}\\r\\n\\r\\n.size-40 {\\r\\n font-size: 40px;\\r\\n}\\r\\n\\r\\n.mat-button-text {\\r\\n font-size: 24px;\\r\\n padding-left: 16px;\\r\\n padding-bottom: 20px;\\r\\n}\\r\\n\\r\\n.wide-tooltip {\\r\\n width: 360px;\\r\\n min-width: 360px;\\r\\n}\\r\\n\"","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Channel Status</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n <div fxLayout=\\\"row\\\">\\r\\n <button mat-icon-button class=\\\"mx-14 green\\\" matTooltip=\\\"Active Channels\\\" [matTooltipPosition]=\\\"position\\\">\\r\\n <mat-icon class=\\\"size-40\\\">check_circle</mat-icon>\\r\\n </button>\\r\\n <button mat-icon-button class=\\\"mx-14 red\\\" matTooltip=\\\"Inactive Channels\\\" [matTooltipPosition]=\\\"position\\\">\\r\\n <mat-icon class=\\\"size-40\\\">cancel</mat-icon>\\r\\n </button>\\r\\n <button mat-icon-button class=\\\"mx-14 yellow\\\" matTooltip=\\\"Pending Channels\\\" [matTooltipPosition]=\\\"position\\\">\\r\\n <mat-icon class=\\\"size-40\\\">error</mat-icon>\\r\\n </button>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\">\\r\\n <button mat-icon-button class=\\\"mx-14\\\" color=\\\"green\\\">\\r\\n <p fxLayoutAlign=\\\"center\\\" class=\\\"mat-button-text\\\">{{activeChannels}}</p>\\r\\n </button>\\r\\n <button mat-icon-button class=\\\"mx-14\\\" color=\\\"red\\\">\\r\\n <p fxLayoutAlign=\\\"center\\\" class=\\\"mat-button-text\\\">{{inactiveChannels}}</p>\\r\\n </button>\\r\\n <button mat-icon-button class=\\\"mx-14\\\" color=\\\"yellow\\\">\\r\\n <p fxLayoutAlign=\\\"center\\\" class=\\\"mat-button-text\\\">{{pendingChannels}}</p>\\r\\n </button>\\r\\n </div>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Add Channel</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n <div fxLayout=\\\"row\\\">\\r\\n <mat-select fxFlex=\\\"50\\\" fxLayoutAlign=\\\"center center\\\" [(ngModel)]=\\\"selectedPeer\\\" placeholder=\\\"Public Key\\\" name=\\\"peer_pubkey\\\">\\r\\n <mat-option *ngFor=\\\"let peer of peers\\\" [value]=\\\"peer.pub_key\\\">\\r\\n {{peer.pub_key}}\\r\\n </mat-option>\\r\\n </mat-select>\\r\\n <mat-form-field fxFlex=\\\"35\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <input matInput type=\\\"number\\\" [(ngModel)]=\\\"fundingAmount\\\" placeholder=\\\"Amount (Sats)\\\">\\r\\n </mat-form-field>\\r\\n <button fxFlex=\\\"10\\\" fxLayoutAlign=\\\"center center\\\" mat-raised-button color=\\\"primary\\\" [disabled]=\\\"selectedPeer === '' || fundingAmount == null\\\" (click)=\\\"onAddChannel()\\\">Open</button>\\r\\n </div>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-table #table [dataSource]=\\\"channels\\\" matSort class=\\\"mat-elevation-z8\\\">\\r\\n <ng-container matColumnDef=\\\"active\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Status </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.active}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"chan_id\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> ID </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.chan_id}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"remote_pubkey\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Pub Key </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\" matTooltip=\\\"{{channel.remote_pubkey}}\\\" [matTooltipPosition]=\\\"position\\\" matTooltipClass=\\\"wide-tooltip\\\">\\r\\n {{channel.remote_pubkey}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"capacity\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Capacity </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.capacity}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"local_balance\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Local Bal </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.local_balance}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"remote_balance\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Remote Bal </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.remote_balance}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"total_satoshis_sent\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Sats Sent </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.total_satoshis_sent}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"total_satoshis_received\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Sats Recv </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.total_satoshis_received}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"commit_fee\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Fee </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let channel\\\"> {{channel.commit_fee}} </mat-cell>\\r\\n </ng-container>\\r\\n <mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></mat-header-row>\\r\\n <mat-row *matRowDef=\\\"let row; columns: displayedColumns;\\\"></mat-row>\\r\\n </mat-table>\\r\\n </div>\\r\\n</div>\"","import { Component, OnInit, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { MatTableDataSource, MatSort, MatDialog } from '@angular/material';\r\nimport { RTLService } from '../../shared/services/rtl.service';\r\nimport { Channel } from '../../shared/models/channels';\r\nimport { Peer } from '../../shared/models/peers';\r\nimport { LoggerService } from '../../shared/services/logger.service';\r\nimport { AlertMessageComponent } from '../../theme/components/alert-message/alert-message.component';\r\nimport { SpinnerDialogComponent } from '../../theme/components/spinner-dialog/spinner-dialog.component';\r\n\r\n@Component({\r\n selector: 'rtl-channels',\r\n templateUrl: './channels.component.html',\r\n styleUrls: ['./channels.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ChannelsComponent implements OnInit, OnDestroy {\r\n @ViewChild(MatSort) sort: MatSort;\r\n public position = 'below';\r\n public selectedPeer = '';\r\n public fundingAmount: number;\r\n public displayedColumns = [\r\n 'active', 'chan_id', 'remote_pubkey', 'capacity', 'local_balance', 'remote_balance',\r\n 'total_satoshis_sent', 'total_satoshis_received', 'commit_fee'\r\n ];\r\n public channels: any;\r\n public activeChannels = 0;\r\n public inactiveChannels = 0;\r\n public pendingChannels = 0;\r\n public peers: Peer[] = [];\r\n private channelSub = new Subject();\r\n private pendingCSub = new Subject();\r\n private peersSub = new Subject();\r\n\r\n constructor(private rtlService: RTLService, private logger: LoggerService, public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n this.rtlService.getPeers()\r\n .takeUntil(this.peersSub)\r\n .subscribe((data: any[]) => {\r\n this.peers = data;\r\n });\r\n this.rtlService.getChannels('all', '')\r\n .takeUntil(this.channelSub)\r\n .subscribe((data: any) => {\r\n if (undefined === data.channels) {\r\n data.channels = [];\r\n }\r\n data.channels.sort(function(a, b) {\r\n return (a.active === b.active) ? 0 : ((a.active) ? -1 : 1);\r\n });\r\n data.channels.filter(channel => {\r\n if (channel.active === true) {\r\n channel.active = 'Active';\r\n this.activeChannels++;\r\n } else {\r\n channel.active = 'Inactive';\r\n this.inactiveChannels++;\r\n }\r\n });\r\n this.channels = new MatTableDataSource<Channel>([...data.channels]);\r\n this.channels.sort = this.sort;\r\n this.logger.info(this.channels);\r\n });\r\n this.rtlService.getChannels('pending', '')\r\n .takeUntil(this.pendingCSub)\r\n .subscribe((data: any) => {\r\n this.pendingChannels = (undefined === data.pending_open_channels) ? 0 : data.pending_open_channels.length;\r\n this.logger.info(this.pendingChannels);\r\n });\r\n }\r\n\r\n onAddChannel() {\r\n let dialogRef = this.dialog.open(SpinnerDialogComponent, { data: { message: 'Opening Channel...'}});\r\n this.rtlService.addChannel(this.selectedPeer, this.fundingAmount)\r\n .subscribe(data => {\r\n dialogRef.close();\r\n this.selectedPeer = '';\r\n this.fundingAmount = null;\r\n this.logger.info(data);\r\n this.dialog.open(AlertMessageComponent, { width: '700px', data: {type: 'SUCCESS', message: 'Channel Added Successfully!'}});\r\n this.rtlService.getChannels('pending', '')\r\n .takeUntil(this.pendingCSub)\r\n .subscribe((data: any) => {\r\n this.pendingChannels = (undefined === data.pending_open_channels) ? 0 : data.pending_open_channels.length;\r\n this.logger.info(this.pendingChannels);\r\n });\r\n },\r\n (err: any) => {\r\n dialogRef.close();\r\n this.dialog.open(AlertMessageComponent, { width: '700px', data: {type: 'ERROR', message: err.error.error}});\r\n this.logger.error(err);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.channelSub.next();\r\n this.channelSub.complete();\r\n this.pendingCSub.next();\r\n this.pendingCSub.complete();\r\n this.peersSub.next();\r\n this.peersSub.complete();\r\n }\r\n}\r\n","module.exports = \"<mat-sidenav-container>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"h-100\\\">\\r\\n <div fxFlex=\\\"80\\\" fxFlex.gt-sm=\\\"30\\\" fxFlex.sm=\\\"60\\\">\\r\\n <mat-card class=\\\"p-0 mat-elevation-z24 box\\\">\\r\\n <div fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"bg-primary box-header\\\">\\r\\n <button mat-fab color=\\\"accent\\\" class=\\\"mat-elevation-z12\\\">\\r\\n <mat-icon>warning</mat-icon>\\r\\n </button>\\r\\n <h1 class=\\\"error\\\">500</h1>\\r\\n </div>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"end center\\\" class=\\\"box-content\\\">\\r\\n <mat-card fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"mat-elevation-z12 box-content-inner\\\">\\r\\n <span class=\\\"box-content-header server-error\\\">Internal server error</span>\\r\\n <p class=\\\"box-text\\\">Opps, something went wrong. You can go to home page.</p>\\r\\n <button mat-raised-button color=\\\"primary\\\" class=\\\"mat-elevation-z12\\\" type=\\\"button\\\" (click)=\\\"goHome()\\\">HOME</button>\\r\\n </mat-card>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n </div>\\r\\n</mat-sidenav-container>\"","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'rtl-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent {\r\n \r\n constructor(public router: Router) {}\r\n\r\n goHome(): void {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n}\r\n","module.exports = \"<mat-sidenav-container>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"h-100\\\">\\r\\n <div fxFlex=\\\"80\\\" fxFlex.gt-sm=\\\"30\\\" fxFlex.sm=\\\"60\\\">\\r\\n <mat-card class=\\\"p-0 mat-elevation-z24 box\\\">\\r\\n <div fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"bg-primary box-header\\\">\\r\\n <button mat-fab color=\\\"accent\\\" class=\\\"mat-elevation-z12\\\">\\r\\n <mat-icon>error</mat-icon>\\r\\n </button>\\r\\n <h1 class=\\\"error\\\">404</h1>\\r\\n </div>\\r\\n <mat-card-content fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"box-content\\\">\\r\\n <mat-card fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"mat-elevation-z12 box-content-inner\\\">\\r\\n <div class=\\\"box-text\\\">Opps, it seems that this page does not exist.</div>\\r\\n </mat-card>\\r\\n <button fxFlex=\\\"40\\\" mat-raised-button color=\\\"primary\\\" class=\\\"mat-elevation-z12\\\" type=\\\"button\\\" (click)=\\\"goHome()\\\">HOME</button>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n </div>\\r\\n</mat-sidenav-container>\"","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'rtl-not-found',\r\n templateUrl: './not-found.component.html'\r\n})\r\nexport class NotFoundComponent {\r\n\r\n constructor(public router: Router) {}\r\n\r\n goHome(): void {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n}\r\n","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Get Started</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n <form fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start\\\">\\r\\n <mat-form-field fxFlex=\\\"50\\\" fxLayoutAlign=\\\"start\\\">\\r\\n <input matInput type=\\\"password\\\" placeholder=\\\"Wallet Password\\\" name=\\\"walletPassword\\\" [(ngModel)]=\\\"walletPassword\\\" tabindex=\\\"1\\\">\\r\\n </mat-form-field>\\r\\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"walletPassword == ''\\\" (click)=\\\"onOperateWallet('unlock')\\\" tabindex=\\\"2\\\">Unlock Wallet</button>\\r\\n </form> \\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\\r\\n\"","module.exports = \"\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { MatDialog } from '@angular/material';\r\nimport { RTLService } from '../../shared/services/rtl.service';\r\nimport { LoggerService } from '../../shared/services/logger.service';\r\nimport { AlertMessageComponent } from '../../theme/components/alert-message/alert-message.component';\r\nimport { SpinnerDialogComponent } from '../../theme/components/spinner-dialog/spinner-dialog.component';\r\n\r\n@Component({\r\n selector: 'rtl-get-started',\r\n templateUrl: './get-started.component.html',\r\n styleUrls: ['./get-started.component.scss']\r\n})\r\nexport class GetStartedComponent implements OnInit, OnDestroy {\r\n walletPassword = '';\r\n private unsub = new Subject();\r\n\r\n constructor(private rtlService: RTLService, private logger: LoggerService, private router: Router, public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n this.walletPassword = '';\r\n }\r\n\r\n onOperateWallet(operation: string) {\r\n let dialogRefUnlock = this.dialog.open(SpinnerDialogComponent, { data: { message: 'Unlocking...'}});\r\n this.rtlService.operateWallet(operation, this.walletPassword)\r\n .takeUntil(this.unsub)\r\n .subscribe((data: any) => {\r\n let dialogRefInit = this.dialog.open(SpinnerDialogComponent, { data: { message: 'Initializing Node...'}});\r\n dialogRefUnlock.close();\r\n this.logger.info('Successfully Unlocked!');\r\n setTimeout(() => {\r\n this.walletPassword = '';\r\n this.logger.info('Successfully Initialized!');\r\n this.router.navigate(['/home']);\r\n dialogRefInit.close();\r\n }, 1000*90);\r\n },\r\n (err: any) => {\r\n this.walletPassword = '';\r\n dialogRefUnlock.close();\r\n this.dialog.open(AlertMessageComponent, { width: '700px', data: {type: 'ERROR', message: err.error.error}});\r\n this.logger.error(err.error.error);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsub.next();\r\n this.unsub.complete();\r\n }\r\n\r\n}\r\n","module.exports = \".mat-card-content {\\r\\n margin-bottom: 4px;\\r\\n}\\r\\n\"","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Help</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content *ngFor=\\\"let helpTopic of helpTopics\\\">\\r\\n <mat-expansion-panel>\\r\\n <mat-expansion-panel-header>\\r\\n <mat-panel-title>{{helpTopic.question}}</mat-panel-title>\\r\\n </mat-expansion-panel-header>\\r\\n <mat-panel-description>{{helpTopic.answer}}</mat-panel-description>\\r\\n </mat-expansion-panel>\\r\\n <div class=\\\"divider\\\"></div>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\"","import { Component, OnInit } from '@angular/core';\r\n\r\nexport class HelpTopic {\r\n question: string;\r\n answer: string;\r\n\r\n constructor(ques: string, ans: string) {\r\n this.question = ques;\r\n this.answer = ans;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'rtl-help',\r\n templateUrl: './help.component.html',\r\n styleUrls: ['./help.component.css']\r\n})\r\nexport class HelpComponent implements OnInit {\r\n public helpTopics: Array<HelpTopic> = [];\r\n \r\n constructor() {}\r\n\r\n ngOnInit() {\r\n // this.helpTopics.push(new HelpTopic('Set LND home directory?',\r\n // 'Pass the directroy information while getting the server up with --lndir \"local-lnd-path\".<br>Example: node rtl --lndir C:\\lnd\\dir\\path'));\r\n this.helpTopics.push(new HelpTopic('Change theme?', 'Click on rotating setting icon on the right side of the screen and choose from the given options.'));\r\n }\r\n\r\n}\r\n","module.exports = \".mat-card-header {\\r\\n padding: 18px 18px 10px 18px;\\r\\n}\\r\\n\\r\\n.icon-large {\\r\\n font-size: 70px;\\r\\n display: inline;\\r\\n}\\r\\n\\r\\n.size-40 {\\r\\n font-size: 30px;\\r\\n}\\r\\n\"","module.exports = \"<div fxLayout=\\\"column\\\" fxLayout.gt-sm=\\\"row wrap\\\">\\r\\n <div fxFlex=\\\"20\\\" class=\\\"flex-p\\\">\\r\\n <mat-card class=\\\"custom-card\\\">\\r\\n <mat-card-header class=\\\"bg-primary p-1\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <mat-card-title class=\\\"m-0\\\">\\r\\n <h3>Wallet Balance</h3>\\r\\n </mat-card-title>\\r\\n </mat-card-header>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"p-1\\\">\\r\\n <mat-card-content>\\r\\n <mat-icon class=\\\"icon-large\\\">account_balance_wallet</mat-icon>\\r\\n </mat-card-content>\\r\\n <h3>{{totalBalance}} Sats</h3>\\r\\n </mat-card-content>\\r\\n <mat-divider></mat-divider>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div fxFlex=\\\"20\\\" class=\\\"flex-p\\\">\\r\\n <mat-card class=\\\"custom-card\\\">\\r\\n <mat-card-header class=\\\"bg-primary p-1\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <mat-card-title class=\\\"m-0\\\">\\r\\n <h3>Peers</h3>\\r\\n </mat-card-title>\\r\\n </mat-card-header>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"p-1\\\">\\r\\n <mat-card-content>\\r\\n <mat-icon class=\\\"icon-large\\\">group</mat-icon>\\r\\n </mat-card-content>\\r\\n <h3 *ngIf=\\\"information.num_peers; else zeroPeers\\\">{{information?.num_peers}}</h3>\\r\\n <ng-template #zeroPeers><h3>0</h3></ng-template>\\r\\n </mat-card-content>\\r\\n <mat-divider></mat-divider>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div fxFlex=\\\"20\\\" class=\\\"flex-p\\\">\\r\\n <mat-card class=\\\"custom-card\\\">\\r\\n <mat-card-header class=\\\"bg-primary p-1\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <mat-card-title class=\\\"m-0\\\">\\r\\n <h3>Active Channels</h3>\\r\\n </mat-card-title>\\r\\n </mat-card-header>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"p-1\\\">\\r\\n <mat-card-content>\\r\\n <mat-icon class=\\\"icon-large\\\">settings_ethernet</mat-icon>\\r\\n </mat-card-content>\\r\\n <h3 *ngIf=\\\"information.num_active_channels; else zeroChannel\\\">{{information?.num_active_channels}}</h3>\\r\\n <ng-template #zeroChannel><h3>0</h3></ng-template>\\r\\n </mat-card-content>\\r\\n <mat-divider></mat-divider>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div fxFlex=\\\"20\\\" class=\\\"flex-p\\\">\\r\\n <mat-card class=\\\"custom-card\\\">\\r\\n <mat-card-header class=\\\"bg-primary p-1\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <mat-card-title class=\\\"m-0\\\">\\r\\n <h3>Channel Balance</h3>\\r\\n </mat-card-title>\\r\\n </mat-card-header>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"p-1\\\">\\r\\n <mat-card-content>\\r\\n <mat-icon class=\\\"icon-large\\\">linear_scale</mat-icon>\\r\\n </mat-card-content>\\r\\n <h3>{{channelBalance}} Sats</h3>\\r\\n </mat-card-content>\\r\\n <mat-divider></mat-divider>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div fxFlex=\\\"20\\\" class=\\\"flex-p\\\">\\r\\n <mat-card class=\\\"custom-card\\\">\\r\\n <mat-card-header class=\\\"bg-primary p-1\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <mat-card-title class=\\\"m-0\\\">\\r\\n <h3>Chain Sync Status</h3>\\r\\n </mat-card-title>\\r\\n </mat-card-header>\\r\\n <mat-card-content fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"p-1\\\">\\r\\n <mat-card-content>\\r\\n <mat-icon class=\\\"icon-large\\\">sync</mat-icon>\\r\\n </mat-card-content>\\r\\n <mat-icon *ngIf=\\\"information?.synced_to_chain; else notSynced\\\" class=\\\"size-40 green sync-to-chain\\\">check_circle</mat-icon>\\r\\n <ng-template #notSynced>\\r\\n <mat-icon class=\\\"size-40 red\\\">cancel</mat-icon>\\r\\n </ng-template>\\r\\n </mat-card-content>\\r\\n <mat-divider></mat-divider>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div fxFlex=\\\"100\\\" class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Fee Report</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n <mat-table #table [dataSource]=\\\"fees\\\" matSort class=\\\"mat-elevation-z8\\\">\\r\\n <ng-container matColumnDef=\\\"day_fee_sum\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Daily </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let fees\\\"> {{fees.day_fee_sum}} Sats</mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"week_fee_sum\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Weekly </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let fees\\\"> {{fees.week_fee_sum}} Sats</mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"month_fee_sum\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Monthly </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let fees\\\"> {{fees.month_fee_sum}} Sats</mat-cell>\\r\\n </ng-container>\\r\\n <mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></mat-header-row>\\r\\n <mat-row *matRowDef=\\\"let row; columns: displayedColumns;\\\"></mat-row>\\r\\n </mat-table>\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { MatTableDataSource } from '@angular/material';\r\nimport { RTLService } from '../../shared/services/rtl.service';\r\nimport { LoggerService } from '../../shared/services/logger.service';\r\nimport { GetInfo } from '../../shared/models/getInfo';\r\n\r\n@Component({\r\n selector: 'rtl-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit, OnDestroy {\r\n public fees: any;\r\n public displayedColumns = ['day_fee_sum', 'week_fee_sum', 'month_fee_sum'];\r\n public information: GetInfo = {};\r\n public activeChannels = 0;\r\n public totalBalance = '';\r\n public channelBalance = '';\r\n private unsubInfo = new Subject();\r\n private unsubFees = new Subject();\r\n private unsubBalBlock = new Subject();\r\n private unsubBalChannel = new Subject();\r\n\r\n constructor(private rtlService: RTLService, private logger: LoggerService, private router: Router) {}\r\n\r\n ngOnInit() {\r\n this.rtlService.getInfo();\r\n this.rtlService.informationUpdated\r\n .takeUntil(this.unsubInfo)\r\n .subscribe((data: any) => {\r\n if (data.error) {\r\n this.logger.info('Redirecting to Unlock');\r\n this.router.navigate(['/start']);\r\n return;\r\n }\r\n this.logger.info(data);\r\n this.information = data;\r\n });\r\n this.rtlService.getFees()\r\n .takeUntil(this.unsubFees)\r\n .subscribe((data: any) => {\r\n this.logger.info(data);\r\n this.fees = (undefined === data) ? new MatTableDataSource<number>([]) :\r\n new MatTableDataSource<any>([...[{day_fee_sum: data.fees.day_fee_sum, week_fee_sum: data.fees.week_fee_sum, month_fee_sum: data.fees.month_fee_sum}]]);\r\n this.logger.info(this.fees);\r\n });\r\n this.rtlService.getBalance('blockchain')\r\n .takeUntil(this.unsubBalBlock)\r\n .subscribe((data: any) => {\r\n this.totalBalance = (undefined === data.balance.total_balance) ? 0 : data.balance.total_balance;\r\n this.totalBalance = this.totalBalance.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n this.logger.info(this.totalBalance);\r\n });\r\n this.rtlService.getBalance('channels')\r\n .takeUntil(this.unsubBalChannel)\r\n .subscribe((data: any) => {\r\n this.channelBalance = (undefined === data.balance.balance) ? 0 : data.balance.balance;\r\n this.channelBalance = this.channelBalance.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n this.logger.info(this.channelBalance);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubInfo.next();\r\n this.unsubInfo.complete();\r\n this.unsubFees.next();\r\n this.unsubFees.complete();\r\n this.unsubBalBlock.next();\r\n this.unsubBalBlock.complete();\r\n this.unsubBalChannel.next();\r\n this.unsubBalChannel.complete();\r\n }\r\n\r\n}\r\n","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Invoices</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n Work In Progress!\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n </div>\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rtl-invoices',\r\n templateUrl: './invoices.component.html',\r\n styleUrls: ['./invoices.component.scss']\r\n})\r\nexport class InvoicesComponent implements OnInit {\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"<mat-sidenav-container>\\r\\n <mat-sidenav *ngIf=\\\"settings.menu == 'vertical'\\\" [opened]=\\\"settings.sidenavIsOpened\\\" [mode]=\\\"(settings.sidenavIsPinned) ? 'side' : 'over'\\\"\\r\\n #sidenav class=\\\"sidenav mat-elevation-z6\\\">\\r\\n <rtl-sidenav></rtl-sidenav>\\r\\n </mat-sidenav>\\r\\n <mat-sidenav-content perfectScrollbar [disabled]=\\\"settings.fixedHeader\\\" (psScrollY)=\\\"onPsScrollY($event)\\\">\\r\\n <mat-toolbar color=\\\"primary\\\" class=\\\"flex-p-x\\\">\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\" class=\\\"w-100\\\">\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start center\\\">\\r\\n <button *ngIf=\\\"settings.menu == 'vertical'\\\" mat-icon-button (click)=\\\"toggleSidenav()\\\">\\r\\n <mat-icon>menu</mat-icon>\\r\\n </button>\\r\\n <button fxShow=\\\"false\\\" fxShow.gt-xs *ngIf=\\\"settings.menu == 'vertical'\\\" mat-icon-button (click)=\\\"settings.sidenavUserBlock = !settings.sidenavUserBlock\\\">\\r\\n <mat-icon>person</mat-icon>\\r\\n </button>\\r\\n <a *ngIf=\\\"settings.menu == 'horizontal' && settings.menuType == 'mini'\\\" mat-raised-button color=\\\"accent\\\" routerLink=\\\"/home\\\" (click)=\\\"closeSubMenus()\\\" class=\\\"small-logo\\\">R</a>\\r\\n <a *ngIf=\\\"settings.menu == 'horizontal' && settings.menuType != 'mini'\\\" class=\\\"logo\\\" routerLink=\\\"/home\\\" (click)=\\\"closeSubMenus()\\\">RTL</a>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\">\\r\\n <h2>Ride The Lightning</h2>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"end center\\\">\\r\\n <rtl-fullscreen></rtl-fullscreen>\\r\\n <rtl-user-menu></rtl-user-menu>\\r\\n </div>\\r\\n </div>\\r\\n </mat-toolbar>\\r\\n <mat-toolbar color=\\\"primary\\\" *ngIf=\\\"settings.menu == 'horizontal'\\\" class=\\\"horizontal-menu flex-p-x transition-2\\\" [class.sticky]=\\\"isStickyMenu\\\"\\r\\n [class.fixed-top]=\\\"!settings.fixedHeader\\\">\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"w-100\\\">\\r\\n <rtl-horizontal-menu [menuParentId]=\\\"0\\\"></rtl-horizontal-menu>\\r\\n </div>\\r\\n </mat-toolbar>\\r\\n <div id=\\\"main-content\\\" class=\\\"inner-sidenav-content transition-2\\\" perfectScrollbar [disabled]=\\\"!settings.fixedHeader\\\" (psScrollY)=\\\"onPsScrollY($event)\\\"\\r\\n [class.horizontal-menu-hidden]=\\\"isStickyMenu\\\">\\r\\n <!-- <rtl-breadcrumb></rtl-breadcrumb> -->\\r\\n <router-outlet></router-outlet>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"options-icon\\\" (click)=\\\"options.toggle()\\\">\\r\\n <mat-icon>settings</mat-icon>\\r\\n </div>\\r\\n <div *ngIf=\\\"showBackToTop\\\" fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"back-to-top transition-2\\\" (click)=\\\"scrollToTop();\\\">\\r\\n <mat-icon>arrow_upward</mat-icon>\\r\\n </div>\\r\\n </mat-sidenav-content>\\r\\n <mat-sidenav #options position=\\\"end\\\" class=\\\"options\\\">\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"control mat-elevation-z1\\\">\\r\\n <h2>Settings</h2>\\r\\n </div>\\r\\n <div perfectScrollbar>\\r\\n <div fxLayout=\\\"column\\\" class=\\\"control\\\">\\r\\n <h4>Layout</h4>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\">\\r\\n <span>Fixed header</span>\\r\\n <mat-slide-toggle [checked]=\\\"settings.fixedHeader\\\" (change)=\\\"toggleSettings('fixedHeader')\\\" labelPosition=\\\"before\\\"></mat-slide-toggle>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\">\\r\\n <span>Align Left</span>\\r\\n <mat-slide-toggle [checked]=\\\"settings.rtl\\\" (change)=\\\"toggleSettings('rtl')\\\" labelPosition=\\\"before\\\"></mat-slide-toggle>\\r\\n </div>\\r\\n </div>\\r\\n <div fxLayout=\\\"column\\\" class=\\\"control\\\">\\r\\n <h4>Choose menu</h4>\\r\\n <mat-radio-group [(ngModel)]=\\\"menuOption\\\" (change)=\\\"chooseMenu()\\\">\\r\\n <mat-radio-button *ngFor=\\\"let menu of menus\\\" [value]=\\\"menu\\\">{{menu}}</mat-radio-button>\\r\\n </mat-radio-group>\\r\\n </div>\\r\\n <div fxLayout=\\\"column\\\" class=\\\"control\\\">\\r\\n <h4>Choose menu type</h4>\\r\\n <mat-radio-group [(ngModel)]=\\\"menuTypeOption\\\" (change)=\\\"chooseMenuType()\\\">\\r\\n <mat-radio-button *ngFor=\\\"let menuType of menuTypes\\\" [value]=\\\"menuType\\\">{{menuType}}</mat-radio-button>\\r\\n </mat-radio-group>\\r\\n </div>\\r\\n <div fxLayout=\\\"column\\\" class=\\\"control\\\">\\r\\n <h4>Choose theme skin</h4>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-around center\\\">\\r\\n <div class=\\\"skin-primary indigo-light\\\" (click)=\\\"changeTheme('indigo-light')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"skin-primary teal-light\\\" (click)=\\\"changeTheme('teal-light')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"skin-primary red-light\\\" (click)=\\\"changeTheme('red-light')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"skin-primary blue-dark\\\" (click)=\\\"changeTheme('blue-dark')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"skin-primary green-dark\\\" (click)=\\\"changeTheme('green-dark')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"skin-primary pink-dark\\\" (click)=\\\"changeTheme('pink-dark')\\\">\\r\\n <div class=\\\"skin-secondary\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div fxLayout=\\\"column\\\" class=\\\"control\\\">\\r\\n <h4>Sidenav options</h4>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\">\\r\\n <span>Opened sidenav</span>\\r\\n <mat-slide-toggle [checked]=\\\"settings.sidenavIsOpened\\\" (change)=\\\"toggleSettings('sidenavIsOpened')\\\" labelPosition=\\\"before\\\"></mat-slide-toggle>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\">\\r\\n <span>Pinned sidenav</span>\\r\\n <mat-slide-toggle [checked]=\\\"settings.sidenavIsPinned\\\" (change)=\\\"toggleSettings('sidenavIsPinned')\\\" labelPosition=\\\"before\\\"></mat-slide-toggle>\\r\\n </div>\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"space-between center\\\">\\r\\n <span>Sidenav user info</span>\\r\\n <mat-slide-toggle [checked]=\\\"settings.sidenavUserBlock\\\" (change)=\\\"toggleSettings('sidenavUserBlock')\\\"\\r\\n labelPosition=\\\"before\\\"></mat-slide-toggle>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </mat-sidenav>\\r\\n</mat-sidenav-container>\"","module.exports = \".sidenav {\\n width: 250px;\\n overflow: hidden; }\\n\\n.horizontal-menu {\\n padding: 0;\\n position: relative;\\n z-index: 9;\\n height: 0; }\\n\\n.horizontal-menu.sticky {\\n height: 0;\\n min-height: 0;\\n overflow: hidden; }\\n\\n.horizontal-menu.sticky.fixed-top {\\n position: fixed;\\n top: 0;\\n height: 56px;\\n overflow: visible; }\\n\\n.inner-sidenav-content {\\n position: absolute;\\n top: 56px;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n padding: 8px;\\n min-height: calc(100% - (56px + 8px*2)); }\\n\\n.options {\\n position: fixed;\\n width: 250px;\\n overflow: hidden; }\\n\\n.options .control {\\n padding: 6px 14px; }\\n\\n.options .control div {\\n padding: 6px 0; }\\n\\n.options .control h4 {\\n border-bottom: 1px solid #ccc;\\n margin: 12px 0 6px 0; }\\n\\n.options .control .skin-primary {\\n width: 32px;\\n height: 32px;\\n padding: 0;\\n overflow: hidden;\\n cursor: pointer; }\\n\\n.options .control .skin-primary .skin-secondary {\\n width: 0;\\n height: 0;\\n padding: 0;\\n border-bottom: 32px solid;\\n border-left: 32px solid transparent; }\\n\\n.options .control .skin-primary.indigo-light {\\n background-color: #3F51B5;\\n border: 1px solid #3F51B5; }\\n\\n.options .control .skin-primary.indigo-light .skin-secondary {\\n border-bottom-color: #ececec; }\\n\\n.options .control .skin-primary.teal-light {\\n background-color: #009688;\\n border: 1px solid #009688; }\\n\\n.options .control .skin-primary.teal-light .skin-secondary {\\n border-bottom-color: #ececec; }\\n\\n.options .control .skin-primary.red-light {\\n background-color: #F44336;\\n border: 1px solid #F44336; }\\n\\n.options .control .skin-primary.red-light .skin-secondary {\\n border-bottom-color: #ececec; }\\n\\n.options .control .skin-primary.blue-dark {\\n background-color: #0277bd;\\n border: 1px solid #0277bd; }\\n\\n.options .control .skin-primary.blue-dark .skin-secondary {\\n border-bottom-color: #262626; }\\n\\n.options .control .skin-primary.green-dark {\\n background-color: #388E3C;\\n border: 1px solid #388E3C; }\\n\\n.options .control .skin-primary.green-dark .skin-secondary {\\n border-bottom-color: #262626; }\\n\\n.options .control .skin-primary.pink-dark {\\n background-color: #D81B60;\\n border: 1px solid #D81B60; }\\n\\n.options .control .skin-primary.pink-dark .skin-secondary {\\n border-bottom-color: #262626; }\\n\\n.options .mat-radio-group {\\n display: inline-flex;\\n flex-direction: column; }\\n\\n.options .mat-radio-group .mat-radio-button {\\n margin: 2px 0; }\\n\\n.options .mat-slide-toggle {\\n height: auto; }\\n\\n.options .ps {\\n height: calc(100% - 48px); }\\n\\n.op-image {\\n box-shadow: 0 0 2px #ccc;\\n border: 2px solid;\\n border-color: transparent;\\n cursor: pointer;\\n transition: 0.2s; }\\n\\n.options-icon {\\n position: fixed;\\n top: 110px;\\n right: 0;\\n width: 40px;\\n height: 40px;\\n background: rgba(0, 0, 0, 0.7);\\n color: #fff;\\n cursor: pointer;\\n z-index: 999999; }\\n\\n.options-icon .mat-icon {\\n -webkit-animation: spin 8s linear infinite;\\n animation: spin 8s linear infinite; }\\n\\n@-webkit-keyframes spin {\\n 100% {\\n -webkit-transform: rotate(360deg); } }\\n\\n@keyframes spin {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n.back-to-top {\\n position: fixed;\\n width: 40px;\\n height: 40px;\\n cursor: pointer;\\n z-index: 999999;\\n right: 20px;\\n bottom: 20px;\\n opacity: .5;\\n color: #fff;\\n background-color: rgba(0, 0, 0, 0.75);\\n border-radius: 4px; }\\n\\n.back-to-top:hover {\\n opacity: 0.9; }\\n\\n.search-bar form input {\\n height: 28px;\\n border: none;\\n padding: 0;\\n border-radius: 15px;\\n outline: none;\\n color: #444;\\n width: 0;\\n overflow: hidden;\\n transition: 0.3s; }\\n\\n.search-bar form input.show {\\n padding: 0 8px;\\n width: 250px; }\\n\"","import { Component, OnInit, ViewChild, HostListener, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { RTLService } from '../shared/services/rtl.service';\r\nimport { Settings } from '../shared/models/app.settings';\r\nimport { MenuService } from '../theme/components/menu/menu.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'rtl-pages',\r\n templateUrl: './pages.component.html',\r\n styleUrls: ['./pages.component.scss'],\r\n providers: [MenuService]\r\n})\r\nexport class PagesComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('sidenav') sidenav: any;\r\n public settings: Settings;\r\n public menus = ['vertical', 'horizontal'];\r\n public menuOption: string;\r\n public menuTypes = ['default', 'compact', 'mini'];\r\n public menuTypeOption: string;\r\n public isStickyMenu = false;\r\n public lastScrollTop = 0;\r\n public showBackToTop = false;\r\n public toggleSearchBar = false;\r\n private defaultMenu: string;\r\n public scrolledContent: any;\r\n private unsubSettings = new Subject();\r\n\r\n constructor(public router: Router, private menuService: MenuService, private rtlService: RTLService) {\r\n this.settings = this.rtlService.getUISettings();\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n this.menuOption = this.settings.menu;\r\n this.menuTypeOption = this.settings.menuType;\r\n this.defaultMenu = this.settings.menu;\r\n }\r\n\r\n ngOnInit() {\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.unsubSettings)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n this.menuOption = this.settings.menu;\r\n this.menuTypeOption = this.settings.menuType;\r\n this.defaultMenu = this.settings.menu;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => { this.settings.loadingSpinner = false; }, 100);\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (!this.settings.sidenavIsPinned) {\r\n this.sidenav.close();\r\n }\r\n if (window.innerWidth <= 768) {\r\n this.sidenav.close();\r\n }\r\n }\r\n });\r\n if (this.settings.menu === 'vertical') {\r\n this.menuService.expandActiveSubMenu(this.menuService.getVerticalMenuItems());\r\n }\r\n }\r\n\r\n public chooseMenu() {\r\n this.defaultMenu = this.menuOption;\r\n this.settings.menu = this.menuOption;\r\n this.rtlService.updateUISettings(this.settings);\r\n this.router.navigate(['/']);\r\n }\r\n\r\n public chooseMenuType() {\r\n this.settings.menuType = this.menuTypeOption;\r\n this.rtlService.updateUISettings(this.settings);\r\n }\r\n\r\n public changeTheme(theme) {\r\n this.settings.theme = theme;\r\n this.rtlService.updateUISettings(this.settings);\r\n }\r\n\r\n public toggleSettings(toggleField: string) {\r\n this.settings[toggleField] = !this.settings[toggleField];\r\n this.rtlService.updateUISettings(this.settings);\r\n }\r\n\r\n public toggleSidenav() {\r\n this.sidenav.toggle();\r\n }\r\n\r\n public onPsScrollY(event) {\r\n this.scrolledContent = event.target;\r\n (this.scrolledContent.scrollTop > 300) ? this.showBackToTop = true : this.showBackToTop = false;\r\n if (this.settings.menu === 'horizontal') {\r\n if (this.settings.fixedHeader) {\r\n const currentScrollTop = (this.scrolledContent.scrollTop > 56) ? this.scrolledContent.scrollTop : 0;\r\n (currentScrollTop > this.lastScrollTop) ? this.isStickyMenu = true : this.isStickyMenu = false;\r\n this.lastScrollTop = currentScrollTop;\r\n } else {\r\n (this.scrolledContent.scrollTop > 56) ? this.isStickyMenu = true : this.isStickyMenu = false;\r\n }\r\n }\r\n }\r\n\r\n public scrollToTop() {\r\n const scrollDuration = 200;\r\n const scrollStep = -this.scrolledContent.scrollTop / (scrollDuration / 20);\r\n const scrollInterval = setInterval(() => {\r\n if (this.scrolledContent.scrollTop !== 0) {\r\n this.scrolledContent.scrollBy(0, scrollStep);\r\n } else {\r\n clearInterval(scrollInterval);\r\n }\r\n }, 10);\r\n if (window.innerWidth <= 768) {\r\n this.scrolledContent.scrollTop = 0;\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onWindowResize(): void {\r\n if (window.innerWidth <= 768) {\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n this.settings.menu = 'vertical';\r\n } else {\r\n (this.defaultMenu === 'horizontal') ? this.settings.menu = 'horizontal' : this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = true;\r\n this.settings.sidenavIsPinned = true;\r\n }\r\n }\r\n\r\n public closeSubMenus() {\r\n const menu = document.querySelector('.sidenav-menu-outer');\r\n if (menu) {\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n const child = menu.children[0].children[i];\r\n if (child) {\r\n if (child.children[0].classList.contains('expanded')) {\r\n child.children[0].classList.remove('expanded');\r\n child.children[1].classList.remove('show');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubSettings.next();\r\n this.unsubSettings.complete();\r\n }\r\n}\r\n","module.exports = \".mat-column-address {\\r\\n flex: 0 0 150px;\\r\\n}\\r\\n\\r\\n.mat-column-alias, .mat-column-bytes_sent, .mat-column-bytes_recv, .mat-column-sat_sent, .mat-column-sat_recv, .mat-column-inbound, .mat-column-ping_time {\\r\\n flex: 0 0 80px;\\r\\n}\\r\\n\\r\\n.mat-column-pub_key {\\r\\n margin-right: 30px;\\r\\n white-space: nowrap;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n display: table-cell;\\r\\n padding-top: 5px;\\r\\n line-height: 25px;\\r\\n min-height: 25px;\\r\\n}\\r\\n\\r\\n.wide-tooltip {\\r\\n width: 360px;\\r\\n min-width: 360px;\\r\\n}\\r\\n\"","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Add Peer</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n <form fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start\\\">\\r\\n <mat-form-field fxFlex=\\\"80\\\" fxLayoutAlign=\\\"start\\\">\\r\\n <input matInput placeholder=\\\"Lightning Address (Pubkey@IPaddress:Port)\\\" name=\\\"peerAddress\\\" [(ngModel)]=\\\"peerAddress\\\" (keyup)=\\\"validateAddress()\\\">\\r\\n </mat-form-field>\\r\\n <button fxFlex=\\\"10\\\" fxLayoutAlign=\\\"center center\\\" mat-raised-button color=\\\"primary\\\" [disabled]=\\\"invalidAddress\\\" (click)=\\\"onAddPeer()\\\">\\r\\n <p *ngIf=\\\"invalidAddress && peerAddress!==''; else addText\\\">Invalid Address</p>\\r\\n <ng-template #addText><p>Add</p></ng-template>\\r\\n </button>\\r\\n </form> \\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-table #table [dataSource]=\\\"peers\\\" matSort class=\\\"mat-elevation-z8\\\">\\r\\n <ng-container matColumnDef=\\\"pub_key\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Pub Key </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\" matTooltip=\\\"{{peer.pub_key}}\\\" [matTooltipPosition]=\\\"position\\\" matTooltipClass=\\\"wide-tooltip\\\"> {{peer.pub_key}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"alias\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Alias </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.alias}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"address\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Address </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.address}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"bytes_sent\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Bytes Sent </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.bytes_sent}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"bytes_recv\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Bytes Recv </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.bytes_recv}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"sat_sent\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Sats Sent </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.sat_sent}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"sat_recv\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Sats Recv </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.sat_recv}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"inbound\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Inbound </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.inbound}} </mat-cell>\\r\\n </ng-container>\\r\\n <ng-container matColumnDef=\\\"ping_time\\\">\\r\\n <mat-header-cell *matHeaderCellDef mat-sort-header> Ping </mat-header-cell>\\r\\n <mat-cell *matCellDef=\\\"let peer\\\"> {{peer.ping_time}} </mat-cell>\\r\\n </ng-container>\\r\\n <mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></mat-header-row>\\r\\n <mat-row *matRowDef=\\\"let row; columns: displayedColumns;\\\"></mat-row>\\r\\n </mat-table>\\r\\n </div>\\r\\n </div>\"","import { Component, OnInit, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { MatTableDataSource, MatSort, MatDialog } from '@angular/material';\r\nimport { RTLService } from '../../shared/services/rtl.service';\r\nimport { Peer } from '../../shared/models/peers';\r\nimport { LoggerService } from '../../shared/services/logger.service';\r\nimport { AlertMessageComponent } from '../../theme/components/alert-message/alert-message.component';\r\nimport { SpinnerDialogComponent } from '../../theme/components/spinner-dialog/spinner-dialog.component';\r\n\r\n@Component({\r\n selector: 'rtl-peers',\r\n templateUrl: './peers.component.html',\r\n styleUrls: ['./peers.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PeersComponent implements OnInit, OnDestroy {\r\n @ViewChild(MatSort) sort: MatSort;\r\n public position = 'above';\r\n public displayedColumns = ['pub_key', 'alias', 'address', 'bytes_sent', 'bytes_recv', 'sat_sent', 'sat_recv', 'inbound', 'ping_time'];\r\n public peerAddress = '';\r\n public invalidAddress = true;\r\n public peers: any;\r\n private peersJSONArr: Peer[] = [];\r\n private peersSub = new Subject();\r\n\r\n constructor(private rtlService: RTLService, private logger: LoggerService, public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n this.rtlService.getPeers()\r\n .takeUntil(this.peersSub)\r\n .subscribe((peers: Peer[]) => {\r\n this.peersJSONArr = peers;\r\n this.peers = (undefined === peers) ? new MatTableDataSource([]) : new MatTableDataSource<Peer>([...this.peersJSONArr]);\r\n this.peers.data = this.peersJSONArr;\r\n this.peers.sort = this.sort;\r\n this.logger.info(this.peers);\r\n });\r\n }\r\n\r\n onAddPeer() {\r\n let dialogRef = this.dialog.open(SpinnerDialogComponent, { data: { message: 'Adding Peer...'}});\r\n let deviderIndex = this.peerAddress.search('@');\r\n let pubkey = this.peerAddress.substring(0, deviderIndex);\r\n let host = this.peerAddress.substring(deviderIndex + 1);\r\n\r\n this.rtlService.addPeer(pubkey, host)\r\n .subscribe((data:any) => {\r\n dialogRef.close();\r\n this.peersJSONArr.push({pub_key: pubkey, address: host});\r\n this.peers.data = this.peersJSONArr;\r\n this.peerAddress = '';\r\n this.logger.info(data);\r\n this.dialog.open(AlertMessageComponent, { width: '700px', data: {type: 'SUCCESS', message: 'Peer Added Successfully!'}});\r\n },\r\n (err: any) => {\r\n dialogRef.close();\r\n this.dialog.open(AlertMessageComponent, { width: '700px', data: {type: 'ERROR', message: err.error.error}});\r\n this.logger.error(err);\r\n });\r\n }\r\n\r\n validateAddress() {\r\n const address_regex = '^([a-zA-Z0-9]){1,66}@(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]):[0-9]+$';\r\n this.invalidAddress = (this.peerAddress.search(address_regex) > -1) ? false : true;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.peersSub.next();\r\n this.peersSub.complete();\r\n }\r\n}\r\n","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Server Configuration</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n Work In Progress!\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rtl-server-config',\r\n templateUrl: './server-config.component.html',\r\n styleUrls: ['./server-config.component.scss']\r\n})\r\nexport class ServerConfigComponent implements OnInit {\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"<div fxLayout=\\\"column\\\">\\r\\n <div class=\\\"flex-p\\\">\\r\\n <mat-card>\\r\\n <mat-card-header>\\r\\n <mat-card-subtitle>\\r\\n <h2>Wallet</h2>\\r\\n </mat-card-subtitle>\\r\\n </mat-card-header>\\r\\n <mat-card-content>\\r\\n Work In Progress!\\r\\n </mat-card-content>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rtl-wallet',\r\n templateUrl: './wallet.component.html',\r\n styleUrls: ['./wallet.component.scss']\r\n})\r\nexport class WalletComponent implements OnInit {\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export class Settings {\n\tconstructor(\n\t\tpublic name: string,\n\t\tpublic loadingSpinner: boolean,\n\t\tpublic fixedHeader: boolean,\n\t\tpublic sidenavIsOpened: boolean,\n\t\tpublic sidenavIsPinned: boolean,\n\t\tpublic sidenavUserBlock: boolean,\n\t\tpublic menu: string,\n\t\tpublic menuType: string,\n\t\tpublic theme: string,\n\t\tpublic rtl: boolean\n\t) { }\n}\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nexport let isDebugMode = environment.isDebugMode;\r\nconst noop = (): any => undefined;\r\n\r\nexport abstract class Logger {\r\n info: any;\r\n warn: any;\r\n error: any;\r\n}\r\n\r\n@Injectable()\r\nexport class LoggerService implements Logger {\r\n info: any;\r\n warn: any;\r\n error: any;\r\n invokeConsoleMethod(type: string, args?: any): void {}\r\n}\r\n\r\n@Injectable()\r\nexport class ConsoleLoggerService implements Logger {\r\n get info() {\r\n if (isDebugMode) {\r\n return console.info.bind(console);\r\n } else {\r\n return noop;\r\n }\r\n }\r\n\r\n get warn() {\r\n if (isDebugMode) {\r\n return console.warn.bind(console);\r\n } else {\r\n return noop;\r\n }\r\n }\r\n\r\n get error() {\r\n if (isDebugMode) {\r\n return console.error.bind(console);\r\n } else {\r\n return noop;\r\n }\r\n }\r\n\r\n invokeConsoleMethod(type: string, args?: any): void {\r\n const logFn: Function = (console)[type] || console.log || noop;\r\n logFn.apply(console, [args]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\nimport { environment } from '../../../environments/environment';\r\nimport { LoggerService } from './logger.service';\r\nimport { Settings } from '../models/app.settings';\r\nimport { GetInfo } from '../models/getInfo';\r\n\r\n@Injectable()\r\nexport class RTLService {\r\n private settings = new Settings('RTL', true, true, true, true, true, 'horizontal', 'default', 'blue-dark', false); // Dafault Setting if reading file fails\r\n private information: GetInfo = {};\r\n private peers = new Observable();\r\n UIsettingsUpdated = new Subject<Settings>();\r\n informationUpdated = new Subject<any>();\r\n peersUpdated = new Subject<any>();\r\n\r\n constructor(private http: HttpClient, private logger: LoggerService) {}\r\n\r\n readInformation() {\r\n return this.information;\r\n }\r\n\r\n getInfo() {\r\n this.http.get(environment.GETINFO_API)\r\n .subscribe((data: any) => {\r\n this.information = data;\r\n if ( undefined !== this.information.chains) {\r\n this.information.chains.forEach((chain, i) => {\r\n this.information.chains[i] = this.toCapitalCase(chain);\r\n });\r\n }\r\n this.logger.info(this.information);\r\n this.informationUpdated.next(this.information);\r\n },\r\n (err: any) => {\r\n this.informationUpdated.next(err);\r\n });\r\n }\r\n\r\n getChannels(routeParam: string, channelStatus: string) {\r\n const options = (undefined === channelStatus || channelStatus === '') ? {} : { params: new HttpParams().set(channelStatus, 'true') };\r\n return this.http.get(environment.CHANNELS_API + '/' + routeParam, options);\r\n }\r\n\r\n addChannel(pubkey: string, fundingAmt: number) {\r\n return this.http.post(environment.CHANNELS_API, {node_pubkey: pubkey, local_funding_amount: fundingAmt});\r\n }\r\n\r\n readPeers() {\r\n return this.peers;\r\n }\r\n\r\n getPeers() {\r\n return this.peers = this.http.get(environment.PEERS_API);\r\n }\r\n\r\n addPeer(pubkey: string, host: string) {\r\n return this.http.post(environment.PEERS_API, {pubkey: pubkey, host: host, perm: false});\r\n }\r\n\r\n getFees() {\r\n return this.http.get(environment.FEES_API);\r\n }\r\n\r\n getBalance(routeParam: string) {\r\n if (undefined === routeParam || null === routeParam) {\r\n routeParam = '';\r\n }\r\n return this.http.get(environment.BALANCE_API + '/' + routeParam);\r\n }\r\n\r\n operateWallet(operation: string, pwd: string) {\r\n return this.http.post(environment.WALLET_API + '/' + operation, { wallet_password: pwd });\r\n }\r\n\r\n getUISettings() {\r\n return this.settings;\r\n }\r\n\r\n fetchUISettings() {\r\n this.http.get(environment.UI_SETTINGS_API)\r\n .subscribe((data: any) => {\r\n this.settings = data.settings;\r\n this.logger.info(this.settings);\r\n this.UIsettingsUpdated.next(this.settings);\r\n });\r\n }\r\n\r\n updateUISettings(settings: Settings) {\r\n this.logger.info('Updated Settings:');\r\n this.logger.info(settings);\r\n this.http.post(environment.UI_SETTINGS_API, { updatedSettings: settings })\r\n .subscribe((data: any) => {\r\n this.logger.info(data);\r\n this.UIsettingsUpdated.next(settings);\r\n },\r\n (err: any) => {\r\n this.logger.error('UI Settings Updation Failed!');\r\n });\r\n }\r\n\r\n toCapitalCase(str: string) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule } from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule\r\n ],\r\n exports: [\r\n FlexLayoutModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatStepperModule\r\n ],\r\n declarations: []\r\n})\r\nexport class SharedModule { }\r\n","module.exports = \"<div fxLayout=\\\"row\\\">\\n <div class=\\\"w-100\\\">\\n <mat-card-header class=\\\"bg-primary p-1\\\">\\n <h2 fxFlex=\\\"93\\\">{{data.type}}</h2>\\n <mat-icon fxFlex=\\\"7\\\" fxLayoutAlign=\\\"end\\\" type=\\\"button\\\" (click)=\\\"onClose()\\\">close</mat-icon>\\n </mat-card-header>\\n <mat-card-content class=\\\"m-0\\\">\\n <p class=\\\"pb-2 p-2\\\">{{data.message}}</p>\\n <mat-divider class=\\\"pb-1\\\"></mat-divider>\\n <div fxLayoutAlign=\\\"center\\\">\\n <button mat-raised-button color=\\\"primary\\\" class=\\\"mb-1\\\" type=\\\"button\\\" (click)=\\\"onClose()\\\">Close</button>\\n </div>\\n </mat-card-content>\\n </div>\\n</div>\\n\"","module.exports = \".p-2 {\\n padding: 1rem; }\\n\\n.pb-1 {\\n padding-bottom: 0.3rem; }\\n\\n.pb-2 {\\n padding-bottom: 1rem; }\\n\\n.mb-1 {\\n margin-bottom: 0.5rem; }\\n\\n.mat-icon[type=\\\"button\\\"] {\\n cursor: pointer; }\\n\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\n\nexport interface AlertData {\n type: string; // INFO/WARN/ERROR/SUCCESS\n message: string;\n}\n\n@Component({\n selector: 'rtl-alert-message',\n templateUrl: './alert-message.component.html',\n styleUrls: ['./alert-message.component.scss']\n})\nexport class AlertMessageComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef<AlertMessageComponent>, @Inject(MAT_DIALOG_DATA) public data: AlertData) { }\n\n ngOnInit() {\n }\n\n onClose() {\n this.dialogRef.close();\n }\n}\n","module.exports = \"<div fxLayout=\\\"row wrap\\\" *ngIf=\\\"router.url != '/'\\\">\\r\\n <div fxFlex=\\\"100\\\" class=\\\"flex-p\\\">\\r\\n <mat-card fxLayout=\\\"row\\\" class=\\\"breadcrumb\\\">\\r\\n <a *ngIf=\\\"router.url != '/'\\\" routerLink=\\\"/home\\\" class=\\\"breadcrumb-item\\\" fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start center\\\" (click)=\\\"closeSubMenus()\\\">\\r\\n <mat-icon>home</mat-icon>\\r\\n <span class=\\\"breadcrumb-title\\\">Home</span>\\r\\n </a>\\r\\n <div *ngFor=\\\"let breadcrumb of breadcrumbs; let i = index;\\\" class=\\\"breadcrumb-item\\\" fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start center\\\">\\r\\n <a [hidden]=\\\"i == (breadcrumbs.length - 1)\\\" [routerLink]=\\\"[breadcrumb.url]\\\">{{breadcrumb.name}}</a>\\r\\n <span [hidden]=\\\"i != (breadcrumbs.length - 1)\\\" class=\\\"breadcrumb-title active\\\">{{breadcrumb.name}}</span>\\r\\n </div>\\r\\n </mat-card>\\r\\n </div>\\r\\n</div>\"","module.exports = \".breadcrumb {\\n padding: 8px; }\\n .breadcrumb .mat-icon {\\n font-size: 20px;\\n height: 20px;\\n width: 20px;\\n padding: 0 6px; }\\n .breadcrumb .breadcrumb-title.active {\\n text-transform: uppercase;\\n font-weight: 500; }\\n .breadcrumb .breadcrumb-item + .breadcrumb-item:before {\\n display: inline-block;\\n padding-right: .5rem;\\n padding-left: .5rem;\\n content: \\\"/\\\"; }\\n\"","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router, ActivatedRouteSnapshot, UrlSegment, NavigationEnd } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Settings } from '../../../shared/models/app.settings';\r\nimport { RTLService } from '../../../shared/services/rtl.service';\r\n\r\n@Component({\r\n selector: 'rtl-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\r\n private unsubSettings = new Subject();\r\n public pageTitle: string;\r\n public breadcrumbs: {\r\n name: string;\r\n url: string\r\n }[] = [];\r\n\r\n public settings: Settings;\r\n constructor(public router: Router, public activatedRoute: ActivatedRoute, public title: Title, private rtlService: RTLService) {\r\n this.settings = this.rtlService.getUISettings();\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.breadcrumbs = [];\r\n this.parseRoute(this.router.routerState.snapshot.root);\r\n this.pageTitle = '';\r\n this.breadcrumbs.forEach(breadcrumb => {\r\n this.pageTitle += ' > ' + breadcrumb.name;\r\n });\r\n this.title.setTitle(this.settings.name + this.pageTitle);\r\n }\r\n });\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.unsubSettings)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n });\r\n }\r\n\r\n private parseRoute(node: ActivatedRouteSnapshot) {\r\n if (node.data['breadcrumb']) {\r\n if (node.url.length) {\r\n let urlSegments: UrlSegment[] = [];\r\n node.pathFromRoot.forEach(routerState => {\r\n urlSegments = urlSegments.concat(routerState.url);\r\n });\r\n const url = urlSegments.map(urlSegment => {\r\n return urlSegment.path;\r\n }).join('/');\r\n this.breadcrumbs.push({\r\n name: node.data['breadcrumb'],\r\n url: '/' + url\r\n });\r\n }\r\n }\r\n if (node.firstChild) {\r\n this.parseRoute(node.firstChild);\r\n }\r\n }\r\n\r\n public closeSubMenus() {\r\n const menu = document.querySelector('.sidenav-menu-outer');\r\n if (menu) {\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n const child = menu.children[0].children[i];\r\n if (child) {\r\n if (child.children[0].classList.contains('expanded')) {\r\n child.children[0].classList.remove('expanded');\r\n child.children[1].classList.remove('show');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubSettings.next();\r\n this.unsubSettings.complete();\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, ViewChild, HostListener, ElementRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rtl-fullscreen',\r\n encapsulation: ViewEncapsulation.None,\r\n template: `\r\n <button mat-icon-button class=\"full-screen\">\r\n <mat-icon *ngIf=\"!toggle\" #expand>fullscreen</mat-icon>\r\n <mat-icon *ngIf=\"toggle\" #compress>fullscreen_exit</mat-icon>\r\n </button>`\r\n})\r\nexport class FullScreenComponent {\r\n toggle = false;\r\n @ViewChild('expand') private expand: ElementRef;\r\n @ViewChild('compress') private compress: ElementRef;\r\n\r\n requestFullscreen(elem) {\r\n if (elem.requestFullscreen) {\r\n elem.requestFullscreen();\r\n } else if (elem.webkitRequestFullscreen) {\r\n elem.webkitRequestFullscreen();\r\n } else if (elem.mozRequestFullScreen) {\r\n elem.mozRequestFullScreen();\r\n } else if (elem.msRequestFullscreen) {\r\n elem.msRequestFullscreen();\r\n } else {\r\n console.log('Fullscreen API is not supported.');\r\n }\r\n }\r\n\r\n exitFullscreen() {\r\n if (document.exitFullscreen) {\r\n document.exitFullscreen();\r\n } else if (document.webkitExitFullscreen) {\r\n document.webkitExitFullscreen();\r\n } else if (document.mozCancelFullScreen) {\r\n document.mozCancelFullScreen();\r\n } else if (document.msExitFullscreen) {\r\n document.msExitFullscreen();\r\n } else {\r\n console.log('Fullscreen API is not supported.');\r\n }\r\n }\r\n\r\n @HostListener('click') getFullscreen() {\r\n if (this.expand) {\r\n this.requestFullscreen(document.documentElement);\r\n }\r\n if (this.compress) {\r\n this.exitFullscreen();\r\n }\r\n }\r\n\r\n @HostListener('window:resize') onFullScreenChange() {\r\n const fullscreenElement = document.fullscreenElement || document.mozFullScreenElement ||\r\n document.webkitFullscreenElement || document.msFullscreenElement;\r\n if (fullscreenElement != null) {\r\n this.toggle = true;\r\n } else {\r\n this.toggle = false;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"<div [fxLayout]=\\\"(menuParentId == 0) ? 'row' : 'column'\\\" fxLayoutAlign=\\\"start center\\\">\\r\\n <div *ngFor=\\\"let menu of menuItems\\\" class=\\\"horizontal-menu-item w-100\\\">\\r\\n <a *ngIf=\\\"menu.routerLink && !menu.hasSubMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [routerLink]=\\\"[menu.routerLink]\\\" routerLinkActive=\\\"active-link\\\" [routerLinkActiveOptions]=\\\"{exact:true}\\\" [matTooltip]=\\\"menu.title\\\"\\r\\n matTooltipPosition=\\\"above\\\" [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\" [id]=\\\"'horizontal-menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"horizontal-menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"horizontal-menu-title\\\">{{menu.title}}</span>\\r\\n </a>\\r\\n <a *ngIf=\\\"menu.href && !menu.subMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [attr.href]=\\\"menu.href || ''\\\" [attr.target]=\\\"menu.target || ''\\\" [matTooltip]=\\\"menu.title\\\" matTooltipPosition=\\\"above\\\"\\r\\n [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\" [id]=\\\"'horizontal-menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"horizontal-menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"horizontal-menu-title\\\">{{menu.title}}</span>\\r\\n </a>\\r\\n <a *ngIf=\\\"menu.hasSubMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [matTooltip]=\\\"menu.title\\\" matTooltipPosition=\\\"above\\\" [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\"\\r\\n [id]=\\\"'horizontal-menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"horizontal-menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"horizontal-menu-title\\\">{{menu.title}}</span>\\r\\n </a>\\r\\n <div *ngIf=\\\"menu.hasSubMenu\\\" class=\\\"horizontal-sub-menu\\\" [id]=\\\"'horizontal-sub-menu-'+menu.id\\\">\\r\\n <rtl-horizontal-menu [menuParentId]=\\\"menu.id\\\"></rtl-horizontal-menu>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"","module.exports = \".horizontal-menu-item {\\n position: relative; }\\n .horizontal-menu-item .mat-button {\\n height: 56px;\\n font-weight: 400; }\\n .horizontal-menu-item .horizontal-menu-icon {\\n margin-right: 5px; }\\n .horizontal-menu-item .horizontal-sub-menu {\\n position: absolute;\\n width: 190px;\\n max-height: 0;\\n overflow: hidden;\\n transition: max-height 0.25s ease-out; }\\n .horizontal-menu-item .horizontal-sub-menu .mat-button {\\n width: 100%;\\n height: 36px; }\\n .horizontal-menu-item:hover > .horizontal-sub-menu {\\n max-height: 500px;\\n overflow: visible; }\\n .horizontal-sub-menu .horizontal-sub-menu {\\n left: 100%;\\n top: 0; }\\n\"","import { Component, OnInit, Input, ViewChild, ViewEncapsulation, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { Settings } from '../../../../shared/models/app.settings';\r\nimport { MenuService } from '../menu.service';\r\nimport { MatMenuTrigger } from '@angular/material';\r\nimport { RTLService } from '../../../../shared/services/rtl.service';\r\n\r\n@Component({\r\n selector: 'rtl-horizontal-menu',\r\n templateUrl: './horizontal-menu.component.html',\r\n styleUrls: ['./horizontal-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService]\r\n})\r\nexport class HorizontalMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() menuParentId;\r\n public menuItems: Array<any>;\r\n public settings: Settings;\r\n private unsubSettings = new Subject();\r\n @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\r\n\r\n constructor(public menuService: MenuService, public router: Router, private rtlService: RTLService) {\r\n this.settings = this.rtlService.getUISettings();\r\n }\r\n\r\n ngOnInit() {\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.unsubSettings)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n });\r\n this.menuItems = this.menuService.getHorizontalMenuItems();\r\n this.menuItems = this.menuItems.filter(item => item.parentId === this.menuParentId);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.settings.fixedHeader) {\r\n const mainContent = document.getElementById('main-content');\r\n if (mainContent) {\r\n mainContent.scrollTop = 0;\r\n }\r\n } else {\r\n document.getElementsByClassName('mat-drawer-content')[0].scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubSettings.next();\r\n this.unsubSettings.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\nimport { Menu, verticalMenuItems, horizontalMenuItems } from './menu';\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n\r\n constructor(private location: Location,\r\n private router: Router) { }\r\n\r\n public getVerticalMenuItems(): Array<Menu> {\r\n return verticalMenuItems;\r\n }\r\n\r\n public getHorizontalMenuItems(): Array<Menu> {\r\n return horizontalMenuItems;\r\n }\r\n\r\n public expandActiveSubMenu(menu: Array<Menu>) {\r\n const url = this.location.path();\r\n const routerLink = url; // url.substring(1, url.length);\r\n const activeMenuItem = menu.filter(item => item.routerLink === routerLink);\r\n if (activeMenuItem[0]) {\r\n let menuItem = activeMenuItem[0];\r\n while (menuItem.parentId !== 0) {\r\n const parentMenuItem = menu.filter(item => item.id === menuItem.parentId)[0];\r\n menuItem = parentMenuItem;\r\n this.toggleMenuItem(menuItem.id);\r\n }\r\n }\r\n }\r\n\r\n public toggleMenuItem(menuId) {\r\n const menuItem = document.getElementById('menu-item-' + menuId);\r\n const subMenu = document.getElementById('sub-menu-' + menuId);\r\n if (subMenu) {\r\n if (subMenu.classList.contains('show')) {\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n } else {\r\n subMenu.classList.add('show');\r\n menuItem.classList.add('expanded');\r\n }\r\n }\r\n }\r\n\r\n public closeOtherSubMenus(menu: Array<Menu>, menuId) {\r\n const currentMenuItem = menu.filter(item => item.id === menuId)[0];\r\n if (currentMenuItem.parentId === 0 && !currentMenuItem.target) {\r\n menu.forEach(item => {\r\n if (item.id !== menuId) {\r\n const subMenu = document.getElementById('sub-menu-' + item.id);\r\n const menuItem = document.getElementById('menu-item-' + item.id);\r\n if (subMenu) {\r\n if (subMenu.classList.contains('show')) {\r\n subMenu.classList.remove('show');\r\n menuItem.classList.remove('expanded');\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","export class Menu {\r\n constructor(\r\n public id: number,\r\n public title: string,\r\n public routerLink: string,\r\n public href: string,\r\n public icon: string,\r\n public target: string,\r\n public hasSubMenu: boolean,\r\n public parentId: number\r\n ) { }\r\n}\r\n\r\nexport const verticalMenuItems = [\r\n new Menu(1, 'Home', '/home', null, 'home', null, false, 0),\r\n new Menu(2, 'Peers', '/peers', null, 'group', null, false, 0),\r\n new Menu(3, 'Channels', '/channels', null, 'settings_ethernet', null, false, 0),\r\n // new Menu(4, 'Wallet', '/wallet', null, 'account_balance_wallet', null, false, 0),\r\n // new Menu(5, 'Invoices', '/invoices', null, 'receipt', null, false, 0),\r\n // new Menu(50, 'Server Config', '/sconfig', null, 'settings', null, false, 0),\r\n new Menu(51, 'Help', '/help', null, 'help', null, false, 0)\r\n];\r\n\r\nexport const horizontalMenuItems = [\r\n new Menu(1, 'Home', '/home', null, 'home', null, false, 0),\r\n new Menu(2, 'Peers', '/peers', null, 'group', null, false, 0),\r\n new Menu(3, 'Channels', '/channels', null, 'settings_ethernet', null, false, 0)\r\n // new Menu(4, 'Wallet', '/wallet', null, 'account_balance_wallet', null, false, 0),\r\n // new Menu(5, 'Invoices', '/invoices', null, 'receipt', null, false, 0)\r\n];\r\n","module.exports = \"<div *ngFor=\\\"let menu of parentMenu\\\" class=\\\"menu-item\\\">\\r\\n <a *ngIf=\\\"menu.routerLink && !menu.hasSubMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [routerLink]=\\\"[menu.routerLink]\\\" routerLinkActive=\\\"active-link\\\" [routerLinkActiveOptions]=\\\"{exact:true}\\\" [matTooltip]=\\\"menu.title\\\"\\r\\n matTooltipPosition=\\\"after\\\" [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\" (click)=\\\"onClick(menu.id)\\\"\\r\\n [id]=\\\"'menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"menu-title\\\">{{menu.title}}</span>\\r\\n </a>\\r\\n <a *ngIf=\\\"menu.href && !menu.subMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [attr.href]=\\\"menu.href || ''\\\" [attr.target]=\\\"menu.target || ''\\\" [matTooltip]=\\\"menu.title\\\" matTooltipPosition=\\\"after\\\" [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\"\\r\\n (click)=\\\"onClick(menu.id)\\\" [id]=\\\"'menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"menu-title\\\">{{menu.title}}</span>\\r\\n </a>\\r\\n <a *ngIf=\\\"menu.hasSubMenu\\\" mat-button fxLayout=\\\"row\\\" [fxLayoutAlign]=\\\"(settings.menuType=='default') ? 'start center' : 'center center'\\\"\\r\\n [matTooltip]=\\\"menu.title\\\" matTooltipPosition=\\\"after\\\" [matTooltipDisabled]=\\\"(settings.menuType=='mini') ? 'false' : 'true'\\\"\\r\\n (click)=\\\"onClick(menu.id)\\\" [id]=\\\"'menu-item-'+menu.id\\\">\\r\\n <mat-icon class=\\\"menu-icon\\\">{{menu.icon}}</mat-icon>\\r\\n <span class=\\\"menu-title\\\">{{menu.title}}</span>\\r\\n <mat-icon class=\\\"menu-expand-icon transition-2\\\">arrow_drop_down</mat-icon>\\r\\n </a>\\r\\n <div *ngIf=\\\"menu.hasSubMenu\\\" class=\\\"sub-menu\\\" [id]=\\\"'sub-menu-'+menu.id\\\">\\r\\n <rtl-vertical-menu [menuItems]=\\\"menuItems\\\" [menuParentId]=\\\"menu.id\\\"></rtl-vertical-menu>\\r\\n </div>\\r\\n</div>\"","module.exports = \".menu-icon {\\n margin-right: 12px; }\\n\\n.menu-expand-icon {\\n position: absolute;\\n right: 10px;\\n top: 10px; }\\n\\n.menu-item .mat-button {\\n padding: 0;\\n padding-top: 3px;\\n padding-bottom: 3px;\\n width: 100%;\\n font-weight: 400; }\\n\\n.menu-item .mat-button.expanded .menu-expand-icon {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg); }\\n\\n.menu-item .mat-button-wrapper {\\n padding-left: 16px; }\\n\\n.sub-menu {\\n max-height: 0;\\n overflow: hidden;\\n transition: max-height 0.25s ease-out; }\\n\\n.sub-menu .sub-menu .mat-button {\\n padding-left: 40px; }\\n\\n.sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 60px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 80px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 100px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 120px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 140px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 160px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 180px; }\\n\\n.sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .sub-menu .mat-button {\\n padding-left: 200px; }\\n\\n.sub-menu .mat-button {\\n padding-left: 20px; }\\n\\n.sub-menu.show {\\n max-height: 500px;\\n transition: max-height 0.25s ease-in; }\\n\"","import { Component, OnInit, Input, ViewEncapsulation, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MenuService } from '../menu.service';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { Settings } from '../../../../shared/models/app.settings';\r\nimport { RTLService } from '../../../../shared/services/rtl.service';\r\n\r\n@Component({\r\n selector: 'rtl-vertical-menu',\r\n templateUrl: './vertical-menu.component.html',\r\n styleUrls: ['./vertical-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService]\r\n})\r\nexport class VerticalMenuComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @Input() menuItems;\r\n @Input() menuParentId;\r\n parentMenu: Array<any>;\r\n public settings: Settings;\r\n private unsubSettings = new Subject();\r\n\r\n constructor(public menuService: MenuService, public router: Router, private rtlService: RTLService) {\r\n this.settings = this.rtlService.getUISettings();\r\n }\r\n\r\n ngOnInit() {\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.unsubSettings)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n if (window.innerWidth <= 768) {\r\n this.settings.menu = 'vertical';\r\n this.settings.sidenavIsOpened = false;\r\n this.settings.sidenavIsPinned = false;\r\n }\r\n });\r\n this.parentMenu = this.menuItems.filter(item => item.parentId === this.menuParentId);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.settings.fixedHeader) {\r\n const mainContent = document.getElementById('main-content');\r\n if (mainContent) {\r\n mainContent.scrollTop = 0;\r\n }\r\n } else {\r\n document.getElementsByClassName('mat-drawer-content')[0].scrollTop = 0;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onClick(menuId) {\r\n this.menuService.toggleMenuItem(menuId);\r\n this.menuService.closeOtherSubMenus(this.menuItems, menuId);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubSettings.next();\r\n this.unsubSettings.complete();\r\n }\r\n\r\n}\r\n","module.exports = \"<mat-toolbar color=\\\"primary\\\" [fxLayoutAlign]=\\\"(settings.menuType != 'mini') ? 'space-between center' : 'center center'\\\" class=\\\"sidenav-header\\\">\\r\\n <a *ngIf=\\\"settings.menuType == 'mini'\\\" mat-raised-button color=\\\"accent\\\" routerLink=\\\"/home\\\" (click)=\\\"closeSubMenus()\\\" class=\\\"small-logo\\\">R</a>\\r\\n <a *ngIf=\\\"settings.menuType != 'mini'\\\" class=\\\"logo\\\" routerLink=\\\"/home\\\" (click)=\\\"closeSubMenus()\\\">RTL</a>\\r\\n <svg *ngIf=\\\"settings.menuType != 'mini'\\\" class=\\\"pin\\\" (click)=\\\"settings.sidenavIsPinned = !settings.sidenavIsPinned\\\">\\r\\n <path *ngIf=\\\"!settings.sidenavIsPinned\\\" d=\\\"M16,12V4H17V2H7V4H8V12L6,14V16H11.2V22H12.8V16H18V14L16,12Z\\\" />\\r\\n <path *ngIf=\\\"settings.sidenavIsPinned\\\" d=\\\"M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z\\\"\\r\\n />\\r\\n </svg>\\r\\n</mat-toolbar>\\r\\n<div fxLayout=\\\"column\\\" fxLayoutAlign=\\\"center center\\\" class=\\\"user-block transition-2\\\" [class.show]=\\\"settings.sidenavUserBlock\\\">\\r\\n <div [fxLayout]=\\\"(settings.menuType != 'default') ? 'column' : 'row'\\\" [fxLayoutAlign]=\\\"(settings.menuType != 'default') ? 'center center' : 'space-around center'\\\"\\r\\n class=\\\"user-info-wrapper\\\">\\r\\n <div class=\\\"user-info\\\">\\r\\n <!-- <img [src]=\\\"userImage\\\" alt=\\\"user-image\\\"><br> -->\\r\\n <p class=\\\"name\\\">Alias: <br>{{information?.alias}}</p>\\r\\n <p *ngIf=\\\"information.testnet; else mainnet\\\">Chain: <br>{{information?.chains}}<span *ngIf=\\\"information.testnet\\\"> [Testnet]</span></p>\\r\\n <ng-template #mainnet>Chain: {{information?.chains}}<span *ngIf=\\\"information.testnet\\\"> [Mainnet]</span></ng-template>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<div id=\\\"sidenav-menu-outer\\\" class=\\\"sidenav-menu-outer\\\" perfectScrollbar [class.user-block-show]=\\\"settings.sidenavUserBlock\\\">\\r\\n <span *ngIf=\\\"!menuItems\\\">loading....</span>\\r\\n <rtl-vertical-menu [menuItems]=\\\"menuItems\\\" [menuParentId]=\\\"0\\\"></rtl-vertical-menu>\\r\\n</div>\"","module.exports = \".pin {\\n width: 24px;\\n height: 24px;\\n cursor: pointer;\\n fill: currentColor; }\\n\\n.sidenav-header {\\n padding: 0 10px !important; }\\n\\n.user-block {\\n height: 0;\\n position: relative;\\n z-index: 1;\\n overflow: hidden; }\\n\\n.user-block img {\\n width: 80px;\\n border: 1px solid rgba(0, 0, 0, 0.2); }\\n\\n.user-block .user-info-wrapper {\\n padding: 0 6px;\\n margin: 6px 0;\\n width: 100%; }\\n\\n.user-block .user-info-wrapper .user-info {\\n text-align: center; }\\n\\n.user-block .user-info-wrapper .user-info .name {\\n font-size: 15px; }\\n\\n.user-block .user-info-wrapper .user-info .position {\\n font-size: 13px; }\\n\\n.user-block.show {\\n height: 156px; }\\n\\n.sidenav-menu-outer {\\n height: calc(100% - 56px); }\\n\\n.sidenav-menu-outer.user-block-show {\\n height: calc(100% - 212px); }\\n\"","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport 'rxjs/add/operator/takeUntil';\r\n\r\nimport { Settings } from '../../../shared/models/app.settings';\r\nimport { MenuService } from '../menu/menu.service';\r\nimport { LoggerService } from '../../../shared/services/logger.service';\r\nimport { RTLService } from '../../../shared/services/rtl.service';\r\nimport { GetInfo } from '../../../shared/models/getInfo';\r\n\r\n@Component({\r\n selector: 'rtl-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [MenuService]\r\n})\r\nexport class SidenavComponent implements OnInit, OnDestroy {\r\n public userImage = '../assets/img/RTL1.jpg';\r\n public menuItems: Array<any>;\r\n public settings: Settings;\r\n private infoSub = new Subject<void>();\r\n private settingsSub = new Subject<void>();\r\n public information: GetInfo = {};\r\n\r\n constructor(public menuService: MenuService, private rtlService: RTLService, private logger: LoggerService, private router: Router, private activateRoute: ActivatedRoute) {\r\n this.settings = this.rtlService.getUISettings();\r\n }\r\n\r\n ngOnInit() {\r\n this.menuItems = this.menuService.getVerticalMenuItems();\r\n this.information = this.rtlService.readInformation();\r\n this.rtlService.informationUpdated\r\n .takeUntil(this.infoSub)\r\n .subscribe(data => {\r\n this.information = data;\r\n this.logger.info('Server Information Updated');\r\n this.logger.info(this.information);\r\n });\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.settingsSub)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.infoSub.next();\r\n this.infoSub.complete();\r\n this.settingsSub.next();\r\n this.settingsSub.complete();\r\n }\r\n\r\n public closeSubMenus() {\r\n const menu = document.querySelector('.sidenav-menu-outer');\r\n if (menu) {\r\n for (let i = 0; i < menu.children[0].children.length; i++) {\r\n const child = menu.children[0].children[i];\r\n if (child) {\r\n if (child.children[0].classList.contains('expanded')) {\r\n child.children[0].classList.remove('expanded');\r\n child.children[1].classList.remove('show');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"<div class=\\\"spinner-container\\\">\\n <div class=\\\"spinner-circle\\\">\\n <mat-spinner color=\\\"primary\\\"></mat-spinner>\\n <h4 fxLayoutAlign=\\\"center\\\">{{data.message}}</h4>\\n </div>\\n</div>\\n\"","module.exports = \".spinner-container {\\n position: absolute; }\\n\\n.spinner-circle {\\n position: relative;\\n top: -100px;\\n left: -100px; }\\n\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\n\n@Component({\n selector: 'rtl-spinner-dialog',\n templateUrl: './spinner-dialog.component.html',\n styleUrls: ['./spinner-dialog.component.scss']\n})\nexport class SpinnerDialogComponent implements OnInit {\n\n constructor(public dialogRef: MatDialogRef<SpinnerDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) { }\n\n ngOnInit() {\n }\n\n}\n","module.exports = \"<button mat-icon-button [matMenuTriggerFor]=\\\"userMenu\\\" #userMenuTrigger=\\\"matMenuTrigger\\\">\\r\\n <mat-icon>account_circle</mat-icon>\\r\\n</button>\\r\\n<mat-menu #userMenu=\\\"matMenu\\\" [overlapTrigger]=\\\"false\\\" class=\\\"toolbar-dropdown-menu user-menu\\\">\\r\\n <mat-toolbar color=\\\"primary\\\">\\r\\n <div fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start start\\\" class=\\\"user-info\\\">\\r\\n <p class=\\\"name\\\">Alias: {{information?.alias}}\\r\\n <br>\\r\\n <span fxLayoutAlign=\\\"start start\\\" *ngIf=\\\"information.testnet; else mainnet\\\">Chain: {{information?.chains}}<span *ngIf=\\\"information.testnet\\\"> [Testnet]</span></span>\\r\\n <ng-template #mainnet>Chain: {{information?.chains}}<span *ngIf=\\\"information.testnet\\\"> [Mainnet]</span></ng-template>\\r\\n </p>\\r\\n </div>\\r\\n </mat-toolbar>\\r\\n <a mat-menu-item routerLink=\\\"/start\\\">\\r\\n <mat-icon>lock_open</mat-icon>\\r\\n <span routerLink=\\\"/start\\\">Unlock Wallet</span>\\r\\n </a>\\r\\n <!-- <a mat-menu-item routerLink=\\\"settings\\\">\\r\\n <mat-icon>settings</mat-icon>\\r\\n <span routerLink=\\\"/sconfig\\\">Server Config</span>\\r\\n </a> -->\\r\\n <a mat-menu-item routerLink=\\\"/help\\\">\\r\\n <mat-icon>help</mat-icon>\\r\\n <span routerLink=\\\"/help\\\">Help</span>\\r\\n </a>\\r\\n</mat-menu>\"","module.exports = \".user-menu .mat-toolbar, .user-menu .mat-toolbar-row {\\n height: 100px !important;\\n padding: 0 16px !important; }\\n\\n.user-menu .user-info {\\n width: 230px; }\\n\\n.user-menu .user-info p {\\n font-size: 16px;\\n line-height: 22px;\\n text-align: center; }\\n\\n.user-menu .mat-menu-item {\\n height: 36px;\\n line-height: 36px; }\\n\"","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport 'rxjs/add/operator/takeUntil';\r\n\r\nimport { Settings } from '../../../shared/models/app.settings';\r\nimport { LoggerService } from '../../../shared/services/logger.service';\r\nimport { RTLService } from '../../../shared/services/rtl.service';\r\nimport { GetInfo } from '../../../shared/models/getInfo';\r\n\r\n@Component({\r\n selector: 'rtl-user-menu',\r\n templateUrl: './user-menu.component.html',\r\n styleUrls: ['./user-menu.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class UserMenuComponent implements OnInit, OnDestroy {\r\n public settings: Settings;\r\n private settingsSub = new Subject<void>();\r\n private infoSub = new Subject<void>();\r\n public information: GetInfo = {};\r\n\r\n constructor(private rtlService: RTLService, private logger: LoggerService, private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.information = this.rtlService.readInformation();\r\n this.rtlService.informationUpdated\r\n .takeUntil(this.infoSub)\r\n .subscribe(data => {\r\n this.information = data;\r\n this.logger.info('Server Information Updated');\r\n this.logger.info(this.information);\r\n });\r\n this.rtlService.UIsettingsUpdated\r\n .takeUntil(this.settingsSub)\r\n .subscribe( settings => {\r\n this.settings = settings;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.infoSub.next();\r\n this.infoSub.complete();\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'pagination'\r\n})\r\nexport class PaginationPipe implements PipeTransform {\r\n transform(data, args?): Array<any> {\r\n if (!args) {\r\n args = {\r\n pageIndex: 0,\r\n pageSize: 6,\r\n length: data.length\r\n };\r\n }\r\n return this.paginate(data, args.pageSize, args.pageIndex);\r\n }\r\n\r\n paginate(array, page_size, page_number) {\r\n return array.slice(page_number * page_size, (page_number + 1) * page_size);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { PaginationPipe } from './pagination/pagination.pipe';\r\nimport { ProfilePicturePipe } from './profilePicture/profilePicture.pipe';\r\nimport { TruncatePipe } from './truncate/truncate.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n PaginationPipe,\r\n ProfilePicturePipe,\r\n TruncatePipe\r\n ],\r\n exports: [\r\n PaginationPipe,\r\n ProfilePicturePipe,\r\n TruncatePipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'profilePicture' })\r\nexport class ProfilePicturePipe implements PipeTransform {\r\n transform(input: string, ext = 'jpg'): string {\r\n return '../assets/img/profile/' + input + '.' + ext;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'truncate'\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n transform(value: string, args?): string {\r\n const limit = args > 0 ? parseInt(args, 0) : 10;\r\n return value.length > limit ? value.substring(0, limit) + '...' : value;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { OverlayContainer } from '@angular/cdk/overlay';\r\n\r\n@Injectable()\r\nexport class CustomOverlayContainer extends OverlayContainer {\r\n _createContainer(): void {\r\n const container = document.createElement('div');\r\n container.classList.add('cdk-overlay-container');\r\n document.getElementById('app').appendChild(container);\r\n this._containerElement = container;\r\n }\r\n}\r\n","export const API_URL = '/api';\r\n\r\nexport const environment = {\r\n production: false,\r\n isDebugMode: true,\r\n BALANCE_API: API_URL + '/balance',\r\n FEES_API: API_URL + '/fees',\r\n PEERS_API: API_URL + '/peers',\r\n CHANNELS_API: API_URL + '/channels',\r\n GETINFO_API: API_URL + '/getinfo',\r\n WALLET_API: API_URL + '/wallet',\r\n UI_SETTINGS_API: API_URL + '/uisettings'\r\n};\r\n","import 'hammerjs';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n"],"sourceRoot":""} |