From 9020c618f034e0ca9384377e29a2bf23beb22ed9 Mon Sep 17 00:00:00 2001 From: Miguel Medeiros Date: Tue, 7 Sep 2021 17:48:43 -0300 Subject: [PATCH] Change renderer to svg. Fix data structure of mempool graph. Change tooltip total position (top). Change tooltip visual of partial porcentage. --- .../mempool-graph.component.html | 2 +- .../mempool-graph/mempool-graph.component.ts | 41 +++++++------------ .../src/app/interfaces/node-api.interface.ts | 2 +- frontend/src/styles.scss | 9 ++++ 4 files changed, 25 insertions(+), 29 deletions(-) diff --git a/frontend/src/app/components/mempool-graph/mempool-graph.component.html b/frontend/src/app/components/mempool-graph/mempool-graph.component.html index a4cac25b7..ac67c6e9e 100644 --- a/frontend/src/app/components/mempool-graph/mempool-graph.component.html +++ b/frontend/src/app/components/mempool-graph/mempool-graph.component.html @@ -1 +1 @@ -
+
diff --git a/frontend/src/app/components/mempool-graph/mempool-graph.component.ts b/frontend/src/app/components/mempool-graph/mempool-graph.component.ts index 25d0371bc..42321c5e9 100644 --- a/frontend/src/app/components/mempool-graph/mempool-graph.component.ts +++ b/frontend/src/app/components/mempool-graph/mempool-graph.component.ts @@ -24,6 +24,9 @@ export class MempoolGraphComponent implements OnInit, OnChanges { mempoolVsizeFeesData: any; mempoolVsizeFeesOptions: EChartsOption; + mempoolVsizeFeesInitOptions = { + renderer: 'svg', + }; windowPreference: string; hoverIndexSerie: -1; feeLimitIndex: number; @@ -70,20 +73,11 @@ export class MempoolGraphComponent implements OnInit, OnChanges { generateArray(mempoolStats: OptimizedMempoolStats[]) { const finalArray: number[][] = []; let feesArray: number[] = []; - for (let index = 37; index > -1; index--) { feesArray = []; mempoolStats.forEach((stats) => { - const theFee = stats.vsizes[index].toString(); - if (theFee) { - feesArray.push(parseInt(theFee, 10)); - } else { - feesArray.push(0); - } + feesArray.push(stats.vsizes[index] ? stats.vsizes[index] : 0); }); - if (finalArray.length) { - feesArray = feesArray.map((value, i) => value + finalArray[finalArray.length - 1][i]); - } finalArray.push(feesArray); } finalArray.reverse(); @@ -103,10 +97,9 @@ export class MempoolGraphComponent implements OnInit, OnChanges { } }); - const yAxisSeries = series.map((value: Array, index: number) => { + const seriesGraph = series.map((value: Array, index: number) => { if (index <= this.feeLimitIndex){ return { - name: feeLevelsOrdered[index], type: 'line', stack: 'total', smooth: false, @@ -157,42 +150,37 @@ export class MempoolGraphComponent implements OnInit, OnChanges { }, formatter: (params: any) => { const legendName = (index: number) => feeLevelsOrdered[index]; - const colorSpan = (index: number) => `${legendName(index)}`; - const title = `
${params[0].axisValue}
`; - const rangeLines = params; + const colorSpan = (index: number) => `${legendName(index)}`; let total = 0; - rangeLines.map((item: any) => { + params.map((item: any) => { total += item.value; }); + const title = `
${params[0].axisValue} + ${this.vbytesPipe.transform(total, 2, 'vB', 'MvB', false)}
`; const itemFormatted = []; let totalParcial = 0; let progressPercentageText = ''; - rangeLines.map((item: any, index: number) => { + params.map((item: any, index: number) => { totalParcial += item.value; let progressPercentage = 0; - let progressPercentageTotalParcial = 0; if (index <= this.feeLimitIndex) { progressPercentage = (item.value / total) * 100; - progressPercentageTotalParcial = (totalParcial / total) * 100; let activeItemClass = ''; if (this.hoverIndexSerie === index) { progressPercentageText = `
- ${this.vbytesPipe.transform(totalParcial, 2, 'vB', 'MvB', false)} -
+ ${progressPercentage.toFixed(2)} %${this.vbytesPipe.transform(totalParcial, 2, 'vB', 'MvB', false)} +
`; activeItemClass = 'active'; } itemFormatted.push(` ${colorSpan(index)} ${this.vbytesPipe.transform(item.value, 2, 'vB', 'MvB', false)} - + ${progressPercentage.toFixed(1)} % `); } }); const progressActiveDiv = `${progressPercentageText}`; - const totalDiv = `
Total - ${this.vbytesPipe.transform(total, 2, 'vB', 'MvB', false)} -
`; const advancedClass = (this.template === 'advanced') ? 'fees-wrapper-tooltip-chart-advanced' : ''; return `
${title} @@ -207,7 +195,6 @@ export class MempoolGraphComponent implements OnInit, OnChanges { ${itemFormatted.reverse().join('')} ${progressActiveDiv} - ${totalDiv}
`; } }, @@ -261,7 +248,7 @@ export class MempoolGraphComponent implements OnInit, OnChanges { } } }, - series: yAxisSeries + series: seriesGraph }; } } diff --git a/frontend/src/app/interfaces/node-api.interface.ts b/frontend/src/app/interfaces/node-api.interface.ts index 2a4bce0e8..d73c12d4e 100644 --- a/frontend/src/app/interfaces/node-api.interface.ts +++ b/frontend/src/app/interfaces/node-api.interface.ts @@ -6,7 +6,7 @@ export interface OptimizedMempoolStats { vbytes_per_second: number; total_fee: number; mempool_byte_weight: number; - vsizes: number[] | string[]; + vsizes: number[]; } interface Ancestor { diff --git a/frontend/src/styles.scss b/frontend/src/styles.scss index 8f94c8742..9fb38711d 100644 --- a/frontend/src/styles.scss +++ b/frontend/src/styles.scss @@ -294,6 +294,9 @@ html:lang(ru) .card-title { font-weight: 700; margin-bottom: 2px; color: #fff; + .total-value { + float: right; + } } .active { color: yellow !important; @@ -332,6 +335,9 @@ html:lang(ru) .card-title { .total-percentage-bar { padding-left: 8px; } + .total-progress-percentage { + text-align: right; + } } .total-label { width: 100%; @@ -376,6 +382,9 @@ html:lang(ru) .card-title { transition: 1000 all ease-in-out; } } + .progress-percentage { + float: left; + } } }