pubkey, dark theme, settings

pubkey, dark theme, settings
pull/260/head
Shahana Farooqui 5 years ago
parent 860e72800e
commit fabb0dd126

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -9,8 +9,8 @@
<link rel="icon" type="image/png" sizes="32x32" href="assets/images/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="assets/images/favicon/favicon-16x16.png">
<link rel="manifest" href="assets/images/favicon/site.webmanifest">
<link rel="stylesheet" href="styles.10ea0d6f9c4caa3ba27d.css"></head>
<link rel="stylesheet" href="styles.84c4f2eeba11b6c3941d.css"></head>
<body>
<rtl-app></rtl-app>
<script src="runtime.900a115b5ee8fedc9bea.js"></script><script src="polyfills-es5.92f4069201c83f4833ef.js" nomodule></script><script src="polyfills.5ddcccdb990eb395f306.js"></script><script src="main.be5448d1824fb41b28d5.js"></script></body>
<script src="runtime.26897108a1d8ebca5e43.js"></script><script src="polyfills-es5.92f4069201c83f4833ef.js" nomodule></script><script src="polyfills.5ddcccdb990eb395f306.js"></script><script src="main.608748b3b02cc42e962a.js"></script></body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +1 @@
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],p=0,s=[];p<i.length;p++)o[a=i[p]]&&s.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);s.length;)s.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({}[e]||e)+"."+{1:"50859d501eab13ab41b8",6:"244e17a7d7b515a4b924",7:"3c3b40e20ade1c335151"}[e]+".js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([]);
!function(e){function r(r){for(var n,a,i=r[0],c=r[1],f=r[2],p=0,s=[];p<i.length;p++)o[a=i[p]]&&s.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(l&&l(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({}[e]||e)+"."+{1:"50859d501eab13ab41b8",6:"6380121866d542a838ed",7:"c85e0b7a64fe57c94ad8"}[e]+".js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var f=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var f=0;f<i.length;f++)r(i[f]);var l=c;t()}([]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,5 +1,5 @@
<div fxLayout="column" id="rtl-container" class="rtl-container" [ngClass]="[settings.themeColor, settings.themeMode, settings.fontSize]" [class.horizontal]="settings.menu === 'horizontal'" [class.compact]="settings.menuType === 'compact'" [class.mini]="settings.menuType === 'mini'">
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="padding-gap-x bg-primary" *ngIf="settings.menu === 'vertical'">
<mat-toolbar fxLayout="row" fxLayoutAlign="space-between center" class="padding-gap-x bg-primary rtl-top-toolbar" *ngIf="settings.menu === 'vertical'">
<div fxLayoutAlign="center center">
<button *ngIf="settings.menu === 'vertical'" class="top-toolbar-icon" mat-icon-button (click)="sideNavToggle()">
<mat-icon>menu</mat-icon>

@ -111,7 +111,7 @@
<mat-divider></mat-divider>
</mat-card-content>
</mat-card>
<mat-card fxFlex="100" [ngClass]="{'mt-2 custom-card error-border': flgLoading[5]==='error','mt-2 custom-card': true}">
<mat-card fxFlex="100" [ngClass]="{'mt-1 custom-card error-border': flgLoading[5]==='error','mt-1 custom-card': true}">
<mat-card-header class="bg-primary" fxLayoutAlign="center center">
<mat-card-title class="m-0 pt-2">
<h5>Channel Status</h5>

@ -144,7 +144,14 @@ export class OnChainSendComponent implements OnInit, OnDestroy {
}
resetData() {
this.transaction = {};
this.selTransType = '1';
if (this.sweepAll) {
this.transaction.address = '';
this.transaction.blocks = null;
this.transaction.fees = null;
} else {
this.transaction = {};
}
}
onAmountUnitChange(event: any) {

@ -32,7 +32,7 @@
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="33" *ngIf="selTransType=='0'">
<input matInput placeholder="Channel Opening Priority" disabled>
<input matInput placeholder="Default" disabled>
</mat-form-field>
<mat-form-field fxFlex="33" *ngIf="selTransType=='1'">
<input matInput [(ngModel)]="transTypeValue.blocks" placeholder="Target Confirmation Blocks" type="number" name="blocks" step="1" min="0" required tabindex="7" #blocks="ngModel">
@ -45,7 +45,7 @@
</div>
</div>
<div fxLayout="column" fxLayout.gt-sm="row wrap" fxFlex="30" fxLayoutAlign="start start" fxLayoutAlign.gt-sm="space-between start">
<button fxFlex="48" fxLayoutAlign="center center" mat-stroked-button color="primary" tabindex="10" type="reset" (click)="resetData()">Clear</button>
<button fxFlex="48" fxLayoutAlign="center center" mat-stroked-button color="primary" tabindex="10" type="reset" (click)="resetData()">Clear Field</button>
<button fxFlex="48" fxLayoutAlign="center center" mat-raised-button color="primary" (click)="onOpenChannel()" [disabled]="selectedPeer === '' || fundingAmount == null || (totalBalance - ((fundingAmount) ? fundingAmount : 0) < 0)" type="submit" tabindex="11">
<p *ngIf="(selectedPeer === '' || fundingAmount == null) && (selPeer.touched || selPeer.dirty) && (amount.touched || amount.dirty); else openText">Invalid Values</p>
<ng-template #openText><p>Open Channel</p></ng-template>

@ -249,7 +249,6 @@ export class ChannelManageComponent implements OnInit, OnDestroy {
this.showAdvanced = !this.showAdvanced;
if (!this.showAdvanced) {
this.spendUnconfirmed = false;
this.isPrivate = false;
this.selTransType = '0';
this.transTypeValue = {blocks: '', fees: ''};
}

@ -1,4 +1,4 @@
<div fxLayout="column">
<div fxLayout="column" class="mt-2">
<div fxLayout="column" fxLayoutAlign="space-between stretch" fxLayout.gt-md="row wrap">
<h4 fxFlex="100" class="blinker">Save your backup files in a redundant location.</h4>
<h4 fxFlex="100" class="mt-1">Backup folder location: {{selNode.channelBackupPath}}</h4>

@ -1,5 +1,5 @@
<div fxLayout="column">
<div fxLayout="row" fxLayoutAlign="start center" class="padding-gap-x page-sub-title-container mt-minus-2">
<div fxLayout="row" fxLayoutAlign="start center" class="padding-gap-x page-sub-title-container">
<div fxFlex="70"></div>
<mat-form-field fxFlex="30">
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">

@ -1,5 +1,5 @@
<div fxLayout="column">
<div fxLayout="row" fxLayoutAlign="start center" class="padding-gap-x page-sub-title-container mt-minus-2">
<div fxLayout="row" fxLayoutAlign="start center" class="padding-gap-x page-sub-title-container">
<div fxFlex="70"></div>
<mat-form-field fxFlex="30">
<input matInput (keyup)="applyFilter()" [(ngModel)]="selFilter" name="filter" placeholder="Filter">

@ -1,16 +1,16 @@
<div fxLayout="column">
<div fxLayout="column" fxLayoutAlign="space-between stretch" fxLayout.gt-md="row wrap" *ngIf="allRestoreExists">
<h4 fxFlex="100" class="mt-1">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
<div fxLayout="column" class="mt-2">
<div fxLayout="column" fxLayoutAlign="space-between start" fxLayout.gt-md="row wrap" *ngIf="allRestoreExists">
<h4 fxFlex="100">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
<div fxLayout="row" fxFlex.gt-sm="20" fxLayoutAlign="start start" class="mt-2">
<button fxLayoutAlign="center center" mat-raised-button color="primary" tabindex="1" (click)="onRestoreChannels({})">Restore All Channels</button>
</div>
</div>
<div fxLayout="column" fxLayoutAlign="space-between stretch" fxLayout.gt-md="row wrap" *ngIf="!allRestoreExists && (!channels || channels.data.length<=0)">
<h4 fxFlex="100" class="mt-1">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
<div fxLayout="column" fxLayoutAlign="space-between start" fxLayout.gt-md="row wrap" *ngIf="!allRestoreExists && (!channels || channels.data.length<=0)">
<h4 fxFlex="100">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
<h4 fxFlex="100" class="mt-1">All channel backup file not found! To perform channel restoration, channel backup file/s must be placed at the above location.</h4>
</div>
<div fxLayout="column" fxLayoutAlign="space-between stretch" fxLayout.gt-md="row wrap" *ngIf="!allRestoreExists && channels && channels.data.length && channels.data.length>0">
<h4 fxFlex="100" class="mt-1">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
<div fxLayout="column" fxLayoutAlign="space-between start" fxLayout.gt-md="row wrap" *ngIf="!allRestoreExists && channels && channels.data.length && channels.data.length>0">
<h4 fxFlex="100">Restore folder location: {{selNode.channelBackupPath}}/restore</h4>
</div>
<div fxLayout="row" fxLayoutAlign="start center" class="padding-gap-x page-sub-title-container mt-minus-2">
<div fxFlex="70"></div>

@ -1,20 +1,18 @@
<div fxLayout="row">
<div class="w-100">
<mat-card-header [ngClass]="msgTypeBackground" fxLayoutAlign="end">
<h2 fxFlex="91">{{data.type}}</h2>
<mat-icon autoFocus fxFlex="3" fxLayoutAlign="end" type="button" (click)="onClose()" class="cursor-pointer" tabindex="1">close</mat-icon>
<div fxFlex="100" class="padding-gap-large">
<mat-card-header fxLayout="row" fxLayoutAlign="space-between center" class="modal-info-header">
<div fxFlex="95" fxLayoutAlign="start start">
<span class="page-title">{{(data.titleMessage | titlecase) || alertTypeEnum[data.type]}}</span>
</div>
<button tabindex="8" fxFlex="5" fxLayoutAlign="center" class="btn-close-x p-0" (click)="onClose()" mat-button>X</button>
</mat-card-header>
<mat-card-content>
<div class="pb-2 p-2 wrap-text new-line">
<p *ngIf="data.titleMessage" fxLayoutAlign="start center" class="title-message pb-1 pl-1">{{data.titleMessage | titlecase}}</p>
<mat-card-content class="mt-5px">
<div fxLayout="column">
<div *ngIf="messageObj?.length>0">
<div *ngFor="let obj of messageObj" fxLayout="row" fxLayoutAlign="center flex-start">
<div fxFlex="20">{{obj[0] | titlecase}}</div>
<div fxFlex="2">:</div>
<div fxLayout="column" fxFlex="75">
<div *ngIf="isNumber(obj[1], obj[0]);else notNumberTemplate">
<span>{{obj[1] | number:'1.0-3'}}</span>
</div>
<div *ngFor="let obj of messageObj">
<div fxLayout="column" fxFlex="100" fxFlex.gt-md="50">
<h4 fxLayoutAlign="start" class="font-bold-500">{{obj[0] | titlecase}}</h4>
<span class="foreground-secondary-text" *ngIf="isNumber(obj[1], obj[0]);else notNumberTemplate">{{obj[1] | number:'1.0-3'}}</span>
<ng-template #notNumberTemplate>
<span fxFlex="100">{{obj[1]}}
<fa-icon *ngIf="showCopyOption(obj[0])" rtlClipboard [payload]="obj[1]" (copied)="copiedText($event)" [icon]="faCopy"></fa-icon>
@ -22,15 +20,20 @@
</span>
<div *ngIf="showCopyOption(obj[0])" fxFlex="100" fxLayoutAlign.gt-sm="start center">
<qrcode [qrdata]="obj[1]" [size]="120" [level]="'L'" [allowEmptyString]="true" [ngStyle]="{'visibility': (obj[1] === '') ? 'hidden' : 'visible'}" class="qr-border"></qrcode>
</div>
</div>
</ng-template>
<mat-divider class="w-100 my-1"></mat-divider>
</div>
<div fxLayout="column" fxFlex="100" fxFlex.gt-md="50">
<h4 fxLayoutAlign="start" class="font-bold-500">{{obj[0] | titlecase}}</h4>
<span class="foreground-secondary-text">{{obj[1]}}</span>
<mat-divider class="w-100 my-1"></mat-divider>
</div>
</div>
</div>
</div>
<mat-divider class="pb-1"></mat-divider>
<div fxLayoutAlign="center">
<button mat-raised-button [color]="msgTypeForeground" fxFlex="30" class="mb-1" type="button" [mat-dialog-close]="false" tabindex="2" default>OK</button>
<div class="mt-2" fxLayout="row" fxLayoutAlign="end center">
<button fxLayoutAlign="center center" tabindex="1" autoFocus mat-raised-button color="primary" fxFlex="20" type="submit" [mat-dialog-close]="false" default>OK</button>
</div>
</div>
</mat-card-content>
</div>

@ -4,6 +4,7 @@ import { faCopy } from '@fortawesome/free-solid-svg-icons';
import { LoggerService } from '../../../services/logger.service';
import { AlertData } from '../../../models/alertData';
import { AlertTypeEnum } from '../../../models/enums';
@Component({
selector: 'rtl-alert-message',
@ -15,7 +16,8 @@ export class AlertMessageComponent implements OnInit {
public msgTypeForeground = 'primary';
public messageObj = [];
public flgCopied = false;
faCopy = faCopy;
public faCopy = faCopy;
public alertTypeEnum = AlertTypeEnum;
constructor(public dialogRef: MatDialogRef<AlertMessageComponent>, @Inject(MAT_DIALOG_DATA) public data: AlertData, private logger: LoggerService) { }
@ -67,6 +69,7 @@ export class AlertMessageComponent implements OnInit {
}
// End: To Merge Time Value Again with ':', example Payment Creation Time
});
console.warn(this.messageObj);
}
showCopyOption(key): boolean {

@ -31,7 +31,7 @@
</div>
<div fxFlex="50">
<h4 fxLayoutAlign="start" class="font-bold-500">Inbound</h4>
<span class="overflow-wrap foreground-secondary-text">{{peer.inbound ? 'Inbound' : 'Outbound'}}</span>
<span class="overflow-wrap foreground-secondary-text">{{peer.inbound ? 'True' : 'False'}}</span>
</div>
</div>
</div>
@ -63,7 +63,7 @@
</mat-select>
</mat-form-field>
<mat-form-field fxFlex="25" *ngIf="selTransType=='0'">
<input matInput placeholder="Channel Opening Priority" disabled>
<input matInput placeholder="Default" disabled>
</mat-form-field>
<mat-form-field fxFlex="25" *ngIf="selTransType=='1'">
<input matInput [(ngModel)]="transTypeValue.blocks" placeholder="Target Confirmation Blocks" type="number" name="blocks" step="1" min="0" required tabindex="3" #blocks="ngModel">

@ -0,0 +1,30 @@
<div fxLayout="row">
<div fxFlex="35" fxLayoutAlign="center start" class="modal-qr-code-container padding-gap-large">
<qrcode [qrdata]="pubkey" [size]="230" [level]="'L'" [allowEmptyString]="true" class="qr-border"></qrcode>
</div>
<div fxFlex="65" class="padding-gap-large">
<mat-card-header fxLayout="row" fxLayoutAlign="space-between center" class="modal-info-header mb-2">
<div fxFlex="95" fxLayoutAlign="start start">
<fa-icon [icon]="faReceipt" class="page-title-img mr-1"></fa-icon>
<span class="page-title">Node Pubkey</span>
</div>
<button tabindex="2" fxFlex="5" fxLayoutAlign="center" class="btn-close-x p-0" (click)="onClose()"
mat-button>X</button>
</mat-card-header>
<mat-card-content>
<div fxLayout="column">
<div fxLayout="row">
<div fxFlex="100">
<h4 fxLayoutAlign="start" class="font-bold-500">Pubkey</h4>
<span class="foreground-secondary-text">{{pubkey}}</span>
</div>
</div>
<mat-divider class="w-100 my-1"></mat-divider>
<div class="mt-2" fxLayout="row" fxLayoutAlign="end center">
<button autoFocus fxFlex="33" fxLayoutAlign="center center" mat-raised-button color="primary" tabindex="1"
type="submit" rtlClipboard [payload]="pubkey" (copied)="onCopyPubkey($event)">Copy Pubkey</button>
</div>
</div>
</mat-card-content>
</div>
</div>

@ -0,0 +1,25 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ShowPubkeyComponent } from './show-pubkey.component';
describe('ShowPubkeyComponent', () => {
let component: ShowPubkeyComponent;
let fixture: ComponentFixture<ShowPubkeyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ShowPubkeyComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ShowPubkeyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,33 @@
import { Component, OnInit, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { faReceipt } from '@fortawesome/free-solid-svg-icons';
import { MatSnackBar } from '@angular/material/snack-bar';
import { LoggerService } from '../../../services/logger.service';
import { AlertData } from '../../../models/alertData';
@Component({
selector: 'rtl-show-pubkey',
templateUrl: './show-pubkey.component.html',
styleUrls: ['./show-pubkey.component.scss']
})
export class ShowPubkeyComponent implements OnInit {
public faReceipt = faReceipt;
public pubkey: string;
constructor(public dialogRef: MatDialogRef<ShowPubkeyComponent>, @Inject(MAT_DIALOG_DATA) public data: AlertData, private logger: LoggerService, private snackBar: MatSnackBar) { }
ngOnInit() {
this.pubkey = JSON.parse(this.data.message);
}
onClose() {
this.dialogRef.close(false);
}
onCopyPubkey(payload: string) {
this.snackBar.open('Pubkey copied');
this.logger.info('Copied Text: ' + payload);
}
}

@ -1,4 +1,4 @@
<div fxLayout="row" fxFlex="100" fxLayoutAlign="space-between start">
<div fxLayout="row" fxFlex="100" fxLayoutAlign="space-between center">
<div fxLayoutAlign="start start">
<div *ngFor="let menuNode of menuNodes">
<button mat-button *ngIf="undefined === menuNode.children" fxLayoutAlign="center center" class="horizontal-button" routerLinkActive="h-active-link" [routerLinkActiveOptions]="{exact: true}" routerLink="{{menuNode.link}}" (click)="onClick(menuNode)">
@ -19,8 +19,8 @@
</div>
</div>
</div>
<div fxLayoutAlign="end end" style="align-self: center;">
<button mat-stroked-button fxLayoutAlign="center center" color="accent" class="horizontal-button-show" tabindex="20" type="click">Show Public Key</button>
<div fxLayoutAlign="end center">
<button fxLayoutAlign="center center" mat-stroked-button color="primary" class="horizontal-button-show" tabindex="20" (click)="onShowPubkey()">Show Public Key</button>
<rtl-top-menu></rtl-top-menu>
</div>
</div>

@ -6,10 +6,12 @@ import { Store } from '@ngrx/store';
import { faEject } from '@fortawesome/free-solid-svg-icons';
import { SessionService } from '../../../services/session.service';
import { MENU_DATA } from '../../../models/navMenu';
import { ShowPubkeyComponent } from '../../data-modal/show-pubkey/show-pubkey.component';
import { RTLEffects } from '../../../../store/rtl.effects';
import * as RTLActions from '../../../../store/rtl.actions';
import * as fromRTLReducer from '../../../../store/rtl.reducers';
import { GetInfoRoot } from '../../../models/RTLconfig';
@Component({
selector: 'rtl-horizontal-navigation',
@ -21,6 +23,7 @@ export class HorizontalNavigationComponent implements OnInit, OnDestroy {
public logoutNode = [];
public showLogout = false;
public numPendingChannels = 0;
public information: GetInfoRoot = {};
private unSubs = [new Subject(), new Subject(), new Subject()];
constructor(private sessionService: SessionService, private store: Store<fromRTLReducer.RTLState>, private rtlEffects: RTLEffects) {
@ -30,6 +33,7 @@ export class HorizontalNavigationComponent implements OnInit, OnDestroy {
this.store.select('root')
.pipe(takeUntil(this.unSubs[0]))
.subscribe((rtlStore) => {
this.information = rtlStore.nodeData;
this.numPendingChannels = rtlStore.nodeData.numberOfPendingChannels;
if(rtlStore.selNode.lnImplementation.toUpperCase() === 'CLT') {
this.menuNodes = MENU_DATA.CLChildren;
@ -73,6 +77,13 @@ export class HorizontalNavigationComponent implements OnInit, OnDestroy {
}
}
onShowPubkey() {
this.store.dispatch(new RTLActions.OpenAlert({
config: { width: '58%', data: { type: 'INFO', message: JSON.stringify(this.information.identity_pubkey)}},
component: ShowPubkeyComponent
}));
}
ngOnDestroy() {
this.unSubs.forEach(completeSub => {
completeSub.next();

@ -14,6 +14,7 @@ import { RTLConfiguration, LightningNode, Settings, GetInfoRoot } from '../../..
import { LoggerService } from '../../../services/logger.service';
import { SessionService } from '../../../services/session.service';
import { GetInfoChain } from '../../../models/lndModels';
import { ShowPubkeyComponent } from '../../../components/data-modal/show-pubkey/show-pubkey.component';
import { MenuChildNode, MENU_DATA } from '../../../models/navMenu';
import { RTLEffects } from '../../../../store/rtl.effects';
@ -135,12 +136,10 @@ export class SideNavigationComponent implements OnInit, OnDestroy {
}
onShowData(node: MenuChildNode) {
console.warn(node);
this.store.dispatch(new RTLActions.OpenAlert({config: { width: '75%', data: {
type: 'WARN',
titleMessage: node.name,
message: JSON.stringify(node)
}}}));
this.store.dispatch(new RTLActions.OpenAlert({
config: { width: '58%', data: { type: 'INFO', message: JSON.stringify(this.information.identity_pubkey)}},
component: ShowPubkeyComponent
}));
}
onNodeSelectionChange(selNodeValue: LightningNode) {

@ -12,11 +12,19 @@ export const ADDRESS_TYPES = [
];
export const TRANS_TYPES = [
{id: '0', name: 'Default Priority'},
{id: '0', name: 'Priority (Default)'},
{id: '1', name: 'Target Confirmation Blocks'},
{id: '2', name: 'Fee'}
];
export enum AlertTypeEnum {
INFO = 'Information',
WARN = 'Warning',
ERROR = 'Error',
SUCCESS = 'Success',
CONFIRM = 'Confirm'
}
export enum AuthenticateWith {
TOKEN = 'TOKEN',
PASSWORD = 'PASSWORD'

@ -36,6 +36,7 @@ import { AutoFocusDirective } from './directive/auto-focus.directive';
import { RemoveLeadingZerosPipe } from './pipes/app.pipe';
import { CommonService } from './services/common.service';
import { OpenChannelComponent } from './components/data-modal/open-channel/open-channel.component';
import { ShowPubkeyComponent } from './components/data-modal/show-pubkey/show-pubkey.component';
@NgModule({
imports: [
@ -153,14 +154,16 @@ import { OpenChannelComponent } from './components/data-modal/open-channel/open-
ClipboardDirective,
AutoFocusDirective,
RemoveLeadingZerosPipe,
OpenChannelComponent
OpenChannelComponent,
ShowPubkeyComponent
],
entryComponents: [
InvoiceInformationComponent,
OnChainGeneratedAddressComponent,
OpenChannelComponent,
AlertMessageComponent,
ShowPubkeyComponent,
SpinnerDialogComponent,
AlertMessageComponent,
ConfirmationMessageComponent
],
providers: [

@ -2,7 +2,7 @@
@import '~@angular/material/theming';
@include mat-core();
$purple-primary: mat-palette($purple-primary, 500, 200, 800);
$purple-primary: mat-palette($purple-primary, 500, 300, A200);
$purple-accent: mat-palette($mat-gray, 800, 600, 900);
$purple-warn: mat-palette($mat-red);

@ -16,7 +16,9 @@
$foreground-disabled: mat-color($foreground, disabled);
$foreground-divider: mat-color($foreground, divider);
$background: map-get($theme, background);
$background-color: mat-color($background, card);
$hover-background: rgba(0, 0, 0, 0.04);
$hover-background-white: rgba(255, 255, 255, 0.06);
.bg-primary {
@include _mat-toolbar-color($primary);
@ -30,19 +32,68 @@
@include _mat-toolbar-color($warn);
}
.btn-primary-darker {
background-color: $primary-darker;
color: $accent-color;
border-radius: 1.6rem;
text-transform: capitalize;
}
&.night {
.rtl-top-toolbar {
border-bottom: 1px solid $background-color;
}
.mat-tab-label.mat-tab-label-active {
color: $primary-darker;
}
.cc-data-block .cc-data-title {
color: $primary-darker;
}
.mat-stroked-button.mat-primary {
border-color: $primary-darker;
color: $primary-darker;
}
.mat-stroked-button.mat-primary:hover .mat-button-focus-overlay {
background-color: white;
opacity: 0.09;
}
.mat-stroked-button.mat-accent {
border-color: $accent-color;
}
.mat-stroked-button.mat-warn {
border-color: $warn-color;
}
.active-link, .active-link .fa-icon-small {
color: $primary-darker;
font-weight: 500;
cursor: pointer;
fill: $primary-darker;
}
.mat-tree-node:hover, .mat-nested-tree-node-parent:hover {
color: $primary-darker;
cursor: pointer;
background: $hover-background-white;
& .ng-fa-icon, & .mat-icon {
color: $primary-darker;
}
& .sidenav-img svg {
fill: $primary-darker;
}
}
.mat-tree-node .sidenav-img, .mat-nested-tree-node .sidenav-img, .mat-nested-tree-node-parent .sidenav-img,
.page-title-container .page-title-img, svg.top-icon-small {
fill: $foreground-text;
}
.selected-color {
border-color: $primary-lighter;
border-color: $primary-darker;
}
.rtl-snack-bar {
background: $primary-color;
}
}
&.day {
.rtl-top-toolbar {
border-bottom: 1px solid white;
}
.mat-tab-label.mat-tab-label-active {
color: $primary-color;
}
.ng-fa-icon, .mat-nested-tree-node-parent .mat-icon, .mat-form-field-suffix {
color: $foreground-secondary-text;
}
.mat-stroked-button.mat-primary {
border-color: $primary-color;
}
@ -52,18 +103,45 @@
.mat-stroked-button.mat-warn {
border-color: $warn-color;
}
.ng-fa-icon, .mat-nested-tree-node-parent .mat-icon, .mat-form-field-suffix {
color: $foreground-secondary-text;
}
.selected-color {
border-color: $primary-darker;
border-color: $primary-color;
}
.mat-stroked-button.mat-primary:hover .mat-button-focus-overlay {
opacity: 0.06;
}
.page-title-container, .page-sub-title-container {
& .page-title-img {
color: $foreground-disabled;
}
color: $foreground-secondary-text;
}
.cc-data-block .cc-data-title {
color: $primary-color;
}
.active-link, .active-link .fa-icon-small {
color: $primary-color;
font-weight: 500;
cursor: pointer;
fill: $primary-color;
}
.mat-tree-node:hover, .mat-nested-tree-node-parent:hover {
color: $primary-color;
cursor: pointer;
background: $hover-background;
& .ng-fa-icon, & .mat-icon {
color: $primary-color;
}
& .sidenav-img svg {
fill: $primary-color;
}
}
.mat-tree-node .sidenav-img, .mat-nested-tree-node .sidenav-img, .mat-nested-tree-node-parent .sidenav-img,
.page-title-container .page-title-img, svg.top-icon-small {
fill: $foreground-text;
}
.rtl-snack-bar {
background: $primary-color;
}
}
.foreground-secondary-text {
@ -82,34 +160,10 @@
border-bottom: 1px solid $foreground-divider;
}
a, .cc-data-block .cc-data-title {
a {
color: $primary-color;
}
.active-link, .active-link .fa-icon-small {
color: $primary-color;
font-weight: 500;
cursor: pointer;
fill: $primary-color;
}
.mat-tree-node:hover, .mat-nested-tree-node-parent:hover {
color: $primary-color;
cursor: pointer;
background: $hover-background;
& .ng-fa-icon, & .mat-icon {
color: $primary-color;
}
& .sidenav-img svg {
fill: $primary-color;
}
}
.mat-tree-node .sidenav-img, .mat-nested-tree-node .sidenav-img, .mat-nested-tree-node-parent .sidenav-img,
.page-title-container .page-title-img, svg.top-icon-small {
fill: $foreground-text;
}
.horizontal-button .fa-icon-small {
fill: white;
color: white;
@ -178,18 +232,22 @@
height: $toolbar-height;
border-radius: 0;
&:hover {
background: $primary-darker;
background: $primary-lighter;
color: $accent-color;
}
}
.horizontal-button-show {
background: white;
.mat-stroked-button.mat-primary.horizontal-button-show {
line-height: 2.4rem;
border-radius: 12rem;
}
.mat-tab-label.mat-tab-label-active {
color: $primary-darker;
background-color: white;
color: $primary-color;
&:hover {
@include mat-elevation(4);
}
&:hover .mat-button-focus-overlay {
opacity: 0.09;
}
}
.cc-data-block {
@ -237,15 +295,6 @@
background: $foreground-divider;
}
.rtl-snack-bar {
background: $primary-darker;
& .mat-simple-snackbar {
justify-content: center;
align-content: center;
align-items: center;
}
}
.tab-badge {
& .mat-badge-content {
width: $dot-size * 1.5;
@ -274,4 +323,10 @@
background: none;
}
.rtl-snack-bar .mat-simple-snackbar {
justify-content: center;
align-content: center;
align-items: center;
}
}

@ -459,6 +459,10 @@ body {
overflow-y: auto;
}
.overflow-y-hidden {
overflow-y: hidden !important;
}
.overflow-auto {
overflow: auto;
}
@ -808,3 +812,4 @@ table {
@keyframes blink-animation { to { visibility: hidden; }}
@-webkit-keyframes blink-animation { to { visibility: hidden; }}

Loading…
Cancel
Save