From 566c1a0b8e0ad4a5133b207c22fab78e2a7ebd90 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 9 Jun 2026 15:14:12 +0200 Subject: [PATCH 1/4] Task/disable selection of future dates in account balance management (#7003) * Disable selection of future dates * Update changelog --- CHANGELOG.md | 1 + .../lib/account-balances/account-balances.component.html | 7 ++++++- .../src/lib/account-balances/account-balances.component.ts | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07002a2d1..c0d5dba4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Prefilled the form in the account balance management with the current cash balance +- Disabled the selection of future dates in the account balance management ## 3.8.0 - 2026-06-07 diff --git a/libs/ui/src/lib/account-balances/account-balances.component.html b/libs/ui/src/lib/account-balances/account-balances.component.html index 29037a985..ee1450435 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.html +++ b/libs/ui/src/lib/account-balances/account-balances.component.html @@ -16,7 +16,12 @@ - + (); + public maxDate = new Date(); private dateAdapter = inject>(DateAdapter); private notificationService = inject(NotificationService); From 034877a7756dc914bb43f0edf2a5608449f17366 Mon Sep 17 00:00:00 2001 From: battdir Date: Thu, 11 Jun 2026 02:54:22 +0900 Subject: [PATCH 2/4] Task/improve language localization for KO (#7009) * Update translations * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ko.xlf | 250 ++++++++++++------------ 2 files changed, 126 insertions(+), 125 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0d5dba4a..240ca983f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Prefilled the form in the account balance management with the current cash balance - Disabled the selection of future dates in the account balance management +- Improved the language localization for Korean (`ko`) ## 3.8.0 - 2026-06-07 diff --git a/apps/client/src/locales/messages.ko.xlf b/apps/client/src/locales/messages.ko.xlf index 07a6daa1d..e9f4139dc 100644 --- a/apps/client/src/locales/messages.ko.xlf +++ b/apps/client/src/locales/messages.ko.xlf @@ -585,7 +585,7 @@ Do you really want to delete this account? - 이 계정을 정말 삭제하시겠습니까? + 이 계좌를 정말 삭제하시겠습니까? libs/ui/src/lib/accounts-table/accounts-table.component.ts 146 @@ -721,7 +721,7 @@ Find an account... - Find an account... + 계좌 검색... libs/ui/src/lib/assistant/assistant.component.ts 471 @@ -809,7 +809,7 @@ First Activity - 첫 활동 + 첫 거래 apps/client/src/app/components/admin-market-data/admin-market-data.html 147 @@ -829,7 +829,7 @@ Activities Count - 활동 수 + 거래 건수 apps/client/src/app/components/admin-market-data/admin-market-data.html 156 @@ -901,7 +901,7 @@ Healthcare - Healthcare + 헬스케어 libs/ui/src/lib/i18n.ts 92 @@ -1017,7 +1017,7 @@ Technology - Technology + 기술 libs/ui/src/lib/i18n.ts 96 @@ -1073,7 +1073,7 @@ Industrials - Industrials + 산업재 libs/ui/src/lib/i18n.ts 93 @@ -1109,7 +1109,7 @@ Consumer Cyclical - Consumer Cyclical + 임의소비재 libs/ui/src/lib/i18n.ts 88 @@ -1269,7 +1269,7 @@ Asset profile has been saved - Asset profile has been saved + 자산 정보가 저장되었습니다. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 624 @@ -1285,7 +1285,7 @@ Explore - Explore + 둘러보기 apps/client/src/app/pages/resources/overview/resources-overview.component.html 11 @@ -1449,7 +1449,7 @@ Could not validate form - Could not validate form + 양식 유효성 검사에 실패했습니다. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 600 @@ -1573,7 +1573,7 @@ Manage Activities - 활동 관리 + 거래 내역 관리 apps/client/src/app/components/home-holdings/home-holdings.html 64 @@ -1649,7 +1649,7 @@ Setup your accounts - 계정 설정 + 계좌 설정 apps/client/src/app/components/home-overview/home-overview.html 16 @@ -1665,7 +1665,7 @@ Capture your activities - 활동을 캡처하세요 + 거래를 기록하세요 apps/client/src/app/components/home-overview/home-overview.html 25 @@ -1673,7 +1673,7 @@ Record your investment activities to keep your portfolio up to date. - 투자 활동을 기록하여 포트폴리오를 최신 상태로 유지하세요. + 투자 거래 내역을 기록하여 포트폴리오를 최신 상태로 유지하세요. apps/client/src/app/components/home-overview/home-overview.html 27 @@ -1697,7 +1697,7 @@ Setup accounts - 계정 설정 + 계좌 설정 apps/client/src/app/components/home-overview/home-overview.html 49 @@ -1713,7 +1713,7 @@ Add activity - 활동 추가 + 거래 추가 apps/client/src/app/components/home-overview/home-overview.html 57 @@ -1733,7 +1733,7 @@ Code - Code + 코드 apps/client/src/app/components/admin-overview/admin-overview.html 159 @@ -1829,7 +1829,7 @@ Energy - Energy + 에너지 libs/ui/src/lib/i18n.ts 90 @@ -2225,7 +2225,7 @@ Performance with currency effect - Performance with currency effect + 환율 효과 반영 성과 apps/client/src/app/pages/portfolio/analysis/analysis-page.html 134 @@ -2285,7 +2285,7 @@ Consumer Defensive - Consumer Defensive + 필수소비재 libs/ui/src/lib/i18n.ts 89 @@ -2365,7 +2365,7 @@ Utilities - Utilities + 유틸리티 libs/ui/src/lib/i18n.ts 97 @@ -2689,7 +2689,7 @@ Accounts - 계정 + 계좌 apps/client/src/app/components/admin-platform/admin-platform.component.html 52 @@ -2737,7 +2737,7 @@ Update account - 계정 업데이트 + 계좌 수정 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 8 @@ -2745,7 +2745,7 @@ Add account - 계정 추가 + 계좌 추가 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 10 @@ -2753,7 +2753,7 @@ Account ID - 계정 ID + 계좌 ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html 96 @@ -2993,7 +2993,7 @@ Could not parse scraper configuration - Could not parse scraper configuration + 스크래퍼 설정을 파싱할 수 없습니다. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 551 @@ -3021,7 +3021,7 @@ Duration - Duration + 기간 apps/client/src/app/components/admin-overview/admin-overview.html 172 @@ -3109,7 +3109,7 @@ Multi-Accounts - 다중 계정 + 다중 계좌 apps/client/src/app/pages/features/features-page.html 127 @@ -3421,7 +3421,7 @@ Basic Materials - Basic Materials + 기초소재 libs/ui/src/lib/i18n.ts 86 @@ -3741,7 +3741,7 @@ Activities - 활동 + 거래 내역 apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html 84 @@ -3793,7 +3793,7 @@ Do you really want to delete these activities? - 정말로 이 활동을 삭제하시겠습니까? + 정말로 이 거래들을 삭제하시겠습니까? libs/ui/src/lib/activities-table/activities-table.component.ts 304 @@ -3801,7 +3801,7 @@ Update activity - 활동 업데이트 + 거래 수정 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 10 @@ -3821,7 +3821,7 @@ One-time fee, annual account fees - 일회성 수수료, 연간 계정 수수료 + 일회성 수수료, 연간 계좌 수수료 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 33 @@ -3881,7 +3881,7 @@ Import Activities - 활동 가져오기 + 거래 내역 가져오기 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts 94 @@ -4005,7 +4005,7 @@ Select Activities - 활동 선택 + 거래 선택 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 115 @@ -4025,7 +4025,7 @@ Allocations - 할당 + 자산 배분 apps/client/src/app/pages/portfolio/allocations/allocations-page.html 4 @@ -4065,7 +4065,7 @@ By Asset Class - 자산 클래스별 + 자산군별 apps/client/src/app/pages/portfolio/allocations/allocations-page.html 83 @@ -4141,7 +4141,7 @@ Latest activities - 최신 활동 + 최신 거래 내역 apps/client/src/app/pages/public/public-page.html 210 @@ -4173,7 +4173,7 @@ By Account - 계정별 + 계좌별 apps/client/src/app/pages/portfolio/allocations/allocations-page.html 282 @@ -4429,7 +4429,7 @@ Unlimited Accounts - 무제한 계정 + 무제한 계좌 apps/client/src/app/pages/pricing/pricing-page.html 39 @@ -4553,7 +4553,7 @@ Could not save asset profile - Could not save asset profile + 자산 정보를 저장할 수 없습니다. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts 634 @@ -5038,7 +5038,7 @@ Do you really want to delete this account balance? - 정말로 이 계정 잔액을 삭제하시겠습니까? + 정말로 이 계좌 잔액을 삭제하시겠습니까? libs/ui/src/lib/account-balances/account-balances.component.ts 113 @@ -5046,7 +5046,7 @@ Export Activities - 수출 활동 + 거래 내역 내보내기 libs/ui/src/lib/activities-table/activities-table.component.html 64 @@ -5094,7 +5094,7 @@ Do you really want to delete this activity? - 정말로 이 활동을 삭제하시겠습니까? + 정말로 이 거래를 삭제하시겠습니까? libs/ui/src/lib/activities-table/activities-table.component.ts 314 @@ -5146,7 +5146,7 @@ Change from All Time High - 역대 최고치에서 변화 + 역대 최고점 대비 변동 libs/ui/src/lib/benchmark/benchmark.component.html 128 @@ -5170,7 +5170,7 @@ Loan - Loan + 대출 libs/ui/src/lib/i18n.ts 60 @@ -5246,7 +5246,7 @@ Allocation - 배당 + 자산 배분 libs/ui/src/lib/accounts-table/accounts-table.component.html 248 @@ -5274,7 +5274,7 @@ Account - 계정 + 계좌 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 86 @@ -5302,7 +5302,7 @@ Asset Class - 자산 클래스 + 자산군 apps/client/src/app/components/admin-market-data/admin-market-data.html 114 @@ -5334,7 +5334,7 @@ Asset Sub Class - 자산 하위 클래스 + 하위 자산군 apps/client/src/app/components/admin-market-data/admin-market-data.html 123 @@ -5474,7 +5474,7 @@ No Activities - No Activities + 거래 내역 없음 apps/client/src/app/components/admin-market-data/admin-market-data.component.ts 150 @@ -5490,7 +5490,7 @@ Everything in Basic, plus - Everything in Basic, plus + Basic의 모든 기능에 더해 apps/client/src/app/pages/pricing/pricing-page.html 199 @@ -5594,7 +5594,7 @@ Fee - 요금 + 수수료 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 255 @@ -5770,7 +5770,7 @@ Communication Services - Communication Services + 커뮤니케이션 서비스 libs/ui/src/lib/i18n.ts 87 @@ -5986,7 +5986,7 @@ Close Holding - 닫기 보유 + 보유 포지션 종료 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 447 @@ -6203,7 +6203,7 @@ Find a holding... - Find a holding... + 보유 종목 검색... libs/ui/src/lib/assistant/assistant.component.ts 472 @@ -6263,7 +6263,7 @@ Activity - 활동 + 거래 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 227 @@ -6319,7 +6319,7 @@ {VAR_PLURAL, plural, =1 {activity} other {activities}} - {VAR_PLURAL, 복수형, =1 {활동} 기타 {활동}} + {VAR_PLURAL, plural, =1 {거래} other {거래}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html 14 @@ -6327,7 +6327,7 @@ Delete Activities - 활동 삭제 + 거래 삭제 libs/ui/src/lib/activities-table/activities-table.component.html 92 @@ -6359,7 +6359,7 @@ Jump to a page... - Jump to a page... + 페이지 이동... libs/ui/src/lib/assistant/assistant.component.ts 473 @@ -6375,7 +6375,7 @@ Approximation based on the top holdings of each ETF - 각 ETF의 상위 보유량을 기준으로 한 근사치 + 각 ETF의 상위 보유 종목을 기준으로 한 근사치 apps/client/src/app/pages/portfolio/allocations/allocations-page.html 334 @@ -6383,7 +6383,7 @@ By ETF Holding - ETF 홀딩으로 + ETF 보유 종목별 apps/client/src/app/pages/portfolio/allocations/allocations-page.html 327 @@ -6587,7 +6587,7 @@ View Holding - 보유보기 + 보유 종목 보기 libs/ui/src/lib/activities-table/activities-table.component.html 474 @@ -6875,7 +6875,7 @@ Performance with currency effect Performance - 환율 효과가 있는 실적 실적 + 환율 효과 반영 수익률 수익률 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 83 @@ -6891,7 +6891,7 @@ Change with currency effect Change - 통화 효과로 변경 변경 + 환율 효과 반영 변동 변동 apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.html 63 @@ -6915,7 +6915,7 @@ has been copied to the clipboard - has been copied to the clipboard + 가 클립보드에 복사되었습니다. apps/client/src/app/components/admin-overview/admin-overview.component.ts 378 @@ -6967,7 +6967,7 @@ Financial Services - Financial Services + 금융 서비스 libs/ui/src/lib/i18n.ts 91 @@ -7385,7 +7385,7 @@ Change with currency effect - Change with currency effect + 환율 효과 반영 변동 apps/client/src/app/pages/portfolio/analysis/analysis-page.html 115 @@ -7489,7 +7489,7 @@ Change - 변화 + 변동 libs/ui/src/lib/holdings-table/holdings-table.component.html 143 @@ -7501,7 +7501,7 @@ Performance - 성능 + 성과 apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html 6 @@ -7541,7 +7541,7 @@ Total amount - Total amount + 총액 apps/client/src/app/pages/portfolio/analysis/analysis-page.html 94 @@ -7706,7 +7706,7 @@ Performance Calculation - 성능 계산 + 성과 계산 apps/client/src/app/components/user-account-settings/user-account-settings.html 31 @@ -7811,7 +7811,7 @@ No emergency fund has been set up - 비상금은 마련되지 않았습니다 + 비상금이 설정되지 않았습니다. apps/client/src/app/pages/i18n/i18n-page.html 147 @@ -7819,7 +7819,7 @@ An emergency fund has been set up - 비상금이 마련됐어요 + 비상금이 설정되어 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 150 @@ -7827,7 +7827,7 @@ Fee Ratio - Fee Ratio + 수수료 비율 apps/client/src/app/pages/i18n/i18n-page.html 152 @@ -7835,7 +7835,7 @@ The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) - The fees do exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) + 수수료가 총 투자 금액의 ${thresholdMax}%를 초과합니다 (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html 154 @@ -7843,7 +7843,7 @@ The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) - The fees do not exceed ${thresholdMax}% of your total investment volume (${feeRatio}%) + 수수료가 총 투자 금액의 ${thresholdMax}%를 초과하지 않습니다 (${feeRatio}%) apps/client/src/app/pages/i18n/i18n-page.html 158 @@ -7883,7 +7883,7 @@ Single Account - 단일 계정 + 단일 계좌 apps/client/src/app/pages/i18n/i18n-page.html 28 @@ -7891,7 +7891,7 @@ Your net worth is managed by a single account - 귀하의 순자산은 단일 계정으로 관리됩니다 + 귀하의 순자산은 단일 계좌로 관리됩니다 apps/client/src/app/pages/i18n/i18n-page.html 30 @@ -7899,7 +7899,7 @@ Your net worth is managed by ${accountsLength} accounts - 귀하의 순자산은 ${accountsLength} 계정에서 관리됩니다. + 귀하의 순자산은 ${accountsLength}개의 계좌에서 관리됩니다. apps/client/src/app/pages/i18n/i18n-page.html 36 @@ -8025,7 +8025,7 @@ Over ${thresholdMax}% of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) - 현재 투자의 ${thresholdMax}% 이상이 ${maxAccountName} (${maxInvestmentRatio}%)에 있습니다. + 현재 투자 자산의 ${thresholdMax}% 이상이 ${maxAccountName} 계좌 (${maxInvestmentRatio}%)에 집중되어 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 17 @@ -8033,7 +8033,7 @@ The major part of your current investment is at ${maxAccountName} (${maxInvestmentRatio}%) and does not exceed ${thresholdMax}% - 현재 투자의 주요 부분은 ${maxAccountName} (${maxInvestmentRatio}%)이며 ${thresholdMax}%를 초과하지 않습니다. + 현재 투자 자산의 주요 부분이 ${maxAccountName} 계좌 (${maxInvestmentRatio}%)에 있으며, 설정된 기준(${thresholdMax}%)을 초과하지 않습니다. apps/client/src/app/pages/i18n/i18n-page.html 24 @@ -8049,7 +8049,7 @@ The equity contribution of your current investment (${equityValueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 주식 비중(${equityValueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 43 @@ -8057,7 +8057,7 @@ The equity contribution of your current investment (${equityValueRatio}%) is below ${thresholdMin}% - 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 주식 비중(${equityValueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 47 @@ -8065,7 +8065,7 @@ The equity contribution of your current investment (${equityValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 지분 기여도(${equityValueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 주식 비중(${equityValueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 51 @@ -8081,7 +8081,7 @@ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 채권 비중(${fixedIncomeValueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 57 @@ -8089,7 +8089,7 @@ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is below ${thresholdMin}% - 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 채권 비중(${fixedIncomeValueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 61 @@ -8097,7 +8097,7 @@ The fixed income contribution of your current investment (${fixedIncomeValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 고정 수입 기여도(${fixedIncomeValueRatio}%)가 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 채권 비중(${fixedIncomeValueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 66 @@ -8113,7 +8113,7 @@ The major part of your current investment is not in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) - 현재 투자의 주요 부분이 기본 통화(${baseCurrency}의 ${baseCurrencyValueRatio}%)로 되어 있지 않습니다. + 현재 투자 자산의 상당 부분이 기준 통화가 아닙니다 (${baseCurrency} 비중: ${baseCurrencyValueRatio}%). apps/client/src/app/pages/i18n/i18n-page.html 88 @@ -8121,7 +8121,7 @@ The major part of your current investment is in your base currency (${baseCurrencyValueRatio}% in ${baseCurrency}) - 현재 투자의 주요 부분은 기본 통화(${baseCurrency}의 ${baseCurrencyValueRatio}%)입니다. + 현재 투자 자산의 주요 부분이 기준 통화로 되어 있습니다 (${baseCurrency} 비중: ${baseCurrencyValueRatio}%). apps/client/src/app/pages/i18n/i18n-page.html 92 @@ -8137,7 +8137,7 @@ Over ${thresholdMax}% of your current investment is in ${currency} (${maxValueRatio}%) - 현재 투자의 ${thresholdMax}% 이상이 ${currency}(${maxValueRatio}%)에 있습니다. + 현재 투자 자산의 ${thresholdMax}% 이상이 ${currency} 통화 (${maxValueRatio}%)에 집중되어 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 97 @@ -8145,7 +8145,7 @@ The major part of your current investment is in ${currency} (${maxValueRatio}%) and does not exceed ${thresholdMax}% - 현재 투자의 주요 부분은 ${currency} (${maxValueRatio}%)이며 ${thresholdMax}%를 초과하지 않습니다. + 현재 투자 자산의 상당 부분이 ${currency} 통화 (${maxValueRatio}%)로 되어 있으며, 설정된 기준(${thresholdMax}%)을 초과하지 않습니다. apps/client/src/app/pages/i18n/i18n-page.html 101 @@ -8214,7 +8214,7 @@ - + apps/client/src/app/components/admin-users/admin-users.html 35 @@ -8266,7 +8266,7 @@ Account Cluster Risks - 계정 클러스터 위험 + 계좌 집중 위험 apps/client/src/app/pages/i18n/i18n-page.html 14 @@ -8274,7 +8274,7 @@ Asset Class Cluster Risks - 자산 클래스 클러스터 위험 + 자산군 집중 위험 apps/client/src/app/pages/i18n/i18n-page.html 39 @@ -8282,7 +8282,7 @@ Currency Cluster Risks - 통화 클러스터 위험 + 통화 집중 위험 apps/client/src/app/pages/i18n/i18n-page.html 83 @@ -8290,7 +8290,7 @@ Economic Market Cluster Risks - 경제 시장 클러스터 위험 + 경제 시장 집중 위험 apps/client/src/app/pages/i18n/i18n-page.html 106 @@ -8298,7 +8298,7 @@ Emergency Fund - 비상자금 + 비상금 apps/client/src/app/pages/i18n/i18n-page.html 144 @@ -8330,7 +8330,7 @@ Your buying power is below ${thresholdMin} ${baseCurrency} - 귀하의 구매력은 ${thresholdMin} ${baseCurrency} 미만입니다. + 매수 가능 금액이 ${thresholdMin} ${baseCurrency} 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 73 @@ -8338,7 +8338,7 @@ Your buying power is 0 ${baseCurrency} - 귀하의 구매력은 0입니다 ${baseCurrency} + 매수 가능 금액이 0 ${baseCurrency}입니다. apps/client/src/app/pages/i18n/i18n-page.html 77 @@ -8354,7 +8354,7 @@ Regional Market Cluster Risks - 지역 시장 클러스터 위험 + 지역 시장 집중 위험 apps/client/src/app/pages/i18n/i18n-page.html 163 @@ -8370,7 +8370,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 선진국 시장 비중(${developedMarketsValueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 112 @@ -8378,7 +8378,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is below ${thresholdMin}% - 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 선진국 시장 비중(${developedMarketsValueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 117 @@ -8386,7 +8386,7 @@ The developed markets contribution of your current investment (${developedMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 선진국 시장 기여도(${개발된MarketsValueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 선진국 시장 비중(${developedMarketsValueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 122 @@ -8402,7 +8402,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 신흥국 시장 비중(${emergingMarketsValueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 130 @@ -8410,7 +8410,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is below ${thresholdMin}% - 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 신흥국 시장 비중(${emergingMarketsValueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 135 @@ -8418,7 +8418,7 @@ The emerging markets contribution of your current investment (${emergingMarketsValueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 신흥 시장 기여도(${emergingMarketsValueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 신흥국 시장 비중(${emergingMarketsValueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 140 @@ -8426,7 +8426,7 @@ No accounts have been set up - 설정된 계정이 없습니다. + 설정된 계좌가 없습니다. apps/client/src/app/pages/i18n/i18n-page.html 21 @@ -8434,7 +8434,7 @@ Your net worth is managed by 0 accounts - 귀하의 순자산은 0개의 계정에서 관리됩니다. + 귀하의 순자산은 0개의 계좌에서 관리됩니다. apps/client/src/app/pages/i18n/i18n-page.html 33 @@ -8450,7 +8450,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 아시아 태평양 시장 비중(${valueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 167 @@ -8458,7 +8458,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 아시아 태평양 시장 비중(${valueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 171 @@ -8466,7 +8466,7 @@ The Asia-Pacific market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 아시아 태평양 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 아시아 태평양 시장 비중(${valueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 175 @@ -8482,7 +8482,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 신흥국 시장 비중(${valueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 183 @@ -8490,7 +8490,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 신흥국 시장 비중(${valueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 187 @@ -8498,7 +8498,7 @@ The Emerging Markets contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 신흥 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 신흥국 시장 비중(${valueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 191 @@ -8514,7 +8514,7 @@ The Europe market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 유럽 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 유럽 시장 비중(${valueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 197 @@ -8522,7 +8522,7 @@ The Europe market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - 현재 투자의 유럽 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 유럽 시장 비중(${valueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 201 @@ -8530,7 +8530,7 @@ The Europe market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 유럽 시장 기여도(${valueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 유럽 시장 비중(${valueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 205 @@ -8546,7 +8546,7 @@ The Japan market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 일본 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 일본 시장 비중(${valueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 211 @@ -8554,7 +8554,7 @@ The Japan market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - 현재 투자의 일본 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 일본 시장 비중(${valueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 215 @@ -8562,7 +8562,7 @@ The Japan market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 일본 시장 기여도(${valueRatio}%)는 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 일본 시장 비중(${valueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 219 @@ -8578,7 +8578,7 @@ The North America market contribution of your current investment (${valueRatio}%) exceeds ${thresholdMax}% - 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMax}%를 초과합니다. + 현재 투자 자산 중 북미 시장 비중(${valueRatio}%)이 ${thresholdMax}%를 초과합니다. apps/client/src/app/pages/i18n/i18n-page.html 225 @@ -8586,7 +8586,7 @@ The North America market contribution of your current investment (${valueRatio}%) is below ${thresholdMin}% - 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 미만입니다. + 현재 투자 자산 중 북미 시장 비중(${valueRatio}%)이 ${thresholdMin}% 미만입니다. apps/client/src/app/pages/i18n/i18n-page.html 229 @@ -8594,7 +8594,7 @@ The North America market contribution of your current investment (${valueRatio}%) is within the range of ${thresholdMin}% and ${thresholdMax}% - 현재 투자의 북미 시장 기여도(${valueRatio}%)가 ${thresholdMin}% 및 ${thresholdMax}% 범위 내에 있습니다. + 현재 투자 자산 중 북미 시장 비중(${valueRatio}%)이 ${thresholdMin}% ~ ${thresholdMax}% 범위 내에 있습니다. apps/client/src/app/pages/i18n/i18n-page.html 233 From 124940bf53c19c25cdbffef92d0cc82c8387ffc7 Mon Sep 17 00:00:00 2001 From: Ankit Singh Date: Thu, 11 Jun 2026 20:56:38 +0530 Subject: [PATCH 3/4] Task/migrate various components from NgStyle to style bindings (#7008) * Migrate various components from NgStyle to style bindings * Update changelog --- CHANGELOG.md | 1 + .../benchmark-comparator.component.html | 2 +- .../benchmark-comparator.component.ts | 2 -- .../investment-chart/investment-chart.component.html | 2 +- .../investment-chart/investment-chart.component.ts | 3 +-- .../app/pages/portfolio/fire/fire-page.component.ts | 3 +-- .../src/app/pages/portfolio/fire/fire-page.html | 11 ++++++----- .../fire-calculator/fire-calculator.component.html | 2 +- libs/ui/src/lib/line-chart/line-chart.component.html | 5 +---- libs/ui/src/lib/line-chart/line-chart.component.ts | 3 +-- .../portfolio-proportion-chart.component.html | 5 +---- .../portfolio-proportion-chart.component.ts | 3 +-- .../premium-indicator.component.html | 2 +- .../premium-indicator/premium-indicator.component.ts | 3 +-- .../lib/treemap-chart/treemap-chart.component.html | 5 +---- .../src/lib/treemap-chart/treemap-chart.component.ts | 3 +-- 16 files changed, 20 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 240ca983f..d344a14c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Prefilled the form in the account balance management with the current cash balance - Disabled the selection of future dates in the account balance management +- Migrated various components from `NgStyle` to style bindings - Improved the language localization for Korean (`ko`) ## 3.8.0 - 2026-06-07 diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html index 4d74c2559..328cccba1 100644 --- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html +++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html @@ -53,6 +53,6 @@ diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts index d2dc9e1bb..8d13fb91d 100644 --- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts +++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -17,7 +17,6 @@ import { ColorScheme } from '@ghostfolio/common/types'; import { registerChartConfiguration } from '@ghostfolio/ui/chart'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; -import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, @@ -53,7 +52,6 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, imports: [ - CommonModule, FormsModule, GfPremiumIndicatorComponent, IonIcon, diff --git a/apps/client/src/app/components/investment-chart/investment-chart.component.html b/apps/client/src/app/components/investment-chart/investment-chart.component.html index 6f7b083e5..864050ea8 100644 --- a/apps/client/src/app/components/investment-chart/investment-chart.component.html +++ b/apps/client/src/app/components/investment-chart/investment-chart.component.html @@ -10,5 +10,5 @@ diff --git a/apps/client/src/app/components/investment-chart/investment-chart.component.ts b/apps/client/src/app/components/investment-chart/investment-chart.component.ts index 691133009..e55aebdda 100644 --- a/apps/client/src/app/components/investment-chart/investment-chart.component.ts +++ b/apps/client/src/app/components/investment-chart/investment-chart.component.ts @@ -16,7 +16,6 @@ import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.in import { ColorScheme, GroupBy } from '@ghostfolio/common/types'; import { registerChartConfiguration } from '@ghostfolio/ui/chart'; -import { CommonModule } from '@angular/common'; import { ChangeDetectionStrategy, Component, @@ -49,7 +48,7 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, NgxSkeletonLoaderModule], + imports: [NgxSkeletonLoaderModule], selector: 'gf-investment-chart', styleUrls: ['./investment-chart.component.scss'], templateUrl: './investment-chart.component.html' diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index dc0a1d776..04165ab11 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -12,7 +12,7 @@ import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { DataService } from '@ghostfolio/ui/services'; import { GfValueComponent } from '@ghostfolio/ui/value'; -import { CommonModule, NgStyle } from '@angular/common'; +import { CommonModule } from '@angular/common'; import { ChangeDetectorRef, Component, @@ -35,7 +35,6 @@ import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; GfFireCalculatorComponent, GfPremiumIndicatorComponent, GfValueComponent, - NgStyle, NgxSkeletonLoaderModule, ReactiveFormsModule ], diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.html b/apps/client/src/app/pages/portfolio/fire/fire-page.html index 76ad6cbf6..2730b35cd 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -19,14 +19,15 @@ !hasImpersonationId && hasPermissionToUpdateUserSettings " [locale]="user?.settings?.locale" - [ngStyle]="{ - opacity: user?.subscription?.type === 'Basic' ? '0.67' : 'initial', - 'pointer-events': - user?.subscription?.type === 'Basic' ? 'none' : 'initial' - }" [projectedTotalAmount]="user?.settings?.projectedTotalAmount" [retirementDate]="user?.settings?.retirementDate" [savingsRate]="user?.settings?.savingsRate" + [style.opacity]=" + user?.subscription?.type === 'Basic' ? '0.67' : 'initial' + " + [style.pointer-events]=" + user?.subscription?.type === 'Basic' ? 'none' : 'initial' + " (annualInterestRateChanged)="onAnnualInterestRateChange($event)" (calculationCompleted)="onCalculationComplete($event)" (projectedTotalAmountChanged)="onProjectedTotalAmountChange($event)" diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html index 4f9ac456c..125c69a12 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html @@ -81,7 +81,7 @@ diff --git a/libs/ui/src/lib/line-chart/line-chart.component.html b/libs/ui/src/lib/line-chart/line-chart.component.html index e9a5bbbe0..7f115967f 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.html +++ b/libs/ui/src/lib/line-chart/line-chart.component.html @@ -7,7 +7,4 @@ }" /> } - + diff --git a/libs/ui/src/lib/line-chart/line-chart.component.ts b/libs/ui/src/lib/line-chart/line-chart.component.ts index dd972bc5a..92ee8e4ec 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.ts +++ b/libs/ui/src/lib/line-chart/line-chart.component.ts @@ -12,7 +12,6 @@ import { import { LineChartItem } from '@ghostfolio/common/interfaces'; import { ColorScheme } from '@ghostfolio/common/types'; -import { CommonModule } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, @@ -43,7 +42,7 @@ import { registerChartConfiguration } from '../chart'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, NgxSkeletonLoaderModule], + imports: [NgxSkeletonLoaderModule], selector: 'gf-line-chart', styleUrls: ['./line-chart.component.scss'], templateUrl: './line-chart.component.html' diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.html b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.html index c7de5ef4d..75e545d30 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.html +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.html @@ -7,7 +7,4 @@ }" /> } - + diff --git a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts index 7c17b587c..e2c41e956 100644 --- a/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts +++ b/libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts @@ -7,7 +7,6 @@ import { } from '@ghostfolio/common/interfaces'; import { ColorScheme } from '@ghostfolio/common/types'; -import { CommonModule } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, @@ -54,7 +53,7 @@ const { @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, NgxSkeletonLoaderModule], + imports: [NgxSkeletonLoaderModule], selector: 'gf-portfolio-proportion-chart', styleUrls: ['./portfolio-proportion-chart.component.scss'], templateUrl: './portfolio-proportion-chart.component.html' diff --git a/libs/ui/src/lib/premium-indicator/premium-indicator.component.html b/libs/ui/src/lib/premium-indicator/premium-indicator.component.html index 3141414e7..71baae6cb 100644 --- a/libs/ui/src/lib/premium-indicator/premium-indicator.component.html +++ b/libs/ui/src/lib/premium-indicator/premium-indicator.component.html @@ -1,7 +1,7 @@ diff --git a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts index b3ccfd88f..0c3cd6ad7 100644 --- a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts +++ b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts @@ -1,6 +1,5 @@ import { publicRoutes } from '@ghostfolio/common/routes/routes'; -import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, @@ -14,7 +13,7 @@ import { diamondOutline } from 'ionicons/icons'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, IonIcon, RouterModule], + imports: [IonIcon, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], selector: 'gf-premium-indicator', styleUrls: ['./premium-indicator.component.scss'], diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.html b/libs/ui/src/lib/treemap-chart/treemap-chart.component.html index c7de5ef4d..75e545d30 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.html +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.html @@ -7,7 +7,4 @@ }" /> } - + diff --git a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts index 910914230..36ea0023a 100644 --- a/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts +++ b/libs/ui/src/lib/treemap-chart/treemap-chart.component.ts @@ -10,7 +10,6 @@ import { } from '@ghostfolio/common/interfaces'; import { ColorScheme, DateRange } from '@ghostfolio/common/types'; -import { CommonModule } from '@angular/common'; import { AfterViewInit, ChangeDetectionStrategy, @@ -45,7 +44,7 @@ const { gray, green, red } = OpenColor; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, - imports: [CommonModule, NgxSkeletonLoaderModule], + imports: [NgxSkeletonLoaderModule], selector: 'gf-treemap-chart', styleUrls: ['./treemap-chart.component.scss'], templateUrl: './treemap-chart.component.html' From 3fb77bbc5150355d5c81d3aa31cd5ffb30ad1527 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 11 Jun 2026 22:44:57 +0200 Subject: [PATCH 4/4] Feature/support dedicated OpenRouter model for web_fetch tool in FetchService (#7005) * Add support for dedicated OpenRouter model for web_fetch * Update changelog --- CHANGELOG.md | 4 ++++ apps/api/src/services/fetch/fetch.service.ts | 21 +++++++++++++------- libs/common/src/lib/config.ts | 1 + 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d344a14c4..c0c0835c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added support for a dedicated _OpenRouter_ model for the `web_fetch` tool in the `FetchService` + ### Changed - Prefilled the form in the account balance management with the current cash balance diff --git a/apps/api/src/services/fetch/fetch.service.ts b/apps/api/src/services/fetch/fetch.service.ts index 31034f81c..2425e476e 100644 --- a/apps/api/src/services/fetch/fetch.service.ts +++ b/apps/api/src/services/fetch/fetch.service.ts @@ -3,6 +3,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv import { PROPERTY_API_KEY_OPENROUTER, PROPERTY_OPENROUTER_MODEL, + PROPERTY_OPENROUTER_MODEL_WEB_FETCH, PROPERTY_WEB_FETCH_ROUTES } from '@ghostfolio/common/config'; @@ -80,12 +81,18 @@ export class FetchService implements OnModuleInit { url: string; webFetchRoute: WebFetchRoute; }) { - const [openRouterApiKey, openRouterModel] = await Promise.all([ - this.propertyService.getByKey(PROPERTY_API_KEY_OPENROUTER), - this.propertyService.getByKey(PROPERTY_OPENROUTER_MODEL) - ]); - - if (!openRouterApiKey || !openRouterModel) { + const [openRouterApiKey, openRouterModel, openRouterModelWebFetch] = + await Promise.all([ + this.propertyService.getByKey(PROPERTY_API_KEY_OPENROUTER), + this.propertyService.getByKey(PROPERTY_OPENROUTER_MODEL), + this.propertyService.getByKey( + PROPERTY_OPENROUTER_MODEL_WEB_FETCH + ) + ]); + + const model = openRouterModelWebFetch || openRouterModel; + + if (!model || !openRouterApiKey) { return undefined; } @@ -93,7 +100,7 @@ export class FetchService implements OnModuleInit { const openRouterService = createOpenRouter({ apiKey: openRouterApiKey }); const { sources, text } = await generateText({ - model: openRouterService.chat(openRouterModel), + model: openRouterService.chat(model), prompt: [ 'You have access to a web_fetch tool. You MUST call it to retrieve the URL below, do not answer from prior knowledge.', 'Return the fetched response body exactly as received: raw body only, no commentary, no Markdown, and no code fences.', diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index 5f2dd9a1c..7e7cd2ba5 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -252,6 +252,7 @@ export const PROPERTY_IS_DATA_GATHERING_ENABLED = 'IS_DATA_GATHERING_ENABLED'; export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE'; export const PROPERTY_IS_USER_SIGNUP_ENABLED = 'IS_USER_SIGNUP_ENABLED'; export const PROPERTY_OPENROUTER_MODEL = 'OPENROUTER_MODEL'; +export const PROPERTY_OPENROUTER_MODEL_WEB_FETCH = 'OPENROUTER_MODEL_WEB_FETCH'; export const PROPERTY_SLACK_COMMUNITY_USERS = 'SLACK_COMMUNITY_USERS'; export const PROPERTY_STRIPE_CONFIG = 'STRIPE_CONFIG'; export const PROPERTY_SYSTEM_MESSAGE = 'SYSTEM_MESSAGE';