Browse Source

Merge branch 'main' into feature/extend-emergency-fund-to-support-assets

pull/4485/head
Thomas Kaul 4 weeks ago
committed by GitHub
parent
commit
4cdceade5f
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 12
      CHANGELOG.md
  2. 4
      apps/api/src/app/admin/admin.controller.ts
  3. 2
      apps/api/src/app/import/import.service.ts
  4. 2
      apps/api/src/services/cron.service.ts
  5. 21
      apps/api/src/services/queues/data-gathering/data-gathering.service.ts
  6. 71
      apps/api/src/services/symbol-profile/symbol-profile.service.ts
  7. 20
      apps/client/src/locales/messages.ca.xlf
  8. 20
      apps/client/src/locales/messages.de.xlf
  9. 20
      apps/client/src/locales/messages.es.xlf
  10. 20
      apps/client/src/locales/messages.fr.xlf
  11. 20
      apps/client/src/locales/messages.it.xlf
  12. 20
      apps/client/src/locales/messages.nl.xlf
  13. 20
      apps/client/src/locales/messages.pl.xlf
  14. 20
      apps/client/src/locales/messages.pt.xlf
  15. 20
      apps/client/src/locales/messages.tr.xlf
  16. 20
      apps/client/src/locales/messages.uk.xlf
  17. 19
      apps/client/src/locales/messages.xlf
  18. 20
      apps/client/src/locales/messages.zh.xlf
  19. 17
      libs/common/src/lib/personal-finance-tools.ts
  20. 1
      libs/ui/src/lib/i18n.ts
  21. 16
      package-lock.json
  22. 4
      package.json
  23. 5
      prisma/migrations/20250324072407_added_is_active_to_symbol_profile/migration.sql
  24. 2
      prisma/schema.prisma

12
CHANGELOG.md

@ -10,6 +10,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Improved the static portfolio analysis rule: Emergency fund setup by supporting assets - Improved the static portfolio analysis rule: Emergency fund setup by supporting assets
- Restricted the historical market data gathering to active asset profiles
## 2.148.0 - 2025-03-24
### Added
- Added the `isActive` flag to the asset profile model
### Changed
- Improved the language localization for German (`de`)
- Upgraded `ngx-skeleton-loader` from version `9.0.0` to `10.0.0`
## 2.147.0 - 2025-03-22 ## 2.147.0 - 2025-03-22

4
apps/api/src/app/admin/admin.controller.ts

