|
|
|
|
@ -3,7 +3,11 @@ import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-foote
|
|
|
|
|
import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module';
|
|
|
|
|
import { DataService } from '@ghostfolio/client/services/data.service';
|
|
|
|
|
import { UserService } from '@ghostfolio/client/services/user/user.service';
|
|
|
|
|
import { NUMERICAL_PRECISION_THRESHOLD } from '@ghostfolio/common/config';
|
|
|
|
|
import {
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_3_FIGURES,
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_5_FIGURES,
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
} from '@ghostfolio/common/config';
|
|
|
|
|
import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper';
|
|
|
|
|
import {
|
|
|
|
|
DataProviderInfo,
|
|
|
|
|
@ -101,6 +105,7 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
public assetClass: string;
|
|
|
|
|
public assetSubClass: string;
|
|
|
|
|
public averagePrice: number;
|
|
|
|
|
public averagePricePrecision = 2;
|
|
|
|
|
public benchmarkDataItems: LineChartItem[];
|
|
|
|
|
public benchmarkLabel = $localize`Average Unit Price`;
|
|
|
|
|
public countries: {
|
|
|
|
|
@ -122,11 +127,15 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
public marketDataItems: MarketData[] = [];
|
|
|
|
|
public marketPrice: number;
|
|
|
|
|
public marketPriceMax: number;
|
|
|
|
|
public marketPriceMaxPrecision = 2;
|
|
|
|
|
public marketPriceMin: number;
|
|
|
|
|
public marketPriceMinPrecision = 2;
|
|
|
|
|
public marketPricePrecision = 2;
|
|
|
|
|
public netPerformance: number;
|
|
|
|
|
public netPerformancePrecision = 2;
|
|
|
|
|
public netPerformancePercent: number;
|
|
|
|
|
public netPerformancePercentWithCurrencyEffect: number;
|
|
|
|
|
public netPerformancePercentWithCurrencyEffectPrecision = 2;
|
|
|
|
|
public netPerformanceWithCurrencyEffect: number;
|
|
|
|
|
public netPerformanceWithCurrencyEffectPrecision = 2;
|
|
|
|
|
public quantity: number;
|
|
|
|
|
@ -274,6 +283,14 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
value
|
|
|
|
|
}) => {
|
|
|
|
|
this.averagePrice = averagePrice;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.averagePrice >= NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.averagePricePrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.benchmarkDataItems = [];
|
|
|
|
|
this.countries = {};
|
|
|
|
|
this.dataProviderInfo = dataProviderInfo;
|
|
|
|
|
@ -281,7 +298,8 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.dividendInBaseCurrency >= NUMERICAL_PRECISION_THRESHOLD
|
|
|
|
|
this.dividendInBaseCurrency >=
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.dividendInBaseCurrencyPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
@ -320,19 +338,42 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.investmentInBaseCurrencyWithCurrencyEffect >=
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.investmentInBaseCurrencyWithCurrencyEffectPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.marketPrice = marketPrice;
|
|
|
|
|
this.marketPriceMax = marketPriceMax;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.marketPriceMax >= NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.marketPriceMaxPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.marketPriceMin = marketPriceMin;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.marketPriceMin >= NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.marketPriceMinPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.marketPrice >= NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.marketPricePrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.netPerformance = netPerformance;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.netPerformance >= NUMERICAL_PRECISION_THRESHOLD
|
|
|
|
|
this.netPerformance >= NUMERICAL_PRECISION_THRESHOLD_6_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.netPerformancePrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
@ -342,13 +383,21 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit {
|
|
|
|
|
this.netPerformancePercentWithCurrencyEffect =
|
|
|
|
|
netPerformancePercentWithCurrencyEffect;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.netPerformancePercentWithCurrencyEffect >=
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_3_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.netPerformancePercentWithCurrencyEffectPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.netPerformanceWithCurrencyEffect =
|
|
|
|
|
netPerformanceWithCurrencyEffect;
|
|
|
|
|
|
|
|
|
|
if (
|
|
|
|
|
this.data.deviceType === 'mobile' &&
|
|
|
|
|
this.netPerformanceWithCurrencyEffect >=
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD
|
|
|
|
|
NUMERICAL_PRECISION_THRESHOLD_5_FIGURES
|
|
|
|
|
) {
|
|
|
|
|
this.netPerformanceWithCurrencyEffectPrecision = 0;
|
|
|
|
|
}
|
|
|
|
|
|