Browse Source

Task/eliminate unneeded symbol pipe (#7375)

Eliminate symbol pipe
pull/7378/head
Thomas Kaul 3 days ago
committed by GitHub
parent
commit
7cd6ebe000
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      apps/client/src/app/components/admin-market-data/admin-market-data.component.ts
  2. 4
      apps/client/src/app/components/admin-market-data/admin-market-data.html
  3. 2
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts
  4. 2
      apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html
  5. 8
      apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
  6. 8
      apps/client/src/app/pages/public/public-page.component.ts
  7. 3
      libs/common/src/lib/config.ts
  8. 5
      libs/common/src/lib/helper.ts
  9. 3
      libs/common/src/lib/pipes/index.ts
  10. 12
      libs/common/src/lib/pipes/symbol.pipe.ts
  11. 4
      libs/ui/src/lib/activities-filter/activities-filter.component.html
  12. 2
      libs/ui/src/lib/activities-filter/activities-filter.component.ts
  13. 4
      libs/ui/src/lib/activities-table/activities-table.component.html
  14. 2
      libs/ui/src/lib/activities-table/activities-table.component.stories.ts
  15. 2
      libs/ui/src/lib/activities-table/activities-table.component.ts
  16. 3
      libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts
  17. 2
      libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html
  18. 2
      libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html
  19. 2
      libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts
  20. 2
      libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html
  21. 2
      libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts
  22. 2
      libs/ui/src/lib/top-holdings/top-holdings.component.html
  23. 2
      libs/ui/src/lib/top-holdings/top-holdings.component.ts

2
apps/client/src/app/components/admin-market-data/admin-market-data.component.ts

@ -13,7 +13,6 @@ import {
User User
} from '@ghostfolio/common/interfaces'; } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { GfActivitiesFilterComponent } from '@ghostfolio/ui/activities-filter'; import { GfActivitiesFilterComponent } from '@ghostfolio/ui/activities-filter';
import { GfFabComponent } from '@ghostfolio/ui/fab'; import { GfFabComponent } from '@ghostfolio/ui/fab';
import { translate } from '@ghostfolio/ui/i18n'; import { translate } from '@ghostfolio/ui/i18n';
@ -83,7 +82,6 @@ import { CreateAssetProfileDialogParams } from './create-asset-profile-dialog/in
GfActivitiesFilterComponent, GfActivitiesFilterComponent,
GfFabComponent, GfFabComponent,
GfPremiumIndicatorComponent, GfPremiumIndicatorComponent,
GfSymbolPipe,
GfValueComponent, GfValueComponent,
IonIcon, IonIcon,
MatButtonModule, MatButtonModule,

4
apps/client/src/app/components/admin-market-data/admin-market-data.html

@ -95,9 +95,7 @@
<div class="text-truncate">{{ element.name }}</div> <div class="text-truncate">{{ element.name }}</div>
@if (!isUUID(element.symbol)) { @if (!isUUID(element.symbol)) {
<div> <div>
<small class="text-muted">{{ <small class="text-muted">{{ element.symbol }}</small>
element.symbol | gfSymbol
}}</small>
</div> </div>
} }
</td> </td>

2
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts

@ -7,7 +7,6 @@ import {
CreateTagDto CreateTagDto
} from '@ghostfolio/common/dtos'; } from '@ghostfolio/common/dtos';
import { Activity, PortfolioPosition } from '@ghostfolio/common/interfaces'; import { Activity, PortfolioPosition } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table'; import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table';
import { GfDialogFooterComponent } from '@ghostfolio/ui/dialog-footer'; import { GfDialogFooterComponent } from '@ghostfolio/ui/dialog-footer';
import { GfDialogHeaderComponent } from '@ghostfolio/ui/dialog-header'; import { GfDialogHeaderComponent } from '@ghostfolio/ui/dialog-header';
@ -66,7 +65,6 @@ import { ImportActivitiesDialogParams } from './interfaces/interfaces';
GfDialogFooterComponent, GfDialogFooterComponent,
GfDialogHeaderComponent, GfDialogHeaderComponent,
GfFileDropDirective, GfFileDropDirective,
GfSymbolPipe,
IonIcon, IonIcon,
MatButtonModule, MatButtonModule,
MatDialogModule, MatDialogModule,

2
apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html

@ -51,7 +51,7 @@
> >
<br /> <br />
<small class="text-muted" <small class="text-muted"
>{{ holding.assetProfile.symbol | gfSymbol }} · >{{ holding.assetProfile.symbol }} ·
{{ holding.assetProfile.currency }}</small {{ holding.assetProfile.currency }}</small
> >
</mat-option> </mat-option>

