From 1fdaa307f4cfc649266eb030eabbdfe9b323eccf Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:34:51 +0200 Subject: [PATCH] Refactoring --- ...sonal-finance-tools-page-routing.module.ts | 29 ++- .../personal-finance-tools-page.component.ts | 14 +- .../product-page.component.ts | 68 +++++ ...t-page-template.html => product-page.html} | 0 ...t-page-template.scss => product-page.scss} | 0 .../products/allinvestview-page.component.ts | 32 --- .../products/allvue-systems-page.component.ts | 32 --- .../products/altoo-page.component.ts | 32 --- .../products/base-page.component.ts | 19 -- .../products/basil-finance-page.component.ts | 32 --- .../products/beanvest-page.component.ts | 32 --- .../products/capitally-page.component.ts | 32 --- .../products/capmon-page.component.ts | 32 --- .../compound-planning-page.component.ts | 32 --- .../products/copilot-money-page.component.ts | 32 --- .../products/de.fi-page.component.ts | 32 --- .../products/delta-page.component.ts | 32 --- .../products/divvydiary-page.component.ts | 32 --- .../products/eightfigures-page.component.ts | 32 --- .../products/empower-page.component.ts | 32 --- .../products/exirio-page.component.ts | 32 --- .../products/fina-page.component.ts | 32 --- .../products/finary-page.component.ts | 32 --- .../products/finwise-page.component.ts | 32 --- .../products/folishare-page.component.ts | 32 --- .../products/getquin-page.component.ts | 32 --- .../products/gospatz-page.component.ts | 32 --- .../products/intuit-mint-page.component.ts | 32 --- .../products/justetf-page.component.ts | 32 --- .../products/koyfin-page.component.ts | 32 --- .../products/kubera-page.component.ts | 32 --- .../products/magnifi-page.component.ts | 32 --- .../products/markets.sh-page.component.ts | 32 --- .../products/maybe-finance-page.component.ts | 32 --- .../products/monarch-money-page.component.ts | 32 --- .../products/monse-page.component.ts | 32 --- .../products/navexa-page.component.ts | 32 --- .../products/parqet-page.component.ts | 32 --- .../products/plannix-page.component.ts | 32 --- ...rtfolio-dividend-tracker-page.component.ts | 32 --- .../portfolio-visualizer-page.component.ts | 32 --- .../products/portseido-page.component.ts | 32 --- .../products/projectionlab-page.component.ts | 32 --- .../products/rocket-money-page.component.ts | 32 --- .../products/seeking-alpha-page.component.ts | 32 --- .../products/sharesight-page.component.ts | 32 --- .../simple-portfolio-page.component.ts | 32 --- .../snowball-analytics-page.component.ts | 32 --- .../products/stock-events-page.component.ts | 32 --- .../products/stockle-page.component.ts | 32 --- .../products/stockmarketeye-page.component.ts | 32 --- .../products/stonksfolio-page.component.ts | 32 --- .../products/sumio-page.component.ts | 32 --- .../products/tiller-page.component.ts | 32 --- .../products/utluna-page.component.ts | 32 --- .../products/vyzer-page.component.ts | 32 --- .../products/wallmine-page.component.ts | 32 --- .../products/wealthfolio-page.component.ts | 32 --- .../products/wealthica-page.component.ts | 32 --- .../products/whal-page.component.ts | 32 --- .../products/yeekatee-page.component.ts | 32 --- .../products/ynab-page.component.ts | 32 --- libs/common/src/lib/interfaces/product.ts | 1 - .../common/src/lib/personal-finance-tools.ts | 245 ++++-------------- 64 files changed, 142 insertions(+), 2026 deletions(-) create mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts rename apps/client/src/app/pages/resources/personal-finance-tools/{product-page-template.html => product-page.html} (100%) rename apps/client/src/app/pages/resources/personal-finance-tools/{product-page-template.scss => product-page.scss} (100%) delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/compound-planning-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/de.fi-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/empower-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/navexa-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/stonksfolio-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/tiller-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/whal-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts delete mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts rename apps/client/src/app/pages/resources/personal-finance-tools/products.ts => libs/common/src/lib/personal-finance-tools.ts (55%) diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts index 548ffc1fa..6592969d8 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts @@ -1,10 +1,10 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { products } from '@ghostfolio/common/personal-finance-tools'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { PersonalFinanceToolsPageComponent } from './personal-finance-tools-page.component'; -import { products } from './products'; const routes: Routes = [ { @@ -13,19 +13,20 @@ const routes: Routes = [ path: '', title: $localize`Personal Finance Tools` }, - ...products - .filter(({ key }) => { - return key !== 'ghostfolio'; - }) - .map(({ alias, component, key, name }) => { - return { - canActivate: [AuthGuard], - path: $localize`open-source-alternative-to` + `-${alias ?? key}`, - loadComponent: () => - import(`./products/${key}-page.component`).then(() => component), - title: $localize`Open Source Alternative to ${name}` - }; - }) + ...products.map(({ alias, key, name }) => { + return { + canActivate: [AuthGuard], + data: { key }, + loadComponent: () => + import('./product-page.component').then( + ({ GfProductPageComponent }) => { + return GfProductPageComponent; + } + ), + path: $localize`open-source-alternative-to` + `-${alias ?? key}`, + title: $localize`Open Source Alternative to ${name}` + }; + }) ]; @NgModule({ diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts index 173b5426f..b72e49144 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -1,8 +1,8 @@ +import { products } from '@ghostfolio/common/personal-finance-tools'; + import { Component, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; -import { products } from './products'; - @Component({ host: { class: 'page' }, selector: 'gf-personal-finance-tools-page', @@ -12,13 +12,9 @@ import { products } from './products'; export class PersonalFinanceToolsPageComponent implements OnDestroy { public pathAlternativeTo = $localize`open-source-alternative-to` + '-'; public pathResources = '/' + $localize`resources`; - public products = products - .filter(({ key }) => { - return key !== 'ghostfolio'; - }) - .sort((a, b) => { - return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }); - }); + public products = products.sort((a, b) => { + return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }); + }); public routerLinkAbout = ['/' + $localize`about`]; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts new file mode 100644 index 000000000..6bf11dee2 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -0,0 +1,68 @@ +import { DataService } from '@ghostfolio/client/services/data.service'; +import { Product } from '@ghostfolio/common/interfaces'; +import { products } from '@ghostfolio/common/personal-finance-tools'; + +import { CommonModule } from '@angular/common'; +import { Component, OnInit } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { ActivatedRoute, RouterModule } from '@angular/router'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-product-page', + standalone: true, + styleUrls: ['./product-page.scss'], + templateUrl: './product-page.html' +}) +export class GfProductPageComponent implements OnInit { + public key: string; + public price: number; + public product1: Product; + public product2: Product; + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; + + public constructor( + private dataService: DataService, + private route: ActivatedRoute + ) {} + + public ngOnInit() { + const { subscriptions } = this.dataService.fetchInfo(); + + this.price = subscriptions?.default?.price; + + this.product1 = { + founded: 2021, + hasFreePlan: true, + hasSelfHostingAbility: true, + isOpenSource: true, + key: 'ghostfolio', + languages: [ + 'Deutsch', + 'English', + 'Español', + 'Français', + 'Italiano', + 'Nederlands', + 'Português', + 'Türkçe', + '简体中文' + ], + name: 'Ghostfolio', + origin: $localize`Switzerland`, + region: $localize`Global`, + slogan: 'Open Source Wealth Management', + useAnonymously: true + }; + + this.product2 = products.find(({ key }) => { + return key === this.route.snapshot.data['key']; + }); + } +} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.html similarity index 100% rename from apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html rename to apps/client/src/app/pages/resources/personal-finance-tools/product-page.html diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.scss b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss similarity index 100% rename from apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.scss rename to apps/client/src/app/pages/resources/personal-finance-tools/product-page.scss diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts deleted file mode 100644 index d946883f2..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-allinvestview-systems-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class AllInvestViewPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'allinvestview'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts deleted file mode 100644 index 399abe975..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-allvue-systems-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class AllvueSystemsPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'allvue-systems'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts deleted file mode 100644 index 1d1164e79..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-altoo-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class AltooPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'altoo'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts deleted file mode 100644 index 840a40e3e..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { DataService } from '@ghostfolio/client/services/data.service'; - -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'gf-base-product-page', - template: '' -}) -export class BaseProductPageComponent implements OnInit { - public price: number; - - public constructor(private dataService: DataService) {} - - public ngOnInit() { - const { subscriptions } = this.dataService.fetchInfo(); - - this.price = subscriptions?.default?.price; - } -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts deleted file mode 100644 index 1712f0013..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/basil-finance-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-basil-finance-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class BasilFinancePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'basil-finance'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts deleted file mode 100644 index 26b3b7fa3..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/beanvest-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-beanvest-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class BeanvestPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'beanvest'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts deleted file mode 100644 index 37501d4f0..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/capitally-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-capitally-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class CapitallyPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'capitally'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts deleted file mode 100644 index d021e2078..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/capmon-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-capmon-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class CapMonPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'capmon'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/compound-planning-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/compound-planning-page.component.ts deleted file mode 100644 index 0d455e127..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/compound-planning-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-compound-planning-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class CompoundPlanningPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'compound-planning'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts deleted file mode 100644 index f1c05855f..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/copilot-money-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-copilot-money-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class CopilotMoneyPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'copilot-money'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/de.fi-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/de.fi-page.component.ts deleted file mode 100644 index b2a0d62ec..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/de.fi-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-de-fi-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class DeFiPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'de.fi'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts deleted file mode 100644 index fe11152d3..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/delta-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-delta-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class DeltaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'delta'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts deleted file mode 100644 index e128650de..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/divvydiary-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-divvy-diary-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class DivvyDiaryPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'divvydiary'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts deleted file mode 100644 index 933e1ac4b..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/eightfigures-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-eightfigures-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class EightFiguresPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'eightfigures'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/empower-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/empower-page.component.ts deleted file mode 100644 index ea02c8b17..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/empower-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-empower-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class EmpowerPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'empower'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts deleted file mode 100644 index 7844350df..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-exirio-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class ExirioPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'exirio'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts deleted file mode 100644 index 328d9896e..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-fina-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class FinaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'fina'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts deleted file mode 100644 index 4e64d8c8f..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-finary-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class FinaryPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'finary'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts deleted file mode 100644 index 70f46d132..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/finwise-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-finwise-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class FinWisePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'finwise'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts deleted file mode 100644 index dfddfc2a0..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/folishare-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-folishare-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class FolisharePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'folishare'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts deleted file mode 100644 index 86ae168b6..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/getquin-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-getquin-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class GetquinPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'getquin'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts deleted file mode 100644 index 8bb604b11..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/gospatz-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-gospatz-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class GoSpatzPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'gospatz'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts deleted file mode 100644 index a142bec5c..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/intuit-mint-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-intuit-mint-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class IntuitMintPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'intuit-mint'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts deleted file mode 100644 index f87ec5f43..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/justetf-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-justetf-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class JustEtfPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'justetf'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts deleted file mode 100644 index b88496b8e..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-koyfin-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class KoyfinPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'koyfin'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts deleted file mode 100644 index cb0511d4f..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/kubera-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-kubera-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class KuberaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'kubera'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts deleted file mode 100644 index 4e688c11e..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/magnifi-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-magnifi-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class MagnifiPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'magnifi'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts deleted file mode 100644 index 94bc581e4..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/markets.sh-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-markets-sh-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class MarketsShPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'markets.sh'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts deleted file mode 100644 index 86738e136..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/maybe-finance-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-maybe-finance-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class MaybeFinancePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'maybe-finance'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts deleted file mode 100644 index 095584fbe..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/monarch-money-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-monarch-money-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class MonarchMoneyPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'monarch-money'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts deleted file mode 100644 index 588854e3d..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/monse-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-monse-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class MonsePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'monse'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/navexa-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/navexa-page.component.ts deleted file mode 100644 index 0ffb17bbe..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/navexa-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-navexa-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class NavexaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'navexa'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts deleted file mode 100644 index f6e956023..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/parqet-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-parqet-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class ParqetPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'parqet'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts deleted file mode 100644 index 106818ea0..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/plannix-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-plannix-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class PlannixPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'plannix'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts deleted file mode 100644 index da41c1604..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-dividend-tracker-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-portfolio-dividend-tracker-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class PortfolioDividendTrackerPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'portfolio-dividend-tracker'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts deleted file mode 100644 index 4baeb4de9..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/portfolio-visualizer-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-portfolio-visualizer-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class PortfolioVisualizerPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'portfolio-visualizer'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts deleted file mode 100644 index 7fb7703b2..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/portseido-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-portseido-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class PortseidoPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'portseido'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts deleted file mode 100644 index 6cd22b8f4..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/projectionlab-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-projection-lab-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class ProjectionLabPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'projectionlab'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts deleted file mode 100644 index 7dc279444..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/rocket-money-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-rocket-money-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class RocketMoneyPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'rocket-money'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts deleted file mode 100644 index 825eacb34..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/seeking-alpha-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-seeking-alpha-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class SeekingAlphaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'seeking-alpha'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts deleted file mode 100644 index 5b0554179..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/sharesight-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-sharesight-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class SharesightPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'sharesight'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts deleted file mode 100644 index 8a1ae2790..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/simple-portfolio-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-simple-portfolio-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class SimplePortfolioPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'simple-portfolio'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts deleted file mode 100644 index 9892af41d..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/snowball-analytics-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-snowball-analytics-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class SnowballAnalyticsPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'snowball-analytics'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts deleted file mode 100644 index ea8aa753b..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/stock-events-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-stock-events-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class StockEventsPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'stock-events'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts deleted file mode 100644 index e06ec527b..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/stockle-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-stockle-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class StocklePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'stockle'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts deleted file mode 100644 index 1c70efc04..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/stockmarketeye-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-stockmarketeye-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class StockMarketEyePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'stockmarketeye'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/stonksfolio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/stonksfolio-page.component.ts deleted file mode 100644 index f62c3f3bd..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/stonksfolio-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-stonksfolio-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class StonksfolioPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'stonksfolio'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts deleted file mode 100644 index acf23f772..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/sumio-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-sumio-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class SumioPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'sumio'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/tiller-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/tiller-page.component.ts deleted file mode 100644 index 69ba2759b..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/tiller-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-tiller-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class TillerPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'tiller'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts deleted file mode 100644 index 8ce62c741..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/utluna-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-utluna-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class UtlunaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'utluna'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts deleted file mode 100644 index 37b8c4a72..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-vyzer-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class VyzerPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'vyzer'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts deleted file mode 100644 index 5c75c80fb..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/wallmine-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-wallmine-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class WallminePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'wallmine'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts deleted file mode 100644 index d888e2f93..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-wealthfolio-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class WealthfolioPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'wealthfolio'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts deleted file mode 100644 index cea5ddf7a..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-wealthica-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class WealthicaPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'wealthica'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/whal-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/whal-page.component.ts deleted file mode 100644 index b336c07a0..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/whal-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-whal-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class WhalPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'whal'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts deleted file mode 100644 index bd95a70f9..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/yeekatee-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-yeekatee-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class YeekateePageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'yeekatee'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts deleted file mode 100644 index 0c343b4e6..000000000 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/ynab-page.component.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { RouterModule } from '@angular/router'; - -import { products } from '../products'; -import { BaseProductPageComponent } from './base-page.component'; - -@Component({ - host: { class: 'page' }, - imports: [CommonModule, MatButtonModule, RouterModule], - selector: 'gf-ynab-page', - standalone: true, - styleUrls: ['../product-page-template.scss'], - templateUrl: '../product-page-template.html' -}) -export class YnabPageComponent extends BaseProductPageComponent { - public product1 = products.find(({ key }) => { - return key === 'ghostfolio'; - }); - - public product2 = products.find(({ key }) => { - return key === 'ynab'; - }); - - public routerLinkAbout = ['/' + $localize`about`]; - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + $localize`resources`, - 'personal-finance-tools' - ]; -} diff --git a/libs/common/src/lib/interfaces/product.ts b/libs/common/src/lib/interfaces/product.ts index 274ee8207..0723abf95 100644 --- a/libs/common/src/lib/interfaces/product.ts +++ b/libs/common/src/lib/interfaces/product.ts @@ -1,6 +1,5 @@ export interface Product { alias?: string; - component: any; founded?: number; hasFreePlan?: boolean; hasSelfHostingAbility?: boolean; diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts b/libs/common/src/lib/personal-finance-tools.ts similarity index 55% rename from apps/client/src/app/pages/resources/personal-finance-tools/products.ts rename to libs/common/src/lib/personal-finance-tools.ts index 521659611..247e2d090 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts +++ b/libs/common/src/lib/personal-finance-tools.ts @@ -1,89 +1,7 @@ import { Product } from '@ghostfolio/common/interfaces'; -import { AllInvestViewPageComponent } from './products/allinvestview-page.component'; -import { AllvueSystemsPageComponent } from './products/allvue-systems-page.component'; -import { AltooPageComponent } from './products/altoo-page.component'; -import { BasilFinancePageComponent } from './products/basil-finance-page.component'; -import { BeanvestPageComponent } from './products/beanvest-page.component'; -import { CapitallyPageComponent } from './products/capitally-page.component'; -import { CapMonPageComponent } from './products/capmon-page.component'; -import { CompoundPlanningPageComponent } from './products/compound-planning-page.component'; -import { CopilotMoneyPageComponent } from './products/copilot-money-page.component'; -import { DeFiPageComponent } from './products/de.fi-page.component'; -import { DeltaPageComponent } from './products/delta-page.component'; -import { DivvyDiaryPageComponent } from './products/divvydiary-page.component'; -import { EightFiguresPageComponent } from './products/eightfigures-page.component'; -import { EmpowerPageComponent } from './products/empower-page.component'; -import { ExirioPageComponent } from './products/exirio-page.component'; -import { FinaPageComponent } from './products/fina-page.component'; -import { FinaryPageComponent } from './products/finary-page.component'; -import { FinWisePageComponent } from './products/finwise-page.component'; -import { FolisharePageComponent } from './products/folishare-page.component'; -import { GetquinPageComponent } from './products/getquin-page.component'; -import { GoSpatzPageComponent } from './products/gospatz-page.component'; -import { IntuitMintPageComponent } from './products/intuit-mint-page.component'; -import { JustEtfPageComponent } from './products/justetf-page.component'; -import { KoyfinPageComponent } from './products/koyfin-page.component'; -import { KuberaPageComponent } from './products/kubera-page.component'; -import { MagnifiPageComponent } from './products/magnifi-page.component'; -import { MarketsShPageComponent } from './products/markets.sh-page.component'; -import { MaybeFinancePageComponent } from './products/maybe-finance-page.component'; -import { MonarchMoneyPageComponent } from './products/monarch-money-page.component'; -import { MonsePageComponent } from './products/monse-page.component'; -import { NavexaPageComponent } from './products/navexa-page.component'; -import { ParqetPageComponent } from './products/parqet-page.component'; -import { PlannixPageComponent } from './products/plannix-page.component'; -import { PortfolioDividendTrackerPageComponent } from './products/portfolio-dividend-tracker-page.component'; -import { PortfolioVisualizerPageComponent } from './products/portfolio-visualizer-page.component'; -import { PortseidoPageComponent } from './products/portseido-page.component'; -import { ProjectionLabPageComponent } from './products/projectionlab-page.component'; -import { RocketMoneyPageComponent } from './products/rocket-money-page.component'; -import { SeekingAlphaPageComponent } from './products/seeking-alpha-page.component'; -import { SharesightPageComponent } from './products/sharesight-page.component'; -import { SimplePortfolioPageComponent } from './products/simple-portfolio-page.component'; -import { SnowballAnalyticsPageComponent } from './products/snowball-analytics-page.component'; -import { StockEventsPageComponent } from './products/stock-events-page.component'; -import { StocklePageComponent } from './products/stockle-page.component'; -import { StockMarketEyePageComponent } from './products/stockmarketeye-page.component'; -import { StonksfolioPageComponent } from './products/stonksfolio-page.component'; -import { SumioPageComponent } from './products/sumio-page.component'; -import { TillerPageComponent } from './products/tiller-page.component'; -import { UtlunaPageComponent } from './products/utluna-page.component'; -import { VyzerPageComponent } from './products/vyzer-page.component'; -import { WallminePageComponent } from './products/wallmine-page.component'; -import { WealthfolioPageComponent } from './products/wealthfolio-page.component'; -import { WealthicaPageComponent } from './products/wealthica-page.component'; -import { WhalPageComponent } from './products/whal-page.component'; -import { YeekateePageComponent } from './products/yeekatee-page.component'; -import { YnabPageComponent } from './products/ynab-page.component'; - export const products: Product[] = [ { - component: undefined, - founded: 2021, - hasFreePlan: true, - hasSelfHostingAbility: true, - isOpenSource: true, - key: 'ghostfolio', - languages: [ - 'Deutsch', - 'English', - 'Español', - 'Français', - 'Italiano', - 'Nederlands', - 'Português', - 'Türkçe', - '简体中文' - ], - name: 'Ghostfolio', - origin: $localize`Switzerland`, - region: $localize`Global`, - slogan: 'Open Source Wealth Management', - useAnonymously: true - }, - { - component: AllInvestViewPageComponent, founded: 2023, hasSelfHostingAbility: false, key: 'allinvestview', @@ -92,26 +10,23 @@ export const products: Product[] = [ slogan: 'All your Investments in One View' }, { - component: AllvueSystemsPageComponent, founded: 2019, hasFreePlan: false, hasSelfHostingAbility: false, key: 'allvue-systems', name: 'Allvue Systems', - origin: $localize`United States`, + origin: `United States`, slogan: 'Investment Software Suite' }, { - component: AltooPageComponent, founded: 2017, hasSelfHostingAbility: false, key: 'altoo', name: 'Altoo Wealth Platform', - origin: $localize`Switzerland`, + origin: `Switzerland`, slogan: 'Simplicity for Complex Wealth' }, { - component: BasilFinancePageComponent, founded: 2022, hasFreePlan: true, hasSelfHostingAbility: false, @@ -120,56 +35,50 @@ export const products: Product[] = [ slogan: 'The ultimate solution for tracking and managing your investments' }, { - component: BeanvestPageComponent, founded: 2020, hasFreePlan: true, hasSelfHostingAbility: false, key: 'beanvest', name: 'Beanvest', - origin: $localize`France`, + origin: `France`, pricingPerYear: '$100', slogan: 'Stock Portfolio Tracker for Smart Investors' }, { - component: CapitallyPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'capitally', name: 'Capitally', - origin: $localize`Poland`, + origin: `Poland`, pricingPerYear: '€50', slogan: 'Optimize your investments performance' }, { - component: CapMonPageComponent, founded: 2022, key: 'capmon', name: 'CapMon.org', - origin: $localize`Germany`, + origin: `Germany`, note: 'CapMon.org has discontinued in 2023', slogan: 'Next Generation Assets Tracking' }, { - component: CompoundPlanningPageComponent, founded: 2019, key: 'compound-planning', name: 'Compound Planning', - origin: $localize`United States`, + origin: `United States`, slogan: 'Modern Wealth & Investment Management' }, { - component: CopilotMoneyPageComponent, founded: 2019, hasFreePlan: false, hasSelfHostingAbility: false, key: 'copilot-money', name: 'Copilot Money', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$70', slogan: 'Do money better with Copilot' }, { - component: DeFiPageComponent, founded: 2020, key: 'de.fi', languages: ['English'], @@ -177,215 +86,195 @@ export const products: Product[] = [ slogan: 'DeFi Portfolio Tracker' }, { - component: DeltaPageComponent, founded: 2017, hasFreePlan: true, hasSelfHostingAbility: false, key: 'delta', name: 'Delta Investment Tracker', note: 'Acquired by eToro', - origin: $localize`Belgium`, + origin: `Belgium`, slogan: 'The app to track all your investments. Make smart moves only.' }, { - component: DivvyDiaryPageComponent, founded: 2019, hasFreePlan: true, hasSelfHostingAbility: false, key: 'divvydiary', languages: ['Deutsch', 'English'], name: 'DivvyDiary', - origin: $localize`Germany`, + origin: `Germany`, pricingPerYear: '€65', slogan: 'Your personal Dividend Calendar' }, { - component: EmpowerPageComponent, founded: 2009, hasSelfHostingAbility: false, key: 'empower', name: 'Empower', note: 'Originally named as Personal Capital', - origin: $localize`United States`, + origin: `United States`, slogan: 'Get answers to your money questions' }, { alias: '8figures', - component: EightFiguresPageComponent, founded: 2022, key: 'eightfigures', name: '8FIGURES', - origin: $localize`United States`, + origin: `United States`, slogan: 'Portfolio Tracker Designed by Professional Investors' }, { - component: ExirioPageComponent, founded: 2020, hasFreePlan: true, hasSelfHostingAbility: false, key: 'exirio', name: 'Exirio', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$100', slogan: 'All your wealth, in one place.' }, { - component: FinaPageComponent, founded: 2023, hasFreePlan: true, hasSelfHostingAbility: false, key: 'fina', languages: ['English'], name: 'Fina', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$115', slogan: 'Flexible Financial Management' }, { - component: FinaryPageComponent, founded: 2020, key: 'finary', languages: ['Deutsch', 'English', 'Français'], name: 'Finary', - origin: $localize`United States`, + origin: `United States`, slogan: 'Real-Time Portfolio Tracker & Stock Tracker' }, { - component: FinWisePageComponent, founded: 2023, hasFreePlan: true, key: 'finwise', name: 'FinWise', - origin: $localize`South Africa`, + origin: `South Africa`, pricingPerYear: '€69.99', slogan: 'Personal finances, simplified' }, { - component: FolisharePageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'folishare', languages: ['Deutsch', 'English'], name: 'folishare', - origin: $localize`Austria`, + origin: `Austria`, pricingPerYear: '$65', slogan: 'Take control over your investments' }, { - component: GetquinPageComponent, founded: 2020, hasFreePlan: true, hasSelfHostingAbility: false, key: 'getquin', languages: ['Deutsch', 'English'], name: 'getquin', - origin: $localize`Germany`, + origin: `Germany`, pricingPerYear: '€48', slogan: 'Portfolio Tracker, Analysis & Community' }, { - component: GoSpatzPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'gospatz', name: 'goSPATZ', - origin: $localize`Germany`, + origin: `Germany`, slogan: 'Volle Kontrolle über deine Investitionen' }, { - component: IntuitMintPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'intuit-mint', name: 'Intuit Mint', note: 'Intuit Mint has discontinued in 2023', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$60', slogan: 'Managing money, made simple' }, { - component: JustEtfPageComponent, founded: 2011, hasFreePlan: true, hasSelfHostingAbility: false, key: 'justetf', name: 'justETF', - origin: $localize`Germany`, + origin: `Germany`, pricingPerYear: '€119', slogan: 'ETF portfolios made simple' }, { - component: KoyfinPageComponent, founded: 2016, hasFreePlan: true, hasSelfHostingAbility: false, key: 'koyfin', name: 'Koyfin', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$468', slogan: 'Comprehensive financial data analysis' }, { - component: KuberaPageComponent, founded: 2019, hasFreePlan: false, hasSelfHostingAbility: false, key: 'kubera', name: 'Kubera®', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$150', slogan: 'The Time Machine for your Net Worth' }, { - component: MagnifiPageComponent, founded: 2018, hasFreePlan: false, hasSelfHostingAbility: false, key: 'magnifi', name: 'Magnifi', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$132', slogan: 'AI Investing Assistant' }, { - component: MarketsShPageComponent, founded: 2022, hasFreePlan: true, hasSelfHostingAbility: false, key: 'markets.sh', languages: ['English'], name: 'markets.sh', - origin: $localize`Germany`, + origin: `Germany`, pricingPerYear: '€168', - region: $localize`Global`, + region: `Global`, slogan: 'Track your investments' }, { - component: MaybeFinancePageComponent, founded: 2021, hasSelfHostingAbility: false, key: 'maybe-finance', languages: ['English'], name: 'Maybe Finance', note: 'Maybe Finance has discontinued in 2023', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$145', - region: $localize`United States`, + region: `United States`, slogan: 'Your financial future, in your control' }, { - component: MonarchMoneyPageComponent, founded: 2019, hasFreePlan: false, hasSelfHostingAbility: false, key: 'monarch-money', name: 'Monarch Money', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$99.99', slogan: 'The modern way to manage your money' }, { - component: MonsePageComponent, hasFreePlan: false, hasSelfHostingAbility: false, key: 'monse', @@ -394,51 +283,46 @@ export const products: Product[] = [ slogan: 'Gain financial control and keep your data private.' }, { - component: NavexaPageComponent, founded: 2017, hasFreePlan: false, hasSelfHostingAbility: false, key: 'navexa', name: 'Navexa', - origin: $localize`Australia`, + origin: `Australia`, pricingPerYear: '$90', slogan: 'The Intelligent Portfolio Tracker' }, { - component: ParqetPageComponent, founded: 2020, hasSelfHostingAbility: false, hasFreePlan: true, key: 'parqet', name: 'Parqet', note: 'Originally named as Tresor One', - origin: $localize`Germany`, + origin: `Germany`, pricingPerYear: '€88', region: 'Austria, Germany, Switzerland', slogan: 'Dein Vermögen immer im Blick' }, { - component: PlannixPageComponent, founded: 2023, hasSelfHostingAbility: false, key: 'plannix', name: 'Plannix', - origin: $localize`Italy`, + origin: `Italy`, slogan: 'Your Personal Finance Hub' }, { - component: PortfolioDividendTrackerPageComponent, hasFreePlan: false, hasSelfHostingAbility: false, key: 'portfolio-dividend-tracker', languages: ['English', 'Nederlands'], name: 'Portfolio Dividend Tracker', - origin: $localize`Netherlands`, + origin: `Netherlands`, pricingPerYear: '€60', slogan: 'Manage all your portfolios' }, { - component: PortfolioVisualizerPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'portfolio-visualizer', @@ -448,172 +332,155 @@ export const products: Product[] = [ slogan: 'Tools for Better Investors' }, { - component: PortseidoPageComponent, founded: 2021, hasFreePlan: true, hasSelfHostingAbility: false, key: 'portseido', languages: ['Deutsch', 'English', 'Français', 'Nederlands'], name: 'Portseido', - origin: $localize`Thailand`, + origin: `Thailand`, pricingPerYear: '$96', slogan: 'Portfolio Performance and Dividend Tracker' }, { - component: ProjectionLabPageComponent, founded: 2021, hasFreePlan: true, hasSelfHostingAbility: true, key: 'projectionlab', name: 'ProjectionLab', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$108', slogan: 'Build Financial Plans You Love.' }, { - component: RocketMoneyPageComponent, founded: 2015, hasSelfHostingAbility: false, key: 'rocket-money', name: 'Rocket Money', - origin: $localize`United States`, + origin: `United States`, slogan: 'Track your net worth' }, { - component: SeekingAlphaPageComponent, founded: 2004, hasFreePlan: false, hasSelfHostingAbility: false, key: 'seeking-alpha', name: 'Seeking Alpha', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$239', slogan: 'Stock Market Analysis & Tools for Investors' }, { - component: SharesightPageComponent, founded: 2007, hasFreePlan: true, hasSelfHostingAbility: false, key: 'sharesight', name: 'Sharesight', - origin: $localize`New Zealand`, + origin: `New Zealand`, pricingPerYear: '$135', - region: $localize`Global`, + region: `Global`, slogan: 'Stock Portfolio Tracker' }, { - component: SimplePortfolioPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'simple-portfolio', name: 'Simple Portfolio', - origin: $localize`Czech Republic`, + origin: `Czech Republic`, pricingPerYear: '€80', slogan: 'Stock Portfolio Tracker' }, { - component: SnowballAnalyticsPageComponent, founded: 2021, hasFreePlan: true, hasSelfHostingAbility: false, key: 'snowball-analytics', name: 'Snowball Analytics', - origin: $localize`France`, + origin: `France`, pricingPerYear: '$80', slogan: 'Simple and powerful portfolio tracker' }, { - component: StockEventsPageComponent, founded: 2019, hasSelfHostingAbility: false, key: 'stock-events', name: 'Stock Events', - origin: $localize`Germany`, + origin: `Germany`, slogan: 'Track all your Investments' }, { - component: StocklePageComponent, key: 'stockle', name: 'Stockle', - origin: $localize`Finland`, + origin: `Finland`, slogan: 'Supercharge your investments tracking experience' }, { - component: StockMarketEyePageComponent, founded: 2008, key: 'stockmarketeye', name: 'StockMarketEye', - origin: $localize`France`, + origin: `France`, note: 'StockMarketEye has discontinued in 2023', slogan: 'A Powerful Portfolio & Investment Tracking App' }, { - component: StonksfolioPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'stonksfolio', languages: ['English'], name: 'Stonksfolio', - origin: $localize`Bulgaria`, + origin: `Bulgaria`, pricingPerYear: '€49.90', slogan: 'Visualize all of your portfolios' }, { - component: SumioPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'sumio', name: 'Sumio', - origin: $localize`Czech Republic`, + origin: `Czech Republic`, pricingPerYear: '$20', slogan: 'Sum up and build your wealth.' }, { - component: TillerPageComponent, founded: 2016, hasFreePlan: false, key: 'tiller', name: 'Tiller', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$79', slogan: 'Your financial life in a spreadsheet, automatically updated each day' }, { - component: UtlunaPageComponent, hasFreePlan: true, hasSelfHostingAbility: false, key: 'utluna', languages: ['Deutsch', 'English', 'Français'], name: 'Utluna', - origin: $localize`Switzerland`, + origin: `Switzerland`, pricingPerYear: '$300', slogan: 'Your Portfolio. Revealed.', useAnonymously: true }, { - component: VyzerPageComponent, founded: 2020, hasFreePlan: true, key: 'vyzer', name: 'Vyzer', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$348', slogan: 'Virtual Family Office for Smart Wealth Management' }, { - component: WallminePageComponent, hasSelfHostingAbility: false, key: 'wallmine', languages: ['English'], name: 'wallmine', - origin: $localize`Czech Republic`, + origin: `Czech Republic`, pricingPerYear: '$600', slogan: 'Make Smarter Investments' }, { - component: WealthfolioPageComponent, hasSelfHostingAbility: true, key: 'wealthfolio', languages: ['English'], @@ -621,44 +488,40 @@ export const products: Product[] = [ slogan: 'Desktop Investment Tracker' }, { - component: WealthicaPageComponent, founded: 2015, hasFreePlan: true, hasSelfHostingAbility: false, key: 'wealthica', languages: ['English', 'Français'], name: 'Wealthica', - origin: $localize`Canada`, + origin: `Canada`, pricingPerYear: '$50', slogan: 'See all your investments in one place' }, { - component: WhalPageComponent, key: 'whal', name: 'Whal', - origin: $localize`United States`, + origin: `United States`, slogan: 'Manage your investments in one place' }, { - component: YeekateePageComponent, founded: 2021, hasFreePlan: true, hasSelfHostingAbility: false, key: 'yeekatee', languages: ['Deutsch', 'English', 'Español', 'Français', 'Italiano'], name: 'yeekatee', - origin: $localize`Switzerland`, - region: $localize`Global`, + origin: `Switzerland`, + region: `Global`, slogan: 'Connect. Share. Invest.' }, { - component: YnabPageComponent, founded: 2004, hasFreePlan: false, hasSelfHostingAbility: false, key: 'ynab', name: 'YNAB (You Need a Budget)', - origin: $localize`United States`, + origin: `United States`, pricingPerYear: '$99', slogan: 'Change Your Relationship With Money' }