@ -83,7 +83,7 @@ export class AdminController {
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async gatherMax(): Promise<void> { public async gatherMax(): Promise<void> {
const assetProfileIdentifiers = const assetProfileIdentifiers =
await this.dataGatheringService.getAllAssetProfileIdentifiers(); await this.dataGatheringService.getAllActiveAssetProfileIdentifiers();
await this.dataGatheringService.addJobsToQueue( await this.dataGatheringService.addJobsToQueue(
assetProfileIdentifiers.map(({ dataSource, symbol }) => { assetProfileIdentifiers.map(({ dataSource, symbol }) => {
@ -110,7 +110,7 @@ export class AdminController {
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async gatherProfileData(): Promise<void> { public async gatherProfileData(): Promise<void> {
const assetProfileIdentifiers = const assetProfileIdentifiers =
await this.dataGatheringService.getAllAssetProfileIdentifiers(); await this.dataGatheringService.getAllActiveAssetProfileIdentifiers();
await this.dataGatheringService.addJobsToQueue( await this.dataGatheringService.addJobsToQueue(
assetProfileIdentifiers.map(({ dataSource, symbol }) => { assetProfileIdentifiers.map(({ dataSource, symbol }) => {

2
apps/api/src/app/import/import.service.ts

@ -300,6 +300,7 @@ export class ImportService {
figiShareClass, figiShareClass,
holdings, holdings,
id, id,
isActive,
isin, isin,
name, name,
scraperConfiguration, scraperConfiguration,
@ -375,6 +376,7 @@ export class ImportService {
figiShareClass, figiShareClass,
holdings, holdings,
id, id,
isActive,
isin, isin,
name, name,
scraperConfiguration, scraperConfiguration,

2
apps/api/src/services/cron.service.ts

@ -57,7 +57,7 @@ export class CronService {
public async runEverySundayAtTwelvePm() { public async runEverySundayAtTwelvePm() {
if (await this.isDataGatheringEnabled()) { if (await this.isDataGatheringEnabled()) {
const assetProfileIdentifiers = const assetProfileIdentifiers =
await this.dataGatheringService.getAllAssetProfileIdentifiers(); await this.dataGatheringService.getAllActiveAssetProfileIdentifiers();
await this.dataGatheringService.addJobsToQueue( await this.dataGatheringService.addJobsToQueue(
assetProfileIdentifiers.map(({ dataSource, symbol }) => { assetProfileIdentifiers.map(({ dataSource, symbol }) => {

21
apps/api/src/services/queues/data-gathering/data-gathering.service.ts

@ -159,7 +159,8 @@ export class DataGatheringService {
); );
if (!assetProfileIdentifiers) { if (!assetProfileIdentifiers) {
assetProfileIdentifiers = await this.getAllAssetProfileIdentifiers(); assetProfileIdentifiers =
await this.getAllActiveAssetProfileIdentifiers();
} }
if (assetProfileIdentifiers.length <= 0) { if (assetProfileIdentifiers.length <= 0) {
@ -296,11 +297,14 @@ export class DataGatheringService {
); );
} }
public async getAllAssetProfileIdentifiers(): Promise< public async getAllActiveAssetProfileIdentifiers(): Promise<
AssetProfileIdentifier[] AssetProfileIdentifier[]
> { > {
const symbolProfiles = await this.prismaService.symbolProfile.findMany({ const symbolProfiles = await this.prismaService.symbolProfile.findMany({
orderBy: [{ symbol: 'asc' }] orderBy: [{ symbol: 'asc' }],
where: {
isActive: true
}
}); });
return symbolProfiles return symbolProfiles
@ -370,9 +374,11 @@ export class DataGatheringService {
withUserSubscription?: boolean; withUserSubscription?: boolean;
}): Promise<IDataGatheringItem[]> { }): Promise<IDataGatheringItem[]> {
const symbolProfiles = const symbolProfiles =
await this.symbolProfileService.getSymbolProfilesByUserSubscription({ await this.symbolProfileService.getActiveSymbolProfilesByUserSubscription(
withUserSubscription {
}); withUserSubscription
}
);
const assetProfileIdentifiersWithCompleteMarketData = const assetProfileIdentifiersWithCompleteMarketData =
await this.getAssetProfileIdentifiersWithCompleteMarketData(); await this.getAssetProfileIdentifiersWithCompleteMarketData();
@ -436,6 +442,9 @@ export class DataGatheringService {
}, },
scraperConfiguration: true, scraperConfiguration: true,
symbol: true symbol: true
},
where: {
isActive: true
} }
}) })
) )

71
apps/api/src/services/symbol-profile/symbol-profile.service.ts

@ -35,6 +35,41 @@ export class SymbolProfileService {
}); });
} }
public async getActiveSymbolProfilesByUserSubscription({
withUserSubscription = false
}: {
withUserSubscription?: boolean;
}) {
return this.prismaService.symbolProfile.findMany({
include: {
Order: {
include: {
User: true
}
}
},
orderBy: [{ symbol: 'asc' }],
where: {
isActive: true,
Order: withUserSubscription
? {
some: {
User: {
Subscription: { some: { expiresAt: { gt: new Date() } } }
}
}
}
: {
every: {
User: {
Subscription: { none: { expiresAt: { gt: new Date() } } }
}
}
}
}
});
}
public async getSymbolProfiles( public async getSymbolProfiles(
aAssetProfileIdentifiers: AssetProfileIdentifier[] aAssetProfileIdentifiers: AssetProfileIdentifier[]
): Promise<EnhancedSymbolProfile[]> { ): Promise<EnhancedSymbolProfile[]> {
@ -91,40 +126,6 @@ export class SymbolProfileService {
}); });
} }
public async getSymbolProfilesByUserSubscription({
withUserSubscription = false
}: {
withUserSubscription?: boolean;
}) {
return this.prismaService.symbolProfile.findMany({
include: {
Order: {
include: {
User: true
}
}
},
orderBy: [{ symbol: 'asc' }],
where: {
Order: withUserSubscription
? {
some: {
User: {
Subscription: { some: { expiresAt: { gt: new Date() } } }
}
}
}
: {
every: {
User: {
Subscription: { none: { expiresAt: { gt: new Date() } } }
}
}
}
}
});
}
public updateSymbolProfile({ public updateSymbolProfile({
assetClass, assetClass,
assetSubClass, assetSubClass,
@ -133,6 +134,7 @@ export class SymbolProfileService {
currency, currency,
dataSource, dataSource,
holdings, holdings,
isActive,
name, name,
scraperConfiguration, scraperConfiguration,
sectors, sectors,
@ -149,6 +151,7 @@ export class SymbolProfileService {
countries, countries,
currency, currency,
holdings, holdings,
isActive,
name, name,
scraperConfiguration, scraperConfiguration,
sectors, sectors,

20
apps/client/src/locales/messages.ca.xlf

@ -2651,7 +2651,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2663,7 +2663,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6651,7 +6651,7 @@
<target state="new">Extreme Fear</target> <target state="new">Extreme Fear</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6659,7 +6659,7 @@
<target state="new">Extreme Greed</target> <target state="new">Extreme Greed</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6667,7 +6667,7 @@
<target state="new">Neutral</target> <target state="new">Neutral</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html"> <trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -6971,7 +6971,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.de.xlf

@ -2818,7 +2818,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2830,7 +2830,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4550487415324294802" datatype="html"> <trans-unit id="4550487415324294802" datatype="html">
@ -6079,7 +6079,7 @@
<target state="translated">Extreme Angst</target> <target state="translated">Extreme Angst</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6087,7 +6087,7 @@
<target state="translated">Extreme Gier</target> <target state="translated">Extreme Gier</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6095,7 +6095,7 @@
<target state="translated">Neutral</target> <target state="translated">Neutral</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6971,7 +6971,7 @@
<target state="translated">USA</target> <target state="translated">USA</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="translated">Vereinigtes Königreich</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.es.xlf

@ -2819,7 +2819,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2831,7 +2831,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4550487415324294802" datatype="html"> <trans-unit id="4550487415324294802" datatype="html">
@ -6080,7 +6080,7 @@
<target state="new">Extreme Fear</target> <target state="new">Extreme Fear</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6088,7 +6088,7 @@
<target state="new">Extreme Greed</target> <target state="new">Extreme Greed</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6096,7 +6096,7 @@
<target state="new">Neutral</target> <target state="new">Neutral</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6972,7 +6972,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7829,6 +7829,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.fr.xlf

@ -1354,7 +1354,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -1366,7 +1366,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6079,7 +6079,7 @@
<target state="translated">Extreme Peur</target> <target state="translated">Extreme Peur</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6087,7 +6087,7 @@
<target state="translated">Extreme Cupidité</target> <target state="translated">Extreme Cupidité</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6095,7 +6095,7 @@
<target state="translated">Neutre</target> <target state="translated">Neutre</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6971,7 +6971,7 @@
<target state="translated">Etats-Unis</target> <target state="translated">Etats-Unis</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.it.xlf

@ -2819,7 +2819,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2831,7 +2831,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4550487415324294802" datatype="html"> <trans-unit id="4550487415324294802" datatype="html">
@ -6080,7 +6080,7 @@
<target state="translated">Paura estrema</target> <target state="translated">Paura estrema</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6088,7 +6088,7 @@
<target state="translated">Avidità estrema</target> <target state="translated">Avidità estrema</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6096,7 +6096,7 @@
<target state="translated">Neutrale</target> <target state="translated">Neutrale</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6972,7 +6972,7 @@
<target state="translated">Stati Uniti</target> <target state="translated">Stati Uniti</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7829,6 +7829,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.nl.xlf

@ -2818,7 +2818,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2830,7 +2830,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4550487415324294802" datatype="html"> <trans-unit id="4550487415324294802" datatype="html">
@ -6079,7 +6079,7 @@
<target state="new">Extreme Fear</target> <target state="new">Extreme Fear</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6087,7 +6087,7 @@
<target state="new">Extreme Greed</target> <target state="new">Extreme Greed</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6095,7 +6095,7 @@
<target state="new">Neutral</target> <target state="new">Neutral</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6971,7 +6971,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.pl.xlf

@ -2307,7 +2307,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2319,7 +2319,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6055,7 +6055,7 @@
<target state="translated">Skrajny Strach</target> <target state="translated">Skrajny Strach</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6063,7 +6063,7 @@
<target state="translated">Skrajna Zachłanność</target> <target state="translated">Skrajna Zachłanność</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6071,7 +6071,7 @@
<target state="translated">Neutralny</target> <target state="translated">Neutralny</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html"> <trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -6971,7 +6971,7 @@
<target state="translated">Stany Zjednoczone</target> <target state="translated">Stany Zjednoczone</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.pt.xlf

@ -1226,7 +1226,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -1238,7 +1238,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6079,7 +6079,7 @@
<target state="new">Extreme Fear</target> <target state="new">Extreme Fear</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6087,7 +6087,7 @@
<target state="new">Extreme Greed</target> <target state="new">Extreme Greed</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6095,7 +6095,7 @@
<target state="new">Neutral</target> <target state="new">Neutral</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6971,7 +6971,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.tr.xlf

@ -2155,7 +2155,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2167,7 +2167,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6079,7 +6079,7 @@
<target state="translated">Aşırı Korku</target> <target state="translated">Aşırı Korku</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6087,7 +6087,7 @@
<target state="translated">Aşırı Açgözlülük</target> <target state="translated">Aşırı Açgözlülük</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6095,7 +6095,7 @@
<target state="translated">Nötr</target> <target state="translated">Nötr</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7183719827884539616" datatype="html"> <trans-unit id="7183719827884539616" datatype="html">
@ -6971,7 +6971,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.uk.xlf

@ -2779,7 +2779,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2791,7 +2791,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -7505,7 +7505,7 @@
<target state="translated">Сполучені Штати</target> <target state="translated">Сполучені Штати</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1189482335778578193" datatype="html"> <trans-unit id="1189482335778578193" datatype="html">
@ -7513,7 +7513,7 @@
<target state="translated">Екстремальний страх</target> <target state="translated">Екстремальний страх</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -7521,7 +7521,7 @@
<target state="translated">Екстремальна жадібність</target> <target state="translated">Екстремальна жадібність</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -7529,7 +7529,7 @@
<target state="translated">Нейтрально</target> <target state="translated">Нейтрально</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="258c041e93862316871096965e2d70579282fb1a" datatype="html"> <trans-unit id="258c041e93862316871096965e2d70579282fb1a" datatype="html">
@ -7828,6 +7828,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

19
apps/client/src/locales/messages.xlf

@ -2170,7 +2170,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2181,7 +2181,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -5566,21 +5566,21 @@
<source>Extreme Fear</source> <source>Extreme Fear</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
<source>Extreme Greed</source> <source>Extreme Greed</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
<source>Neutral</source> <source>Neutral</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html"> <trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -6254,7 +6254,7 @@
<source>United States</source> <source>United States</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="647668541461749965" datatype="html"> <trans-unit id="647668541461749965" datatype="html">
@ -7077,6 +7077,13 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

20
apps/client/src/locales/messages.zh.xlf

@ -2316,7 +2316,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">101</context> <context context-type="linenumber">102</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="6844699413925472826" datatype="html"> <trans-unit id="6844699413925472826" datatype="html">
@ -2328,7 +2328,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">102</context> <context context-type="linenumber">103</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html"> <trans-unit id="ce718ababbce63d776cf8b1f91412beb4c0a6e04" datatype="html">
@ -6112,7 +6112,7 @@
<target state="translated">极度恐惧</target> <target state="translated">极度恐惧</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">99</context> <context context-type="linenumber">100</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2634398159221205491" datatype="html"> <trans-unit id="2634398159221205491" datatype="html">
@ -6120,7 +6120,7 @@
<target state="translated">极度贪婪</target> <target state="translated">极度贪婪</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">100</context> <context context-type="linenumber">101</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3511545370905854666" datatype="html"> <trans-unit id="3511545370905854666" datatype="html">
@ -6128,7 +6128,7 @@
<target state="translated">中性的</target> <target state="translated">中性的</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">103</context> <context context-type="linenumber">104</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html"> <trans-unit id="3c33a66194384cf8c14e25170416767efa56fd98" datatype="html">
@ -6972,7 +6972,7 @@
<target state="new">United States</target> <target state="new">United States</target>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context> <context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context> <context context-type="linenumber">97</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1519954996184640001" datatype="html"> <trans-unit id="1519954996184640001" datatype="html">
@ -7829,6 +7829,14 @@
<context context-type="linenumber">249</context> <context context-type="linenumber">249</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="7303091661854783304" datatype="html">
<source>United Kingdom</source>
<target state="new">United Kingdom</target>
<context-group purpose="location">
<context context-type="sourcefile">libs/ui/src/lib/i18n.ts</context>
<context context-type="linenumber">96</context>
</context-group>
</trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

17
libs/common/src/lib/personal-finance-tools.ts

@ -44,6 +44,15 @@ export const personalFinanceTools: Product[] = [
pricingPerYear: '$120', pricingPerYear: '$120',
slogan: 'Analyze and track your portfolio.' slogan: 'Analyze and track your portfolio.'
}, },
{
founded: 2022,
hasFreePlan: false,
key: 'asseta',
languages: ['English'],
name: 'Asseta',
origin: 'United States',
slogan: 'The Intelligent Family Office Suite'
},
{ {
hasFreePlan: false, hasFreePlan: false,
hasSelfHostingAbility: true, hasSelfHostingAbility: true,
@ -149,6 +158,14 @@ export const personalFinanceTools: Product[] = [
pricingPerYear: '$70', pricingPerYear: '$70',
slogan: 'Do money better with Copilot' slogan: 'Do money better with Copilot'
}, },
{
founded: 2023,
hasFreePlan: false,
key: 'danti',
name: 'Danti',
origin: 'United Kingdom',
slogan: 'Digitising Generational Wealth'
},
{ {
founded: 2020, founded: 2020,
key: 'de.fi', key: 'de.fi',

1
libs/ui/src/lib/i18n.ts

@ -93,6 +93,7 @@ const locales = {
Switzerland: $localize`Switzerland`, Switzerland: $localize`Switzerland`,
Thailand: $localize`Thailand`, Thailand: $localize`Thailand`,
Ukraine: $localize`Ukraine`, Ukraine: $localize`Ukraine`,
'United Kingdom': $localize`United Kingdom`,
'United States': $localize`United States`, 'United States': $localize`United States`,
// Fear and Greed Index // Fear and Greed Index

16
package-lock.json

@ -1,12 +1,12 @@
{ {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.147.0", "version": "2.148.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.147.0", "version": "2.148.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
@ -76,7 +76,7 @@
"ng-extract-i18n-merge": "2.14.1", "ng-extract-i18n-merge": "2.14.1",
"ngx-device-detector": "9.0.0", "ngx-device-detector": "9.0.0",
"ngx-markdown": "19.0.0", "ngx-markdown": "19.0.0",
"ngx-skeleton-loader": "9.0.0", "ngx-skeleton-loader": "10.0.0",
"ngx-stripe": "19.0.0", "ngx-stripe": "19.0.0",
"open-color": "1.9.1", "open-color": "1.9.1",
"papaparse": "5.3.1", "papaparse": "5.3.1",
@ -25625,16 +25625,16 @@
} }
}, },
"node_modules/ngx-skeleton-loader": { "node_modules/ngx-skeleton-loader": {
"version": "9.0.0", "version": "10.0.0",
"resolved": "https://registry.npmjs.org/ngx-skeleton-loader/-/ngx-skeleton-loader-9.0.0.tgz", "resolved": "https://registry.npmjs.org/ngx-skeleton-loader/-/ngx-skeleton-loader-10.0.0.tgz",
"integrity": "sha512-aO4/V6oGdZGNcTjasTg/fwzJJYl/ZmNKgCukOEQdUK3GSFOZtB/3GGULMJuZ939hk3Hzqh1OBiLfIM1SqTfhqg==", "integrity": "sha512-TYrWLrdRtzoZoPzurNDUJdAbdyplqgyDztCefEi+clHl5MSumwG4NrGxZC1OVxz7RitomhnF7wTM8T/j+tdwXw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": ">=16.0.0", "@angular/common": ">=18.0.0",
"@angular/core": ">=16.0.0" "@angular/core": ">=18.0.0"
} }
}, },
"node_modules/ngx-stripe": { "node_modules/ngx-stripe": {

4
package.json

@ -1,6 +1,6 @@
{ {
"name": "ghostfolio", "name": "ghostfolio",
"version": "2.147.0", "version": "2.148.0",
"homepage": "https://ghostfol.io", "homepage": "https://ghostfol.io",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"repository": "https://github.com/ghostfolio/ghostfolio", "repository": "https://github.com/ghostfolio/ghostfolio",
@ -122,7 +122,7 @@
"ng-extract-i18n-merge": "2.14.1", "ng-extract-i18n-merge": "2.14.1",
"ngx-device-detector": "9.0.0", "ngx-device-detector": "9.0.0",
"ngx-markdown": "19.0.0", "ngx-markdown": "19.0.0",
"ngx-skeleton-loader": "9.0.0", "ngx-skeleton-loader": "10.0.0",
"ngx-stripe": "19.0.0", "ngx-stripe": "19.0.0",
"open-color": "1.9.1", "open-color": "1.9.1",
"papaparse": "5.3.1", "papaparse": "5.3.1",

5
prisma/migrations/20250324072407_added_is_active_to_symbol_profile/migration.sql

@ -0,0 +1,5 @@
-- AlterTable
ALTER TABLE "SymbolProfile" ADD COLUMN "isActive" BOOLEAN NOT NULL DEFAULT true;
-- CreateIndex
CREATE INDEX "SymbolProfile_isActive_idx" ON "SymbolProfile"("isActive");

2
prisma/schema.prisma

@ -181,6 +181,7 @@ model SymbolProfile {
figiShareClass String? figiShareClass String?
holdings Json? @default("[]") holdings Json? @default("[]")
id String @id @default(uuid()) id String @id @default(uuid())
isActive Boolean @default(true)
isin String? isin String?
name String? name String?
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
@ -199,6 +200,7 @@ model SymbolProfile {
@@index([currency]) @@index([currency])
@@index([cusip]) @@index([cusip])
@@index([dataSource]) @@index([dataSource])
@@index([isActive])
@@index([isin]) @@index([isin])
@@index([name]) @@index([name])
@@index([symbol]) @@index([symbol])

Loading…
Cancel
Save