From d59dfc3d5bc2ae085226af12c960b96c7af143c7 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 19 Oct 2024 10:04:10 +0200 Subject: [PATCH 1/4] Feature/Archive discontinued personal finance tools (#3945) * Archive discontinued personal finance tools --- libs/common/src/lib/personal-finance-tools.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libs/common/src/lib/personal-finance-tools.ts b/libs/common/src/lib/personal-finance-tools.ts index 7378fbcd4..1ec5fbbc2 100644 --- a/libs/common/src/lib/personal-finance-tools.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -115,6 +115,7 @@ export const personalFinanceTools: Product[] = [ }, { founded: 2022, + isArchived: true, key: 'capmon', name: 'CapMon.org', origin: 'Germany', @@ -303,6 +304,7 @@ export const personalFinanceTools: Product[] = [ { hasFreePlan: true, hasSelfHostingAbility: false, + isArchived: true, key: 'intuit-mint', name: 'Intuit Mint', note: 'Intuit Mint was discontinued in 2023', @@ -413,6 +415,7 @@ export const personalFinanceTools: Product[] = [ { founded: 1991, hasSelfHostingAbility: true, + isArchived: true, key: 'microsoft-money', name: 'Microsoft Money', note: 'Microsoft Money was discontinued in 2010', @@ -520,6 +523,7 @@ export const personalFinanceTools: Product[] = [ }, { hasFreePlan: true, + isArchived: true, key: 'portfoloo', name: 'Portfoloo', note: 'Portfoloo was discontinued', @@ -558,6 +562,7 @@ export const personalFinanceTools: Product[] = [ { founded: 2019, hasSelfHostingAbility: false, + isArchived: true, key: 'sarmaaya.pk', name: 'Sarmaaya.pk Portfolio Tracking', note: 'Sarmaaya.pk Portfolio Tracking was discontinued in 2024', @@ -594,6 +599,7 @@ export const personalFinanceTools: Product[] = [ }, { hasFreePlan: true, + isArchived: true, key: 'sharesmaster', name: 'SharesMaster', note: 'SharesMaster was discontinued', @@ -634,6 +640,7 @@ export const personalFinanceTools: Product[] = [ }, { founded: 2008, + isArchived: true, key: 'stockmarketeye', name: 'StockMarketEye', origin: 'France', @@ -746,6 +753,7 @@ export const personalFinanceTools: Product[] = [ founded: 2021, hasFreePlan: true, hasSelfHostingAbility: false, + isArchived: true, key: 'yeekatee', languages: ['Deutsch', 'English', 'Español', 'Français', 'Italiano'], name: 'yeekatee', From 6bb7c0d19602806856f73f30a7b6d9b34d5f9326 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 19 Oct 2024 10:04:27 +0200 Subject: [PATCH 2/4] Bugfix/fix style selector in carousel component (#3948) * Fix style selector * Update changelog --- CHANGELOG.md | 6 ++++++ libs/ui/src/lib/carousel/carousel.component.scss | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c369e5905..e08f74559 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Fixed + +- Fixed an issue in the carousel component for the testimonial section on the landing page + ## 2.116.0 - 2024-10-17 ### Added diff --git a/libs/ui/src/lib/carousel/carousel.component.scss b/libs/ui/src/lib/carousel/carousel.component.scss index 546c92194..05ab9ff93 100644 --- a/libs/ui/src/lib/carousel/carousel.component.scss +++ b/libs/ui/src/lib/carousel/carousel.component.scss @@ -3,7 +3,7 @@ position: relative; ::ng-deep { - [gf-carousel-item] { + [gfCarouselItem] { flex-shrink: 0; width: 100%; } From 6e4758a1831b0f9d55ed56997391b2931f223819 Mon Sep 17 00:00:00 2001 From: vitalymatyushik Date: Sat, 19 Oct 2024 10:39:36 +0200 Subject: [PATCH 3/4] Feature/Improve backgrounds in tree map chart (#3938) * Improve backgrounds in tree map chart * Update changelog --- CHANGELOG.md | 4 + .../treemap-chart/treemap-chart.component.ts | 118 ++++++++++++------ 2 files changed, 87 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e08f74559..ccf35095c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Improved the backgrounds of the chart of the holdings tab on the home page (experimental) + ### Fixed - Fixed an issue in the carousel component for the testimonial section on the landing page diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index 7f74a81e1..388f75052 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -57,8 +57,6 @@ export class GfTreemapChartComponent @ViewChild('chartCanvas') chartCanvas: ElementRef; - public static readonly HEAT_MULTIPLIER = 5; - public chart: Chart<'treemap'>; public isLoading = true; @@ -87,6 +85,44 @@ export class GfTreemapChartComponent const { endDate, startDate } = getIntervalFromDateRange(this.dateRange); + const netPerformancePercentsWithCurrencyEffect = this.holdings.map( + ({ dateOfFirstActivity, netPerformancePercentWithCurrencyEffect }) => { + return getAnnualizedPerformancePercent({ + daysInMarket: differenceInDays( + endDate, + max([dateOfFirstActivity ?? new Date(0), startDate]) + ), + netPerformancePercentage: new Big( + netPerformancePercentWithCurrencyEffect + ) + }).toNumber(); + } + ); + + const positiveNetPerformancePercents = + netPerformancePercentsWithCurrencyEffect.filter( + (annualizedNetPerformancePercent) => { + return annualizedNetPerformancePercent > 0; + } + ); + + const positiveNetPerformancePercentsRange = { + max: Math.max(...positiveNetPerformancePercents), + min: Math.min(...positiveNetPerformancePercents) + }; + + const negativeNetPerformancePercents = + netPerformancePercentsWithCurrencyEffect.filter( + (annualizedNetPerformancePercent) => { + return annualizedNetPerformancePercent < 0; + } + ); + + const negativeNetPerformancePercentsRange = { + max: Math.max(...negativeNetPerformancePercents), + min: Math.min(...negativeNetPerformancePercents) + }; + const data: ChartConfiguration['data'] = { datasets: [ { @@ -112,46 +148,58 @@ export class GfTreemapChartComponent ) / 100; if ( - annualizedNetPerformancePercentWithCurrencyEffect > - 0.03 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return green[9]; - } else if ( - annualizedNetPerformancePercentWithCurrencyEffect > - 0.02 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return green[7]; - } else if ( - annualizedNetPerformancePercentWithCurrencyEffect > - 0.01 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return green[5]; - } else if (annualizedNetPerformancePercentWithCurrencyEffect > 0) { - return green[3]; - } else if ( Math.abs(annualizedNetPerformancePercentWithCurrencyEffect) === 0 ) { annualizedNetPerformancePercentWithCurrencyEffect = Math.abs( annualizedNetPerformancePercentWithCurrencyEffect ); return gray[3]; - } else if ( - annualizedNetPerformancePercentWithCurrencyEffect > - -0.01 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return red[3]; - } else if ( - annualizedNetPerformancePercentWithCurrencyEffect > - -0.02 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return red[5]; - } else if ( - annualizedNetPerformancePercentWithCurrencyEffect > - -0.03 * GfTreemapChartComponent.HEAT_MULTIPLIER - ) { - return red[7]; + } else if (annualizedNetPerformancePercentWithCurrencyEffect > 0) { + const range = + positiveNetPerformancePercentsRange.max - + positiveNetPerformancePercentsRange.min; + + if ( + annualizedNetPerformancePercentWithCurrencyEffect >= + positiveNetPerformancePercentsRange.max - range * 0.25 + ) { + return green[9]; + } else if ( + annualizedNetPerformancePercentWithCurrencyEffect >= + positiveNetPerformancePercentsRange.max - range * 0.5 + ) { + return green[7]; + } else if ( + annualizedNetPerformancePercentWithCurrencyEffect >= + positiveNetPerformancePercentsRange.max - range * 0.75 + ) { + return green[5]; + } + + return green[3]; } else { - return red[9]; + const range = + negativeNetPerformancePercentsRange.min - + negativeNetPerformancePercentsRange.max; + + if ( + annualizedNetPerformancePercentWithCurrencyEffect <= + negativeNetPerformancePercentsRange.min + range * 0.25 + ) { + return red[9]; + } else if ( + annualizedNetPerformancePercentWithCurrencyEffect <= + negativeNetPerformancePercentsRange.min + range * 0.5 + ) { + return red[7]; + } else if ( + annualizedNetPerformancePercentWithCurrencyEffect <= + negativeNetPerformancePercentsRange.min + range * 0.75 + ) { + return red[5]; + } + + return red[3]; } }, borderRadius: 4, From 68cb4b27d1c9ca389ee758beb077f76e0b5ca84d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 19 Oct 2024 15:20:15 +0200 Subject: [PATCH 4/4] Feature/add logotype to footer (#3947) * Add logo type to footer * Update changelog --- CHANGELOG.md | 4 ++++ apps/client/src/app/app.component.html | 11 ++++++++--- apps/client/src/app/app.component.scss | 7 +++++++ libs/ui/src/lib/logo/logo.component.scss | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ccf35095c..c41dc64aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added the logotype to the footer + ### Changed - Improved the backgrounds of the chart of the holdings tab on the home page (experimental) diff --git a/apps/client/src/app/app.component.html b/apps/client/src/app/app.component.html index ff21a229d..b12855488 100644 --- a/apps/client/src/app/app.component.html +++ b/apps/client/src/app/app.component.html @@ -46,7 +46,7 @@ @if (showFooter) { -