From 14b6e3819bc95c4efa0dd1015a22b91ff882f8b9 Mon Sep 17 00:00:00 2001 From: Aya Abdellatif Date: Sat, 21 Jun 2025 00:57:29 +0300 Subject: [PATCH 1/3] Add page name to the report --- Interface/src/Components/dashboard/dashboard.component.ts | 3 ++- .../Components/page-analytics/page-analytics.component.html | 1 + .../src/Components/page-analytics/page-analytics.component.ts | 2 ++ Interface/src/assets/i18n/ar.json | 3 ++- Interface/src/assets/i18n/en.json | 3 ++- Interface/src/assets/i18n/es.json | 3 ++- Interface/src/assets/i18n/fr.json | 3 ++- 7 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Interface/src/Components/dashboard/dashboard.component.ts b/Interface/src/Components/dashboard/dashboard.component.ts index 60ea0a90..f23a0429 100644 --- a/Interface/src/Components/dashboard/dashboard.component.ts +++ b/Interface/src/Components/dashboard/dashboard.component.ts @@ -160,9 +160,10 @@ export class DashboardComponent implements OnInit{ goToAnalytics(page: FacebookPage) { const facebookId = page.id; + const pageName = page.name; console.log('Navigating to page-analytics with ID:', facebookId); this.router.navigate(['/page-analytics'], { - queryParams: { facebookId } + queryParams: { facebookId, pageName } }); } diff --git a/Interface/src/Components/page-analytics/page-analytics.component.html b/Interface/src/Components/page-analytics/page-analytics.component.html index 6fbbd73f..a68f15d9 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.html +++ b/Interface/src/Components/page-analytics/page-analytics.component.html @@ -27,6 +27,7 @@

{{ 'ANALYTICS_PAGE_DESCRIPTION' | translate }}

+

{{pageName}} {{'IMPACT_REPORT' | translate}}

{{ 'REPORT_FROM' | translate }} {{ startDate }} {{ 'TO' | translate }} {{ endDate }}

{{ 'GOALS' | translate }}:

    diff --git a/Interface/src/Components/page-analytics/page-analytics.component.ts b/Interface/src/Components/page-analytics/page-analytics.component.ts index 70c742b1..69d5ecaf 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.ts +++ b/Interface/src/Components/page-analytics/page-analytics.component.ts @@ -28,6 +28,7 @@ export class PageAnalyticsComponent implements OnInit { endDate = ''; chartImages: SafeUrl[] = []; goals: string[] = []; + pageName = ''; // eslint-disable-next-line @typescript-eslint/no-explicit-any metrics: any; constructor(private route: ActivatedRoute, @@ -38,6 +39,7 @@ export class PageAnalyticsComponent implements OnInit { ngOnInit(): void { this.route.queryParams.subscribe(params => { this.facebookId = params['facebookId']; + this.pageName = params['pageName']; }); } diff --git a/Interface/src/assets/i18n/ar.json b/Interface/src/assets/i18n/ar.json index 2341d7d1..f70cc500 100644 --- a/Interface/src/assets/i18n/ar.json +++ b/Interface/src/assets/i18n/ar.json @@ -135,5 +135,6 @@ "WELCOME_BACK": "مرحبًا بعودتك!", "LOGIN_FAILED": "فشل تسجيل الدخول", "INVALID_CREDENTIALS": "بيانات الاعتماد غير صحيحة", - "OK": "حسنًا" + "OK": "حسنًا", + "IMPACT_REPORT": "IMPACT_REPORT" } diff --git a/Interface/src/assets/i18n/en.json b/Interface/src/assets/i18n/en.json index b7406553..86b74e2d 100644 --- a/Interface/src/assets/i18n/en.json +++ b/Interface/src/assets/i18n/en.json @@ -135,5 +135,6 @@ "WELCOME_BACK": "Welcome back!", "LOGIN_FAILED": "Login Failed", "INVALID_CREDENTIALS": "Invalid credentials", - "OK": "Ok" + "OK": "Ok", + "IMPACT_REPORT": "Impact Report" } diff --git a/Interface/src/assets/i18n/es.json b/Interface/src/assets/i18n/es.json index 0cda524a..85510688 100644 --- a/Interface/src/assets/i18n/es.json +++ b/Interface/src/assets/i18n/es.json @@ -135,5 +135,6 @@ "WELCOME_BACK": "¡Bienvenido de nuevo!", "LOGIN_FAILED": "Error al Iniciar Sesión", "INVALID_CREDENTIALS": "Credenciales inválidas", - "OK": "Aceptar" + "OK": "Aceptar", + "IMPACT_REPORT": "INFORME DE IMPACTO" } diff --git a/Interface/src/assets/i18n/fr.json b/Interface/src/assets/i18n/fr.json index a453a428..12e9876c 100644 --- a/Interface/src/assets/i18n/fr.json +++ b/Interface/src/assets/i18n/fr.json @@ -135,5 +135,6 @@ "WELCOME_BACK": "Content de vous revoir !", "LOGIN_FAILED": "Échec de la Connexion", "INVALID_CREDENTIALS": "Identifiants invalides", - "OK": "Ok" + "OK": "Ok", + "IMPACT_REPORT": "RAPPORT D'IMPACT" } From 5b41f73a796c711b3a651ffda1680811facf3dfa Mon Sep 17 00:00:00 2001 From: Aya Abdellatif Date: Sat, 21 Jun 2025 01:24:00 +0300 Subject: [PATCH 2/3] Edit report title --- .../page-analytics.component.css | 7 +++++- .../page-analytics.component.html | 22 ++++++++++++++---- Interface/src/assets/i18n/ar.json | 2 +- Interface/src/assets/i18n/en.json | 4 ++-- Interface/src/assets/i18n/es.json | 2 +- Interface/src/assets/i18n/fr.json | 2 +- Interface/src/assets/icons/dot-arrow.png | Bin 0 -> 3364 bytes Interface/src/assets/icons/dots.png | Bin 0 -> 1284 bytes Interface/src/assets/icons/right-arrow.png | Bin 0 -> 1703 bytes 9 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 Interface/src/assets/icons/dot-arrow.png create mode 100644 Interface/src/assets/icons/dots.png create mode 100644 Interface/src/assets/icons/right-arrow.png diff --git a/Interface/src/Components/page-analytics/page-analytics.component.css b/Interface/src/Components/page-analytics/page-analytics.component.css index bdfd28d0..59423f44 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.css +++ b/Interface/src/Components/page-analytics/page-analytics.component.css @@ -62,7 +62,7 @@ input[type="date"] { padding: 10px; margin-top: 5px; border: 1px solid #ccc; - border-radius: 5px; + border-radius: 5px !important; font-size: 1rem; color: #666; @@ -142,6 +142,11 @@ input:focus, textarea:focus, select:focus { margin-bottom: 20px; } +.report .date-style{ + color: #0a2640; + font-style: italic; +} + .goals-section, .images-section { margin-top: 30px; text-align: left; /* left-align content inside sections */ diff --git a/Interface/src/Components/page-analytics/page-analytics.component.html b/Interface/src/Components/page-analytics/page-analytics.component.html index a68f15d9..7c320d81 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.html +++ b/Interface/src/Components/page-analytics/page-analytics.component.html @@ -26,17 +26,28 @@

    {{ 'ANALYTICS_PAGE_DESCRIPTION' | translate }}

+
-

{{pageName}} {{'IMPACT_REPORT' | translate}}

-

{{ 'REPORT_FROM' | translate }} {{ startDate }} {{ 'TO' | translate }} {{ endDate }}

-

{{ 'GOALS' | translate }}:

+ + +

{{pageName}} {{'IMPACT_REPORT' | translate}}

+

+ {{ 'REPORT_FROM' | translate }} + {{ startDate }} + {{ 'TO' | translate }} + {{ endDate }} +

+ + +

{{ 'GOALS' | translate }}:

  • {{ goal }}
+
-

{{ 'ANALYTICS_IMAGES' | translate }}:

+

{{ 'ANALYTICS_IMAGES' | translate }}:

Analytics Chart @@ -44,8 +55,9 @@

{{ 'ANALYTICS_IMAGES' | translate }}:

+
-

{{ 'METRICS' | translate }}:

+

{{ 'METRICS' | translate }}:

{{ 'SENTIMENT_COUNTS' | translate }}
diff --git a/Interface/src/assets/i18n/ar.json b/Interface/src/assets/i18n/ar.json index f70cc500..01c19b70 100644 --- a/Interface/src/assets/i18n/ar.json +++ b/Interface/src/assets/i18n/ar.json @@ -113,7 +113,7 @@ "END_DATE": "تاريخ الانتهاء", "SEE_INSIGHTS": "عرض التحليلات", "SELECT_DATES_WARNING": "يرجى تحديد كل من تاريخ البدء والانتهاء للمتابعة.", - "REPORT_FROM": "تقرير من", + "REPORT_FROM": "من", "TO": "إلى", "GOALS": "الأهداف", "ANALYTICS_IMAGES": "صور التحليلات", diff --git a/Interface/src/assets/i18n/en.json b/Interface/src/assets/i18n/en.json index 86b74e2d..0540270b 100644 --- a/Interface/src/assets/i18n/en.json +++ b/Interface/src/assets/i18n/en.json @@ -113,8 +113,8 @@ "END_DATE": "End Date", "SEE_INSIGHTS": "See Insights", "SELECT_DATES_WARNING": "Please select both start and end dates to proceed.", - "REPORT_FROM": "Report from", - "TO": "to", + "REPORT_FROM": "From", + "TO": "To", "GOALS": "Goals", "ANALYTICS_IMAGES": "Analytics Images", "METRICS": "Metrics", diff --git a/Interface/src/assets/i18n/es.json b/Interface/src/assets/i18n/es.json index 85510688..a80b8d70 100644 --- a/Interface/src/assets/i18n/es.json +++ b/Interface/src/assets/i18n/es.json @@ -113,7 +113,7 @@ "END_DATE": "Fecha de Fin", "SEE_INSIGHTS": "Ver Análisis", "SELECT_DATES_WARNING": "Por favor, selecciona una fecha de inicio y una fecha de fin para continuar.", - "REPORT_FROM": "Informe del", + "REPORT_FROM": "del", "TO": "al", "GOALS": "Objetivos", "ANALYTICS_IMAGES": "Imágenes de Análisis", diff --git a/Interface/src/assets/i18n/fr.json b/Interface/src/assets/i18n/fr.json index 12e9876c..08968b29 100644 --- a/Interface/src/assets/i18n/fr.json +++ b/Interface/src/assets/i18n/fr.json @@ -113,7 +113,7 @@ "END_DATE": "Date de Fin", "SEE_INSIGHTS": "Voir les Analyses", "SELECT_DATES_WARNING": "Veuillez sélectionner une date de début et une date de fin pour continuer.", - "REPORT_FROM": "Rapport du", + "REPORT_FROM": "du", "TO": "au", "GOALS": "Objectifs", "ANALYTICS_IMAGES": "Images d'Analyses", diff --git a/Interface/src/assets/icons/dot-arrow.png b/Interface/src/assets/icons/dot-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..e26935c5e06e5b2bd3016bcdcb0dc357c43d5248 GIT binary patch literal 3364 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 Date: Sat, 21 Jun 2025 05:55:05 +0300 Subject: [PATCH 3/3] report --- .../page-analytics.component.css | 129 +++++++++++------- .../page-analytics.component.html | 101 ++++++++------ Interface/src/assets/i18n/ar.json | 5 +- Interface/src/assets/i18n/en.json | 5 +- Interface/src/assets/i18n/es.json | 5 +- Interface/src/assets/i18n/fr.json | 5 +- Interface/src/assets/icons/try.png | Bin 0 -> 619 bytes 7 files changed, 156 insertions(+), 94 deletions(-) create mode 100644 Interface/src/assets/icons/try.png diff --git a/Interface/src/Components/page-analytics/page-analytics.component.css b/Interface/src/Components/page-analytics/page-analytics.component.css index 59423f44..255f439d 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.css +++ b/Interface/src/Components/page-analytics/page-analytics.component.css @@ -37,7 +37,7 @@ border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); text-align: center; - margin-top: 80px; /* Pushes the whole section down from the navbar */ + margin-top: 80px; padding-bottom: 0; } @@ -52,9 +52,6 @@ h2 { display: flex; gap: 20px; margin-bottom: 20px; - /*display: flex; - justify-content: space-between; - margin-bottom: 20px;*/ } input[type="date"] { @@ -66,28 +63,22 @@ input[type="date"] { font-size: 1rem; color: #666; - /*width: 45%; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-size: 1rem;*/ } input[type="date"]::-webkit-calendar-picker-indicator { opacity: 1; filter: invert(46%) sepia(42%) saturate(748%) hue-rotate(135deg) brightness(95%) contrast(95%); cursor: pointer; - } input:focus, textarea:focus, select:focus { - border-color: #20c0bd; /* your custom border color */ - outline: none; /* remove extra outline if any */ + border-color: #20c0bd; + outline: none; } .input-group{ - flex: 1; /* Each date input will take 50% */ - display: flex; + flex: 1; /* Each date input will take 50% */ + display: flex; } .input-group label{ @@ -132,7 +123,6 @@ input:focus, textarea:focus, select:focus { .report{ margin-top: 30px; - padding: 20px; background: #f7f8fc; border-radius: 10px; } @@ -143,26 +133,41 @@ input:focus, textarea:focus, select:focus { } .report .date-style{ + color: #4a4c6c; + /*font-style: italic;*/ + font-size: smaller; +} + +.custom-list { + list-style: none; + border-left: 4px solid #20c0bd; + background-color: #f9fefe; + padding: 10px 15px; + margin-top: 15px; color: #0a2640; - font-style: italic; + font-size: 16px; +} + +.custom-list::before { + content: '\2022'; + color: #20c0bd; + font-size: 20px; + position: absolute; + left: 15px; + top: 0; } .goals-section, .images-section { margin-top: 30px; - text-align: left; /* left-align content inside sections */ + text-align: left; } .goals-section h4, .images-section h4 { - color: #20c0bd; + color: #4a4c6c; margin-bottom: 15px; + font-weight: bold; } - /*h4 { - font-size: 1.5rem; - margin-bottom: 15px; - color: #333; - }*/ - ul { list-style-type: disc; padding-left: 20px; @@ -188,24 +193,18 @@ li { } .image-wrapper { - /*max-width: 300px;*/ - - width: 100%; /* Full width of container */ - max-width: 500px; /* Set a bigger max width */ + width: 100%; + max-width: 500px; height: auto; border: 1px solid #ccc; border-radius: 10px; overflow: hidden; background: #f9f9f9; padding: 10px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); } .analytics-image { - /*width: 100%; - height: auto; - border-radius: 8px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);*/ - width: 100%; height: auto; object-fit: contain; @@ -270,40 +269,78 @@ SECTION 2 table { width: 100%; - margin: 30px auto; border-collapse: collapse; - border-radius: 10px; + font-size: 14px; + margin-bottom: 20px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); + border-radius: 6px; overflow: hidden; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); - background-color: #ffffff; + background-color: #f3f9fb; } th { - background-color: #0a2640; + background-color: #20c0bd; color: white; - padding: 12px; + padding: 8px 12px; + /*border: 1px solid #ddd;*/ text-align: left; - font-weight: bold; + font-weight: 600; } td { - padding: 12px; - color: #333; - border-top: 1px solid #eee; + padding: 10px 15px; + border-bottom: 1px solid #eaeaea; + /*border: 1px solid #ddd;*/ } tr:nth-child(even) { - background-color: #f7f8fc; + background-color: #f9ffff; } tr:hover { - background-color: #e0f7f6; + background-color: #ddecec; +} + +.table-grid { + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +.table-container { + flex: 1; + min-width: 300px; +} + +.badge { + padding: 4px 8px; + border-radius: 12px; + font-size: 12px; + display: inline-block; +} + +.mini-list { + list-style: none; + padding-left: 0; +} + +.mini-list li { + padding: 6px 0; + border-bottom: 1px solid #eee; } h5 { - color: #20c0bd; + color: #4a4c6c; margin: 20px 0 10px; font-size: 1.3rem; + font-weight: bold; +} + +hr { + /*border: none;*/ + border-top: 2px solid #e0f7f6; + margin: 20px 0; + color: #20c0bd; } @media (max-width: 768px) { diff --git a/Interface/src/Components/page-analytics/page-analytics.component.html b/Interface/src/Components/page-analytics/page-analytics.component.html index 7c320d81..4f18d16b 100644 --- a/Interface/src/Components/page-analytics/page-analytics.component.html +++ b/Interface/src/Components/page-analytics/page-analytics.component.html @@ -30,8 +30,8 @@

{{ 'ANALYTICS_PAGE_DESCRIPTION' | translate }}

-

{{pageName}} {{'IMPACT_REPORT' | translate}}

-

+

{{pageName}} {{'IMPACT_REPORT' | translate}}

+

{{ 'REPORT_FROM' | translate }} {{ startDate }} {{ 'TO' | translate }} @@ -39,15 +39,17 @@

-

{{ 'GOALS' | translate }}:

+

icon{{ 'GOALS' | translate }}:

    -
  • {{ goal }}
  • +
  • {{ goal }}
+
+
-

{{ 'ANALYTICS_IMAGES' | translate }}:

+

icon{{ 'ANALYTICS_IMAGES' | translate }}:

Analytics Chart @@ -55,55 +57,66 @@

{{ 'ANALYTICS_IMAGES' | translate }}:<

+
+ +
-

{{ 'METRICS' | translate }}:

+

icon{{ 'METRICS' | translate }}:

-
{{ 'SENTIMENT_COUNTS' | translate }}
+
icon{{ 'SENTIMENT_COUNTS' | translate }}
- - + + + - - - - -
{{ 'SENTIMENT' | translate }}{{ 'COUNT' | translate }}{{ 'NEGATIVE' | translate }}{{ 'POSITIVE' | translate }}{{ 'NEUTRAL' | translate }}
{{ sentiment.charAt(0).toUpperCase() + sentiment.slice(1) }}{{ metrics.sentiment_counts[sentiment] }}
- - -
{{ 'TOPIC_COUNTS' | translate }}
- - - - - - - - - + + +
{{ 'TOPIC' | translate }}{{ 'COUNT' | translate }}
{{ formatValue(topic) }}{{ metrics.topic_counts[topic] }}{{ metrics.sentiment_counts.negative }}{{ metrics.sentiment_counts.positive }}{{ metrics.sentiment_counts.neutral }}
- -
{{ 'TOP_5_TOPICS' | translate }}
- - - - - - - - - - - -
{{ 'TOPIC' | translate }}{{ 'COUNT' | translate }}
{{ formatValue(topic) }}{{ metrics.top_5_topics[topic] }}
+ +
+
+ +
icon{{ 'TOPIC_COUNTS' | translate }}
+ + + + + + + + + + + +
{{ 'TOPIC' | translate }}{{ 'COUNT' | translate }}
{{ formatValue(topic) }}{{ metrics.topic_counts[topic] }}
+
+
+ +
icon{{ 'TOP_5_TOPICS' | translate }}
+ + + + + + + + + + + +
{{ 'TOPIC' | translate }}{{ 'COUNT' | translate }}
{{ formatValue(topic) }}{{ metrics.top_5_topics[topic] }}
+
+
-
{{ 'MOST_FREQ_SENTIMENT_PER_TOPIC' | translate }}
+
icon{{ 'MOST_FREQ_SENTIMENT_PER_TOPIC' | translate }}
@@ -113,12 +126,12 @@
{{ 'MOST_FREQ_SENTIMENT_PER_TOPIC' | translate }}
+
{{ 'TOPIC' | translate }} {{ formatValue(topic) }} {{ metrics.most_freq_sentiment_per_topic[topic].charAt(0).toUpperCase() + metrics.most_freq_sentiment_per_topic[topic].slice(1)}}
- -
{{ 'MOST_FREQ_TOPIC_PER_SENTIMENT' | translate }}
+
icon{{ 'MOST_FREQ_TOPIC_PER_SENTIMENT' | translate }}
@@ -126,7 +139,7 @@
{{ 'MOST_FREQ_TOPIC_PER_SENTIMENT' | translate }}
- + diff --git a/Interface/src/assets/i18n/ar.json b/Interface/src/assets/i18n/ar.json index 01c19b70..5e53bbaa 100644 --- a/Interface/src/assets/i18n/ar.json +++ b/Interface/src/assets/i18n/ar.json @@ -136,5 +136,8 @@ "LOGIN_FAILED": "فشل تسجيل الدخول", "INVALID_CREDENTIALS": "بيانات الاعتماد غير صحيحة", "OK": "حسنًا", - "IMPACT_REPORT": "IMPACT_REPORT" + "IMPACT_REPORT": "تقرير تأثير", + "NEGATIVE": "سلبي", + "POSITIVE": "إيجابي", + "NEUTRAL": "محايد" } diff --git a/Interface/src/assets/i18n/en.json b/Interface/src/assets/i18n/en.json index 0540270b..e01bc9df 100644 --- a/Interface/src/assets/i18n/en.json +++ b/Interface/src/assets/i18n/en.json @@ -136,5 +136,8 @@ "LOGIN_FAILED": "Login Failed", "INVALID_CREDENTIALS": "Invalid credentials", "OK": "Ok", - "IMPACT_REPORT": "Impact Report" + "IMPACT_REPORT": "Impact Report", + "NEGATIVE": "Negative", + "POSITIVE": "Positive", + "NEUTRAL": "Neutral" } diff --git a/Interface/src/assets/i18n/es.json b/Interface/src/assets/i18n/es.json index a80b8d70..11ae4953 100644 --- a/Interface/src/assets/i18n/es.json +++ b/Interface/src/assets/i18n/es.json @@ -136,5 +136,8 @@ "LOGIN_FAILED": "Error al Iniciar Sesión", "INVALID_CREDENTIALS": "Credenciales inválidas", "OK": "Aceptar", - "IMPACT_REPORT": "INFORME DE IMPACTO" + "IMPACT_REPORT": "INFORME DE IMPACTO", + "NEGATIVE": "Negativo", + "POSITIVE": "Positiva", + "NEUTRAL": "Neutro" } diff --git a/Interface/src/assets/i18n/fr.json b/Interface/src/assets/i18n/fr.json index 08968b29..11670edd 100644 --- a/Interface/src/assets/i18n/fr.json +++ b/Interface/src/assets/i18n/fr.json @@ -136,5 +136,8 @@ "LOGIN_FAILED": "Échec de la Connexion", "INVALID_CREDENTIALS": "Identifiants invalides", "OK": "Ok", - "IMPACT_REPORT": "RAPPORT D'IMPACT" + "IMPACT_REPORT": "RAPPORT D'IMPACT", + "NEGATIVE": "Négatif", + "POSITIVE": "Positive", + "NEUTRAL": "Neutre" } diff --git a/Interface/src/assets/icons/try.png b/Interface/src/assets/icons/try.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e1184ae3f7eeeb05f4c88157eae9ae4c673d6c GIT binary patch literal 619 zcmV-x0+juUP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10r*Ko zK~zYI)m6J|6hRpOzS(qWCS<(Q5F`oZcTrpSN;{X5{MdV6x04TI<`+XG0 z^j;mqpGK}_+pB;`6OG26joI1nN3M8XmTk9s?TYV@bh_OxGCEHLWeh>C zFD$$vhF=N80w7YUULQ4r%_>*wW4jQnWjfingt!#D+^JeE4~}C15pw0;IPAY1j}-tw zNy-^hiw9+;releg7H3RP-kfPRvj6}<%gofm9u%rVNkAVg?cU+ay<749kw51ql{%5y_-`mHHO-}5 z+zP&8dh%i#pU58#a=|AEavuNyiU&SFeRuR~kgC$1#xL)nt&i+R0y6*r002ovPDHLk FV1m-Q3SR&K literal 0 HcmV?d00001
{{ 'SENTIMENT' | translate }}
{{ sentiment.charAt(0).toUpperCase() + sentiment.slice(1) }}{{ sentiment | titlecase }} {{ formatValue(metrics.most_freq_topic_per_sentiment[sentiment]) }}