Browse Source

feat: address review suggestions

pull/3938/head
vitalymatyushik 10 months ago
committed by Thomas Kaul
parent
commit
24a61062af
  1. 89
      libs/ui/src/lib/treemap-chart/treemap-chart.component.ts

89
libs/ui/src/lib/treemap-chart/treemap-chart.component.ts

@ -86,32 +86,38 @@ export class GfTreemapChartComponent
this.isLoading = true; this.isLoading = true;
const { endDate, startDate } = getIntervalFromDateRange(this.dateRange); const { endDate, startDate } = getIntervalFromDateRange(this.dateRange);
const netPerformancePercentsWithCurrencyEffect = this.holdings.map((h) => const netPerformancePercentsWithCurrencyEffect = this.holdings.map(
getAnnualizedPerformancePercent({ ({ dateOfFirstActivity, netPerformancePercentWithCurrencyEffect }) => {
daysInMarket: differenceInDays( return getAnnualizedPerformancePercent({
endDate, daysInMarket: differenceInDays(
max([h.dateOfFirstActivity ?? new Date(0), startDate]) endDate,
), max([dateOfFirstActivity ?? new Date(0), startDate])
netPerformancePercentage: new Big( ),
h.netPerformancePercentWithCurrencyEffect netPerformancePercentage: new Big(
) netPerformancePercentWithCurrencyEffect
}).toNumber() )
}).toNumber();
}
); );
const positiveNetPercents = netPerformancePercentsWithCurrencyEffect.filter( const positiveNetPerformancePercents =
(v) => v > 0 netPerformancePercentsWithCurrencyEffect.filter((v) => {
); return v > 0;
const positiveNetPercentsRange = { });
max: Math.max(...positiveNetPercents), const positiveNetPerformancePercentsRange = {
min: Math.min(...positiveNetPercents) max: Math.max(...positiveNetPerformancePercents),
min: Math.min(...positiveNetPerformancePercents)
}; };
const negativeNetPercents = netPerformancePercentsWithCurrencyEffect.filter(
(v) => v < 0 const negativeNetPerformancePercents =
); netPerformancePercentsWithCurrencyEffect.filter((v) => {
const negativeNetPercentsRange = { return v < 0;
max: Math.max(...negativeNetPercents), });
min: Math.min(...negativeNetPercents) const negativeNetPerformancePercentsRange = {
max: Math.max(...negativeNetPerformancePercents),
min: Math.min(...negativeNetPerformancePercents)
}; };
const data: ChartConfiguration['data'] = { const data: ChartConfiguration['data'] = {
datasets: [ datasets: [
{ {
@ -129,6 +135,7 @@ export class GfTreemapChartComponent
ctx.raw._data.netPerformancePercentWithCurrencyEffect ctx.raw._data.netPerformancePercentWithCurrencyEffect
) )
}).toNumber(); }).toNumber();
// Round to 2 decimal places // Round to 2 decimal places
annualizedNetPerformancePercentWithCurrencyEffect = annualizedNetPerformancePercentWithCurrencyEffect =
Math.round( Math.round(
@ -146,49 +153,51 @@ export class GfTreemapChartComponent
if (annualizedNetPerformancePercentWithCurrencyEffect > 0) { if (annualizedNetPerformancePercentWithCurrencyEffect > 0) {
const range = const range =
positiveNetPercentsRange.max - positiveNetPercentsRange.min; positiveNetPerformancePercentsRange.max -
positiveNetPerformancePercentsRange.min;
if ( if (
annualizedNetPerformancePercentWithCurrencyEffect >= annualizedNetPerformancePercentWithCurrencyEffect >=
positiveNetPercentsRange.max - range * 0.25 positiveNetPerformancePercentsRange.max - range * 0.25
) { ) {
return green[9]; return green[9];
} } else if (
if (
annualizedNetPerformancePercentWithCurrencyEffect >= annualizedNetPerformancePercentWithCurrencyEffect >=
positiveNetPercentsRange.max - range * 0.5 positiveNetPerformancePercentsRange.max - range * 0.5
) { ) {
return green[7]; return green[7];
} } else if (
if (
annualizedNetPerformancePercentWithCurrencyEffect >= annualizedNetPerformancePercentWithCurrencyEffect >=
positiveNetPercentsRange.max - range * 0.75 positiveNetPerformancePercentsRange.max - range * 0.75
) { ) {
return green[5]; return green[5];
} }
return green[3]; return green[3];
} }
const range = const range =
negativeNetPercentsRange.min - negativeNetPercentsRange.max; negativeNetPerformancePercentsRange.min -
negativeNetPerformancePercentsRange.max;
if ( if (
annualizedNetPerformancePercentWithCurrencyEffect <= annualizedNetPerformancePercentWithCurrencyEffect <=
negativeNetPercentsRange.min + range * 0.25 negativeNetPerformancePercentsRange.min + range * 0.25
) { ) {
return red[9]; return red[9];
} } else if (
if (
annualizedNetPerformancePercentWithCurrencyEffect <= annualizedNetPerformancePercentWithCurrencyEffect <=
negativeNetPercentsRange.min + range * 0.5 negativeNetPerformancePercentsRange.min + range * 0.5
) { ) {
return red[7]; return red[7];
} } else if (
if (
annualizedNetPerformancePercentWithCurrencyEffect <= annualizedNetPerformancePercentWithCurrencyEffect <=
negativeNetPercentsRange.min + range * 0.75 negativeNetPerformancePercentsRange.min + range * 0.75
) { ) {
return red[7]; return red[5];
} }
return red[9];
return red[3];
}, },
borderRadius: 4, borderRadius: 4,
key: 'allocationInPercentage', key: 'allocationInPercentage',

Loading…
Cancel
Save