8
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 { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service';
import { UserService } from '@ghostfolio/client/services/user/user.service'; import { UserService } from '@ghostfolio/client/services/user/user.service';
import { MAX_TOP_HOLDINGS, UNKNOWN_KEY } from '@ghostfolio/common/config'; import { MAX_TOP_HOLDINGS, UNKNOWN_KEY } from '@ghostfolio/common/config';
import { getCountryName, prettifySymbol } from '@ghostfolio/common/helper'; import { getCountryName } from '@ghostfolio/common/helper';
import { import {
AssetProfileIdentifier, AssetProfileIdentifier,
HoldingWithParents, HoldingWithParents,
@ -495,10 +495,10 @@ export class GfAllocationsPageComponent implements OnInit {
this.totalValueInEtf += this.holdings[symbol].value; this.totalValueInEtf += this.holdings[symbol].value;
} }
this.symbols[prettifySymbol(symbol)] = { this.symbols[symbol] = {
symbol,
dataSource: position.assetProfile.dataSource, dataSource: position.assetProfile.dataSource,
name: position.assetProfile.name ?? '', name: position.assetProfile.name ?? '',
symbol: prettifySymbol(symbol),
value: value:
(isNumber(position.valueInBaseCurrency) (isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency ? position.valueInBaseCurrency
@ -565,11 +565,11 @@ export class GfAllocationsPageComponent implements OnInit {
return currentParentHolding && return currentParentHolding &&
isNumber(currentParentHolding.valueInBaseCurrency) isNumber(currentParentHolding.valueInBaseCurrency)
? { ? {
symbol,
allocationInPercentage: allocationInPercentage:
currentParentHolding.valueInBaseCurrency / value, currentParentHolding.valueInBaseCurrency / value,
name: holding.assetProfile.name ?? '', name: holding.assetProfile.name ?? '',
position: holding, position: holding,
symbol: prettifySymbol(symbol),
valueInBaseCurrency: valueInBaseCurrency:
currentParentHolding.valueInBaseCurrency currentParentHolding.valueInBaseCurrency
} }

8
apps/client/src/app/pages/public/public-page.component.ts

@ -1,5 +1,5 @@
import { UNKNOWN_KEY } from '@ghostfolio/common/config'; import { UNKNOWN_KEY } from '@ghostfolio/common/config';
import { getCountryName, prettifySymbol } from '@ghostfolio/common/helper'; import { getCountryName } from '@ghostfolio/common/helper';
import { import {
InfoItem, InfoItem,
PortfolioPosition, PortfolioPosition,
@ -250,9 +250,9 @@ export class GfPublicPageComponent implements OnInit {
} }
} }
this.symbols[prettifySymbol(symbol)] = { this.symbols[symbol] = {
name: position.assetProfile.name ?? prettifySymbol(symbol), symbol,
symbol: prettifySymbol(symbol), name: position.assetProfile.name ?? symbol,
value: isNumber(position.valueInBaseCurrency) value: isNumber(position.valueInBaseCurrency)
? position.valueInBaseCurrency ? position.valueInBaseCurrency
: (position.valueInPercentage ?? 0) : (position.valueInPercentage ?? 0)

3
libs/common/src/lib/config.ts

@ -6,9 +6,6 @@ import { ColorScheme, DateRange } from './types';
export const ghostfolioPrefix = 'GF'; export const ghostfolioPrefix = 'GF';
/* @deprecated */
export const ghostfolioScraperApiSymbolPrefix = `_${ghostfolioPrefix}_`;
export const ghostfolioFearAndGreedIndexDataSourceCryptocurrencies = export const ghostfolioFearAndGreedIndexDataSourceCryptocurrencies =
DataSource.MANUAL; DataSource.MANUAL;
export const ghostfolioFearAndGreedIndexSymbolCryptocurrencies = `${ghostfolioPrefix}_FEAR_AND_GREED_INDEX_CRYPTOCURRENCIES`; export const ghostfolioFearAndGreedIndexSymbolCryptocurrencies = `${ghostfolioPrefix}_FEAR_AND_GREED_INDEX_CRYPTOCURRENCIES`;

5
libs/common/src/lib/helper.ts

@ -40,7 +40,6 @@ import {
DERIVED_CURRENCIES, DERIVED_CURRENCIES,
ghostfolioFearAndGreedIndexSymbolCryptocurrencies, ghostfolioFearAndGreedIndexSymbolCryptocurrencies,
ghostfolioFearAndGreedIndexSymbolStocks, ghostfolioFearAndGreedIndexSymbolStocks,
ghostfolioScraperApiSymbolPrefix,
TAG_ID_EXCLUDE_FROM_ANALYSIS TAG_ID_EXCLUDE_FROM_ANALYSIS
} from './config'; } from './config';
import { 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) { export function resetHours(aDate: Date) {
const year = getYear(aDate); const year = getYear(aDate);
const month = getMonth(aDate); const month = getMonth(aDate);

3
libs/common/src/lib/pipes/index.ts

@ -1,3 +0,0 @@
import { GfSymbolPipe } from './symbol.pipe';
export { GfSymbolPipe };

12
libs/common/src/lib/pipes/symbol.pipe.ts

@ -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);
}
}

4
libs/ui/src/lib/activities-filter/activities-filter.component.html

@ -8,7 +8,7 @@
[removable]="true" [removable]="true"
(removed)="onRemoveFilter(filter)" (removed)="onRemoveFilter(filter)"
> >
{{ filter.label ?? '' | gfSymbol }} {{ filter.label }}
<button matChipRemove> <button matChipRemove>
<ion-icon name="close-outline" /> <ion-icon name="close-outline" />
</button> </button>
@ -33,7 +33,7 @@
<mat-optgroup [label]="filterGroup.name"> <mat-optgroup [label]="filterGroup.name">
@for (filter of filterGroup.filters; track filter) { @for (filter of filterGroup.filters; track filter) {
<mat-option [value]="filter.id"> <mat-option [value]="filter.id">
{{ filter.label ?? '' | gfSymbol }} {{ filter.label }}
</mat-option> </mat-option>
} }
</mat-optgroup> </mat-optgroup>

2
libs/ui/src/lib/activities-filter/activities-filter.component.ts

@ -1,5 +1,4 @@
import { Filter, FilterGroup } from '@ghostfolio/common/interfaces'; import { Filter, FilterGroup } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
@ -39,7 +38,6 @@ import { translate } from '../i18n';
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [ imports: [
CommonModule, CommonModule,
GfSymbolPipe,
IonIcon, IonIcon,
MatAutocompleteModule, MatAutocompleteModule,
MatButtonModule, MatButtonModule,

4
libs/ui/src/lib/activities-table/activities-table.component.html

@ -172,9 +172,7 @@
!isUUID(element.assetProfile?.symbol) !isUUID(element.assetProfile?.symbol)
) { ) {
<div> <div>
<small class="text-muted">{{ <small class="text-muted">{{ element.assetProfile?.symbol }}</small>
element.assetProfile?.symbol | gfSymbol
}}</small>
</div> </div>
} }
</td> </td>

2
libs/ui/src/lib/activities-table/activities-table.component.stories.ts

@ -1,5 +1,4 @@
import { Activity } from '@ghostfolio/common/interfaces'; import { Activity } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
@ -375,7 +374,6 @@ export default {
GfActivityTypeComponent, GfActivityTypeComponent,
GfEntityLogoComponent, GfEntityLogoComponent,
GfNoTransactionsInfoComponent, GfNoTransactionsInfoComponent,
GfSymbolPipe,
GfValueComponent, GfValueComponent,
IonIcon, IonIcon,
MatButtonModule, MatButtonModule,

2
libs/ui/src/lib/activities-table/activities-table.component.ts

@ -8,7 +8,6 @@ import {
Activity, Activity,
AssetProfileIdentifier AssetProfileIdentifier
} from '@ghostfolio/common/interfaces'; } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { internalRoutes } from '@ghostfolio/common/routes/routes'; import { internalRoutes } from '@ghostfolio/common/routes/routes';
import { translate } from '@ghostfolio/ui/i18n'; import { translate } from '@ghostfolio/ui/i18n';
import { NotificationService } from '@ghostfolio/ui/notifications'; import { NotificationService } from '@ghostfolio/ui/notifications';
@ -83,7 +82,6 @@ import { GfValueComponent } from '../value/value.component';
GfActivityTypeComponent, GfActivityTypeComponent,
GfEntityLogoComponent, GfEntityLogoComponent,
GfNoTransactionsInfoComponent, GfNoTransactionsInfoComponent,
GfSymbolPipe,
GfValueComponent, GfValueComponent,
IonIcon, IonIcon,
MatButtonModule, MatButtonModule,

3
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 { internalRoutes } from '@ghostfolio/common/routes/routes';
import { FocusableOption } from '@angular/cdk/a11y'; import { FocusableOption } from '@angular/cdk/a11y';
@ -24,7 +23,7 @@ import {
@Component({ @Component({
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [GfSymbolPipe, RouterModule], imports: [RouterModule],
selector: 'gf-assistant-list-item', selector: 'gf-assistant-list-item',
styleUrls: ['./assistant-list-item.scss'], styleUrls: ['./assistant-list-item.scss'],
templateUrl: './assistant-list-item.html' templateUrl: './assistant-list-item.html'

2
libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.html

@ -8,7 +8,7 @@
@if (item && isAsset(item)) { @if (item && isAsset(item)) {
<br /> <br />
<small class="text-muted" <small class="text-muted"
>{{ item?.symbol ?? '' | gfSymbol }} >{{ item?.symbol }}
@if (item.currency) { @if (item.currency) {
· {{ item.currency }} · {{ item.currency }}
} }

2
libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.html

@ -40,7 +40,7 @@
> >
<br /> <br />
<small class="text-muted" <small class="text-muted"
>{{ holding.assetProfile.symbol | gfSymbol }} · >{{ holding.assetProfile.symbol }} ·
{{ holding.assetProfile.currency }}</small {{ holding.assetProfile.currency }}</small
> >
</div> </div>

2
libs/ui/src/lib/portfolio-filter-form/portfolio-filter-form.component.ts

@ -1,6 +1,5 @@
import { getAssetProfileIdentifier } from '@ghostfolio/common/helper'; import { getAssetProfileIdentifier } from '@ghostfolio/common/helper';
import { Filter, PortfolioPosition } from '@ghostfolio/common/interfaces'; import { Filter, PortfolioPosition } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { AccountWithPlatform } from '@ghostfolio/common/types'; import { AccountWithPlatform } from '@ghostfolio/common/types';
import { import {
@ -37,7 +36,6 @@ import { PortfolioFilterFormValue } from './interfaces';
imports: [ imports: [
FormsModule, FormsModule,
GfEntityLogoComponent, GfEntityLogoComponent,
GfSymbolPipe,
MatFormFieldModule, MatFormFieldModule,
MatSelectModule, MatSelectModule,
ReactiveFormsModule ReactiveFormsModule

2
libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html

@ -25,7 +25,7 @@
} }
</span> </span>
<small class="text-muted" <small class="text-muted"
>{{ lookupItem.symbol | gfSymbol }} >{{ lookupItem.symbol }}
@if (lookupItem.currency) { @if (lookupItem.currency) {
· {{ lookupItem.currency }} · {{ lookupItem.currency }}
} }

2
libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts

@ -1,5 +1,4 @@
import { LookupItem } from '@ghostfolio/common/interfaces'; import { LookupItem } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { DataService } from '@ghostfolio/ui/services'; import { DataService } from '@ghostfolio/ui/services';
import { FocusMonitor } from '@angular/cdk/a11y'; import { FocusMonitor } from '@angular/cdk/a11y';
@ -58,7 +57,6 @@ import { AbstractMatFormField } from '../shared/abstract-mat-form-field';
imports: [ imports: [
FormsModule, FormsModule,
GfPremiumIndicatorComponent, GfPremiumIndicatorComponent,
GfSymbolPipe,
MatAutocompleteModule, MatAutocompleteModule,
MatFormFieldModule, MatFormFieldModule,
MatInputModule, MatInputModule,

2
libs/ui/src/lib/top-holdings/top-holdings.component.html

@ -80,7 +80,7 @@
<div class="text-truncate">{{ parentHolding?.name }}</div> <div class="text-truncate">{{ parentHolding?.name }}</div>
<div> <div>
<small class="text-muted">{{ <small class="text-muted">{{
parentHolding?.symbol | gfSymbol parentHolding?.symbol
}}</small> }}</small>
</div> </div>
</td> </td>

2
libs/ui/src/lib/top-holdings/top-holdings.component.ts

@ -3,7 +3,6 @@ import {
AssetProfileIdentifier, AssetProfileIdentifier,
HoldingWithParents HoldingWithParents
} from '@ghostfolio/common/interfaces'; } from '@ghostfolio/common/interfaces';
import { GfSymbolPipe } from '@ghostfolio/common/pipes';
import { import {
animate, animate,
@ -43,7 +42,6 @@ import { GfValueComponent } from '../value/value.component';
], ],
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
imports: [ imports: [
GfSymbolPipe,
GfValueComponent, GfValueComponent,
MatButtonModule, MatButtonModule,
MatPaginatorModule, MatPaginatorModule,

Loading…
Cancel
Save