From 95c0636fbc86e7b6f011a3b9ae35e6dffc90ce3f Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sat, 18 Jul 2026 19:54:15 +0200
Subject: [PATCH] Eliminate symbol pipe
---
.../admin-market-data/admin-market-data.component.ts | 2 --
.../components/admin-market-data/admin-market-data.html | 4 +---
.../import-activities-dialog.component.ts | 2 --
.../import-activities-dialog.html | 2 +-
.../portfolio/allocations/allocations-page.component.ts | 8 ++++----
apps/client/src/app/pages/public/public-page.component.ts | 8 ++++----
libs/common/src/lib/config.ts | 3 ---
libs/common/src/lib/helper.ts | 5 -----
.../activities-filter/activities-filter.component.html | 4 ++--
.../lib/activities-filter/activities-filter.component.ts | 2 --
.../lib/activities-table/activities-table.component.html | 4 +---
.../activities-table.component.stories.ts | 2 --
.../lib/activities-table/activities-table.component.ts | 2 --
.../assistant-list-item/assistant-list-item.component.ts | 3 +--
.../assistant-list-item/assistant-list-item.html | 2 +-
.../portfolio-filter-form.component.html | 2 +-
.../portfolio-filter-form.component.ts | 2 --
.../symbol-autocomplete.component.html | 2 +-
.../symbol-autocomplete/symbol-autocomplete.component.ts | 2 --
libs/ui/src/lib/top-holdings/top-holdings.component.html | 2 +-
libs/ui/src/lib/top-holdings/top-holdings.component.ts | 2 --
21 files changed, 18 insertions(+), 47 deletions(-)
diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
index 4b893af7b0..e716907ef3 100644
--- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
+++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
@@ -13,7 +13,6 @@ import {
User
} from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { GfActivitiesFilterComponent } from '@ghostfolio/ui/activities-filter';
import { GfFabComponent } from '@ghostfolio/ui/fab';
import { translate } from '@ghostfolio/ui/i18n';
@@ -83,7 +82,6 @@ import { CreateAssetProfileDialogParams } from './create-asset-profile-dialog/in
GfActivitiesFilterComponent,
GfFabComponent,
GfPremiumIndicatorComponent,
- GfSymbolPipe,
GfValueComponent,
IonIcon,
MatButtonModule,
diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html
index ebb165814c..f6744b2632 100644
--- a/apps/client/src/app/components/admin-market-data/admin-market-data.html
+++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html
@@ -95,9 +95,7 @@
{{ element.name }}
@if (!isUUID(element.symbol)) {
- {{
- element.symbol | gfSymbol
- }}
+ {{ element.symbol }}
}
diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
index 4541009a0f..77d889b1a6 100644
--- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
@@ -7,7 +7,6 @@ import {
CreateTagDto
} from '@ghostfolio/common/dtos';
import { Activity, PortfolioPosition } from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
import { GfDialogFooterComponent } from '@ghostfolio/ui/dialog-footer';
import { GfDialogHeaderComponent } from '@ghostfolio/ui/dialog-header';
@@ -66,7 +65,6 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces';
GfDialogFooterComponent,
GfDialogHeaderComponent,
GfFileDropDirective,
- GfSymbolPipe,
IonIcon,
MatButtonModule,
MatDialogModule,
diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
index 4149ce5b64..559f639b15 100644
--- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
+++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
@@ -51,7 +51,7 @@
>
{{ holding.assetProfile.symbol | gfSymbol }} ·
+ >{{ holding.assetProfile.symbol }} ·
{{ holding.assetProfile.currency }}
diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
index 52f051e779..de00048e7c 100644
--- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
@@ -6,7 +6,7 @@ import {
import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { MAX_TOP_HOLDINGS, UNKNOWN_KEY } from '@ghostfolio/common/config';
-import { getCountryName, prettifySymbol } from '@ghostfolio/common/helper';
+import { getCountryName } from '@ghostfolio/common/helper';
import {
AssetProfileIdentifier,
HoldingWithParents,
@@ -495,10 +495,10 @@ export class GfAllocationsPageComponent implements OnInit {
this.totalValueInEtf += this.holdings[symbol].value;
}
- this.symbols[prettifySymbol(symbol)] = {
+ this.symbols[symbol] = {
+ symbol,
dataSource: position.assetProfile.dataSource,
name: position.assetProfile.name ?? '',
- symbol: prettifySymbol(symbol),
value:
(isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency
@@ -565,11 +565,11 @@ export class GfAllocationsPageComponent implements OnInit {
return currentParentHolding &&
isNumber(currentParentHolding.valueInBaseCurrency)
? {
+ symbol,
allocationInPercentage:
currentParentHolding.valueInBaseCurrency / value,
name: holding.assetProfile.name ?? '',
position: holding,
- symbol: prettifySymbol(symbol),
valueInBaseCurrency:
currentParentHolding.valueInBaseCurrency
}
diff --git a/apps/client/src/app/pages/public/public-page.component.ts b/apps/client/src/app/pages/public/public-page.component.ts
index 52d295dfa9..3b149cd086 100644
--- a/apps/client/src/app/pages/public/public-page.component.ts
+++ b/apps/client/src/app/pages/public/public-page.component.ts
@@ -1,5 +1,5 @@
import { UNKNOWN_KEY } from '@ghostfolio/common/config';
-import { getCountryName, prettifySymbol } from '@ghostfolio/common/helper';
+import { getCountryName } from '@ghostfolio/common/helper';
import {
InfoItem,
PortfolioPosition,
@@ -250,9 +250,9 @@ export class GfPublicPageComponent implements OnInit {
}
}
- this.symbols[prettifySymbol(symbol)] = {
- name: position.assetProfile.name ?? prettifySymbol(symbol),
- symbol: prettifySymbol(symbol),
+ this.symbols[symbol] = {
+ symbol,
+ name: position.assetProfile.name ?? symbol,
value: isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency
: (position.valueInPercentage ?? 0)
diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts
index f7bafb1019..a5363372a9 100644
--- a/libs/common/src/lib/config.ts
+++ b/libs/common/src/lib/config.ts
@@ -6,9 +6,6 @@ import { ColorScheme, DateRange } from './types';
export const ghostfolioPrefix = 'GF';
-/* @deprecated */
-export const ghostfolioScraperApiSymbolPrefix = `_${ghostfolioPrefix}_`;
-
export const ghostfolioFearAndGreedIndexDataSourceCryptocurrencies =
DataSource.MANUAL;
export const ghostfolioFearAndGreedIndexSymbolCryptocurrencies = `${ghostfolioPrefix}_FEAR_AND_GREED_INDEX_CRYPTOCURRENCIES`;
diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts
index 9a32927e23..6a135eef63 100644
--- a/libs/common/src/lib/helper.ts
+++ b/libs/common/src/lib/helper.ts
@@ -40,7 +40,6 @@ import {
DERIVED_CURRENCIES,
ghostfolioFearAndGreedIndexSymbolCryptocurrencies,
ghostfolioFearAndGreedIndexSymbolStocks,
- ghostfolioScraperApiSymbolPrefix,
TAG_ID_EXCLUDE_FROM_ANALYSIS
} from './config';
import {
@@ -527,10 +526,6 @@ export function parseSymbol({ dataSource, symbol }: AssetProfileIdentifier) {
};
}
-export function prettifySymbol(aSymbol: string): string {
- return aSymbol?.replace(ghostfolioScraperApiSymbolPrefix, '');
-}
-
export function resetHours(aDate: Date) {
const year = getYear(aDate);
const month = getMonth(aDate);
diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.html b/libs/ui/src/lib/activities-filter/activities-filter.component.html
index b525e51339..58626351b7 100644
--- a/libs/ui/src/lib/activities-filter/activities-filter.component.html
+++ b/libs/ui/src/lib/activities-filter/activities-filter.component.html
@@ -8,7 +8,7 @@
[removable]="true"
(removed)="onRemoveFilter(filter)"
>
- {{ filter.label ?? '' | gfSymbol }}
+ {{ filter.label }}
@@ -33,7 +33,7 @@
@for (filter of filterGroup.filters; track filter) {
- {{ filter.label ?? '' | gfSymbol }}
+ {{ filter.label }}
}
diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.ts b/libs/ui/src/lib/activities-filter/activities-filter.component.ts
index 6b58e6aecc..7a434d94c8 100644
--- a/libs/ui/src/lib/activities-filter/activities-filter.component.ts
+++ b/libs/ui/src/lib/activities-filter/activities-filter.component.ts
@@ -1,5 +1,4 @@
import { Filter, FilterGroup } from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { CommonModule } from '@angular/common';
@@ -39,7 +38,6 @@ import { translate } from '../i18n';
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
CommonModule,
- GfSymbolPipe,
IonIcon,
MatAutocompleteModule,
MatButtonModule,
diff --git a/libs/ui/src/lib/activities-table/activities-table.component.html b/libs/ui/src/lib/activities-table/activities-table.component.html
index cc9a340475..50fb025cb4 100644
--- a/libs/ui/src/lib/activities-table/activities-table.component.html
+++ b/libs/ui/src/lib/activities-table/activities-table.component.html
@@ -172,9 +172,7 @@
!isUUID(element.assetProfile?.symbol)
) {
- {{
- element.assetProfile?.symbol | gfSymbol
- }}
+ {{ element.assetProfile?.symbol }}
}
diff --git a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
index e4028e7baa..540aa92b6d 100644
--- a/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.component.stories.ts
@@ -1,5 +1,4 @@
import { Activity } from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button';
@@ -375,7 +374,6 @@ export default {
GfActivityTypeComponent,
GfEntityLogoComponent,
GfNoTransactionsInfoComponent,
- GfSymbolPipe,
GfValueComponent,
IonIcon,
MatButtonModule,
diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts
index 399d5d7e19..be1f887527 100644
--- a/libs/ui/src/lib/activities-table/activities-table.component.ts
+++ b/libs/ui/src/lib/activities-table/activities-table.component.ts
@@ -8,7 +8,6 @@ import {
Activity,
AssetProfileIdentifier
} from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { translate } from '@ghostfolio/ui/i18n';
import { NotificationService } from '@ghostfolio/ui/notifications';
@@ -83,7 +82,6 @@ import { GfValueComponent } from '../value/value.component';
GfActivityTypeComponent,
GfEntityLogoComponent,
GfNoTransactionsInfoComponent,
- GfSymbolPipe,
GfValueComponent,
IonIcon,
MatButtonModule,
diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts
index 36127a5669..b2c541e3f3 100644
--- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts
+++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts
@@ -1,4 +1,3 @@
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { FocusableOption } from '@angular/cdk/a11y';
@@ -24,7 +23,7 @@ import {
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
- imports: [GfSymbolPipe, RouterModule],
+ imports: [RouterModule],
selector: 'gf-assistant-list-item',
styleUrls: ['./assistant-list-item.scss'],
templateUrl: './assistant-list-item.html'
diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html
index fa30d0c038..45a84866bb 100644
--- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html
+++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html
@@ -8,7 +8,7 @@
@if (item && isAsset(item)) {
{{ item?.symbol ?? '' | gfSymbol }}
+ >{{ item?.symbol }}
@if (item.currency) {
· {{ item.currency }}
}
diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
index 33bde3fd6c..cda9cab3c3 100644
--- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
+++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
@@ -40,7 +40,7 @@
>
{{ holding.assetProfile.symbol | gfSymbol }} ·
+ >{{ holding.assetProfile.symbol }} ·
{{ holding.assetProfile.currency }}
diff --git a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts
index 20e8b0f0f7..9d9002c672 100644
--- a/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts
+++ b/libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts
@@ -1,6 +1,5 @@
import { getAssetProfileIdentifier } from '@ghostfolio/common/helper';
import { Filter, PortfolioPosition } from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { AccountWithPlatform } from '@ghostfolio/common/types';
import {
@@ -37,7 +36,6 @@ import { PortfolioFilterFormValue } from './interfaces';
imports: [
FormsModule,
GfEntityLogoComponent,
- GfSymbolPipe,
MatFormFieldModule,
MatSelectModule,
ReactiveFormsModule
diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
index 12867662bb..d786d724de 100644
--- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
+++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
@@ -25,7 +25,7 @@
}
{{ lookupItem.symbol | gfSymbol }}
+ >{{ lookupItem.symbol }}
@if (lookupItem.currency) {
· {{ lookupItem.currency }}
}
diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts
index 87d43d764c..cab911ef2b 100644
--- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts
+++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts
@@ -1,5 +1,4 @@
import { LookupItem } from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { DataService } from '@ghostfolio/ui/services';
import { FocusMonitor } from '@angular/cdk/a11y';
@@ -58,7 +57,6 @@ import { AbstractMatFormField } from '../shared/abstract-mat-form-field';
imports: [
FormsModule,
GfPremiumIndicatorComponent,
- GfSymbolPipe,
MatAutocompleteModule,
MatFormFieldModule,
MatInputModule,
diff --git a/libs/ui/src/lib/top-holdings/top-holdings.component.html b/libs/ui/src/lib/top-holdings/top-holdings.component.html
index e07e5fe4d9..3e09ab5bab 100644
--- a/libs/ui/src/lib/top-holdings/top-holdings.component.html
+++ b/libs/ui/src/lib/top-holdings/top-holdings.component.html
@@ -80,7 +80,7 @@
{{ parentHolding?.name }}
{{
- parentHolding?.symbol | gfSymbol
+ parentHolding?.symbol
}}
diff --git a/libs/ui/src/lib/top-holdings/top-holdings.component.ts b/libs/ui/src/lib/top-holdings/top-holdings.component.ts
index 51ef8751fe..3e7473c656 100644
--- a/libs/ui/src/lib/top-holdings/top-holdings.component.ts
+++ b/libs/ui/src/lib/top-holdings/top-holdings.component.ts
@@ -3,7 +3,6 @@ import {
AssetProfileIdentifier,
HoldingWithParents
} from '@ghostfolio/common/interfaces';
-import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import {
animate,
@@ -43,7 +42,6 @@ import { GfValueComponent } from '../value/value.component';
],
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [
- GfSymbolPipe,
GfValueComponent,
MatButtonModule,
MatPaginatorModule,