From 7cd6ebe000df672fd52c5e6bb9a3507ddbf3d882 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Sun, 19 Jul 2026 08:20:12 +0200
Subject: [PATCH] Task/eliminate unneeded symbol pipe (#7375)
Eliminate symbol pipe
---
.../admin-market-data/admin-market-data.component.ts | 2 --
.../admin-market-data/admin-market-data.html | 4 +---
.../import-activities-dialog.component.ts | 2 --
.../import-activities-dialog.html | 2 +-
.../allocations/allocations-page.component.ts | 8 ++++----
.../src/app/pages/public/public-page.component.ts | 8 ++++----
libs/common/src/lib/config.ts | 3 ---
libs/common/src/lib/helper.ts | 5 -----
libs/common/src/lib/pipes/index.ts | 3 ---
libs/common/src/lib/pipes/symbol.pipe.ts | 12 ------------
.../activities-filter.component.html | 4 ++--
.../activities-filter/activities-filter.component.ts | 2 --
.../activities-table/activities-table.component.html | 4 +---
.../activities-table.component.stories.ts | 2 --
.../activities-table/activities-table.component.ts | 2 --
.../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.component.ts | 2 --
.../src/lib/top-holdings/top-holdings.component.html | 2 +-
.../src/lib/top-holdings/top-holdings.component.ts | 2 --
23 files changed, 18 insertions(+), 62 deletions(-)
delete mode 100644 libs/common/src/lib/pipes/index.ts
delete mode 100644 libs/common/src/lib/pipes/symbol.pipe.ts
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 4b893af7b..e716907ef 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 ebb165814..f6744b263 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 4541009a0..77d889b1a 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 4149ce5b6..559f639b1 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 52f051e77..de00048e7 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 52d295dfa..3b149cd08 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 f7bafb101..a5363372a 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 9a32927e2..6a135eef6 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/common/src/lib/pipes/index.ts b/libs/common/src/lib/pipes/index.ts
deleted file mode 100644
index 7b5ca4bac..000000000
--- a/libs/common/src/lib/pipes/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { GfSymbolPipe } from './symbol.pipe';
-
-export { GfSymbolPipe };
diff --git a/libs/common/src/lib/pipes/symbol.pipe.ts b/libs/common/src/lib/pipes/symbol.pipe.ts
deleted file mode 100644
index 6f4981699..000000000
--- a/libs/common/src/lib/pipes/symbol.pipe.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { prettifySymbol } from '@ghostfolio/common/helper';
-
-import { Pipe, PipeTransform } from '@angular/core';
-
-@Pipe({
- name: 'gfSymbol'
-})
-export class GfSymbolPipe implements PipeTransform {
- public transform(aSymbol: string) {
- return prettifySymbol(aSymbol);
- }
-}
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 b525e5133..58626351b 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 6b58e6aec..7a434d94c 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 cc9a34047..50fb025cb 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 e4028e7ba..540aa92b6 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 399d5d7e1..be1f88752 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 36127a566..b2c541e3f 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 fa30d0c03..45a84866b 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 33bde3fd6..cda9cab3c 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 20e8b0f0f..9d9002c67 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 12867662b..d786d724d 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 87d43d764..cab911ef2 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 e07e5fe4d..3e09ab5ba 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 51ef8751f..3e7473c65 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,