{"version":3,"file":"main.c0caffc85a9b3a82.js","mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/api/AppInsightsController.ts","./src/app/api/ReferenceDataController.ts","./src/app/api/ScreenersController.ts","./src/app/app.module.ts","./src/app/common.module.ts","./src/app/config.ts","./src/app/pages/customize/customize.component.ts","./src/app/pages/customize/customize.component.html","./src/app/pages/customize/financials/financials.component.ts","./src/app/pages/customize/financials/financials.component.html","./src/app/pages/customize/individual-company-details/individual-company-details.component.ts","./src/app/pages/customize/individual-company-details/individual-company-details.component.html","./src/app/pages/customize/metric-items/metric-items.component.ts","./src/app/pages/customize/metric-items/metric-items.component.html","./src/app/pages/customize/pillar-selector/pillar-selector.component.ts","./src/app/pages/customize/pillar-selector/pillar-selector.component.html","./src/app/pages/customize/source-selector/source-selector.component.ts","./src/app/pages/customize/source-selector/source-selector.component.html","./src/app/pages/executive-summary-detail/companies-comparison-chart/companies-comparison-chart.component.ts","./src/app/pages/executive-summary-detail/companies-comparison-chart/companies-comparison-chart.component.html","./src/app/pages/executive-summary-detail/executive-summary-detail.component.ts","./src/app/pages/executive-summary-detail/executive-summary-detail.component.html","./src/app/pages/executive-summary-detail/my-performance-score/my-performance-score.component.ts","./src/app/pages/executive-summary-detail/my-performance-score/my-performance-score.component.html","./src/app/pages/executive-summary-detail/my-performance-score/performance-benchmark/performance-benchmark.component.ts","./src/app/pages/executive-summary-detail/my-performance-score/performance-benchmark/performance-benchmark.component.html","./src/app/pages/executive-summary-detail/my-performance-score/performance-score/performance-score.component.ts","./src/app/pages/executive-summary-detail/my-performance-score/performance-score/performance-score.component.html","./src/app/pages/executive-summary-detail/theme-scoring/recommendation-card/recommendation-card.component.ts","./src/app/pages/executive-summary-detail/theme-scoring/recommendation-card/recommendation-card.component.html","./src/app/pages/executive-summary-detail/theme-scoring/theme-scoring.component.ts","./src/app/pages/executive-summary-detail/theme-scoring/theme-scoring.component.html","./src/app/pages/executive-summary/action-levers/action-levers.component.ts","./src/app/pages/executive-summary/action-levers/action-levers.component.html","./src/app/pages/executive-summary/comparison-companies/comparison-card/comparisoncompany-card.component.ts","./src/app/pages/executive-summary/comparison-companies/comparison-card/comparisoncompany-card.component.html","./src/app/pages/executive-summary/comparison-companies/comparison-companies.component.ts","./src/app/pages/executive-summary/comparison-companies/comparison-companies.component.html","./src/app/pages/executive-summary/executive-summary.component.ts","./src/app/pages/executive-summary/executive-summary.component.html","./src/app/pages/executive-summary/risk-metrics/risk-metrics.component.ts","./src/app/pages/executive-summary/risk-metrics/risk-metrics.component.html","./src/app/pages/executive-summary/screener-selector/screener-selector.component.ts","./src/app/pages/executive-summary/screener-selector/screener-selector.component.html","./src/app/pages/offerings/numbered-box/numbered-box.component.ts","./src/app/pages/offerings/numbered-box/numbered-box.component.html","./src/app/pages/offerings/offering/offering.component.ts","./src/app/pages/offerings/offering/offering.component.html","./src/app/pages/offerings/offerings-filter/offerings-filter.component.ts","./src/app/pages/offerings/offerings-filter/offerings-filter.component.html","./src/app/pages/offerings/offerings.component.ts","./src/app/pages/offerings/offerings.component.html","./src/app/pages/offerings/score-and-benchmark/score-and-benchmark.component.ts","./src/app/pages/offerings/score-and-benchmark/score-and-benchmark.component.html","./src/app/pages/offerings/simple-box/simple-box.component.ts","./src/app/pages/offerings/simple-box/simple-box.component.html","./src/app/pages/screener-management/screener-management.component.ts","./src/app/pages/screener-management/screener-management.component.html","./src/app/pipes/SearchFilter.ts","./src/app/pipes/number-formatter.pipe.ts","./src/app/pipes/removeSpacesPipe.ts","./src/app/pipes/shortNumberFormatExtenderPipe.ts","./src/app/routes.ts","./src/app/services/esg-app-insights-service.ts","./src/app/services/esg-nav-bar.service.ts","./src/app/services/reference-data.service.ts","./src/app/services/resolvers/AppInsightsRunCompleteResolver.ts","./src/app/services/screeners-service.ts","./src/app/shared/components/app-header/app-header.component.ts","./src/app/shared/components/app-header/app-header.component.html","./src/app/shared/components/button-menu/button-menu.component.ts","./src/app/shared/components/button-menu/button-menu.component.html","./src/app/shared/components/button-tabs/button-tabs.component.ts","./src/app/shared/components/button-tabs/button-tabs.component.html","./src/app/shared/components/card/card.component.ts","./src/app/shared/components/card/card.component.html","./src/app/shared/components/circle-chart-percentages/circle-chart-percentages.component.ts","./src/app/shared/components/circle-chart-percentages/circle-chart-percentages.component.html","./src/app/shared/components/circle-chart/circle-chart.component.ts","./src/app/shared/components/circle-chart/circle-chart.component.html","./src/app/shared/components/coming-soon/coming-soon.component.ts","./src/app/shared/components/coming-soon/coming-soon.component.html","./src/app/shared/components/download-modal/download-modal.component.ts","./src/app/shared/components/download-modal/download-modal.component.html","./src/app/shared/components/edit-screener-modal/edit-screener-modal.component.ts","./src/app/shared/components/edit-screener-modal/edit-screener-modal.component.html","./src/app/shared/components/graph-bar/graph-bar.component.ts","./src/app/shared/components/graph-bar/graph-bar.component.html","./src/app/shared/components/next-previous/next-previous.component.ts","./src/app/shared/components/next-previous/next-previous.component.html","./src/app/shared/components/range-chart.component.ts/range-chart.component.ts","./src/app/shared/components/range-chart.component.ts/range-chart.component.html","./src/app/shared/components/score-card/score-card.component.ts","./src/app/shared/components/score-card/score-card.component.html","./src/app/shared/components/score-slider/score-slider.component.ts","./src/app/shared/components/score-slider/score-slider.component.html","./src/app/shared/components/screener-settings-exist-modal/screener-settings-exist-modal.component.ts","./src/app/shared/components/screener-settings-exist-modal/screener-settings-exist-modal.component.html","./src/app/shared/components/shared-components.module.ts","./src/app/shared/components/simple-spinner/simple-spinner.component.ts","./src/app/shared/components/simple-spinner/simple-spinner.component.html","./src/app/shared/components/switch/switch.component.ts","./src/app/shared/components/switch/switch.component.html","./src/app/shared/components/tabs/tabs.component.ts","./src/app/shared/components/tabs/tabs.component.html","./src/app/shared/enums/app-insights-event-action.ts","./src/app/shared/enums/app-insights-event-category.ts","./src/app/shared/helpers/esg-scoring-data-utilities.ts","./src/app/shared/helpers/url-helper.service.ts","./src/environments/environment.prod.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { ApiResult, ProxyHttp } from \"@wtw/platform/api\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { HttpResponse } from \"@angular/common/http\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AppInsightsProxy {\r\n \r\n constructor(private _phttp: ProxyHttp) {}\r\n\r\n // Insert RunCompleted event\r\n // A completion event will be raised for each user who views it\r\n markRunCompleted(runId: number) {\r\n return this._phttp.post(false, `/appinsights/run/${runId}/runcompleted`, {})\r\n .pipe(\r\n map((response) => {\r\n return { data: response.body, originalResponse: response }\r\n })\r\n )\r\n }\r\n\r\n // Check whether the screener/run has been marked as complete\r\n // A completion event will be raised for each user who views it\r\n checkRunCompleted(runId: number) : Observable> {\r\n return this._phttp.get(false, `/appinsights/run/${runId}/runcompleted`, {})\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpResponse } from \"@angular/common/http\";\r\nimport { ProxyHttp } from \"@wtw/platform/api\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ApiResult } from \"@wtw/platform/api\";\r\nimport { map, shareReplay } from \"rxjs/operators\";\r\nimport { EmployeeBucket, Industry, RevenueBucket } from \"./generated\";\r\nimport { ComparisonCompany } from \"./generated/ComparisonCompany\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ReferenceDataProxy {\r\n constructor(private _phttp: ProxyHttp) {}\r\n \r\n pics6Industries(): Observable> {\r\n return this._phttp.get(false, `/reference/PICS6Industries`, {}).pipe(\r\n shareReplay(1),\r\n map(\r\n (ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n employeeBuckets(): Observable> {\r\n return this._phttp.get(false, `/reference/employeeBuckets`, {}).pipe(\r\n shareReplay(1),\r\n map(\r\n (ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n revenueBuckets(): Observable> {\r\n return this._phttp.get(false, `/reference/revenueBuckets`, {}).pipe(\r\n shareReplay(1),\r\n map(\r\n (ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n clientSearch(clientName: string): Observable> {\r\n return this._phttp.post(false, `/reference/clients/${encodeURIComponent(clientName)}`,null||{})\r\n .pipe(\r\n map((ret:any) => {\r\n //const clients = ret.map(companies => { ret.body.id, ret.body.name }) as CompanyComparison[];\r\n return > {\r\n data: ret.body.map((response)=> { return {clientId: response.id, name: response.name} }) as ComparisonCompany[],\r\n originalResponse: ret\r\n };\r\n })\r\n );\r\n }\r\n\r\n\r\n getPeerCompanyCount(industryid : string, revenueid : number, employeebucketid : number) : Observable> {\r\n return this._phttp.get(false, `/reference/industryid/${industryid}/revenueid/${revenueid}/employeebucketid/${employeebucketid}`)\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { HttpResponse } from \"@angular/common/http\";\r\nimport { ProxyHttp } from \"@wtw/platform/api\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ApiResult } from \"@wtw/platform/api\";\r\nimport { map, shareReplay } from \"rxjs/operators\";\r\nimport { ScreenerSettings } from \"./generated/ScreenerSettings\";\r\nimport { ExistingScreener } from \"./generated/ExistingScreener\";\r\nimport { ScreenerCount, ScreenerListItem } from \"./generated\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ScreenersProxy {\r\n \r\n constructor(private _phttp: ProxyHttp) {}\r\n\r\n searchScreenerSettings(\r\n screenerSettings: ScreenerSettings\r\n ): Observable> {\r\n return this._phttp.post(false, `/screeners/searchbysettings/client/${screenerSettings.clientId}`, screenerSettings || {})\r\n .pipe(\r\n map(\r\n (ret: HttpResponse) =>\r\n >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n }\r\n )\r\n );\r\n }\r\n\r\n updateActiveScreener(\r\n runId: number,\r\n clientId: number\r\n ): Observable> {\r\n return this._phttp.post(false, `/screeners/setasactive/run/${runId}/client/${clientId}`, null || {})\r\n .pipe(\r\n map(\r\n (ret: HttpResponse) => >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n createScreener(\r\n screenerSettings: ScreenerSettings\r\n ): Observable> {\r\n return this._phttp\r\n .post(false, `/screeners/create`, screenerSettings || {})\r\n .pipe(\r\n map(\r\n (ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n // Make a request via WebApi to the orchestration function to add a dequeuer job\r\n requestNewScreenerCreateDataJob(\r\n clientId: number,\r\n screenerId: number\r\n ): Observable> {\r\n return this._phttp.post(false, `/screeners/requestdatacalculationjob/client/${clientId}/screenerid/${screenerId}`, {})\r\n .pipe(\r\n map((ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n // Check the ESG dequeuer job store for a completed jobkey\r\n // we are expecting a success/falure result\r\n screenerDataGenerationStatus(jobKey: number): Observable> {\r\n return this._phttp\r\n .get(false, `/screeners/screenerdatagenerationjobstatus/key/${jobKey}`, {})\r\n .pipe(\r\n map(\r\n (ret: HttpResponse) => >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n screeners(clientId: number): Observable> {\r\n return this._phttp.get(false, `/screeners/client/${clientId}`)\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return > {\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n screener(runId: number): Observable> {\r\n return this._phttp.get(false, `/screeners/run/${runId}`).pipe(\r\n shareReplay(1),\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n delete(screenerId: number): Observable> {\r\n return this._phttp\r\n .delete(false, `/screeners/delete/${screenerId}`, {\r\n observe: \"response\",\r\n })\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n // Call the edit endpoint to update name and description\r\n edit(\r\n screenerSettings: ScreenerSettings,\r\n screenerId: number\r\n ): Observable> {\r\n return this._phttp\r\n .post(false, `/screeners/edit/${screenerId}`, screenerSettings || {})\r\n .pipe(\r\n map(\r\n (ret: HttpResponse) =>\r\n >{ data: ret.body, originalResponse: ret }\r\n )\r\n );\r\n }\r\n\r\n getDefaultScreenerRunId(clientId: number) {\r\n return this._phttp.get(false, `/screeners/client/${clientId}/default`).pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n screenerCount(clientId) {\r\n return this._phttp.get(false, `/screeners/client/${clientId}/count`)\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n }\r\n\r\n isUsingIndustryDefaultData(clientId) {\r\n return this._phttp.get(false, `/screeners/client/${clientId}/isusingindustrydefaultdata`)\r\n .pipe(\r\n map((ret: HttpResponse) => {\r\n return >{\r\n data: ret.body,\r\n originalResponse: ret,\r\n };\r\n })\r\n );\r\n } \r\n}\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { PlatformRootComponent } from '@wtw/platform';\r\nimport { CommonModule } from './common.module';\r\n\r\nexport declare let require: any;\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule\r\n ],\r\n bootstrap: [PlatformRootComponent],\r\n declarations: []\r\n})\r\nexport class AppModule {}\r\n","import { HighchartsChartModule } from \"highcharts-angular\";\r\nimport { RemoveSpacesPipe } from \"./pipes/removeSpacesPipe\";\r\nimport { NpnSliderModule } from \"npn-slider\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MetaReducer } from \"@ngrx/store\";\r\nimport { StoreDevtoolsModule } from \"@ngrx/store-devtools\";\r\nimport { PlatformRootModule } from \"@wtw/platform\";\r\nimport { ToolkitModule } from \"@wtw/toolkit\";\r\n\r\nimport {\r\n PLATFORM_URL,\r\n RUN_LIST_NAVIGATION,\r\n RUN_PAGES,\r\n} from \"@wtw/platform/bootstrap/extension-points\";\r\nimport { ClickOutsideModule } from \"ng-click-outside\";\r\nimport { FileUploadModule } from \"ng2-file-upload\";\r\nimport { storeFreeze } from \"ngrx-store-freeze\";\r\nimport { BsDatepickerModule } from \"ngx-bootstrap/datepicker\";\r\nimport * as Config from \"./config\";\r\nimport { MainComponents } from \"./pages\";\r\nimport * as Routing from \"./routes\";\r\nimport { SharedComponents } from \"./shared\";\r\nimport { environment } from \"./../environments/environment\";\r\nimport { UrlHelperService } from \"./shared/helpers/url-helper.service\";\r\nimport { SearchFilterPipe } from \"./pipes/SearchFilter\";\r\nimport { NumberFormatterPipe } from \"./pipes/number-formatter.pipe\";\r\nimport { SharedPipes } from \"./pipes\";\r\nimport { SharedComponentsModule } from \"./shared/components/shared-components.module\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { ModelNavBarService } from \"@wtw/platform/services\";\r\nimport { ESGModelNavBarService } from \"./services/esg-nav-bar.service\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { AppInsightsRunCompleteResolver } from \"./services/resolvers/AppInsightsRunCompleteResolver\";\r\n// eslint-disable-next-line max-len\r\n\r\nexport const metaReducers: MetaReducer[] = !environment.production\r\n ? [storeFreeze]\r\n : [];\r\n\r\n@NgModule({\r\n declarations: [...MainComponents, ...SharedComponents, ...SharedPipes],\r\n imports: [\r\n PlatformRootModule.forRoot([\r\n { provide: RUN_PAGES, useValue: { routes: Routing.RUN_PAGES } },\r\n {\r\n provide: RUN_LIST_NAVIGATION,\r\n useValue: { runLinks: Config.RUN_LIST_NAVIGATION },\r\n },\r\n {\r\n provide: PLATFORM_URL,\r\n useValue: {\r\n platformConfig: { platformUrl: UrlHelperService.getPlatformUrl() },\r\n },\r\n },\r\n ]),\r\n ToolkitModule,\r\n ReactiveFormsModule,\r\n FileUploadModule,\r\n BsDatepickerModule.forRoot(),\r\n !environment.production ? StoreDevtoolsModule.instrument() : [],\r\n ClickOutsideModule,\r\n NpnSliderModule,\r\n SharedComponentsModule,\r\n FlexLayoutModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n HighchartsChartModule,\r\n ],\r\n providers: [\r\n AppInsightsRunCompleteResolver,\r\n SearchFilterPipe,\r\n RemoveSpacesPipe,\r\n NumberFormatterPipe,\r\n { provide: ModelNavBarService, useClass: ESGModelNavBarService },\r\n ],\r\n})\r\nexport class CommonModule {}\r\n","export const RUN_LIST_NAVIGATION: any = {\r\n createOptions: ['new'],\r\n helpUrl: 'https://www.willistowerswatson.com/en-US/Solutions/services/esg'\r\n};\r\n","import { element } from 'protractor';\r\nimport { MetricType } from './../../api/generated/MetricType';\r\n\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { RunService, UserService } from \"@wtw/platform/services\";\r\nimport { filter, isEqual } from \"lodash\";\r\nimport { BehaviorSubject, combineLatest, map, Observable, Subscription, switchMap } from \"rxjs\";\r\nimport { ESGScoring, MetricTypeItem } from \"src/app/api/generated\";\r\nimport { ButtonMenuItemVM } from \"src/app/shared/components/button-menu/button-menu.component\";\r\nimport { pillarVM } from \"./pillar-selector/pillar-selector.component\";\r\nimport { sourceVM } from \"./source-selector/source-selector.component\";\r\nimport { ScreenersService } from \"src/app/services/screeners-service\";\r\nimport { ComparisonCompany } from 'src/app/api/generated/ComparisonCompany';\r\nimport { ReferenceDataProxy } from \"src/app/api/ReferenceDataController\";\r\n\r\n@Component({\r\n selector: \"esg-customize\",\r\n templateUrl: \"./customize.component.html\",\r\n styleUrls: [\"./customize.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class CustomizeComponent implements OnInit, OnDestroy {\r\n @Input() search: (term: string) => Observable;\r\n \r\n constructor(\r\n private runService: RunService,\r\n private translateService: TranslateService,\r\n private router: Router,\r\n private screenerService: ScreenersService,\r\n private userService: UserService,\r\n private referenceDataProxy: ReferenceDataProxy\r\n ) {}\r\n\r\n private subscriptions$ = new Subscription();\r\n private clonedData: ESGScoring;\r\n private industry: string;\r\n private employee: number;\r\n private revenue: number;\r\n \r\n riskMetricsKey = \"CURRENT_MODEL.GLOBAL.RISK_METRICS.\";\r\n // metric source items to display\r\n private metricSourceItemFilter = [this.translateService.instant(this.riskMetricsKey + \"WTW.NAME\"), \r\n this.translateService.instant(this.riskMetricsKey + \"ANILINE.NAME\"), this.translateService.instant(this.riskMetricsKey + \"POLECAT.NAME\"), \r\n this.translateService.instant(this.riskMetricsKey + \"MSCI.NAME\")].map((item) => { return item.toUpperCase();});\r\n // metrics which need to be sub-grouped under WTW\r\n private wtwSubGroupedMetrics = [this.translateService.instant(this.riskMetricsKey + \"WTW.NAME\"), this.translateService.instant(this.riskMetricsKey + \"WTWINTERNAL.NAME\")];\r\n\r\n isUser = this.userService.currentUserInfo.role === 'User';\r\n selectPillarKeyAction$ = new BehaviorSubject(\"ENVIRONMENT\");\r\n selectSourceKeyAction$ = new BehaviorSubject(\"MSCI\");\r\n selectMetricTypeKeyAction$ = new BehaviorSubject(null);\r\n metricItemToggledAction$ = new BehaviorSubject(null);\r\n\r\n selectIndustryKeyAction$ = new BehaviorSubject(null);\r\n selectEmpKeyAction$ = new BehaviorSubject(null);\r\n selectRevenueKeyAction$ = new BehaviorSubject(null);\r\n screenerSettingsChanged$ = new BehaviorSubject(true);\r\n\r\n\r\n ngOnInit(): void {\r\n this.subscriptions$.add(\r\n this.screenerService.screenerCreated$.subscribe((runId) => {\r\n this.router.navigate([\"/run\", runId]);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions$.unsubscribe();\r\n }\r\n\r\n viewModel$ = combineLatest([\r\n this.runService.activeRun,\r\n this.selectPillarKeyAction$,\r\n this.selectSourceKeyAction$,\r\n this.selectMetricTypeKeyAction$,\r\n this.metricItemToggledAction$,\r\n this.screenerService.financialsUpdated$,\r\n this.screenerService.comparisonCompaniesChanged$,\r\n ])\r\n .pipe(\r\n switchMap(([activeRun, selectedPillarKey, selectedSourceKey, selectMetricTypeKey, _, financialsUpdated, comparisonCompaniesChanged]) => {\r\n // If old run, comparison companies may not exist in the json structure yet so forcibly add a collection if not.\r\n // set initial state of observable if we have companies\r\n if(!activeRun.data.comparisonCompanies) {\r\n activeRun.data.comparisonCompanies = [] as ComparisonCompany[];\r\n }\r\n\r\n if (!this.clonedData) {\r\n CheckIfPVARMissing(activeRun);\r\n // activeRun.data.MetricTypes.filter( x => x.source === \"WTWCLIMATE\").\r\n this.clonedData = structuredClone(activeRun.data);\r\n this.screenerService.comparisonCompanies$.next(this.clonedData.comparisonCompanies);\r\n }\r\n \r\n this.clonedData.comparisonCompanies = [...this.screenerService.comparisonCompanies$.value];\r\n\r\n if (selectMetricTypeKey === null) {\r\n selectMetricTypeKey = activeRun.data.metricTypes?.filter(\r\n (mt) => mt.source === selectedSourceKey\r\n )[0].key;\r\n }\r\n\r\n this.screenerSettingsChanged$.next(\r\n !isEqual(activeRun.data.metricTypes, this.clonedData.metricTypes) ||\r\n !isEqual(activeRun.data.benchmarkingSelections[0], this.clonedData.benchmarkingSelections[0]) ||\r\n this.ComparisonCompaniesAreDifferent(this.clonedData, activeRun)\r\n )\r\n\r\n this.getFincialDetailsSelections(financialsUpdated, activeRun.data.benchmarkingSelections[0]);\r\n\r\n return this.referenceDataProxy.getPeerCompanyCount(this.industry, +this.revenue, +this.employee).pipe(\r\n map((peerCompanyCount) => {\r\n return { \r\n peerCompanyCount: peerCompanyCount.data,\r\n benchmarkingSelection: this.clonedData.benchmarkingSelections[0],\r\n pillars: this.filterPillars(selectedPillarKey),\r\n sources: this.filteredSources(selectedSourceKey),\r\n metricTypes: this.filteredButtonMenuMetricTypes(selectedSourceKey, selectMetricTypeKey),\r\n items: this.filteredMetricTypeItems(selectMetricTypeKey, selectedPillarKey),\r\n showIndustryMessage: (this.clonedData.metricTypes\r\n ?.find((s) => s.key === selectMetricTypeKey).items\r\n ?.filter((i) => i.pillar === selectedPillarKey))\r\n ?.find((item) => item.isIndustryDefault===true),\r\n screenerChanged: !isEqual(activeRun.data.metricTypes, this.clonedData.metricTypes) ||\r\n !isEqual(\r\n activeRun.data.benchmarkingSelections[0],\r\n this.clonedData.benchmarkingSelections[0]\r\n ) \r\n }\r\n }\r\n ))\r\n })\r\n );\r\n\r\n selectPillar(key: string) {\r\n this.selectPillarKeyAction$.next(key);\r\n }\r\n\r\n selectSource(key: string) {\r\n this.selectSourceKeyAction$.next(key);\r\n this.selectMetricTypeKeyAction$.next(null);\r\n }\r\n\r\n selectMetricType(key: string) {\r\n this.selectMetricTypeKeyAction$.next(key);\r\n }\r\n\r\n toggleItem(metricTypeItem: MetricTypeItem) {\r\n metricTypeItem.selected = !metricTypeItem.selected;\r\n this.metricItemToggledAction$.next(metricTypeItem);\r\n }\r\n\r\n /// Detect whether we have a difference between the current comparison selection and that of the existing run.\r\n ComparisonCompaniesAreDifferent(clonedData, activeRun) : boolean {\r\n const comparisonCompaniesCount = (clonedData.comparisonCompanies?.length) ? clonedData.comparisonCompanies.length : 0;\r\n const activeRunComparisonCompanesCount = activeRun.data.comparisonCompanies.length;\r\n\r\n // We have not selections so therefore no changes\r\n if(comparisonCompaniesCount === 0) {\r\n return false;\r\n }\r\n // If count is different we have a change\r\n if (comparisonCompaniesCount !== activeRunComparisonCompanesCount) {\r\n return true;\r\n }\r\n // If count is same we need to check that the client ids are not identical\r\n if(comparisonCompaniesCount === activeRunComparisonCompanesCount) {\r\n const peerCompanyIds = clonedData.comparisonCompanies.map((company) => company.clientId);\r\n const clonedDataPeerCompanyIds = activeRun.data.comparisonCompanies.map((company) => company.clientId);\r\n return !isEqual(peerCompanyIds, clonedDataPeerCompanyIds)\r\n }\r\n }\r\n\r\n save() {\r\n this.screenerService.save(this.clonedData);\r\n }\r\n\r\n private filteredButtonMenuMetricTypes(selectedSourceKey: string, selectMetricTypeKey: string) : ButtonMenuItemVM[] {\r\n const buttonMenuItems = ((selectedSourceKey === this.translateService.instant(this.riskMetricsKey + \"WTW.NAME\"))\r\n ? this.clonedData.metricTypes?.filter((item) => this.wtwSubGroupedMetrics.includes(item.source))\r\n : this.clonedData.metricTypes?.filter((mt) => mt.source === selectedSourceKey)\r\n ).map((metricType) => {\r\n return {\r\n text: this.translateService.instant(this.riskMetricsKey + metricType.key + \".LONG_NAME\"),\r\n key: metricType.key,\r\n selected: metricType.key === selectMetricTypeKey,\r\n } as ButtonMenuItemVM;\r\n });\r\n return buttonMenuItems;\r\n }\r\n\r\n private filteredMetricTypeItems(selectMetricTypeKey: string, selectedPillarKey: string) : MetricTypeItem[] {\r\n return this.clonedData.metricTypes\r\n ?.find((s) => s.key === selectMetricTypeKey)\r\n .items.filter(\r\n (i) => i.pillar === selectedPillarKey\r\n ) as MetricTypeItem[]\r\n };\r\n\r\n private filterPillars(selectedPillarKey: string) : pillarVM[] {\r\n return this.clonedData.esgPillars\r\n ?.map((p) => p.key)\r\n .map((key) => {\r\n return {\r\n key,\r\n text: this.translateService.instant(\r\n \"CURRENT_MODEL.GLOBAL.ESG_PILLARS.\" + key + \".NAME\"\r\n ),\r\n selected: key === selectedPillarKey,\r\n count: this.clonedData.metricTypes\r\n .flatMap((mt) => mt.items)\r\n .filter((i) => i.pillar === key)\r\n .filter((i) => i.selected).length,\r\n } as pillarVM;\r\n })\r\n }\r\n\r\n private filteredSources(selectedSourceKey: string) : sourceVM[] {\r\n return this.clonedData.metricSources?.filter((item) => \r\n this.metricSourceItemFilter.includes(item))?.map((source) => {\r\n return {\r\n key: source,\r\n text: this.translateService.instant(\r\n this.riskMetricsKey + source + \".NAME\"\r\n ),\r\n selected: source === selectedSourceKey,\r\n } as sourceVM;\r\n })\r\n }\r\n\r\n private getFincialDetailsSelections(financialsUpdated, benchmarkingSelection) {\r\n if(financialsUpdated.length>0)\r\n {\r\n this.industry = financialsUpdated.find((item) => item.name === \"industry\").value.toString();\r\n this.employee = +financialsUpdated.find((item) => item.name === \"employee\").value;\r\n this.revenue = +financialsUpdated.find((item) => item.name === \"revenue\").value;\r\n }\r\n else {\r\n this.industry = benchmarkingSelection.industryPICS6;\r\n this.employee = benchmarkingSelection.employeeBucketId;\r\n this.revenue = benchmarkingSelection.revenueBucketId;\r\n }\r\n }\r\n}\r\nfunction CheckIfPVARMissing(activeRun) {\r\n if(activeRun.data.metricTypes.filter(x => x.source === \"WTWINTERNAL\").find(x => x.key === \"WTWCLIMATE\").items.find(x => x.key === \"PVAR\") === undefined)\r\n {\r\n // Add PTVAR to the metric types\r\n var element:any = {};// activeRun.data.metricTypes.filter(x => x.source === \"WTWINTERNAL\").find(x => x.key === \"WTWCLIMATE\").items[0] as MetricTypeItem;\r\n element.key = \"PVAR\";\r\n element.selected = false;\r\n element.isIndustryDefault = false; \r\n element.isSelectedAvailable = false;\r\n element.pillar = \"ENVIRONMENT\";\r\n element.source = \"WTWINTERNAL\";\r\n activeRun.data.metricTypes.filter(x => x.source === \"WTWINTERNAL\").find(x => x.key === \"WTWCLIMATE\").items.push(element);\r\n\r\n }\r\n}\r\n\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{ \"CURRENT_MODEL.PAGES.CUSTOMIZE.HEADING\" | translate }}\r\n

\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
Sources
\r\n\r\n \r\n
\r\n\r\n
\r\n
Metrics\r\n
\r\n
\r\n
\r\n {{\r\n \"CURRENT_MODEL.GLOBAL.DEFAULT_INDUSTRY_MESSAGES.METRICS-SUB-HEADING\" | translate\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n 1\"\r\n [items]=\"viewModel.metricTypes\"\r\n (itemSelected)=\"selectMetricType($event.key)\"\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Save & Proceed\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { combineLatest, map, switchMap } from \"rxjs\";\r\nimport { BenchmarkingSelection } from \"src/app/api/generated\";\r\nimport { ReferenceDataService } from \"src/app/services/reference-data.service\";\r\nimport { ScreenersService } from \"src/app/services/screeners-service\";\r\n\r\n@Component({\r\n selector: \"esg-financials\",\r\n templateUrl: \"./financials.component.html\",\r\n styleUrls: [\"./financials.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FinancialsComponent {\r\n @Input() benchmarkingSelection: BenchmarkingSelection;\r\n @Input() peerCompanyCount: number;\r\n\r\n constructor(\r\n private referenceDataService: ReferenceDataService,\r\n private screenerService: ScreenersService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n financialsTranslateKey = \"CURRENT_MODEL.PAGES.CUSTOMIZE.FINANCIALS_SECTION\";\r\n\r\n viewModel$ = this.translateService\r\n .get(\"CURRENT_MODEL.GLOBAL.MESSAGES.RETRIEVING_REFERENCE_DATA\")\r\n .pipe(\r\n switchMap((message: string) => {\r\n return combineLatest([\r\n this.referenceDataService.pics6Industries$,\r\n this.referenceDataService.employeeBuckets$,\r\n this.referenceDataService.revenueBuckets$,\r\n ]).uiSignal({\r\n debugInfo: message,\r\n uiLabel: message,\r\n });\r\n })\r\n )\r\n .pipe(\r\n map(([industries, employeeBuckets, revenueBuckets]) => {\r\n const all = {\r\n id: -1,\r\n description: \"ALL\",\r\n };\r\n\r\n return {\r\n industries,\r\n employeeBuckets: [all, ...employeeBuckets],\r\n revenueBuckets: [all, ...revenueBuckets],\r\n };\r\n })\r\n );\r\n\r\n change() {\r\n var selectValuesArray: {name: string, value: string | number}[] = new Array();\r\n selectValuesArray.push({name: 'industry', value: this.benchmarkingSelection.industryPICS6}); \r\n selectValuesArray.push({name: 'employee', value: this.benchmarkingSelection.employeeBucketId}); \r\n selectValuesArray.push({name: 'revenue', value: this.benchmarkingSelection.revenueBucketId});\r\n this.screenerService.financialsUpdated$.next(selectValuesArray);\r\n }\r\n}\r\n\r\n","
\r\n

{{ financialsTranslateKey + \".HEADING\" | translate }}\r\n

\r\n \r\n

\r\n {{ financialsTranslateKey + \".DESCRIPTION\" | translate }}\r\n

\r\n \r\n
\r\n
\r\n {{ financialsTranslateKey + \".INDUSTRY_HEADING\" | translate }}\r\n
\r\n \r\n \r\n {{ industry.description }}\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ financialsTranslateKey + \".EMPLOYEE_HEADING\" | translate }}\r\n
\r\n \r\n \r\n {{ employeeBucket.description }}\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ financialsTranslateKey + \".REVENUE_HEADING\" | translate }}\r\n
\r\n \r\n \r\n {{ revenueBucket.description }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ financialsTranslateKey + \".NUMBEROFCOMPANIES_DESC\" | translate }} \r\n \r\n
\r\n
\r\n\r\n","import { AutocompleteClientSearchComponent } from '@wtw/toolkit/src/directives/autocomplete_clientSearch.directive';\r\nimport { ComparisonCompany } from './../../../api/generated/ComparisonCompany';\r\nimport { ScreenersService } from 'src/app/services/screeners-service';\r\nimport { IStandardModalConfig } from '@wtw/platform/interfaces';\r\nimport { ScreenersProxy } from 'src/app/api/ScreenersController';\r\nimport { map, of, switchMap, tap} from 'rxjs';\r\nimport { ReferenceDataProxy } from 'src/app/api/ReferenceDataController';\r\nimport { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ModalService } from '@wtw/platform/services';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: \"esg-individual-company-details\",\r\n templateUrl: \"./individual-company-details.component.html\",\r\n styleUrls: [\"./individual-company-details.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n })\r\n export class IndividualCompanyDetailsComponent implements AfterViewInit, OnDestroy {\r\n constructor(\r\n private referenceDataProxy: ReferenceDataProxy,\r\n private screenersProxy: ScreenersProxy,\r\n private translateService: TranslateService,\r\n private modalService: ModalService,\r\n private screenersService: ScreenersService,\r\n private renderer: Renderer2,\r\n ) {}\r\n\r\n @ViewChild(AutocompleteClientSearchComponent) private _searchComponent!: AutocompleteClientSearchComponent;\r\n private unListeneToAutoCompleteFocus: () => void;\r\n\r\n ngAfterViewInit(): void {\r\n this.unListeneToAutoCompleteFocus = this.renderer.listen(this._searchComponent.inputRef.nativeElement, 'focus', () => {\r\n this.onFocus();\r\n });\r\n }\r\n\r\n individualCompanyDetailsTranslationKey = \"CURRENT_MODEL.PAGES.CUSTOMIZE.INDIVIDUAL_COMPANY_DETAILS_SECTION\";\r\n displayResults: boolean = false;\r\n companyRemoved$ = new BehaviorSubject(null);\r\n maxCompanyCount = +this.translateService.instant(this.individualCompanyDetailsTranslationKey + \".MAX_COMPANY_COUNT\");\r\n comparisonCompanySelections: ComparisonCompany[] = [];\r\n comparisonCompanySelectionOperation: 'add' | 'remove' | '' = '';\r\n\r\n search: any = (clientName: string) => {\r\n const results = this.referenceDataProxy.clientSearch(clientName);\r\n return results;\r\n }\r\n\r\n $comparisonCompanies = this.screenersService.comparisonCompanies$\r\n .pipe(\r\n tap((comparisonCompanies) => {\r\n this.comparisonCompanySelections = comparisonCompanies\r\n }),\r\n switchMap((comparisonCompanies) => {\r\n // If adding, we need to check for default data status\r\n if(this.comparisonCompanySelectionOperation === 'add') {\r\n const clientId = comparisonCompanies[comparisonCompanies.length -1].clientId;\r\n return this.screenersProxy.isUsingIndustryDefaultData(clientId).uiSignal({\r\n debugInfo: this.translateService.instant(this.individualCompanyDetailsTranslationKey + \".CHECKING_DATA\"),\r\n uiLabel: this.translateService.instant(this.individualCompanyDetailsTranslationKey + \".CHECKING_DATA\"),\r\n }).pipe(\r\n tap((isUsingIndustryDefaultData) => {\r\n comparisonCompanies.find((company) => company.clientId === clientId).isUsingIndustryDefaultData = isUsingIndustryDefaultData.data;\r\n })\r\n ,map(()=>{\r\n return [comparisonCompanies];\r\n })\r\n )\r\n }\r\n else {\r\n return of([comparisonCompanies]);\r\n }\r\n })\r\n ).pipe(\r\n tap(()=>{\r\n if(this.comparisonCompanySelectionOperation !== '') {\r\n this.screenersService.comparisonCompaniesChanged$.next(true);\r\n }\r\n }),\r\n map(([comparisonCompanies]) => {\r\n return {\r\n companies: comparisonCompanies\r\n }\r\n })\r\n )\r\n\r\n companySelected(comparisonCompanySelection: ComparisonCompany) {\r\n const clientId = comparisonCompanySelection.clientId;\r\n const clientName = comparisonCompanySelection.name;\r\n if(this.comparisonCompanySelections.find((company) => company.clientId === comparisonCompanySelection.clientId)) {\r\n this.modalService.alert(\"Company already added\");\r\n }\r\n else {\r\n this.addPeerCompany(clientId, clientName, false);\r\n }\r\n }\r\n\r\n addPeerCompany(clientId: number, name: string, isUsingIndustryDefaultData: boolean) {\r\n this.comparisonCompanySelectionOperation = 'add';\r\n const peerCompany = {clientId: clientId, name: name, isUsingIndustryDefaultData: isUsingIndustryDefaultData} as ComparisonCompany;\r\n this.comparisonCompanySelections.push(peerCompany); \r\n this.screenersService.comparisonCompanies$.next(this.comparisonCompanySelections);\r\n }\r\n\r\n removePeerCompany(index: number) {\r\n this.comparisonCompanySelectionOperation = 'remove';\r\n this.comparisonCompanySelections.splice(index, 1);\r\n this.screenersService.comparisonCompanies$.next(this.comparisonCompanySelections);\r\n }\r\n\r\n statuschanged(status: boolean) {\r\n this.displayResults = status;\r\n }\r\n\r\n onFocus() {\r\n if(this.comparisonCompanySelections.length >= this.maxCompanyCount)\r\n {\r\n const translationKeyBase = this.individualCompanyDetailsTranslationKey + \".MAX_MODAL\";\r\n var modalConfig = { \r\n title: this.translateService.instant(translationKeyBase + \".TITLE\"), \r\n withHeader:true, \r\n noButton:{display: false},\r\n yesButton:{display: true, text: this.translateService.instant(translationKeyBase + \".OK_BUTTON\")},\r\n message: this.translateService.instant(translationKeyBase + \".MESSAGE\")\r\n } as IStandardModalConfig;\r\n\r\n this.modalService.confirm(modalConfig);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unListeneToAutoCompleteFocus();\r\n } \r\n }","
\r\n

{{ individualCompanyDetailsTranslationKey + \".HEADING\" | translate }}

\r\n
\r\n
\r\n

{{ individualCompanyDetailsTranslationKey + \".DESCRIPTION\" | translate }} ({{ individualCompanyDetailsTranslationKey + \".MAX_COMPANY_COUNT\" | translate }})

\r\n
\r\n \r\n \r\n
\r\n {{ item.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • \r\n
    {{company.name}}
    \r\n
    Data exists
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { MetricTypeItem } from \"src/app/api/generated\";\r\n\r\n@Component({\r\n selector: \"esg-metric-items\",\r\n templateUrl: \"./metric-items.component.html\",\r\n styleUrls: [\"./metric-items.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MetricItemsComponent {\r\n @Input() items: MetricTypeItem[];\r\n @Output() itemSelected = new EventEmitter();\r\n}\r\n","\r\n \r\n\r\n \r\n
\r\n
\r\n {{\r\n \"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\" + item.key + \".NAME\"\r\n | translate\r\n }}\r\n
\r\n \r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-pillar-selector\",\r\n templateUrl: \"./pillar-selector.component.html\",\r\n styleUrls: [\"./pillar-selector.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PillarSelectorComponent {\r\n @Input() pillars: pillarVM[];\r\n @Output() pillarSelected = new EventEmitter();\r\n}\r\n\r\nexport class pillarVM {\r\n text: string;\r\n key: string;\r\n selected: boolean;\r\n count: number;\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n {{ pillar.text }}\r\n
    \r\n
    \r\n {{ pillar.count }}\r\n
    \r\n
    \r\n \r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-source-selector\",\r\n templateUrl: \"./source-selector.component.html\",\r\n styleUrls: [\"./source-selector.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SourceSelectorComponent {\r\n @Input() sources: sourceVM[];\r\n @Output() sourceSelected = new EventEmitter();\r\n}\r\n\r\nexport class sourceVM {\r\n key: string;\r\n text: string;\r\n selected: boolean;\r\n}\r\n","
    \r\n \r\n {{ source.text }}\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { RunService } from \"@wtw/platform/services\";\r\nimport * as Highcharts from \"highcharts\";\r\nimport more from \"highcharts/highcharts-more\";\r\nimport { combineLatest, map } from \"rxjs\";\r\nmore(Highcharts);\r\n\r\n@Component({\r\n selector: \"esg-companies-comparison-chart\",\r\n templateUrl: \"./companies-comparison-chart.component.html\",\r\n styleUrls: [\"./companies-comparison-chart.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CompaniesComparisonChartComponent {\r\n constructor(\r\n private runService: RunService,\r\n private activatedRoute: ActivatedRoute) {}\r\n\r\n translationKey = \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.THEMES.COMPANIES-COMPARISON\";\r\n\r\n viewModel$ = combineLatest([\r\n this.runService.activeRun,\r\n this.activatedRoute.parent.url\r\n ]).pipe(\r\n map(([activeRun, url]) => {\r\n const pillar = activeRun.data.esgPillars.find(\r\n (s) => s.key.toLowerCase() == url[0].path.toLocaleLowerCase()\r\n );\r\n \r\n const screenerCompanyPercentile = activeRun.data.esgPillars.find(p => p.key === pillar.key).percentile;\r\n const comparisonCompanyScores: {name: string, percentile: number}[] = [];\r\n\r\n comparisonCompanyScores.push({name: activeRun.data.benchmarkingSelections[0].clientName, \r\n percentile: screenerCompanyPercentile});\r\n\r\n activeRun.data.comparisonCompanies\r\n .forEach(company => {\r\n const companyName = company.name;\r\n const percentile = company.esgPillars.find(p => p.key === pillar.key).percentile;\r\n comparisonCompanyScores.push({name: companyName, percentile: percentile});\r\n });\r\n const boxChartSeriesData = this.BoxChartData();\r\n const boxChartPercentileLabels = this.BoxChartPercentileLabels();\r\n const scatterChartCompanyLabels = this.CompanyDataScatterSeriesPoints(comparisonCompanyScores);\r\n const chartOptions = this.buildChartOptions(boxChartSeriesData, boxChartPercentileLabels, scatterChartCompanyLabels);\r\n return {\r\n chartOptions,\r\n highcharts: Highcharts,\r\n };\r\n })\r\n );\r\n\r\n private buildChartOptions(seriesData: any, boxChartPercentileLabels: Highcharts.SeriesOptionsType, scatterChartCompanyLabels: Highcharts.SeriesOptionsType[]) : Highcharts.Options {\r\n return {\r\n chart: {\r\n type:\"boxplot\",\r\n inverted: true,\r\n height:250,\r\n marginLeft: 440,\r\n backgroundColor: '#F5F5F5',\r\n },\r\n title: {\r\n text: ''\r\n },\r\n tooltip:{\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n boxplot: {\r\n medianWidth:0,\r\n whiskerWidth: 1, \r\n },\r\n series: {\r\n color: '#333',\r\n }\r\n },\r\n legend: {\r\n align: 'left',\r\n verticalAlign: 'top',\r\n layout: 'vertical',\r\n x: 0,\r\n y: 50,\r\n itemMarginBottom: 10,\r\n itemMarginRight: 100,\r\n labelFormatter: function () {\r\n const seriesOptions = this as any;\r\n return seriesOptions.name + ' (' + seriesOptions.yData[0] + ')';\r\n }\r\n },\r\n xAxis: [{\r\n visible: false,\r\n },\r\n {\r\n visible: false,\r\n min: -50,\r\n max: 50\r\n },\r\n ],\r\n\r\n yAxis: [{\r\n visible: false,\r\n }],\r\n series: [\r\n {\r\n enableMouseTracking: false,\r\n showInLegend: false,\r\n data: seriesData\r\n },\r\n boxChartPercentileLabels,\r\n ...scatterChartCompanyLabels\r\n ],\r\n credits: {\r\n enabled: false,\r\n },\r\n } as Highcharts.Options;\r\n }\r\n\r\n private BoxChartData() : Highcharts.PointOptionsObject[] {\r\n const data = [\r\n { low: 5, q1: 25, median: 50, q3: 75, high: 95 }\r\n ] as Highcharts.PointOptionsObject[];\r\n return data;\r\n }\r\n\r\n private BoxChartPercentileLabels() : Highcharts.SeriesOptionsType {\r\n const data = [\r\n { x: 0, y: 5, name: '5th Percentile', dataLabels: { x: 0, y: 80 }}, \r\n { x: 0, y: 25, name: '25th Percentile', dataLabels: { x: 0, y: 120 }}, \r\n { x: 0, y: 50, name: '50th Percentile', dataLabels: { x: 0, y: 120 }}, \r\n { x: 0, y: 75, name: '75th Percentile', dataLabels: { x: 0, y: 120 }}, \r\n { x: 0, y: 95, name: '95th Percentile', dataLabels: { x: 0, y: 80 }}, \r\n ] as Highcharts.PointOptionsObject[];\r\n\r\n return {\r\n type: 'scatter',\r\n showInLegend: false,\r\n enableMouseTracking: false,\r\n dataLabels: {\r\n format: '{key}',\r\n enabled: true,\r\n style: {\r\n textOutline: 'none',\r\n color: '#000'\r\n }\r\n },\r\n data: data,\r\n marker: {\r\n enabled: false,\r\n },\r\n } as Highcharts.SeriesOptionsType;\r\n }\r\n\r\n private CompanyDataScatterSeriesPoints(companyScore: {name:string, percentile:number}[]) : Highcharts.SeriesOptionsType[] {\r\n const seriesOptions = [] as Highcharts.SeriesOptionsType[];\r\n const data = [];\r\n companyScore.map(company => {\r\n \r\n if(data.find(d => d.y === company.percentile))\r\n {\r\n var ranNum = Math.ceil(Math.random() * 25) * (Math.round(Math.random()) ? 1 : -1)\r\n data.push({ x: ranNum, y: company.percentile, dataLabels: { x:0, y:80 }, companyName:company.name } as Highcharts.PointOptionsObject)\r\n }\r\n else {\r\n data.push({ x: 0, y: company.percentile, dataLabels: { x: 0, y: 80 }, companyName:company.name } as Highcharts.PointOptionsObject)\r\n }\r\n });\r\n\r\n // loop through this array, check each value is\r\n const colours = ['#C900AC', '#3ADCC9', '#F6517F', '#FF8204', '#327FEF']\r\n\r\n data.map(d => {\r\n const innerData = [] as Highcharts.PointOptionsObject[];\r\n innerData.push(d);\r\n seriesOptions.push({\r\n type: 'scatter',\r\n name: d.companyName,\r\n enableMouseTracking: false,\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n \r\n data: innerData,\r\n marker: {\r\n enabled: true,\r\n radius: 10,\r\n fillColor: colours[data.indexOf(d)]\r\n },\r\n xAxis: 1\r\n } as Highcharts.SeriesOptionsType)\r\n })\r\n \r\n return seriesOptions\r\n }\r\n}\r\n\r\n","
\r\n

{{ translationKey + '.PARAGRAPH' | translate }}

\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { RunService } from \"@wtw/platform/services\";\r\nimport { combineLatest, map } from \"rxjs\";\r\nimport { TabVM } from \"src/app/shared/components/tabs/tabs.component\";\r\n\r\n@Component({\r\n selector: \"esg-executive-summary-detail\",\r\n templateUrl: \"./executive-summary-detail.component.html\",\r\n styleUrls: [\"./executive-summary-detail.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ExecutiveSummaryDetailComponent {\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private runService: RunService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n viewModel$ = combineLatest([\r\n this.runService.activeRun,\r\n this.activatedRoute.url,\r\n ]).pipe(\r\n map(([activeRun, url]) => {\r\n return {\r\n pillar: activeRun.data.esgPillars.find(\r\n (s) => s.key.toLowerCase() == url[0].path.toLocaleLowerCase()\r\n ),\r\n tabs: this.activatedRoute.routeConfig.children //Create the tabs from the page's children (as specified in routes.ts)\r\n .filter((child) => child.path !== \"\")\r\n .filter((child) => !child.path.startsWith(\"~\"))\r\n .filter((child) => !(child.path === \"companies-comparison\" && !activeRun.data.comparisonCompanies))\r\n .map((child) => {\r\n return {\r\n link: child.path,\r\n text: this.translateService.instant(\r\n \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.THEMES.\" + child.path.toUpperCase() + \".NAME\"\r\n ),\r\n } as TabVM;\r\n })\r\n };\r\n })\r\n );\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

\r\n {{\r\n \"CURRENT_MODEL.GLOBAL.ESG_PILLARS.\" + vm.pillar.key + \".HEADING\"\r\n | translate\r\n }}\r\n

\r\n

\r\n {{\r\n \"CURRENT_MODEL.GLOBAL.ESG_PILLARS.\" + vm.pillar.key + \".PARAGRAPH\"\r\n | translate\r\n }}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ClientService, RunService } from \"@wtw/platform/services\";\r\nimport * as moment from \"moment\";\r\nimport { BehaviorSubject, combineLatest, map } from \"rxjs\";\r\nimport { ButtonMenuItemVM } from \"src/app/shared/components/button-menu/button-menu.component\";\r\n\r\n@Component({\r\n selector: \"esg-my-performance-score\",\r\n templateUrl: \"./my-performance-score.component.html\",\r\n styleUrls: [\"./my-performance-score.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MyPerformanceScoreComponent {\r\n graphTypeEnum = GraphTypeEnum;\r\n moment = moment;\r\n\r\n translationKey =\r\n \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.THEMES.MY-PERFORMANCE-SCORE\";\r\n\r\n buttonMenuItems = [\r\n {\r\n text: this.translateService.instant(\r\n this.translationKey + \".GRAPHS.SCORE.BUTTON_TEXT\"\r\n ),\r\n key: GraphTypeEnum[GraphTypeEnum.score],\r\n selected: true,\r\n },\r\n {\r\n text: this.translateService.instant(\r\n this.translationKey + \".GRAPHS.BENCHMARKING.BUTTON_TEXT\"\r\n ),\r\n key: GraphTypeEnum[GraphTypeEnum.benchmark],\r\n },\r\n ] as ButtonMenuItemVM[];\r\n\r\n private selectGraphTypeKeyAction$ = new BehaviorSubject(\r\n GraphTypeEnum.score\r\n );\r\n\r\n constructor(\r\n private runService: RunService,\r\n private activatedRoute: ActivatedRoute,\r\n private clientService: ClientService,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n viewModel$ = combineLatest([\r\n this.runService.activeRun,\r\n this.activatedRoute.parent.url,\r\n this.clientService.currentClientChanged,\r\n this.selectGraphTypeKeyAction$,\r\n ]).pipe(\r\n map(([activeRun, url, client, selectedGraphType]) => {\r\n const pillar = activeRun.data.esgPillars.find(\r\n (s) => s.key.toLowerCase() == url[0].path.toLocaleLowerCase()\r\n );\r\n\r\n const sortedPerformanceScores = pillar.performanceScores.sort((a, b) =>\r\n b.date > a.date ? -1 : 1\r\n );\r\n\r\n return {\r\n client,\r\n performanceScores: sortedPerformanceScores,\r\n latestPerformanceScore:\r\n sortedPerformanceScores[sortedPerformanceScores.length - 1],\r\n selectedGraphType,\r\n pillar,\r\n };\r\n })\r\n );\r\n\r\n // Switch graph type\r\n switchGraph(selectedGraphType: ButtonMenuItemVM) {\r\n // Reset selected button\r\n this.buttonMenuItems.forEach((element) => {\r\n element.selected = false;\r\n if (element.key === selectedGraphType.key) {\r\n element.selected = true;\r\n }\r\n });\r\n this.selectGraphTypeKeyAction$.next(GraphTypeEnum[selectedGraphType.key]);\r\n }\r\n}\r\n\r\nexport enum GraphTypeEnum {\r\n score,\r\n benchmark,\r\n}\r\n","\r\n
\r\n

\r\n\r\n
\r\n

{{ translationKey + \".NAME\" | translate }}

\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport * as Highcharts from \"highcharts\";\r\nimport more from \"highcharts/highcharts-more\";\r\nimport * as moment from \"moment\";\r\nimport { BehaviorSubject, combineLatest, map } from \"rxjs\";\r\nimport { Score } from \"src/app/api/generated\";\r\nimport { EsgScoringDataUtilities } from \"src/app/shared/helpers/esg-scoring-data-utilities\";\r\nmore(Highcharts);\r\n\r\nexport class PerformanceBenchmarkOptions {\r\n xAxisTitle: string;\r\n yAxisTitle: string;\r\n bubbleColour: string;\r\n latestScoreBubbleColour: string;\r\n bubbleValueColour: string;\r\n}\r\n\r\n@Component({\r\n selector: \"esg-performance-benchmark\",\r\n templateUrl: \"./performance-benchmark.component.html\",\r\n styleUrls: [\"./performance-benchmark.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PerformanceBenchmarkComponent {\r\n private options$ = new BehaviorSubject(\r\n {} as PerformanceBenchmarkOptions\r\n );\r\n\r\n private performanceScores$ = new BehaviorSubject([]);\r\n\r\n @Input() set options(options: PerformanceBenchmarkOptions) {\r\n this.options$.next(options);\r\n }\r\n\r\n @Input() set performanceScores(scores: Score[]) {\r\n const scoresByAscendingDate = EsgScoringDataUtilities.sortPillarPerformanceScoresByDate(scores, 'asc');\r\n this.performanceScores$.next(scoresByAscendingDate);\r\n }\r\n\r\n viewModel$ = combineLatest([this.options$, this.performanceScores$]).pipe(\r\n map(([options, scores]) => {\r\n const xAxisLabels = scores.map((score) =>\r\n moment(score.date).format(\"MM-YYYY\")\r\n );\r\n\r\n const seriesData = this.buildSeriesData({\r\n scores,\r\n bubbleColour: options.bubbleColour,\r\n latestScoreBubbleColour: options.latestScoreBubbleColour,\r\n });\r\n\r\n const chartOptions = this.buildChartOptions({\r\n seriesData,\r\n bubbleValueColour: options.bubbleValueColour,\r\n xAxisTitle: options.xAxisTitle,\r\n yAxisTitle: options.yAxisTitle,\r\n xAxisLabels,\r\n });\r\n\r\n return {\r\n chartOptions,\r\n highcharts: Highcharts,\r\n };\r\n })\r\n );\r\n\r\n private buildChartOptions(config: {\r\n seriesData: Highcharts.PointOptionsObject[];\r\n bubbleValueColour: string;\r\n xAxisTitle: string;\r\n yAxisTitle: string;\r\n xAxisLabels: string[];\r\n }): Highcharts.Options {\r\n return {\r\n series: [\r\n {\r\n enableMouseTracking: false,\r\n name: config.yAxisTitle,\r\n data: config.seriesData,\r\n type: \"bubble\",\r\n dataLabels: {\r\n enabled: true,\r\n format: \"{point.y}\",\r\n shadow: false,\r\n style: {\r\n color: config.bubbleValueColour,\r\n textOutline: \"0px contrast\",\r\n },\r\n },\r\n marker: {\r\n fillOpacity: 1,\r\n },\r\n },\r\n ],\r\n credits: {\r\n enabled: false,\r\n },\r\n chart: {\r\n plotBorderWidth: 1,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: null,\r\n },\r\n xAxis: {\r\n categories: config.xAxisLabels,\r\n max: config.xAxisLabels.length - 1,\r\n tickWidth: 1,\r\n title: {\r\n text: config.xAxisTitle,\r\n },\r\n },\r\n yAxis: {\r\n //min: 0,\r\n //max: 100,\r\n tickInterval: 10,\r\n title: {\r\n text: config.yAxisTitle,\r\n },\r\n },\r\n } as Highcharts.Options;\r\n }\r\n\r\n private buildSeriesData(config: {\r\n scores: Score[];\r\n bubbleColour: string;\r\n latestScoreBubbleColour: string;\r\n }): Highcharts.PointOptionsObject[] {\r\n \r\n const latestScoreDate = config.scores[config.scores.length - 1].date;\r\n\r\n return config.scores.map(\r\n (score, index) =>\r\n ({\r\n x: index,\r\n y: score.percentile,\r\n marker: {\r\n fillColor:\r\n score.date === latestScoreDate\r\n ? config.latestScoreBubbleColour\r\n : config.bubbleColour,\r\n lineWidth: score.date === latestScoreDate ? 4 : 0,\r\n lineColor: config.bubbleColour,\r\n },\r\n } as Highcharts.PointOptionsObject)\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport * as Highcharts from \"highcharts\";\r\nimport more from \"highcharts/highcharts-more\";\r\nimport * as moment from \"moment\";\r\nimport { BehaviorSubject, combineLatest, map } from \"rxjs\";\r\nimport { Score } from \"src/app/api/generated\";\r\nimport { EsgScoringDataUtilities } from \"src/app/shared/helpers/esg-scoring-data-utilities\";\r\nmore(Highcharts);\r\n\r\nexport class PerformanceScoreOptions {\r\n xAxisTitle: string;\r\n yAxisTitle: string;\r\n industryScoreColour: string;\r\n clientScoreColour: string;\r\n percentilePolygonColour: string;\r\n}\r\n\r\n@Component({\r\n selector: \"esg-performance-score\",\r\n templateUrl: \"./performance-score.component.html\",\r\n styleUrls: [\"./performance-score.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PerformanceScoreComponent {\r\n private options$ = new BehaviorSubject(\r\n {} as PerformanceScoreOptions\r\n );\r\n private performanceScores$ = new BehaviorSubject([]);\r\n\r\n @Input() set options(options: PerformanceScoreOptions) {\r\n this.options$.next(options);\r\n }\r\n\r\n @Input() set performanceScores(scores: Score[]) {\r\n scores = EsgScoringDataUtilities.sortPillarPerformanceScoresByDate(scores, 'asc');\r\n this.performanceScores$.next(scores);\r\n }\r\n\r\n viewModel$ = combineLatest([this.options$, this.performanceScores$]).pipe(\r\n map(([options, scores]) => {\r\n const xAxisLabels = scores.map((score) =>\r\n moment(score.date).format(\"MM-YYYY\")\r\n );\r\n\r\n const seriesData = this.buildSeriesData({\r\n scores,\r\n clientScoreColour: options.clientScoreColour,\r\n industryScoreColour: options.industryScoreColour,\r\n percentilePolygonColour: options.percentilePolygonColour\r\n\r\n });\r\n\r\n const chartOptions = this.buildChartOptions({\r\n seriesData,\r\n xAxisTitle: options.xAxisTitle,\r\n yAxisTitle: options.yAxisTitle,\r\n xAxisLabels,\r\n });\r\n\r\n return {\r\n chartOptions,\r\n highcharts: Highcharts,\r\n };\r\n })\r\n );\r\n\r\n private buildChartOptions(config: {\r\n seriesData: Highcharts.SeriesOptionsType[];\r\n xAxisTitle: string;\r\n yAxisTitle: string;\r\n xAxisLabels: string[];\r\n }): Highcharts.Options {\r\n return {\r\n series: config.seriesData,\r\n credits: {\r\n enabled: false,\r\n },\r\n chart: {\r\n plotBorderWidth: 1,\r\n },\r\n legend: {\r\n enabled: true,\r\n symbolWidth: 1,\r\n symbolPadding: 10,\r\n align: 'right',\r\n verticalAlign: 'top'\r\n },\r\n\t\t\ttooltip: {\r\n\t\t\t\tshared: true\r\n\t\t\t}, \r\n title: {\r\n text: null,\r\n },\r\n xAxis: {\r\n categories: config.xAxisLabels,\r\n max: config.xAxisLabels.length - 1,\r\n tickWidth: 1,\r\n title: {\r\n text: config.xAxisTitle,\r\n },\r\n },\r\n yAxis: {\r\n tickInterval: 10,\r\n title: {\r\n text: config.yAxisTitle,\r\n },\r\n },\r\n } as Highcharts.Options;\r\n }\r\n\r\n private buildSeriesData(config: {\r\n scores: Score[];\r\n clientScoreColour: string;\r\n industryScoreColour: string;\r\n percentilePolygonColour: string;\r\n }): Highcharts.SeriesOptionsType[] {\r\n const allSeries: Highcharts.SeriesOptionsType[] = [];\r\n\r\n allSeries.push(this.LineSeriesData(config.scores.map(s => s.clientScore), config.clientScoreColour, 'Actual'));\r\n allSeries.push(this.LineSeriesData(config.scores.map(s => s.industryScore), config.industryScoreColour, 'Industry'));\r\n allSeries.push(this.AreaSeriesData(config.scores, config.percentilePolygonColour, 'Low - High Range'));\r\n return allSeries\r\n }\r\n\r\n private LineSeriesData(scores: Number[], fillColor: string, seriesName: string) : Highcharts.SeriesOptionsType {\r\n const data = scores.map(\r\n (score, index) =>\r\n ({\r\n x: index,\r\n y: score,\r\n } as Highcharts.PointOptionsObject));\r\n\r\n return {\r\n name: seriesName,\r\n data: data,\r\n type: \"line\",\r\n marker: {\r\n fillOpacity: 1,\r\n radius: 15,\r\n symbol: 'circle'\r\n },\r\n color: fillColor,\r\n zIndex:1\r\n } as Highcharts.SeriesOptionsType;\r\n }\r\n\r\n private AreaSeriesData(scores: Score[], fillColor: string, seriesName: string) : Highcharts.SeriesOptionsType {\r\n const data = scores.map(\r\n (score) =>\r\n ([\r\n score.industry25thPerc, score.industry75thPerc\r\n ] as Highcharts.PointOptionsObject));\r\n\r\n return {\r\n name: seriesName,\r\n data: data,\r\n type: 'arearange',\r\n lineWidth: 0,\r\n color: fillColor,\r\n fillOpacity: 0.3,\r\n zIndex: 0,\r\n marker: {\r\n enabled: false,\r\n symbol: 'diamond'\r\n }\r\n } as Highcharts.SeriesOptionsType;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\nimport { EsgScoringDataUtilities } from \"src/app/shared/helpers/esg-scoring-data-utilities\"\r\nimport { Recommendation } from \"src/app/api/generated\";\r\n\r\n@Component({\r\n selector: \"esg-recommendation-card\",\r\n templateUrl: \"./recommendation-card.component.html\",\r\n styleUrls: [\"./recommendation-card.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RecommendationCardComponent {\r\n @Input() recommendation: Recommendation;\r\n @Input() companyScoreTitle: string;\r\n @Input() companyPrimaryColor: string;\r\n @Input() companySecondaryColor: string;\r\n @Input() industryScoreTitle: string;\r\n @Input() industryPrimaryColor: string;\r\n @Input() industrySecondaryColor: string;\r\n @Input() circleInnerText: string;\r\n\r\n @Output() actionLeverSelected = new EventEmitter();\r\n\r\n showMore = false;\r\n showHint = false;\r\n maxInitialLength = 90;\r\n\r\n EsgScoringDataUtilities = EsgScoringDataUtilities;\r\n\r\n clickActionLever(actionLeverKey: string) {\r\n this.actionLeverSelected.emit(actionLeverKey);\r\n }\r\n\r\n onShow() {\r\n this.showMore = !this.showMore;\r\n }\r\n\r\n onShowHint() {\r\n this.showHint = !this.showHint;\r\n }\r\n}\r\n","
\r\n
\r\n ×\r\n
\r\n\r\n
\r\n {{ \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.RECOMMENDATIONS.HINTS.SCORE_HINT_TITLE_\" + recommendation.tier | translate }}\r\n
\r\n

\r\n {{ \"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\" + recommendation.metricTypeKey + \".REASONS_FOR_SCORE\" | translate }}\r\n

\r\n
\r\n\r\n
\r\n
\r\n {{ recommendation.rank }}\r\n
\r\n
\r\n
\r\n {{\r\n \"CURRENT_MODEL.GLOBAL.DEFAULT_INDUSTRY_MESSAGES.USING_INDUSTRY_DEFAULT_DATA_MESSAGE\" | translate\r\n }}\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n {{ \"CURRENT_MODEL.GLOBAL.TIERS.\" + recommendation.tier.toString() | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n {{ \"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\" + recommendation.metricTypeKey + \".NAME\" | translate }}\r\n
\r\n\r\n
\r\n

\r\n {{ showMore ? (\"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\" + recommendation.metricTypeKey + \".DESCRIPTION\" | translate) : (\"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\" + recommendation.metricTypeKey + \".DESCRIPTION\" | translate | slice: 0:maxInitialLength) }}\r\n ...\r\n \r\n

\r\n
More
\r\n
\r\n \r\n \r\n
\r\n
Less
\r\n
\r\n

\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
{{ companyScoreTitle }}
\r\n \r\n
\r\n
\r\n
{{ industryScoreTitle }}
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
{{ companyScoreTitle }}
\r\n\r\n \r\n
\r\n
\r\n
{{ industryScoreTitle }}
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n {{\r\n \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.RECOMMENDATIONS.POWERED_BY\"\r\n | translate\r\n }}\r\n
\r\n \r\n
\r\n\r\n
    \r\n
  • \r\n \r\n
    \r\n {{\r\n \"CURRENT_MODEL.GLOBAL.ACTION_LEVERS.\" +\r\n lever.trim().toUpperCase() +\r\n \".NAME\" | translate\r\n }}\r\n
    \r\n
    \r\n \r\n
  • \r\n
\r\n \r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { MissingTranslationHandler, MissingTranslationHandlerParams, TranslateService } from \"@ngx-translate/core\";\r\nimport { RunService } from \"@wtw/platform/services\";\r\nimport { BehaviorSubject, combineLatest, map } from \"rxjs\";\r\nimport { ESGPillar } from \"src/app/api/generated/ESGPillar\";\r\n\r\n@Component({\r\n selector: \"esg-theme-scoring\",\r\n templateUrl: \"./theme-scoring.component.html\",\r\n styleUrls: [\"./theme-scoring.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ThemeScoringComponent {\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private runService: RunService,\r\n private router: Router\r\n ) {\r\n this.translateService.missingTranslationHandler = new class extends MissingTranslationHandler {\r\n handle(params: MissingTranslationHandlerParams): any {\r\n console.log('handle', params);\r\n }\r\n };\r\n }\r\n\r\n recommendationsTranslationKey =\r\n \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.RECOMMENDATIONS\";\r\n\r\n filterAction$ = new BehaviorSubject(null);\r\n\r\n private _filters = [1, 2, 3, 4].map((tierId) => ({ tierId, selected: true })); //stores the current tier filter values\r\n\r\n viewModel$ = combineLatest([\r\n this.runService.activeRun, //The active run\r\n this.activatedRoute.url.pipe(map((r) => r[0])), // The theme url (\"climate-risk-and-resilience\" etc)\r\n this.activatedRoute.parent.url.pipe(map((r) => r[0])), // The pillar url (\"environment\" etc)\r\n this.filterAction$, // fires when user clicks any of the filters\r\n ]).pipe(\r\n map(([activeRun, themeUrl, pillarUrl, tierIdToToggle]) => {\r\n //toggle the filter\r\n if (tierIdToToggle) {\r\n const filter = this._filters.find((f) => f.tierId === tierIdToToggle);\r\n filter.selected = !filter.selected;\r\n }\r\n\r\n var pillar = activeRun.data.esgPillars.find(\r\n (s) => s.key.toLowerCase() == pillarUrl.path.toLocaleLowerCase()\r\n ) as ESGPillar;\r\n\r\n return {\r\n pillarKey: pillar.key,\r\n recommendations: pillar.themes\r\n .find(\r\n (theme) =>\r\n theme.key === themeUrl.path.toUpperCase().split(\"-\").join(\"_\")\r\n )\r\n ?.recommendations.map((recommendation) => {\r\n recommendation.poweredBy = activeRun.data.metricTypes.find(\r\n (metricType) =>\r\n metricType.items.some(\r\n (metricTypeItem) =>\r\n metricTypeItem.key === recommendation.metricTypeKey\r\n )\r\n ).source;\r\n\r\n return recommendation;\r\n }),\r\n paragraph: this.translateService.instant(\r\n \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY_DETAIL.THEMES.\" +\r\n themeUrl.path.toUpperCase() +\r\n \".PARAGRAPH\"\r\n ),\r\n filters: this._filters,\r\n themeKey: themeUrl.path,\r\n };\r\n }),\r\n map((vm) => {\r\n // Add the counts and filter the reommendations\r\n return {\r\n totalCount: vm.recommendations?.length,\r\n filteredRecommendations: vm.recommendations?.filter((r) =>\r\n this._filters\r\n .filter((f) => f.selected)\r\n .map((f) => f.tierId)\r\n .includes(r.tier)\r\n ),\r\n paragraph: vm.paragraph,\r\n filters: vm.filters,\r\n pillarKey: vm.pillarKey,\r\n themeKey: vm.themeKey,\r\n };\r\n })\r\n );\r\n\r\n filterClicked(tierId: number) {\r\n this.filterAction$.next(tierId);\r\n }\r\n\r\n navigateToActionLever(\r\n pillarKey: string,\r\n actionLeverKey: string,\r\n themeKey: string\r\n ) {\r\n this.router.navigate([\"../../../offerings\", actionLeverKey.toLowerCase()], {\r\n relativeTo: this.activatedRoute,\r\n queryParams: {\r\n fromPillar: pillarKey.toLowerCase(),\r\n fromTheme: themeKey.toLowerCase(),\r\n },\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{ vm.paragraph }}

\r\n\r\n

{{ recommendationsTranslationKey + \".TITLE\" | translate }}

\r\n\r\n \r\n
\r\n\r\n \r\n {{\r\n \"CURRENT_MODEL.GLOBAL.TIERS.\" + filter.tierId | translate\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n","import { RiskOffering } from './../../../api/generated/RiskOffering';\r\nimport { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { ESGPillar } from \"src/app/api/generated/ESGPillar\";\r\n\r\n@Component({\r\n selector: \"esg-action-levers\",\r\n templateUrl: \"./action-levers.component.html\",\r\n styleUrls: [\"./action-levers.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ActionLeversComponent {\r\n @Input() pillars: ESGPillar[];\r\n @Input() riskOfferings: RiskOffering[];\r\n\r\n\r\n getTopTheme(pillarKey: string) : string\r\n {\r\n const topTheme = this.pillars\r\n .find((pillar) => pillar.key.toLowerCase() === pillarKey.toLowerCase())\r\n .themes.find((theme) => theme.index === 1)\r\n .key.toString();\r\n return topTheme.replace(new RegExp('_', 'g'), '-');\r\n }\r\n\r\n getTopLever(pillarKey:string) : string\r\n {\r\n const topLever = this.riskOfferings\r\n .find((offering) => offering.key.toLowerCase() === pillarKey.toLowerCase())\r\n .actionLevers[0].key;\r\n\r\n return topLever;\r\n }\r\n}\r\n\r\n","
    \r\n
    \r\n
  • \r\n
    \r\n \r\n
    \r\n {{ \"CURRENT_MODEL.GLOBAL.ESG_PILLARS.\" + pillar.key + \".NAME\" | translate }}\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
  • \r\n
    \r\n
","import { ChangeDetectionStrategy } from '@angular/core';\r\nimport { ESGPillar } from '../../../../api/generated/ESGPillar';\r\nimport { ComparisonCompany } from 'src/app/api/generated/ComparisonCompany';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'esg-comparisoncompany-card',\r\n templateUrl: './comparisoncompany-card.component.html',\r\n styleUrls: ['./comparisoncompany-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ComparisonCompanyCardComponent {\r\n constructor() { }\r\n\r\n @Input() company: ComparisonCompany;\r\n @Input() pillars: ESGPillar[];\r\n @Input() companyCount: number;\r\n\r\n companyComparisonTranslationKey = \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY.COMPONENTS.COMPANY_COMPARISON\";\r\n\r\n pillarScore(key: string)\r\n {\r\n const comparisonCompanyPercentile = this.company.esgPillars.find(x => x.key == key).percentile;\r\n return comparisonCompanyPercentile;\r\n }\r\n\r\n pillarArrow(key: string) {\r\n const comparisonCompanyPercentile = this.company.esgPillars.find(x => x.key == key).percentile;\r\n const parentPercentile = this.pillars.find(x => x.key == key).percentile;\r\n if(comparisonCompanyPercentile > parentPercentile)\r\n {\r\n return \"icon-back-arrow-2 higher\"\r\n }\r\n else if(comparisonCompanyPercentile < parentPercentile) {\r\n return \"icon-back-arrow-2 lower\"\r\n }\r\n return \"icon-back-arrow-2 equal\"\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{ company.name }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ pillarScore(pillar.key) }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n {{ companyComparisonTranslationKey + \".NO_COMPANIES_SELECTED\" | translate }}\r\n

\r\n
\r\n
","import { ESGPillar } from './../../../api/generated/ESGPillar';\r\nimport { ComparisonCompany } from 'src/app/api/generated/ComparisonCompany';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'esg-comparison-companies',\r\n templateUrl: './comparison-companies.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ComparisonCompaniesComponent {\r\n\r\n constructor() { }\r\n\r\n @Input() comparisonCompanies: ComparisonCompany[];\r\n @Input() pillars: ESGPillar[];\r\n\r\n companyComparisonTranslationKey = \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY.COMPONENTS.COMPANY_COMPARISON\";\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n 0 && comparisonCompanies?.length<5\" \r\n fxFlex=\"20\" \r\n [companyCount]=\"comparisonCompanies.length\">\r\n
\r\n
\r\n
\r\n
","import { DownloadInfo } from './../../shared/components/download-modal/download-info';\r\nimport { EsgAppInsightsService } from './../../services/esg-app-insights-service';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport {\r\n ClientService,\r\n ModalService,\r\n RunService,\r\n UserService,\r\n} from \"@wtw/platform/services\";\r\nimport {\r\n combineLatest,\r\n exhaustMap,\r\n map,\r\n Observable,\r\n of,\r\n startWith,\r\n Subject,\r\n Subscription,\r\n switchMap,\r\n withLatestFrom,\r\n} from \"rxjs\";\r\nimport { ScreenerListItem } from \"src/app/api/generated\";\r\nimport { ScreenersProxy } from \"src/app/api/ScreenersController\";\r\nimport { ReferenceDataService } from \"src/app/services/reference-data.service\";\r\nimport { DownloadModalData } from \"src/app/shared/components/download-modal/download-modal-data\";\r\nimport { DownloadModalComponent } from \"../../shared/components/download-modal/download-modal.component\";\r\nimport { ScreenersService } from \"src/app/services/screeners-service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ReferenceDataProxy } from 'src/app/api/ReferenceDataController';\r\n\r\n@Component({\r\n selector: \"esg-executive-summary\",\r\n templateUrl: \"./executive-summary.component.html\",\r\n styleUrls: [\"./executive-summary.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ExecutiveSummaryComponent implements OnInit, OnDestroy {\r\n constructor(\r\n private runsService: RunService,\r\n private modalService: ModalService,\r\n private translateService: TranslateService,\r\n private clientService: ClientService,\r\n private userService: UserService,\r\n private referenceDataService: ReferenceDataService,\r\n private screenersProxy: ScreenersProxy,\r\n private runService: RunService,\r\n private screenersService: ScreenersService,\r\n private router: Router,\r\n private esgAppInsightsService: EsgAppInsightsService,\r\n private referenceDataProxy: ReferenceDataProxy\r\n ) {}\r\n\r\n subscriptions = new Subscription();\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.add(this.runLatestActionComplete$.subscribe());\r\n this.showNotificationSpinner(this.translateService.instant(this.screenerManagementKey + \".MESSAGES.GETTINGLATESTDATA\"));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n private retrievingMessage = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.MESSAGES.RETRIEVING_REFERENCE_DATA\");\r\n private screenerManagementKey = \"CURRENT_MODEL.PAGES.SCREENER_MANAGEMENT\";\r\n private setScreenerActiveAction$ = new Subject();\r\n private runLatestAction$ = new Subject();\r\n private rescoreNotification$: Observable;\r\n\r\n executiveSummaryKey = \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY\";\r\n benchmarkingTranslationKey = this.executiveSummaryKey + \".COMPONENTS.BENCHMARKING_SELECTIONS\";\r\n riskMetricsTranslationKey = this.executiveSummaryKey + \".COMPONENTS.RISK_METRIC_SELECTIONS\";\r\n leversTranslationKey = this.executiveSummaryKey + \".COMPONENTS.WTW_LEVERS\";\r\n riskMetricsKey = \"CURRENT_MODEL.GLOBAL.RISK_METRICS.\";\r\n isClient = this.userService.currentUserInfo.isClient;\r\n\r\n collapsiblePanel = true;\r\n \r\n private metricSourceItemFilter = [\r\n this.translateService.instant(this.riskMetricsKey + \"WTW.NAME\"), \r\n this.translateService.instant(this.riskMetricsKey + \"ANILINE.NAME\"), \r\n this.translateService.instant(this.riskMetricsKey + \"POLECAT.NAME\"), \r\n this.translateService.instant(this.riskMetricsKey + \"MSCI.NAME\")]\r\n .map((item) => { return item.toUpperCase();\r\n });\r\n\r\n private setScreenerActiveComplete$ = this.setScreenerActiveAction$.pipe(\r\n withLatestFrom(this.clientService.currentClientChanged),\r\n exhaustMap(([screenerListItem, client]) => {\r\n return this.screenersProxy\r\n .updateActiveScreener(screenerListItem.runId, client.clientId)\r\n .uiSignal({ uiLabel: \"Setting as Active Screener\", debugInfo: \"\" });\r\n })\r\n );\r\n\r\n screener$ = combineLatest([\r\n this.runService.activeRun,\r\n this.setScreenerActiveComplete$.pipe(startWith(true)),\r\n ]).pipe(\r\n switchMap(([run, _]) => \r\n this.screenersProxy.screener(run.runId)\r\n .pipe(map((result) => {\r\n if(result.data.newerDataAvailable) {\r\n this.runLatestAction$.next(result.data);\r\n }\r\n else {\r\n this.hideNotificationSpinner();\r\n }\r\n return result.data\r\n }))\r\n )\r\n );\r\n\r\n runLatestActionComplete$ = this.runLatestAction$.pipe(\r\n exhaustMap((screener) => {\r\n const clientId = this.clientService.currentClient.clientId;\r\n // Call screener service.\r\n // This will return either a new run id or an existing run id in the event there was an error\r\n return this.screenersService\r\n .requestNewScreenerCreateDataJob(clientId, screener.screenerId)\r\n .pipe(\r\n switchMap((jobKeyResponse) => {\r\n // If we got a job key back then start polling the job check status\r\n // We are expecting the RContainer/Orchestration function to output an MDS file and set job to \"Success\" or \"Failure\"\r\n return this.screenersService\r\n .pollScreenerDataReady(\r\n jobKeyResponse.data,\r\n screener.runId,\r\n clientId,\r\n screener.screenerId\r\n )\r\n .pipe(\r\n map((runId) => {\r\n this.hideNotificationSpinner();\r\n this.router.navigateByUrl(\r\n \"/run/\" + runId + \"/executive-summary\"\r\n );\r\n })\r\n );\r\n })\r\n )\r\n })\r\n );\r\n\r\n viewModel$ = combineLatest([\r\n this.runsService.activeRun,\r\n this.clientService.currentClientChanged,\r\n combineLatest([\r\n this.referenceDataService.pics6Industries$,\r\n this.referenceDataService.employeeBuckets$,\r\n this.referenceDataService.revenueBuckets$,\r\n ]).uiSignal({\r\n debugInfo: this.retrievingMessage,\r\n uiLabel: this.retrievingMessage,\r\n }),\r\n ]).pipe(\r\n switchMap(\r\n ([\r\n activeRun,\r\n client,\r\n [industries, employeeBuckets, revenueBuckets],\r\n ]) => {\r\n const industry = industries.find((i) => i.picS6 == activeRun.data.benchmarkingSelections[0].industryPICS6);\r\n const employeeBucket = employeeBuckets.find((e) => e.id == activeRun.data.benchmarkingSelections[0].employeeBucketId);\r\n const revenueBucket = revenueBuckets.find((r) => r.id == activeRun.data.benchmarkingSelections[0].revenueBucketId)\r\n\r\n return this.referenceDataProxy.getPeerCompanyCount(industry.picS6, +employeeBucket, +revenueBucket).pipe(\r\n map((peerCompanyCount) => {\r\n return { \r\n activeRun,\r\n client,\r\n metricSources: activeRun.data?.metricSources?.filter(\r\n (item) => this.metricSourceItemFilter.includes(item)\r\n ),\r\n industry: industry,\r\n employeeBucket: employeeBucket,\r\n revenueBucket: revenueBucket,\r\n pillars: activeRun.data.esgPillars,\r\n riskOfferings: activeRun.data.riskOfferings,\r\n peerCompanyCount: peerCompanyCount.data,\r\n comparisonCompanies: activeRun.data.comparisonCompanies \r\n };\r\n }))\r\n }\r\n )\r\n );\r\n\r\n downloadReportClick(runId: number) {\r\n // Mark the run as complete in appinsights\r\n this.esgAppInsightsService.markRunAsComplete();\r\n\r\n // Based on the user role, build a list of downloadable reports\r\n const reportDownloadList = this.setRportVisibilityBasedOnUserRole(\r\n this.translateService.instant(\"CURRENT_MODEL.GLOBAL.DOWNLOADS\") as DownloadInfo[]\r\n );\r\n\r\n const data = {\r\n heading: this.translateService.instant(\r\n this.executiveSummaryKey + \".DOWNLOAD_MODAL.HEADER\"\r\n ),\r\n paragraph: this.translateService.instant(\r\n this.executiveSummaryKey + \".DOWNLOAD_MODAL.PARAGRAPH\"\r\n ),\r\n closeButtonText: this.translateService.instant(\r\n this.executiveSummaryKey + \".DOWNLOAD_MODAL.CLOSE_BUTTON\"\r\n ),\r\n downloadButtonText: this.translateService.instant(\r\n this.executiveSummaryKey + \".DOWNLOAD_MODAL.DOWNLOAD_BUTTON\"\r\n ),\r\n downloads: reportDownloadList,\r\n runId,\r\n } as DownloadModalData;\r\n\r\n this.modalService.openWithComponent(DownloadModalComponent, { data });\r\n }\r\n\r\n setRportVisibilityBasedOnUserRole(reportDownloadList: DownloadInfo[]) : DownloadInfo[] {\r\n reportDownloadList.forEach(report => {\r\n if(report.HIDE_DOWNLOAD_FROM) {\r\n (report.HIDE_DOWNLOAD_FROM?.some(role => role === this.userService.currentUserInfo.role)) \r\n ? report.isDisabled = true \r\n : report.isDisabled = false\r\n }\r\n else {\r\n report.isDisabled = false\r\n }\r\n });\r\n\r\n return reportDownloadList;\r\n }\r\n \r\n topN(list: any[], n) {\r\n return list.slice(0, n);\r\n }\r\n\r\n setActiveScreener(screener: ScreenerListItem) {\r\n this.setScreenerActiveAction$.next(screener);\r\n }\r\n private showNotificationSpinner(spinnerMessage: string): void {\r\n this.rescoreNotification$ = new Observable();\r\n this.rescoreNotification$ = of(false).uiSignal({\r\n debugInfo: spinnerMessage,\r\n uiLabel: spinnerMessage,\r\n });\r\n }\r\n\r\n private hideNotificationSpinner(): void {\r\n if (this.rescoreNotification$) {\r\n this.rescoreNotification$.subscribe((_) => null).unsubscribe();\r\n this.rescoreNotification$ = null;\r\n }\r\n }\r\n\r\n expandPanel() {\r\n this.collapsiblePanel = false;\r\n }\r\n\r\n close() {\r\n this.collapsiblePanel = true;\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n

\r\n {{ executiveSummaryKey + \".HEADING\" | translate }}\r\n

\r\n\r\n \r\n
\r\n {{ executiveSummaryKey + \".DOWNLOAD_A_REPORT\" | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n

\r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n {{\r\n executiveSummaryKey + \".ESG_PILLAR_LINK_TEXT\" | translate\r\n }}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { MetricType } from \"src/app/api/generated\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"esg-risk-metrics\",\r\n templateUrl: \"./risk-metrics.component.html\",\r\n styleUrls: [\"./risk-metrics.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RiskMetricsComponent { \r\nconstructor(\r\n private translateService: TranslateService\r\n){}\r\n @Input() metricSources: string[];\r\n @Input() metricTypes: MetricType[];\r\n\r\n metricItemCounts(metricSource: string) {\r\n const metricItemsForSource = this.metricTypes\r\n .filter((mt) => mt.source.startsWith(metricSource))\r\n .flatMap((mt) => mt.items);\r\n\r\n return {\r\n count: metricItemsForSource.length,\r\n selectedCount: metricItemsForSource.filter((i) => i.selected).length,\r\n };\r\n }\r\n\r\n getLogoName(source: string)\r\n {\r\n const wtwLogoName = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.RISK_METRICS.WTW.NAME\");\r\n const wtwinternalLogoName = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.RISK_METRICS.WTWINTERNAL.NAME\");\r\n\r\n return (source == wtwLogoName) ? source = wtwinternalLogoName : source;\r\n }\r\n}\r\n\r\n","
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {{ counts.selectedCount }}/{{ counts.count }}\r\n
    \r\n \r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ScreenerListItem } from \"src/app/api/generated\";\r\n\r\n@Component({\r\n selector: \"esg-screener-selector\",\r\n templateUrl: \"./screener-selector.component.html\",\r\n styleUrls: [\"./screener-selector.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScreenerSelectorComponent {\r\n constructor(private router: Router) {}\r\n\r\n @Input() screener: ScreenerListItem;\r\n @Output() setAsActive = new EventEmitter();\r\n \r\n executiveSummaryKey = \"CURRENT_MODEL.PAGES.EXECUTIVE_SUMMARY\";\r\n\r\n setAsActiveScreener(screener: ScreenerListItem) {\r\n this.setAsActive.emit(screener);\r\n }\r\n\r\n changeAsOf(runId: any) {\r\n this.router.navigate([\"/run\", runId]);\r\n }\r\n}\r\n","
\r\n
\r\n {{ screener?.screenerDescription }}\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {{ executiveSummaryKey + \".SET_AS_ACTIVE_SCREENER\" | translate }}\r\n \r\n
\r\n \r\n {{ executiveSummaryKey + \".AS_OF_DATE\" | translate }}\r\n\r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-numbered-box\",\r\n templateUrl: \"./numbered-box.component.html\",\r\n styleUrls: [\"./numbered-box.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NumberedBoxComponent {\r\n @Input() number: string;\r\n @Input() title: string;\r\n}\r\n","
\r\n \r\n {{ number }}\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n","import { ESGPillar } from './../../../api/generated/ESGPillar';\r\nimport { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { RunService } from \"@wtw/platform/services\";\r\nimport { combineLatest, map } from \"rxjs\";\r\nimport { ActionLever } from \"src/app/api/generated\";\r\nimport { EsgAppInsightsService } from \"src/app/services/esg-app-insights-service\";\r\nimport { AppInsightsEventAction } from \"src/app/shared/enums/app-insights-event-action\";\r\nimport { AppInsightsEventCategory } from \"src/app/shared/enums/app-insights-event-category\";\r\n\r\n@Component({\r\n selector: \"esg-offering\",\r\n templateUrl: \"./offering.component.html\",\r\n styleUrls: [\"./offering.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OfferingComponent {\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private runService: RunService,\r\n private router: Router,\r\n private esgAppInsightsService: EsgAppInsightsService\r\n ) {}\r\n\r\n actionLeversKey = \"CURRENT_MODEL.PAGES.OFFERINGS.\";\r\n globalActionLeversKey = \"CURRENT_MODEL.GLOBAL.ACTION_LEVERS.\";\r\n globalRiskMetricKey = \"CURRENT_MODEL.GLOBAL.RISK_METRIC_ITEMS.\";\r\n\r\n AppInsightsEventAction = AppInsightsEventAction;\r\n AppInsightsEventCategory = AppInsightsEventCategory;\r\n\r\n viewModel$ = combineLatest([\r\n this.activatedRoute.url, // Last part of url contains offering key\r\n this.runService.activeRun,\r\n this.activatedRoute.queryParams\r\n ]).pipe(\r\n map(([url, activeRun, queryParams]) => {\r\n const allActionLevers = activeRun.data.riskOfferings.find((offering) => offering.key === 'ALL').actionLevers as ActionLever[];\r\n \r\n if (!url.length) {\r\n var defaultActionLeverRoute = (queryParams['filter'])\r\n ? this.pillarTopThemeActionLever(activeRun.data.esgPillars, queryParams['filter'])\r\n : allActionLevers[0].key.toLowerCase();\r\n \r\n this.router.navigate(\r\n [\"./\" + defaultActionLeverRoute],\r\n {\r\n queryParamsHandling: \"preserve\",\r\n relativeTo: this.activatedRoute\r\n }\r\n );\r\n } else {\r\n const lever = allActionLevers.find(\r\n (a) => a.key.toLowerCase() === url[0]?.path.toLocaleLowerCase()\r\n );\r\n\r\n // TEMP until abhishek fixes null in data\r\n lever.gaps = lever.gaps.filter((g) => g.key != null);\r\n lever.strengths = lever.strengths.filter((g) => g.key != null);\r\n\r\n return { lever, runId: activeRun.runId };\r\n }\r\n })\r\n );\r\n\r\n topN(list: any[], n) {\r\n return list.slice(0, n);\r\n }\r\n\r\n logInsight(rundId: number, eventCategory: string, eventAction: string) {\r\n this.esgAppInsightsService.logInsight(rundId, eventCategory, eventAction);\r\n }\r\n\r\n pillarTopThemeActionLever(pillars: ESGPillar[], filter: string) : string {\r\n const filteredBy = filter.toLowerCase().replace('is_', '');\r\n const pillar = pillars.find(p => p.key.toLowerCase() === filteredBy);\r\n return pillar.themes.find(s=>s.index === 1).recommendations[0].action_lever[0].toLowerCase();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

\r\n {{ actionLeversKey + \"ABOUT\" | translate : { Lever: globalActionLeversKey + vm.lever.key + \".NAME\" | translate } }}\r\n

\r\n

\r\n {{ globalActionLeversKey + vm.lever.key + \".DESCRIPTION\" | translate }}\r\n

\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n {{ actionLeversKey + \"LAUNCH\" | translate : { Lever: globalActionLeversKey + vm.lever.key + \".NAME\" | translate } }}\r\n \r\n
\r\n {{ actionLeversKey + \"ENQUIRE\" | translate }}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n {{ actionLeversKey + \"HEADING\" | translate : { Lever: globalActionLeversKey + vm.lever.key + \".NAME\" | translate } }}\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n 0\"\r\n number=\"2\"\r\n [title]=\"\r\n actionLeversKey + 'POSITIVE_IMPACT.HEADING' | translate : { Lever: globalActionLeversKey + vm.lever.key + '.NAME' | translate }\">\r\n
\r\n

\r\n {{ actionLeversKey + \"POSITIVE_IMPACT.PARAGRAPH\" | translate }}\r\n

\r\n \r\n
\r\n \r\n\r\n
\r\n\r\n 0 ? '3' : '2'\"\r\n [title]=\"actionLeversKey + 'STRENGTHS' | translate : { Lever: globalActionLeversKey + vm.lever.key + '.NAME' | translate }\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-offerings-filter\",\r\n templateUrl: \"./offerings-filter.component.html\",\r\n styleUrls: [\"./offerings-filter.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OfferingsFilterComponent {\r\n constructor() {}\r\n}\r\n","
\r\n
    \r\n
  1. \r\n All\r\n
  2. \r\n
  3. \r\n \r\n {{ 'CURRENT_MODEL.GLOBAL.ESG_PILLARS.ENVIRONMENT.NAME' | translate }}\r\n \r\n
  4. \r\n
  5. \r\n \r\n {{ 'CURRENT_MODEL.GLOBAL.ESG_PILLARS.SOCIAL.NAME' | translate }}\r\n \r\n
  6. \r\n
  7. \r\n \r\n {{ 'CURRENT_MODEL.GLOBAL.ESG_PILLARS.GOVERNANCE.NAME' | translate }}\r\n \r\n
  8. \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { RunService } from \"@wtw/platform/services\";\r\nimport { BehaviorSubject, combineLatest, map } from \"rxjs\";\r\nimport { ActionLever } from \"src/app/api/generated\";\r\n\r\n@Component({\r\n selector: \"esg-offerings\",\r\n templateUrl: \"./offerings.component.html\",\r\n styleUrls: [\"./offerings.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OfferingsComponent {\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private translateService: TranslateService,\r\n private runService: RunService\r\n ) {}\r\n\r\n offeringsTranslationKey = \"CURRENT_MODEL.PAGES.OFFERINGS.\";\r\n themesKey = \"CURRENT_MODEL.RUN_PAGES.\";\r\n\r\n showDropdownMenuAction$ = new BehaviorSubject(false);\r\n showMoreAction$ = new BehaviorSubject(false);\r\n\r\n viewModel$ = combineLatest([\r\n this.translateService.get(\"CURRENT_MODEL.GLOBAL.ACTION_LEVERS\"), // Get a full list of all the availabl action levers\r\n this.translateService.get(\"CURRENT_MODEL.PAGES.OFFERINGS.MIN_ACTION_LEVERS_COUNT\"), // default count of action levers to show\r\n this.activatedRoute.queryParams, //offerings filter passed in (\"IS_SERVICE\" or \"IS_RISKIQ\")\r\n this.runService.activeRun,\r\n this.showDropdownMenuAction$, // User clicked to show dropdown mwnu on small screen\r\n this.showMoreAction$, // user clicked show more button\r\n ]).pipe(\r\n map(\r\n ([\r\n localisationActionLevers,\r\n defaultOfferingsCount,\r\n params,\r\n activeRun,\r\n showDropdownMenu,\r\n showMore,\r\n ]) => {\r\n\r\n const ENVIRONMENT = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.ESG_PILLARS.ENVIRONMENT.NAME\").toLowerCase();\r\n const SOCIAL = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.ESG_PILLARS.SOCIAL.NAME\").toLowerCase();\r\n const GOVERNANCE = this.translateService.instant(\"CURRENT_MODEL.GLOBAL.ESG_PILLARS.GOVERNANCE.NAME\").toLowerCase();\r\n\r\n // Pick out the action levers list for each pillar\r\n const environmentActionLevers = (activeRun.data.riskOfferings\r\n .find((offering) => offering.key.toLowerCase() === ENVIRONMENT).actionLevers as ActionLever[])\r\n .map((lever) => {\r\n return { ...lever, IS_ENVIRONMENT: true };\r\n }) as Array;\r\n \r\n const socialActionLevers = (activeRun.data.riskOfferings\r\n .find((offering) => offering.key.toLowerCase() === SOCIAL).actionLevers as ActionLever[])\r\n .map((lever) => {\r\n return { ...lever, IS_SOCIAL: true };\r\n }) as Array;\r\n\r\n const governanceActionLevers = (activeRun.data.riskOfferings\r\n .find((offering) => offering.key.toLowerCase() === GOVERNANCE).actionLevers as ActionLever[])\r\n .map((lever) => {\r\n return { ...lever, IS_GOVERNANCE: true };\r\n }) as Array;\r\n \r\n const allLevers = environmentActionLevers\r\n .concat(socialActionLevers)\r\n .concat(governanceActionLevers);\r\n\r\n // Look up our menu levers in the look up list in localisation and map localisation and filter\r\n var offerings = allLevers\r\n .map((d) => {\r\n return { \r\n key: d.key, ...localisationActionLevers[d.key], IS_ENVIRONMENT: d.IS_ENVIRONMENT, IS_SOCIAL: d.IS_SOCIAL, IS_GOVERNANCE: d.IS_GOVERNANCE\r\n }; //append the translations data onto the offering (this contains filtering info)\r\n })\r\n .filter((d) => {\r\n if (params.filter) {\r\n return d[params.filter] == true;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n const offeringsCount = offerings.length;\r\n\r\n if (!showMore) {\r\n offerings = offerings.slice(0, defaultOfferingsCount);\r\n }\r\n\r\n var orderedThemes = (params['filter']) \r\n ? activeRun.data.esgPillars\r\n .find((pillar) => pillar.key.toLowerCase() === params['filter'].toLowerCase().replace('is_', '')).themes\r\n .sort((a, b) => a.index - b.index)\r\n .map((theme) => {\r\n return this.translateService.instant(`${this.themesKey}${theme.key.replaceAll('_', '-').toUpperCase()}`);\r\n })\r\n : null;\r\n\r\n return {\r\n offerings,\r\n showDropdownMenu,\r\n totalCount: offeringsCount,\r\n fromPillarKey: params.fromPillar,\r\n fromThemeKey: params.fromTheme,\r\n defaultOfferingsCount,\r\n clientName: activeRun.data.benchmarkingSelections[0].clientName,\r\n isFiltered: params['filter'],\r\n orderedThemes: orderedThemes \r\n };\r\n }\r\n )\r\n );\r\n\r\n toggleMenu() {\r\n this.showDropdownMenuAction$.next(!this.showDropdownMenuAction$.value);\r\n }\r\n\r\n closeMenu() {\r\n this.showDropdownMenuAction$.next(false);\r\n }\r\n\r\n seeMore() {\r\n this.showMoreAction$.next(true);\r\n }\r\n\r\n seeLess() {\r\n this.showMoreAction$.next(false);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ offeringsTranslationKey + \"PAGE_HEADING\" | translate }}\r\n

\r\n

\r\n {{ offeringsTranslationKey + \"HEADING_PARAGRAPH\" | translate : {ClientName: vm.clientName} }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{ offeringsTranslationKey + \"THEMES_PARAGRAPH\" | translate }}\r\n

\r\n

\r\n {{ offeringsTranslationKey + \"THEMES_PARAGRAPH_WITH_ORDERED_THEMES\" | translate }}\r\n
\r\n {{ offeringsTranslationKey + \"ORDERED_THEMES\" | translate : \r\n { \r\n Theme1: (vm.orderedThemes[0]) ? vm.orderedThemes[0] : '', \r\n Theme2: (vm.orderedThemes[1]) ? ', ' + vm.orderedThemes[1] : '', \r\n Theme3: (vm.orderedThemes[2]) ? ', ' + vm.orderedThemes[2] : '', \r\n Theme4: (vm.orderedThemes[3]) ? ', ' + vm.orderedThemes[3] : ''\r\n }\r\n }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Back to\r\n {{ themesKey + vm.fromThemeKey.toUpperCase() | translate }}\r\n
\r\n
\r\n {{\r\n offeringsTranslationKey + \"SELECT_LEVER\" | translate\r\n }}\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n {{ lever.NAME }}\r\n \r\n
\r\n
\r\n vm.offerings.length\"\r\n >\r\n {{ offeringsTranslationKey + \"SEE_MORE\" | translate }}\r\n \r\n vm.defaultOfferingsCount\"\r\n >\r\n {{ offeringsTranslationKey + \"SEE_LESS\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\nimport { MediaObserver } from \"@angular/flex-layout\";\r\nimport { map } from \"rxjs\";\r\nimport { ActionLever } from \"src/app/api/generated\";\r\n@Component({\r\n selector: \"esg-score-and-benchmark\",\r\n templateUrl: \"./score-and-benchmark.component.html\",\r\n styleUrls: [\"./score-and-benchmark.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScoreAndBenchmarkComponent {\r\n constructor(private mediaObserver: MediaObserver) {}\r\n globalLOBKey = \"CURRENT_MODEL.GLOBAL.LINES_OF_BUSINESS.\";\r\n\r\n @Input() lever: ActionLever;\r\n @Input() scoreHeading: string;\r\n @Input() benchmarkHeading: string;\r\n @Input() barBackgroundColor: string;\r\n @Input() barColor: string;\r\n @Input() barPercentLabelColor: string;\r\n @Input() barOffsetPercentLabelColor: string;\r\n\r\n labelWidthPixels = 200;\r\n barHeightPixels = 45;\r\n\r\n labelWidthPixelsSmall = 110;\r\n barHeightPixelsSmall = 65;\r\n\r\n viewModel$ = this.mediaObserver.asObservable().pipe(\r\n map((state) => {\r\n return {\r\n lessThanLarge: state.some((s) => s.mqAlias === \"lt-lg\"),\r\n extraSmall: state.some((s) => s.mqAlias === \"xs\"),\r\n };\r\n })\r\n );\r\n}\r\n","\r\n \r\n \r\n {{ scoreHeading }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ benchmarkHeading }}\r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-simple-box\",\r\n templateUrl: \"./simple-box.component.html\",\r\n styleUrls: [\"./simple-box.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleBoxComponent {\r\n @Input() title: string;\r\n @Input() description: string;\r\n}\r\n","
{{ title }}
\r\n
{{ description }}
\r\n","import { AppInsightsEventCategory } from './../../shared/enums/app-insights-event-category';\r\nimport { EsgAppInsightsService } from 'src/app/services/esg-app-insights-service';\r\nimport { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MatRadioChange } from \"@angular/material/radio\";\r\nimport { Router } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { IModalConfirmResult, IStandardModalConfig } from \"@wtw/platform/interfaces\";\r\nimport {\r\n ClientService,\r\n ModalService,\r\n RunService,\r\n UserService,\r\n} from \"@wtw/platform/services\";\r\nimport {\r\n BehaviorSubject,\r\n combineLatest,\r\n EMPTY,\r\n exhaustMap,\r\n filter,\r\n from,\r\n map,\r\n of,\r\n startWith,\r\n Subject,\r\n switchMap,\r\n tap,\r\n withLatestFrom,\r\n} from \"rxjs\";\r\nimport { ScreenerListItem } from \"src/app/api/generated\";\r\nimport { ScreenerSettings } from \"src/app/api/generated/ScreenerSettings\";\r\nimport { ScreenersProxy } from \"src/app/api/ScreenersController\";\r\nimport { EditScreenerModalData } from \"src/app/shared/components/edit-screener-modal/edit-screener-modal-data\";\r\nimport { EditScreenerModalComponent } from \"src/app/shared/components/edit-screener-modal/edit-screener-modal.component\";\r\nimport { AppInsightsEventAction } from 'src/app/shared/enums/app-insights-event-action';\r\n\r\n@Component({\r\n selector: \"esg-screener-management\",\r\n templateUrl: \"./screener-management.component.html\",\r\n styleUrls: [\"./screener-management.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScreenerManagementComponent {\r\n constructor(\r\n private clientService: ClientService,\r\n private screenersProxy: ScreenersProxy,\r\n private router: Router,\r\n private runService: RunService,\r\n private userService: UserService,\r\n private modalService: ModalService,\r\n private translateService: TranslateService,\r\n private _esgAppInsightsService: EsgAppInsightsService,\r\n ) {}\r\n\r\n screenerManagementKey = \"CURRENT_MODEL.PAGES.SCREENER_MANAGEMENT\";\r\n screenerManagementModalKey = \"CURRENT_MODEL.PAGES.SCREENER_MANAGEMENT.EDIT_SCREENER_MODAL\";\r\n isClient = this.userService.currentUserInfo.isClient;\r\n isAdmin = this.userService.currentUserInfo.isAdmin;\r\n \r\n selectedScreener = null;\r\n\r\n screenerFilterAction$ = new BehaviorSubject<\"ALL\" | \"MINE\">(\"ALL\");\r\n colleagueSelectedAction$ = new BehaviorSubject(null);\r\n\r\n client$ = this.clientService.currentClientChanged;\r\n\r\n private deleteAction$ = new Subject();\r\n private editAction$ = new Subject();\r\n\r\n screenerEditedComplete$ = this.editAction$.pipe(\r\n exhaustMap((screener) => {\r\n const newScreenerModalData = {\r\n screenerId: screener.screenerId,\r\n screenerName: screener.screenerName,\r\n screenerDescription: screener.screenerDescription,\r\n heading: this.translateService.instant(\r\n this.screenerManagementModalKey + \".HEADER\"\r\n ),\r\n acceptButtonText: this.translateService.instant(\r\n this.screenerManagementModalKey + \".MODAL_ACCEPT_BUTTON\"\r\n ),\r\n cancelButtonText: this.translateService.instant(\r\n this.screenerManagementModalKey + \".MODAL_CANCEL_BUTTON\"\r\n ),\r\n } as EditScreenerModalData;\r\n return from(\r\n this.modalService.confirmWithComponent(EditScreenerModalComponent, {\r\n data: newScreenerModalData,\r\n })\r\n ).pipe(\r\n // Check modal response\r\n switchMap((modalResponse: IModalConfirmResult) => {\r\n // Update requested\r\n if (modalResponse.result) {\r\n const screenerSettings = {\r\n screenerName: modalResponse.data.screenerName,\r\n screenerDescription: modalResponse.data.screenerDescription,\r\n } as ScreenerSettings;\r\n\r\n return this.screenersProxy\r\n .edit(screenerSettings, screener.screenerId)\r\n .uiSignal({\r\n uiLabel: this.translateService.instant(\r\n this.screenerManagementKey + \".MESSAGES.EDITING\"\r\n ),\r\n debugInfo: \"\",\r\n })\r\n .pipe(\r\n map(() => {\r\n this._esgAppInsightsService.logInsight(screener.runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNEDITED);\r\n return of(true);\r\n })\r\n );\r\n }\r\n return EMPTY;\r\n })\r\n );\r\n })\r\n );\r\n\r\n screenerDeletedComplete$ = this.deleteAction$.pipe(\r\n exhaustMap((screener) => {\r\n if (screener.hasActiveUsers) {\r\n return from(\r\n this.modalService.alert(\r\n this.translateService.instant(\r\n this.screenerManagementKey + \".MESSAGES.SCREENER_CURRENTLY_ACTIVE\"\r\n )\r\n )\r\n ).pipe(map((_) => false));\r\n } else {\r\n return from(\r\n this.modalService.confirm({\r\n title: this.translateService.instant(\r\n this.screenerManagementKey + \".MESSAGES.SURE_DELETE\"\r\n ),\r\n } as IStandardModalConfig)\r\n ).pipe(\r\n switchMap((deleteConfirmResult) => {\r\n if (deleteConfirmResult) {\r\n // log app insights\r\n this._esgAppInsightsService.logInsight(screener.runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNDELETED);\r\n // User really wants to delete screener\r\n return this.screenersProxy\r\n .delete(screener.screenerId)\r\n .uiSignal({\r\n uiLabel: this.translateService.instant(\r\n this.screenerManagementKey + \".MESSAGES.DELETING\"\r\n ),\r\n debugInfo: \"\",\r\n })\r\n .pipe(\r\n withLatestFrom(\r\n this.runService.activeRun,\r\n this.clientService.currentClientChanged\r\n ),\r\n switchMap(([_, run, client]) => {\r\n if (screener.runId === run.runId) {\r\n // They deleted the currently loaded screener - so lets redirect to the default one\r\n return this.screenersProxy\r\n .getDefaultScreenerRunId(client.clientId)\r\n .uiSignal(\" \")\r\n .pipe(\r\n map((c) => c.data),\r\n tap((runId) => {\r\n this.router.navigateByUrl(\r\n \"/run/\" + runId + \"/screener-management\"\r\n );\r\n }),\r\n map((_) => true)\r\n );\r\n } else {\r\n return of(true);\r\n }\r\n })\r\n );\r\n } else {\r\n return of(false);\r\n }\r\n })\r\n );\r\n }\r\n }),\r\n\r\n filter((result) => result)\r\n );\r\n\r\n viewModel$ = combineLatest([\r\n combineLatest([\r\n this.client$,\r\n this.screenerDeletedComplete$.pipe(startWith(false)),\r\n this.screenerEditedComplete$.pipe(startWith(false)),\r\n ]).pipe(\r\n switchMap(([client, _, __]) => {\r\n return this.screenersProxy.screeners(client.clientId);\r\n })\r\n ),\r\n this.screenerFilterAction$,\r\n this.runService.activeRun,\r\n ]).pipe(\r\n map(([screeners, filter, activeRun]) => {\r\n return {\r\n screeners: screeners.data.filter(\r\n (item) => filter == \"ALL\" || (filter == \"MINE\" && item.createdByMe)\r\n ),\r\n currentRunId: activeRun.runId,\r\n };\r\n })\r\n );\r\n\r\n screenerFilterChanged(event: MatRadioChange) {\r\n this.screenerFilterAction$.next(event.value);\r\n }\r\n\r\n // Loads screener\r\n load(screener: ScreenerListItem) {\r\n this._esgAppInsightsService.logInsight(screener.runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNLOADED);\r\n this.router.navigateByUrl(\"/run/\" + screener.runId + \"/executive-summary\");\r\n }\r\n\r\n deleteScreener(screener: ScreenerListItem) {\r\n this.deleteAction$.next(screener);\r\n }\r\n\r\n editScreener(screener: ScreenerListItem) {\r\n this.editAction$.next(screener);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n

{{ (client$ | async)?.displayName }}

\r\n\r\n \r\n All Screeners\r\n My Screeners\r\n \r\n\r\n
\r\n \r\n
Name
\r\n
Date Created
\r\n
Created by
\r\n
Active
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ screener.screenerName }}\r\n
\r\n
\r\n {{ screener.createdDateUTC | date }}\r\n
\r\n
\r\n {{ screener.createdByFullName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Load\r\n \r\n
\r\n
\r\n \r\n
\r\n Date Created: {{ screener.createdDateUTC | date }}\r\n
\r\n
\r\n Created By: {{ screener.createdByFullName }}\r\n
\r\n\r\n
{{ screener.screenerDescription }}
\r\n
\r\n
\r\n
\r\n \r\n Edit\r\n \r\n
\r\n
\r\n \r\n Delete\r\n \r\n
\r\n
\r\n \r\n Load\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n \r\n\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'searchfilter'\r\n})\r\n\r\n@Injectable()\r\nexport class SearchFilterPipe implements PipeTransform {\r\n transform(items: any[], field: any, value: any): any[] {\r\n if (!items) { return []; }\r\n return items.filter(it => it[field] === value);\r\n }\r\n}\r\n","import { DecimalPipe } from '@angular/common';\r\nimport { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Pipe({\r\n name: 'numberFormatter'\r\n})\r\nexport class NumberFormatterPipe implements PipeTransform {\r\n private _decimal: DecimalPipe;\r\n constructor(@Inject(LOCALE_ID) private locale: string) { this._decimal = new DecimalPipe(this.locale); }\r\n\r\n transform(value: any, args?: any): any {\r\n if (!_.isNil(args)) {\r\n\r\n const getValue = (scale: number): string => {\r\n return this._decimal.transform(value, `1.${scale}-${scale}`);\r\n };\r\n\r\n args = args.split('.');\r\n\r\n if (args.length > 1) {\r\n const scale = args[0];\r\n const formatType = args[1];\r\n value = getValue(scale);\r\n\r\n if (formatType === 'percentage') {\r\n value = value + '%';\r\n }\r\n }\r\n return value.toLocaleString();\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'removeSpaces' })\r\nexport class RemoveSpacesPipe implements PipeTransform {\r\n transform(value: any) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n return value.replace(/\\s/g, '');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortNumberFormatExtenderPipe'\r\n})\r\nexport class shortNumberFormatExtenderPipe implements PipeTransform {\r\n\r\n transform(number: any, currency = ''): any {\r\n // always have 2 decimalPlaces\r\n const decimals = 2;\r\n if (number === null) {\r\n return 'N/A';\r\n }\r\n\r\n number = parseFloat(number);\r\n\r\n if (isNaN(number)) {\r\n return 'N/A';\r\n }\r\n\r\n if (isNaN(decimals)) {\r\n return;\r\n }\r\n\r\n if (!isNaN(+currency)) {\r\n currency = '';\r\n }\r\n\r\n const signPrefix = number < 0 ? '-' : '';\r\n number = Math.abs(number);\r\n\r\n if (number <= 999) { // hundreds\r\n number = number.toFixed(decimals);\r\n number = number < 100 ? number.substring(0, 4) : number.substring(0, 3);\r\n } else if (number >= 1000 && number <= 999999) { // thousands\r\n number = (number / 1000).toFixed(decimals);\r\n number = number < 100 ? number.substring(0, 4) + 'K' : number.substring(0, 3) + 'K';\r\n } else if (number >= 1000000 && number <= 999999999) { // millions\r\n number = (number / 1000000).toFixed(decimals);\r\n number = number < 100 ? number.substring(0, 4) + 'M' : number.substring(0, 3) + 'M';\r\n } else if (number >= 1000000000 && number <= 999999999999) { // billions\r\n number = (number / 1000000000).toFixed(decimals);\r\n number = number < 100 ? number.substring(0, 4) + 'B' : number.substring(0, 3) + 'B';\r\n } else { // trilions\r\n number = (number / 1000000000000).toFixed(decimals);\r\n number = number < 100 ? number.substring(0, 4) + 'T' : number.substring(0, 3) + 'T';\r\n }\r\n return currency + signPrefix + number;\r\n }\r\n}\r\n","import { CustomizeComponent } from \"./pages/customize/customize.component\";\r\nimport { Route, Routes } from \"@angular/router\";\r\nimport { NavigationAction, NavigationType } from \"@wtw/platform/interfaces\";\r\nimport { ExecutiveSummaryComponent } from \"./pages/executive-summary/executive-summary.component\";\r\nimport { ExecutiveSummaryDetailComponent } from \"./pages/executive-summary-detail/executive-summary-detail.component\";\r\nimport { MyPerformanceScoreComponent } from \"./pages/executive-summary-detail/my-performance-score/my-performance-score.component\";\r\nimport { ThemeScoringComponent } from \"./pages/executive-summary-detail/theme-scoring/theme-scoring.component\";\r\nimport { OfferingsComponent } from \"./pages/offerings/offerings.component\";\r\nimport { OfferingComponent } from \"./pages/offerings/offering/offering.component\";\r\nimport { ScreenerManagementComponent } from \"./pages/screener-management/screener-management.component\";\r\nimport { AppInsightsRunCompleteResolver } from \"./services/resolvers/AppInsightsRunCompleteResolver\";\r\nimport { CompaniesComparisonChartComponent } from \"./pages/executive-summary-detail/companies-comparison-chart/companies-comparison-chart.component\";\r\n\r\nconst esgRoutes = [\r\n {\r\n path: \"environment\",\r\n children: [\r\n { path: \"climate-risk-and-resilience\" }, \r\n { path: \"circular-economy\" },\r\n { path: \"net-zero-transition-planning\" },\r\n { path: \"supply-chain\" }\r\n ],\r\n },\r\n {\r\n path: \"social\",\r\n children: [\r\n { \r\n path: \"employee-safety-and-security\" },\r\n { path: \"justice-fairness-and-equality\" },\r\n { path: \"employability-and-social-mobility\" },\r\n { path: \"workforce-resilience-and-stability\" }\r\n ],\r\n },\r\n {\r\n path: \"governance\",\r\n children: [\r\n { path: \"board-governance-and-effectiveness\" },\r\n { path: \"sustainable-investments\" },\r\n { path: \"risk-transfer-and-mitigation\" },\r\n { path: \"disclosures-and-targets\" }\r\n ],\r\n },\r\n].map((pillar) => {\r\n return {\r\n path: pillar.path,\r\n displayTitle: pillar.path,\r\n component: ExecutiveSummaryDetailComponent,\r\n data: {\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return true;\r\n },\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n redirectTo: \"my-performance-score\",\r\n pathMatch: \"full\",\r\n },\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \"my-performance-score\",\r\n component: MyPerformanceScoreComponent,\r\n displayTitle: \"My Performance Score\",\r\n data: {\r\n disableCurrencyPopup: true,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n },\r\n ...pillar.children.map((c) => {\r\n return {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: c.path.toLowerCase(),\r\n component: ThemeScoringComponent,\r\n displayTitle: c.path.toLowerCase(),\r\n data: {\r\n disableCurrencyPopup: true,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n } as Route;\r\n }),\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \"companies-comparison\",\r\n component: CompaniesComparisonChartComponent,\r\n data: {\r\n disableCurrencyPopup: true,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n }, \r\n ] as Route[],\r\n };\r\n}) as Route[];\r\n\r\nexport const RUN_PAGES: Routes = [\r\n {\r\n path: \"executive-summary\",\r\n data: {\r\n displayTitle: \"executive-summary\",\r\n disableCurrencyPopup: true,\r\n onForwardNavigation: {\r\n type: NavigationType.persist,\r\n },\r\n runProgress: false,\r\n menuIconImg: \"executive-summary.svg\",\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return true;\r\n },\r\n },\r\n children: [\r\n {\r\n path: \"\",\r\n component: ExecutiveSummaryComponent,\r\n data: {\r\n displayTitle: \"executive-summary\",\r\n onForwardNavigation: {\r\n type: NavigationType.persist,\r\n },\r\n disableCurrencyPopup: true,\r\n runProgress: false,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n },\r\n ...esgRoutes,\r\n ],\r\n },\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \"screener-management\",\r\n component: ScreenerManagementComponent,\r\n data: {\r\n displayTitle: \"screener-management\",\r\n onForwardNavigation: { type: NavigationType.persist },\r\n runProgress: false,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n },\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \"customize\",\r\n component: CustomizeComponent,\r\n data: {\r\n disableCurrencyPopup: true,\r\n displayTitle: \"customize\",\r\n onForwardNavigation: { type: NavigationType.persist },\r\n runProgress: false,\r\n menuIconImg: \"customize-button.svg\",\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return true;\r\n },\r\n },\r\n },\r\n {\r\n path: \"offerings\",\r\n component: OfferingsComponent,\r\n data: {\r\n displayTitle: \"offerings\",\r\n onForwardNavigation: { type: NavigationType.persist },\r\n runProgress: false,\r\n menuIconImg: \"action-levers-button.svg\",\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return true;\r\n },\r\n },\r\n children: [\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \"\",\r\n component: OfferingComponent,\r\n data: {\r\n displayTitle: \"offerings\",\r\n onForwardNavigation: {\r\n type: NavigationType.persist,\r\n },\r\n runProgress: false,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n },\r\n {\r\n resolve: [AppInsightsRunCompleteResolver],\r\n path: \":offering\",\r\n component: OfferingComponent,\r\n data: {\r\n disableCurrencyPopup: true,\r\n onForwardNavigation: {\r\n type: NavigationType.persist,\r\n },\r\n runProgress: false,\r\n canActivate: (stage: string = \"\", activePages: {[ key: string]: any }) => {\r\n return true;\r\n },\r\n isVisible: () => {\r\n return false;\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n","import { EMPTY, of, switchMap } from 'rxjs';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { IAnalyticsSendInput } from '@wtw/platform/interfaces';\r\nimport { ApplicationInsightsService, ClientService, RunService } from '@wtw/platform/services';\r\nimport { Subscription, take } from 'rxjs';\r\nimport { AppInsightsProxy } from '../api/AppInsightsController';\r\nimport { AppInsightsEventAction } from '../shared/enums/app-insights-event-action';\r\nimport { AppInsightsEventCategory } from '../shared/enums/app-insights-event-category';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class EsgAppInsightsService implements OnDestroy {\r\n constructor(\r\n private insightsService: ApplicationInsightsService,\r\n private _appInsightsProxy: AppInsightsProxy,\r\n private _runService: RunService,\r\n private _clientService: ClientService) \r\n {}\r\n\r\n private subscriptions$ = new Subscription();\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions$.unsubscribe();\r\n }\r\n\r\n // Temporary persistence to reduce server calls\r\n // Has run/screener been marked as completed for this user\r\n appInsightsRunCompleted: number;\r\n\r\n logInsight(runId: number, eventCategory: string, eventAction, additionalFields = null) {\r\n const insight = {\r\n eventCategory: eventCategory,\r\n eventAction: eventAction,\r\n runId: runId,\r\n addtionalFields: additionalFields\r\n } as IAnalyticsSendInput;\r\n\r\n if(additionalFields) {\r\n insight.addtionalFields = additionalFields\r\n }\r\n\r\n this.insightsService.send(insight);\r\n }\r\n\r\n // Check if the run is marked as \"RunCompleted\"\r\n // If not insert a new record\r\n markRunAsComplete() {\r\n // Subscribe to the run in order to check the current client\r\n // This is required, otherwise by the time the Platform Insights service is called, the underlying client replaysubject may not be ready.\r\n this.subscriptions$.add(this._runService.activeRun\r\n .pipe(\r\n take(1),\r\n switchMap((run)=> {\r\n if(this.appInsightsRunCompleted !== run.runId) {\r\n return this._appInsightsProxy.checkRunCompleted(run.runId)\r\n .pipe(\r\n switchMap((runCompleted)=>{\r\n // No record found in database\r\n if(!runCompleted.data) {\r\n if(!this._clientService.currentClient || this._clientService.currentClient.clientId !== run.info.clientId) {\r\n return this._clientService.loadById(run.info.clientId).pipe(\r\n switchMap(()=> {\r\n return this._appInsightsProxy.markRunCompleted(run.runId).pipe(\r\n switchMap(()=>{\r\n this.logInsight(run.runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNCOMPLETED);\r\n return EMPTY;\r\n })\r\n );\r\n })\r\n );\r\n }\r\n else {\r\n return this._appInsightsProxy.markRunCompleted(run.runId).pipe(\r\n switchMap(()=>{\r\n this.logInsight(run.runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNCOMPLETED);\r\n return EMPTY;\r\n })\r\n );\r\n }\r\n }\r\n else {\r\n return of(this.appInsightsRunCompleted = run.runId);\r\n }\r\n })\r\n )\r\n }\r\n else {\r\n return EMPTY;\r\n }\r\n })\r\n ).subscribe());\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ModelNavBarService } from \"@wtw/platform/services\";\r\n\r\n@Injectable()\r\nexport class ESGModelNavBarService implements ModelNavBarService {\r\n constructor() {}\r\n\r\n showRunManagerMenuItem = false;\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { map } from \"rxjs\";\r\nimport { ReferenceDataProxy } from \"../api/ReferenceDataController\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ReferenceDataService {\r\n constructor(private referenceDataProxy: ReferenceDataProxy) {}\r\n\r\n pics6Industries$ = this.referenceDataProxy.pics6Industries().pipe(\r\n map((result) => {\r\n return result.data;\r\n })\r\n );\r\n\r\n employeeBuckets$ = this.referenceDataProxy.employeeBuckets().pipe(\r\n map((result) => {\r\n return result.data;\r\n })\r\n );\r\n\r\n revenueBuckets$ = this.referenceDataProxy.revenueBuckets().pipe(\r\n map((result) => {\r\n return result.data;\r\n })\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, Resolve } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { EsgAppInsightsService } from '../esg-app-insights-service';\r\n\r\n// **********************************************\r\n// Any navigation event or UI action should cause a \"Run Completed\" to be logged to AppInsights\r\n// Add this resolver to any route that needs to raise a \"RunComplete\" event\r\n// There is currently one exception to this rule which is the \"Executive Summary\" - navigating to this page should not fire an Insight\r\n// Not sure whether this is the best way to achieve this (eg. could have injected a service which listens to route changes) \r\n// Something on the route itself looked like it may be easier to maintain though so resolver was chosen\r\n// **********************************************\r\n@Injectable({ providedIn: 'root' })\r\n export class AppInsightsRunCompleteResolver implements Resolve {\r\n \r\n constructor(\r\n private _esgAppInsightsService: EsgAppInsightsService,\r\n ) {}\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean {\r\n this._esgAppInsightsService.markRunAsComplete(); \r\n return true;\r\n }\r\n}\r\n\r\n\r\n","import { EsgAppInsightsService } from 'src/app/services/esg-app-insights-service';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BenchmarkingSelection, ESGScoring, MetricType } from \"../api/generated\";\r\nimport { ScreenerSettings } from \"../api/generated/ScreenerSettings\";\r\nimport { ExistingScreener } from \"../api/generated/ExistingScreener\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ScreenerSettingsExistModalData } from \"../shared/components/screener-settings-exist-modal/screener-settings-exist-modal-data\";\r\nimport { EditScreenerModalData } from \"../shared/components/edit-screener-modal/edit-screener-modal-data\";\r\nimport {\r\n BehaviorSubject,\r\n EMPTY,\r\n exhaustMap,\r\n filter,\r\n from,\r\n map,\r\n Observable,\r\n of,\r\n repeat,\r\n Subject,\r\n switchMap,\r\n take,\r\n tap,\r\n withLatestFrom,\r\n} from \"rxjs\";\r\nimport {\r\n ClientService,\r\n ModalService,\r\n RunService,\r\n} from \"@wtw/platform/services\";\r\nimport { ApiResult } from \"@wtw/platform/api\";\r\nimport { ScreenerSettingsExistModalComponent } from \"../shared/components/screener-settings-exist-modal/screener-settings-exist-modal.component\";\r\nimport { IModalConfirmResult } from \"@wtw/platform/interfaces\";\r\nimport { EditScreenerModalComponent } from \"../shared/components/edit-screener-modal/edit-screener-modal.component\";\r\nimport { ScreenersProxy } from \"../api/ScreenersController\";\r\nimport { RunsProxy } from \"@wtw/platform/api/proxies\";\r\nimport { CreateRunModel } from \"@wtw/platform/api/dtos\";\r\nimport { AppInsightsEventAction } from \"../shared/enums/app-insights-event-action\";\r\nimport { AppInsightsEventCategory } from \"../shared/enums/app-insights-event-category\";\r\nimport { ComparisonCompany } from '../api/generated/ComparisonCompany';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ScreenersService {\r\n customisationLocalisationKey = \"CURRENT_MODEL.PAGES.CUSTOMIZE\";\r\n\r\n constructor(\r\n private translateService: TranslateService,\r\n private runService: RunService,\r\n private screenerProxy: ScreenersProxy,\r\n private modalService: ModalService,\r\n private clientService: ClientService,\r\n private runProxy: RunsProxy,\r\n private esgAppInsightsService: EsgAppInsightsService\r\n ) {}\r\n\r\n uiSignal_SettingActiveScreener = this.getLocalizationKeyValue(\".SETTING-ACTIVE-SCREENER-SPINNER-MESSAGE\");\r\n uiSignal_SearchingForExistingScreener = this.getLocalizationKeyValue(\".SEARCHING-EXISTING-SCREENER-SPINNER-MESSAGE\");\r\n uiSignal_CreateNewScreener = this.getLocalizationKeyValue(\".CREATE-NEW-SCREENER-SPINNER-MESSAGE\");\r\n uiSignal_CreateNewScreenerData = this.getLocalizationKeyValue(\".CREATE-NEW-SCREENER-DATA-SPINNER-MESSAGE\");\r\n AppInsightsEventAction = AppInsightsEventAction;\r\n AppInsightsEventCategory = AppInsightsEventCategory;\r\n // Shared stream to communicate changes to financials component select options\r\n financialsUpdated$ = new BehaviorSubject<{name: string, value: string | number}[]>([]);\r\n // Comparison companies saved as part of the existing run\r\n comparisonCompanies$ = new BehaviorSubject(null);\r\n // If changes, then use this to check screener settings changed status\r\n comparisonCompaniesChanged$ = new BehaviorSubject(null);\r\n\r\n private save$ = new Subject();\r\n private jobSuccessStatus = \"Success\";\r\n private jobFailedStatus = \"Failed\";\r\n private jobStatusPollInternval = 3000;\r\n\r\n // User has requested the save action on customisation screen\r\n save(data: ESGScoring) {\r\n this.save$.next(data);\r\n }\r\n\r\n // As a result of the save action, 1 of 2 things may happen\r\n // If existing settings match is found then show \"settings exist\" modal\r\n // If no match found, show \"create new\" modal\r\n // Depending on which stream we end up in, we will eventually switch out to the results of one or other modal response and return\r\n screenerCreated$ = this.save$.pipe(\r\n withLatestFrom(\r\n this.runService.activeRun,\r\n this.clientService.currentClientChanged\r\n ),\r\n exhaustMap(([clonedData, activeRun, client]) => {\r\n // Check if the maximum allowed number of screeners has been exceeded\r\n return this.screenerProxy\r\n .screenerCount(client.clientId)\r\n .uiSignal(\"\")\r\n .pipe(\r\n map((result) => result.data),\r\n switchMap((screenerCount) => {\r\n if (screenerCount.count >= screenerCount.maxAllowed) {\r\n return from(\r\n this.modalService.alert(\r\n this.translateService.instant(\r\n this.customisationLocalisationKey +\r\n \".MAX-SCREENERS-EXCEEDED-MESSAGE\"\r\n )\r\n )\r\n ).pipe(map((_) => false));\r\n } else {\r\n // Search for an existing client/screener combination\r\n return this.searchForExistingScreenerSettings(\r\n activeRun.info.clientId,\r\n clonedData\r\n )\r\n .uiSignal({\r\n debugInfo: this.uiSignal_SearchingForExistingScreener,\r\n uiLabel: this.uiSignal_SearchingForExistingScreener,\r\n })\r\n .pipe(\r\n // Existing screener settings found?\r\n switchMap((existingScreener: ApiResult) => {\r\n if (existingScreener.data) {\r\n // Screener settings were found...\r\n // Set up \"existing screener found\" modal\r\n return this.setUpExistingScreenerFoundModal(\r\n existingScreener,\r\n activeRun.info.clientId\r\n );\r\n } else if (!existingScreener.data) {\r\n // No screener settings were found...\r\n // Set up \"new screener\" modal\r\n return this.setUpCreateNewScreenerModal(\r\n activeRun.runId,\r\n activeRun.info.clientId,\r\n clonedData\r\n );\r\n }\r\n })\r\n );\r\n }\r\n })\r\n );\r\n })\r\n );\r\n\r\n private getLocalizationKeyValue(key: string): string {\r\n return this.translateService.instant(\r\n this.customisationLocalisationKey + key\r\n );\r\n }\r\n\r\n // Api call to search for an existing client/screener combination\r\n private searchForExistingScreenerSettings(\r\n clientId: number,\r\n data: ESGScoring\r\n ) {\r\n var screenerSettings = this.createScreenerSettings(\r\n data.benchmarkingSelections[0],\r\n data.metricTypes,\r\n clientId,\r\n data.isUsingIndustryDefaultData,\r\n data.comparisonCompanies\r\n );\r\n return this.screenerProxy.searchScreenerSettings(screenerSettings);\r\n }\r\n\r\n // Existing screener modal\r\n private setUpExistingScreenerFoundModal(\r\n existinScreener: ApiResult,\r\n clientId: number\r\n ): Observable {\r\n const modalData = this.createExistingScreenerModalData(\r\n existinScreener.data\r\n );\r\n return from(\r\n this.modalService.confirmWithComponent(\r\n ScreenerSettingsExistModalComponent,\r\n {\r\n data: modalData,\r\n }\r\n )\r\n ).pipe(\r\n switchMap((modalResponse: IModalConfirmResult) => {\r\n if (modalResponse.result) {\r\n // Has user decided to set this existing screener as active?\r\n if (modalData.setScreenerAsActiveForUser) {\r\n // Yes, set screener as active\r\n return this.updateActiveScreener(modalData.runId, clientId);\r\n } else {\r\n // No, user does not want to load screener, return home\r\n return of(modalData.runId);\r\n }\r\n } else {\r\n // user clicked cancel\r\n return EMPTY;\r\n }\r\n })\r\n );\r\n }\r\n\r\n // New screener modal\r\n private setUpCreateNewScreenerModal(\r\n runId: number,\r\n clientId: number,\r\n data: ESGScoring\r\n ) {\r\n const newScreenerModalData = this.createNewScreenerModalData(data);\r\n return from(\r\n this.modalService.confirmWithComponent(EditScreenerModalComponent, {\r\n data: newScreenerModalData,\r\n })\r\n ).pipe(\r\n // Check screener modal response\r\n switchMap((modalResponse: IModalConfirmResult) => {\r\n // New screener requested?\r\n if (modalResponse.result) {\r\n // Yes, new screener required, kick of data creation\r\n return this.createScreener(data, clientId, modalResponse).pipe(\r\n // Take the screener Id and request a dequeuer job via orchestration function\r\n switchMap((createScreenerResponse) => {\r\n const screenerId = createScreenerResponse.data;\r\n return this.requestNewScreenerCreateDataJob(clientId, screenerId)\r\n .pipe(\r\n switchMap((jobKeyResponse) => {\r\n // If we got a job key back then start polling the job check status\r\n // We are expecting the RContainer/Orchestration function to output an MDS file and set job to \"Success\" or \"Failure\"\r\n return this.pollScreenerDataReady(\r\n jobKeyResponse.data,\r\n runId,\r\n clientId,\r\n screenerId\r\n );\r\n })\r\n )\r\n .uiSignal({\r\n debugInfo: this.uiSignal_CreateNewScreenerData,\r\n uiLabel: this.uiSignal_CreateNewScreenerData,\r\n });\r\n })\r\n );\r\n } else {\r\n // user clicked cancel\r\n return EMPTY;\r\n }\r\n })\r\n );\r\n }\r\n\r\n // Call Api to orchestrate creation of new Screener Data\r\n requestNewScreenerCreateDataJob(\r\n clientId: number,\r\n screenerId: number\r\n ) {\r\n return this.screenerProxy.requestNewScreenerCreateDataJob(\r\n clientId,\r\n screenerId\r\n );\r\n }\r\n\r\n // Polls the webapi and checks whether the mds data file is ready\r\n pollScreenerDataReady(\r\n jobKey: number,\r\n runId: number,\r\n clientId: number,\r\n screenerId: number\r\n ) {\r\n return this.screenerProxy.screenerDataGenerationStatus(jobKey).pipe(\r\n repeat({ delay: this.jobStatusPollInternval }),\r\n filter(\r\n (response) =>\r\n response.data === this.jobSuccessStatus ||\r\n response.data === this.jobFailedStatus\r\n ),\r\n take(1),\r\n switchMap((jobstatus) => {\r\n // Was the job successful?\r\n if (jobstatus.data === this.jobSuccessStatus) {\r\n // Yes, kick off run creation\r\n return this.createRun(clientId, screenerId);\r\n } else if (jobstatus.data === this.jobFailedStatus) {\r\n // No, return to original run\r\n return of(runId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private updateActiveScreener(\r\n runId: number,\r\n clientId: number\r\n ): Observable {\r\n return this.screenerProxy\r\n .updateActiveScreener(runId, clientId)\r\n .uiSignal({\r\n debugInfo: this.uiSignal_SettingActiveScreener,\r\n uiLabel: this.uiSignal_SettingActiveScreener,\r\n })\r\n .pipe(\r\n map((_) => {\r\n return runId;\r\n })\r\n );\r\n }\r\n\r\n // Call the run proxy and request a new run\r\n private createRun(clientId, screenerId): Observable {\r\n const createRunModel = this.createRunModel(clientId, screenerId);\r\n \r\n return this.runProxy.createRun(createRunModel).pipe(\r\n tap((runCreatedResponse)=>{\r\n this.esgAppInsightsService\r\n .logInsight(runCreatedResponse.data.id, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.RUNCREATED);\r\n }),\r\n map((runCreatedResponse) => {\r\n return parseInt(runCreatedResponse.data.id);\r\n })\r\n );\r\n }\r\n\r\n // Create screener\r\n private createScreener(\r\n data: ESGScoring,\r\n clientId: number,\r\n modalResponse: IModalConfirmResult\r\n ) {\r\n const screenerSettings = this.createScreenerSettings(\r\n data.benchmarkingSelections[0],\r\n data.metricTypes,\r\n clientId,\r\n data.isUsingIndustryDefaultData,\r\n data.comparisonCompanies,\r\n modalResponse.data.screenerName,\r\n modalResponse.data.screenerDescription,\r\n modalResponse.data.setScreenerAsActiveForUser\r\n );\r\n\r\n // create the new screener, start the data processing and generate a run\r\n return this.screenerProxy.createScreener(screenerSettings).uiSignal({\r\n debugInfo: this.uiSignal_CreateNewScreener,\r\n uiLabel: this.uiSignal_CreateNewScreener,\r\n });\r\n }\r\n\r\n // Modal properties for create new screener\r\n private createNewScreenerModalData(data: ESGScoring) {\r\n \r\n return {\r\n heading: this.getLocalizationKeyValue(\r\n \".CREATE_NEW_SCREENER_MODAL.HEADER\"\r\n ),\r\n cancelButtonText: this.getLocalizationKeyValue(\r\n \".CREATE_NEW_SCREENER_MODAL.MODAL_CANCEL_BUTTON\"\r\n ),\r\n acceptButtonText: this.getLocalizationKeyValue(\r\n \".CREATE_NEW_SCREENER_MODAL.MODAL_ACCEPT_BUTTON\"\r\n ),\r\n showSetAsActiveOption: true,\r\n showIndustrydataMessage: this.getIndustryFlagForCreatescreener(data),\r\n } as EditScreenerModalData;\r\n }\r\n\r\n // When creating a new run we need to generate a basic createRunModel object\r\n private createRunModel(clientId: number, screenerId: number): CreateRunModel {\r\n return {\r\n clientId: clientId,\r\n name: \"Auto created run for ESG\",\r\n description: \"Runs manager was bypassed. Created run automatically\",\r\n isNotificationRequired: false,\r\n isCurrentUserSubscribed: false,\r\n options: {\r\n screenerId: screenerId,\r\n },\r\n } as CreateRunModel;\r\n }\r\n\r\n // Create a screener settings object\r\n private createScreenerSettings(\r\n benchmarkingSelection: BenchmarkingSelection,\r\n metricTypes: MetricType[],\r\n clientId: number,\r\n isUsingIndustryDefaultData: boolean,\r\n comparisonCompanies?: ComparisonCompany[],\r\n screenerName?: string,\r\n screenerDescription?: string,\r\n isActiveScreener?: boolean\r\n ): ScreenerSettings {\r\n return {\r\n benchmarkingSelection,\r\n metricTypes,\r\n clientId,\r\n isUsingIndustryDefaultData,\r\n comparisonCompanies,\r\n screenerName,\r\n screenerDescription,\r\n isActiveScreener\r\n } as ScreenerSettings;\r\n }\r\n\r\n // Modal properties for exsisting screener settings found\r\n private createExistingScreenerModalData(\r\n existingScreener: ExistingScreener\r\n ): ScreenerSettingsExistModalData {\r\n return {\r\n heading: this.getLocalizationKeyValue(\".SCREENER_EXISTS_MODAL.HEADER\"),\r\n paragraph: this.getLocalizationKeyValue(\r\n \".SCREENER_EXISTS_MODAL.PARAGRAPH\"\r\n ),\r\n cancelButtonText: this.getLocalizationKeyValue(\r\n \".SCREENER_EXISTS_MODAL.MODAL_CANCEL_BUTTON\"\r\n ),\r\n acceptButtonText: this.getLocalizationKeyValue(\r\n \".SCREENER_EXISTS_MODAL.MODAL_ACCEPT_BUTTON\"\r\n ),\r\n screenerName: existingScreener.screenerName,\r\n runId: existingScreener.runId,\r\n } as ScreenerSettingsExistModalData;\r\n }\r\n\r\n private getIndustryFlagForCreatescreener(data: ESGScoring) : boolean\r\n {\r\n var showIndustrydataflag = false;\r\n data.metricTypes?.forEach((metrictype) => {\r\n var isSelected = metrictype.items.find((metric)=>metric.key).selected;\r\n var isIndustryDefault = metrictype.items.find((metric)=>metric.key).isIndustryDefault;\r\n if(isIndustryDefault && isSelected)\r\n {\r\n showIndustrydataflag = true;\r\n return;\r\n }\r\n })\r\n return showIndustrydataflag;\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-app-header\",\r\n templateUrl: \"./app-header.component.html\",\r\n styleUrls: [\"./app-header.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AppHeaderComponent {\r\n @Input() backlinkText: string;\r\n @Input() backlinkLocation: string;\r\n @Input() pageTitle: string;\r\n @Input() hideBreadcrumb: boolean;\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
{{ pageTitle }}
\r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-button-menu\",\r\n templateUrl: \"./button-menu.component.html\",\r\n styleUrls: [\"./button-menu.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonMenuComponent {\r\n @Input() items: ButtonMenuItemVM[];\r\n\r\n @Output() itemSelected = new EventEmitter();\r\n}\r\n\r\nexport class ButtonMenuItemVM {\r\n text: string;\r\n key: string;\r\n selected: boolean;\r\n}\r\n","
    \r\n
  • \r\n {{ item.text }}\r\n
  • \r\n
\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-button-tabs\",\r\n templateUrl: \"./button-tabs.component.html\",\r\n styleUrls: [\"./button-tabs.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonTabsComponent {\r\n @Input() items: ButtonTabItemVM[];\r\n}\r\n\r\nexport class ButtonTabItemVM {\r\n text: string;\r\n route: string;\r\n}\r\n","
    \r\n \r\n {{ item.text }}\r\n \r\n
\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-card\",\r\n templateUrl: \"./card.component.html\",\r\n styleUrls: [\"./card.component.scss\"],\r\n})\r\nexport class CardComponent {\r\n @Input() heading: string;\r\n @Input() paragraph: string;\r\n @Input() linkLocation: string;\r\n @Input() linkText: string;\r\n}\r\n","
\r\n
\r\n

{{ heading }}

\r\n

\r\n \r\n
\r\n
\r\n \r\n
{{ linkText }}
\r\n
\r\n
\r\n
\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { EsgCircleChartData } from \"../../interfaces/esg-circle-chart-data\";\r\nimport { EsgCircleChartOptions } from \"../../interfaces/esg-circle-chart-options\";\r\n\r\n@Component({\r\n selector: \"esg-circle-chart-percentages\",\r\n templateUrl: \"circle-chart-percentages.component.html\",\r\n styleUrls: [\"./circle-chart-percentages.component.scss\"],\r\n})\r\nexport class CircleChartPercentagesComponent implements AfterViewInit {\r\n\r\n defaultHeight = 100;\r\n defaultLineWeight = 22;\r\n defaultMaxValue = 100;\r\n\r\n @Input() data: EsgCircleChartData[]\r\n @Input() options: EsgCircleChartOptions\r\n @ViewChild(\"chart\") chart: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n this.createChart();\r\n }\r\n\r\n createChart() {\r\n this.data.forEach((c, i) => {\r\n const canvas = this.chart.nativeElement;\r\n const ctx = canvas.getContext(\"2d\");\r\n if (i == 0) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n }\r\n let lastend = 1.5 * Math.PI;\r\n let myTotal = c?.maxValue ?? this.defaultMaxValue;\r\n\r\n const w = canvas.width / 2;\r\n const h = canvas.height / 2;\r\n const length = (c.values[i].score / myTotal) * 2 * Math.PI;\r\n const radius = h - (i * (this.options?.lineWeight ?? this.defaultLineWeight)) / 2;\r\n ctx.fillStyle = c.colour;\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n ctx.arc(w, h, radius, lastend, lastend + length, false);\r\n ctx.lineTo(w, h);\r\n ctx.fill();\r\n lastend += length;\r\n\r\n ctx.fillStyle = c.secondaryColor;\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n ctx.arc(w, h, radius, lastend, 3.5 * Math.PI, false);\r\n ctx.lineTo(w, h);\r\n ctx.fill();\r\n\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n const len = 2 * Math.PI;\r\n const r = h - ((i + 1) * (this.options.lineWeight ?? this.defaultLineWeight)) / 2 + 2;\r\n ctx.arc(w, h, r, lastend, lastend + len, false);\r\n ctx.fill();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n
{{ data[0].values[0].score }}%
\r\n
{{ data[0].label1 }}
\r\n
\r\n
{{ data[0].values[1].score }}%
\r\n
{{ data[0].label2 }}
\r\n
\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n Input,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { EsgCircleChartData } from \"../../interfaces/esg-circle-chart-data\";\r\nimport { EsgCircleChartOptions } from \"../../interfaces/esg-circle-chart-options\";\r\n\r\n@Component({\r\n selector: \"esg-circle-chart\",\r\n templateUrl: \"circle-chart.component.html\",\r\n styleUrls: [\"./circle-chart.component.scss\"],\r\n})\r\nexport class CircleChartComponent implements AfterViewInit {\r\n\r\n defaultHeight = 100;\r\n defaultLineWeight = 22;\r\n defaultMaxValue = 100;\r\n\r\n // @Input()\r\n // data: {\r\n // value: number;\r\n // maxValue: number;\r\n // colour: string;\r\n // secondaryColor: string;\r\n // }[];\r\n\r\n @Input() options: EsgCircleChartOptions\r\n @Input() data: EsgCircleChartData[]\r\n @ViewChild(\"chart\") chart: ElementRef;\r\n\r\n ngAfterViewInit() {\r\n this.createChart();\r\n }\r\n\r\n createChart() {\r\n this.data.forEach((c, i) => {\r\n const canvas = this.chart.nativeElement;\r\n const ctx = canvas.getContext(\"2d\");\r\n if (i == 0) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n }\r\n let lastend = 1.5 * Math.PI;\r\n let myTotal = c?.maxValue ?? this.defaultMaxValue;\r\n\r\n const w = canvas.width / 2;\r\n const h = canvas.height / 2;\r\n const length = (c.values[0].score / myTotal) * 2 * Math.PI;\r\n const radius = h - (i * (this.options?.lineWeight ?? this.defaultLineWeight)) / 2;\r\n ctx.fillStyle = c.colour;\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n ctx.arc(w, h, radius, lastend, lastend + length, false);\r\n ctx.lineTo(w, h);\r\n ctx.fill();\r\n lastend += length;\r\n\r\n ctx.fillStyle = c.secondaryColor;\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n ctx.arc(w, h, radius, lastend, 3.5 * Math.PI, false);\r\n ctx.lineTo(w, h);\r\n ctx.fill();\r\n\r\n ctx.fillStyle = \"white\";\r\n ctx.lineWidth = 0;\r\n ctx.beginPath();\r\n ctx.moveTo(w, h);\r\n const len = 2 * Math.PI;\r\n const r = h - ((i + 1) * (this.options?.lineWeight ?? this.defaultLineWeight)) / 2 + 2;\r\n ctx.arc(w, h, r, lastend, lastend + len, false);\r\n ctx.fill();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
{{ options.primaryText }}
\r\n
{{ options.secondaryText }}
\r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { ConfigService } from \"@wtw/platform/services\";\r\nimport { map } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"esg-coming-soon\",\r\n templateUrl: \"./coming-soon.component.html\",\r\n styleUrls: [\"./coming-soon.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ComingSoonComponent {\r\n constructor(private _config: ConfigService) {}\r\n\r\n email$ = this._config.settings.pipe(map((s) => s.contactEmail));\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{ \"CURRENT_MODEL.GLOBAL.COMING_SOON.TITLE\" | translate }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n","import { AppInsightsEventAction } from 'src/app/shared/enums/app-insights-event-action';\r\nimport { AppInsightsEventCategory } from './../../enums/app-insights-event-category';\r\nimport { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { IModalConfirmation } from \"@wtw/platform/interfaces\";\r\nimport { UrlHelperService } from \"@wtw/platform/services/url-helper.service\";\r\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\r\nimport { Subject } from \"rxjs\";\r\nimport { EsgAppInsightsService } from \"src/app/services/esg-app-insights-service\";\r\nimport { DownloadInfo } from \"./download-info\";\r\nimport { DownloadModalData } from \"./download-modal-data\";\r\n\r\n@Component({\r\n selector: \"esg-download-modal\",\r\n templateUrl: \"./download-modal.component.html\",\r\n styleUrls: [\"./download-modal.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DownloadModalComponent implements IModalConfirmation {\r\n data: DownloadModalData;\r\n\r\n onClose = new Subject();\r\n\r\n selectedDownload: DownloadInfo;\r\n\r\n constructor(\r\n private bsModalRef: BsModalRef,\r\n private esgAppInsightsService: EsgAppInsightsService\r\n ) {}\r\n\r\n show(): void {}\r\n\r\n close() {\r\n this.onClose.next(true);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n selectReportClick(download: DownloadInfo) {\r\n this.selectedDownload = this.selectedDownload === download ? null : download;\r\n\r\n }\r\n\r\n download() {\r\n const runId = this.data.runId;\r\n \r\n const additionalFields = { ReportName: this.selectedDownload.REPORT_IDENTIFIER}\r\n this.esgAppInsightsService.logInsight(runId, AppInsightsEventCategory.CLIENT_RUNS, AppInsightsEventAction.REPORTDOWNLOADED, additionalFields);\r\n \r\n window.location\r\n .assign(`${UrlHelperService.getPlatformUrl()}/proxy/binary/powerpoint?runId=${runId}&reportType=${this.selectedDownload.REPORT_IDENTIFIER}`);\r\n }\r\n}\r\n","
\r\n
\r\n

{{ data.heading }}

\r\n \r\n ×\r\n \r\n
\r\n
\r\n

{{ data.paragraph }}

\r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {{ download.NAME }}
    \r\n
    {{ download.DESCRIPTION }}
    \r\n
    \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ data.downloadButtonText }}
\r\n \r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { IModalConfirmation } from \"@wtw/platform/interfaces\";\r\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\r\nimport { Subject, filter, Subscription } from \"rxjs\";\r\nimport { EditScreenerModalData } from \"./edit-screener-modal-data\";\r\nimport {\r\n FormGroup,\r\n FormControl,\r\n Validators,\r\n FormBuilder\r\n} from \"@angular/forms\";\r\n@Component({\r\n selector: \"esg-edit-screener-modal\",\r\n templateUrl: \"./edit-screener-modal.component.html\",\r\n styleUrls: [\"./edit-screener-modal.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EditScreenerModalComponent implements IModalConfirmation, OnDestroy, OnInit {\r\n subscriptions = new Subscription;\r\n data: EditScreenerModalData;\r\n originalData: EditScreenerModalData;\r\n onClose = new Subject();\r\n form: FormGroup;\r\n screenerName = new FormControl(\"\", Validators.required)\r\n screenerDescription = new FormControl(\"\", Validators.required)\r\n checkBoxSetAsActive = new FormControl(false)\r\n \r\n constructor(\r\n private bsModalRef: BsModalRef,\r\n formBuilder: FormBuilder\r\n ) {\r\n\r\n this.form = formBuilder.group({\r\n \"screenerName\": this.screenerName,\r\n \"screenerDescription\": this.screenerDescription,\r\n \"checkBoxSetAsActive\": this.checkBoxSetAsActive\r\n });\r\n\r\n this.subscriptions.add(this.form.valueChanges\r\n .pipe(\r\n filter((_) => this.form.valid)\r\n ).subscribe((formData) => {\r\n // If it's is an edit as opposed to a new screener \r\n // ensure that the form values are different otherwise don't allow submission\r\n if(this.originalData.screenerName === formData.screenerName && \r\n this.originalData.screenerDescription === formData.screenerDescription) {\r\n this.form.setErrors({ 'invalid': true });\r\n }\r\n else {\r\n this.data.screenerName = formData.screenerName;\r\n this.data.screenerDescription = formData.screenerDescription;\r\n this.data.setScreenerAsActiveForUser = formData.checkBoxSetAsActive;\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.originalData = { ...this.data };\r\n this.screenerName.patchValue(this.data.screenerName);\r\n this.screenerDescription.patchValue(this.data.screenerDescription);\r\n }\r\n\r\n show(): void {}\r\n\r\n close(createRun: boolean) {\r\n this.onClose.next(createRun);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n

{{data.heading}}

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n {{\r\n \"CURRENT_MODEL.GLOBAL.DEFAULT_INDUSTRY_MESSAGES.SHOW_INDUSTRYDATA_MESSAGE\" \r\n | translate\r\n }}\r\n
\r\n \r\n {{\r\n \"CURRENT_MODEL.PAGES.CUSTOMIZE.CREATE_NEW_SCREENER_MODAL.FORM_LABEL_SETASACTIVE\" \r\n | translate\r\n }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{data.acceptButtonText}}
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-graph-bar\",\r\n templateUrl: \"./graph-bar.component.html\",\r\n styleUrls: [\"./graph-bar.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GraphBarComponent implements AfterViewInit {\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.checkOffsetLabel();\r\n this.cdr.detectChanges();\r\n }\r\n showOffsetLabel: boolean;\r\n\r\n @Input() label: string;\r\n @Input() labelWidthPixels: number;\r\n @Input() heightPixels: number;\r\n @Input() percentageValue: number;\r\n @Input() percentageLabel: number;\r\n @Input() backgroundColor: string = \"#ddd\";\r\n @Input() barColor: string = \"blue\";\r\n @Input() percentLabelColor: string = \"white\";\r\n @Input() offsetPercentLabelColor: string = \"black\";\r\n\r\n @ViewChild(\"bar\") bar: ElementRef;\r\n\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n private onResize(event) {\r\n this.checkOffsetLabel();\r\n }\r\n\r\n private checkOffsetLabel() {\r\n this.showOffsetLabel = this.bar.nativeElement.offsetWidth <= 40;\r\n }\r\n}\r\n","\r\n \r\n {{ label }}\r\n \r\n
\r\n \r\n \r\n {{ percentageLabel }}\r\n
\r\n \r\n \r\n {{ percentageLabel }}\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { map } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"esg-next-previous\",\r\n templateUrl: \"./next-previous.component.html\",\r\n styleUrls: [\"./next-previous.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NextPreviousComponent {\r\n constructor(private activatedRoute: ActivatedRoute) {}\r\n\r\n @Input() showCurrent = true;\r\n\r\n viewModel$ = this.activatedRoute.url.pipe(\r\n map((url) => {\r\n const syblingRoutes = this.activatedRoute.parent.routeConfig.children\r\n .filter((child) => child.path !== \"\")\r\n .filter((child) => !child.path.startsWith(\"~\"));\r\n const currentRouteIndex: number = syblingRoutes.findIndex(\r\n (s) => s.path === url[0].path\r\n );\r\n return {\r\n current: syblingRoutes[currentRouteIndex],\r\n previous:\r\n currentRouteIndex === 0 ? null : syblingRoutes[currentRouteIndex - 1],\r\n next:\r\n currentRouteIndex === syblingRoutes.length\r\n ? null\r\n : syblingRoutes[currentRouteIndex + 1],\r\n };\r\n })\r\n );\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n {{\r\n \"CURRENT_MODEL.RUN_PAGES.\" + vm.previous.path.toUpperCase()\r\n | translate\r\n }}\r\n
\r\n \r\n
\r\n \r\n
\r\n {{\r\n \"CURRENT_MODEL.RUN_PAGES.\" + vm.next.path.toUpperCase() | translate\r\n }}\r\n
\r\n
\r\n
\r\n\r\n

\r\n {{ \"CURRENT_MODEL.RUN_PAGES.\" + vm.current.path.toUpperCase() | translate }}\r\n

\r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport * as Highcharts from \"highcharts\";\r\nimport more from \"highcharts/highcharts-more\";\r\nmore(Highcharts);\r\nimport Xrange from 'highcharts/modules/xrange';\r\nimport { RangeChartOptions } from \"../../interfaces/range-chart-options\";\r\nXrange(Highcharts);\r\n\r\n@Component({\r\n selector: \"esg-range-chart\",\r\n templateUrl: \"range-chart.component.html\",\r\n styleUrls: [\"./range-chart.component.scss\"],\r\n})\r\nexport class RangeChartComponent implements OnInit {\r\n @Input() rangeChartOptions: RangeChartOptions\r\n\r\n Highcharts = Highcharts;\r\n chartOptions: Highcharts.Options;\r\n\r\n ngOnInit(): void {\r\n this.chartOptions = this.getChartOptions();\r\n }\r\n\r\n private getChartOptions() : Highcharts.Options {\r\n return {\r\n chart: {\r\n backgroundColor: null,\r\n type: 'xrange'\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n title: {\r\n text: null\r\n }, \r\n xAxis: {\r\n min: this.rangeChartOptions.minXAxis,\r\n max: this.rangeChartOptions.maxXAxis,\r\n tickInterval: 10\r\n },\r\n yAxis: {\r\n gridLineColor: 'transparent',\r\n title: {\r\n text: ''\r\n },\r\n labels: {\r\n style: {\r\n fontSize:'11px',\r\n fontWeight: 'bold',\r\n color:'black'\r\n }\r\n },\r\n categories: this.rangeChartOptions.labels,\r\n },\r\n plotOptions: {\r\n series: {\r\n borderWidth: 0,\r\n borderRadius:0,\r\n enableMouseTracking: false,\r\n dataLabels: {\r\n align: 'left',\r\n enabled: true\r\n }\r\n },\r\n column: {\r\n grouping: false,\r\n shadow: false,\r\n borderWidth: 0\r\n }\r\n },\r\n series: Array.from([this.getSeriesOptions()]), \r\n } as Highcharts.Options\r\n }\r\n\r\n private getSeriesOptions(): Highcharts.SeriesOptionsType {\r\n let data = [];\r\n this.rangeChartOptions.scores.map((score, index) => {\r\n data.push({\r\n x: score[0].score,\r\n x2: score[1].score,\r\n y:index,\r\n avg: score[2].score,\r\n color: this.rangeChartOptions.seriesColors[index]\r\n })\r\n });\r\n \r\n\r\n return {\r\n pointPadding: .02,\r\n groupPadding: 0,\r\n borderWidth: 0,\r\n showInLegend: false,\r\n data: data,\r\n dataLabels: [{\r\n enabled: true,\r\n format: 'avg: {point.avg}',\r\n style: {\r\n color: 'white',\r\n textOutline: 'none'\r\n } \r\n },\r\n {\r\n x: 0,\r\n align: 'right',\r\n format: '{point.x2}',\r\n style: {\r\n color: 'white',\r\n textOutline: 'none'\r\n }\r\n },\r\n {\r\n x: 0,\r\n align: 'left',\r\n format: '{point.x}',\r\n crop: false,\r\n overflow: 'allow',\r\n style: {\r\n color: 'white',\r\n textOutline: 'none'\r\n }\r\n }]\r\n } as Highcharts.SeriesOptionsType;\r\n }\r\n}\r\n\r\n\r\n","\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { EsgScoringDataUtilities } from \"../../helpers/esg-scoring-data-utilities\";\r\n\r\n@Component({\r\n selector: \"esg-score-card\",\r\n templateUrl: \"./score-card.component.html\",\r\n styleUrls: [\"./score-card.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScoreCardComponent {\r\n @Input() title: string;\r\n @Input() score: number;\r\n @Input() secondaryText: string;\r\n @Input() colorHex: string;\r\n @Input() secondaryColorHex: string;\r\n @Input() benchmarkPercent: number;\r\n @Input() benchmarkText: string;\r\n @Input() showColorBar: boolean = true;\r\n @Input() quartile: number\r\n Array = Array;\r\n EsgScoringDataUtilities = EsgScoringDataUtilities;\r\n}\r\n","
\r\n
\r\n\r\n
{{ title }}
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{ quartile }}\r\n
\r\n\r\n\r\n\r\n
{{ benchmarkText }}
\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-score-slider\",\r\n templateUrl: \"./score-slider.component.html\",\r\n styleUrls: [\"./score-slider.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScoreSliderComponent {\r\n @Input() badColorHex: string;\r\n @Input() mediumColorHex: string;\r\n @Input() goodColorHex: string;\r\n @Input() percent: number;\r\n}\r\n","
\r\n \r\n {{ percent }}\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MatCheckboxChange } from \"@angular/material/checkbox\";\r\nimport { IModalConfirmation } from \"@wtw/platform/interfaces\";\r\nimport { BsModalRef } from \"ngx-bootstrap/modal\";\r\nimport { Subject } from \"rxjs\";\r\nimport { ScreenerSettingsExistModalData } from \"./screener-settings-exist-modal-data\";\r\n\r\n@Component({\r\n selector: \"esg-screener-settings-exist-modal\",\r\n templateUrl: \"./screener-settings-exist-modal.component.html\",\r\n styleUrls: [\"./screener-settings-exist-modal.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ScreenerSettingsExistModalComponent implements IModalConfirmation {\r\n data: ScreenerSettingsExistModalData;\r\n\r\n onClose = new Subject();\r\n\r\n constructor(private bsModalRef: BsModalRef) {}\r\n\r\n show(): void {}\r\n\r\n close(loadRun: boolean) {\r\n this.onClose.next(loadRun);\r\n this.bsModalRef.hide();\r\n }\r\n\r\n toggleActiveRun(event:MatCheckboxChange) {\r\n this.data.setScreenerAsActiveForUser = event.checked;\r\n }\r\n}\r\n","
\r\n
\r\n

{{data.heading}}

\r\n \r\n ×\r\n \r\n
\r\n
\r\n \r\n {{data.screenerName}}\r\n \r\n

{{data.paragraph}}

\r\n
\r\n
\r\n \r\n
\r\n
{{data.acceptButtonText}}
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import { CircleChartPercentagesComponent } from './circle-chart-percentages/circle-chart-percentages.component';\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { AppHeaderComponent } from \"./app-header/app-header.component\";\r\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { ScoreCardComponent } from \"./score-card/score-card.component\";\r\nimport { ScoreSliderComponent } from \"./score-slider/score-slider.component\";\r\nimport { CircleChartComponent } from \"./circle-chart/circle-chart.component\";\r\nimport { CardComponent } from \"./card/card.component\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { TabsComponent } from \"./tabs/tabs.component\";\r\nimport { NextPreviousComponent } from \"./next-previous/next-previous.component\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { DownloadModalComponent } from \"./download-modal/download-modal.component\";\r\nimport { ButtonMenuComponent } from \"./button-menu/button-menu.component\";\r\nimport { SwitchComponent } from \"./switch/switch.component\";\r\nimport { ButtonTabsComponent } from \"./button-tabs/button-tabs.component\";\r\nimport { ComingSoonComponent } from \"./coming-soon/coming-soon.component\";\r\nimport { GraphBarComponent } from './graph-bar/graph-bar.component';\r\nimport { ScreenerSettingsExistModalComponent } from \"./screener-settings-exist-modal/screener-settings-exist-modal.component\";\r\nimport { EditScreenerModalComponent } from './edit-screener-modal/edit-screener-modal.component';\r\nimport { SimpleSpinnerComponent } from './simple-spinner/simple-spinner.component';\r\nimport { RangeChartComponent } from './range-chart.component.ts/range-chart.component';\r\nimport { HighchartsChartModule } from 'highcharts-angular';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppHeaderComponent,\r\n ScoreCardComponent,\r\n ScoreSliderComponent,\r\n CircleChartComponent,\r\n CircleChartPercentagesComponent,\r\n RangeChartComponent,\r\n CardComponent,\r\n TabsComponent,\r\n NextPreviousComponent,\r\n DownloadModalComponent,\r\n ButtonTabsComponent,\r\n ButtonMenuComponent,\r\n SwitchComponent,\r\n ComingSoonComponent,\r\n GraphBarComponent,\r\n ScreenerSettingsExistModalComponent,\r\n EditScreenerModalComponent,\r\n SimpleSpinnerComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FlexLayoutModule,\r\n RouterModule,\r\n FormsModule,\r\n MatCheckboxModule,\r\n MatRadioModule,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n HighchartsChartModule\r\n ],\r\n exports: [\r\n AppHeaderComponent,\r\n ScoreCardComponent,\r\n ScoreSliderComponent,\r\n CircleChartComponent,\r\n CircleChartPercentagesComponent,\r\n RangeChartComponent,\r\n CardComponent,\r\n TabsComponent,\r\n NextPreviousComponent,\r\n DownloadModalComponent,\r\n ButtonTabsComponent,\r\n ButtonMenuComponent,\r\n SwitchComponent,\r\n ComingSoonComponent,\r\n GraphBarComponent,\r\n ScreenerSettingsExistModalComponent,\r\n SimpleSpinnerComponent\r\n ],\r\n})\r\nexport class SharedComponentsModule {}\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-simple-spinner\",\r\n templateUrl: \"./simple-spinner.component.html\",\r\n styleUrls: [\"./simple-spinner.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleSpinnerComponent {}\r\n","
\r\n
\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-switch\",\r\n templateUrl: \"./switch.component.html\",\r\n styleUrls: [\"./switch.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SwitchComponent {\r\n @Input() state = true;\r\n @Input() isSelectedAvailable = true; \r\n @Input() knobWidthPixels = 20;\r\n @Input() knobColor = \"white\";\r\n @Input() colorOn = \"#007FA7\";\r\n @Input() colorOff = \"#979797\";\r\n @Input() textColor = \"white\";\r\n @Input() textOn = \"ON\";\r\n @Input() textOff = \"OFF\";\r\n @Input() textNA = \"NA\";\r\n @Input() borderPixels = 2;\r\n @Output() clicked = new EventEmitter();\r\n}\r\n","\r\n \r\n \r\n {{ isSelectedAvailable ? state ? textOn : textOff : textNA}}\r\n \r\n\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"esg-tabs\",\r\n templateUrl: \"./tabs.component.html\",\r\n styleUrls: [\"./tabs.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TabsComponent {\r\n @Input() tabs: TabVM[];\r\n}\r\n\r\nexport interface TabVM {\r\n text: string;\r\n link: string;\r\n}\r\n","
    \r\n \r\n {{ tab.text }}\r\n \r\n
\r\n","export enum AppInsightsEventAction {\r\n ENQUIRYMADE = \"EnquiryMade\",\r\n RUNCREATED = \"RunCreated\",\r\n LEARNMORECLICKED = \"LearnMoreClicked\",\r\n RUNCOMPLETED = \"RunCompleted\",\r\n RUNLOADED = \"RunLoaded\",\r\n RUNEDITED = \"RunEdited\",\r\n REPORTDOWNLOADED = \"ReportDownloaded\",\r\n RUNDELETED = \"RunDeleted\"\r\n}","export enum AppInsightsEventCategory {\r\n CLIENT_RUNS = \"Client - Runs\"\r\n}","import { Score } from \"src/app/api/generated\";\r\nimport { RecommendationScore } from \"src/app/api/generated/RecommendationScore\";\r\n\r\n/// Helper class for common functions which need to be applied to EsgScoring data\r\nexport class EsgScoringDataUtilities {\r\n\r\n // Sort esgPillars.performanceScores array by date\r\n static sortPillarPerformanceScoresByDate(performanceScores: Score[], direction: 'asc' | 'desc' ) : Score[]\r\n {\r\n return (direction==='desc') \r\n ? performanceScores.sort((a, b) => b.date > a.date ? 1 : -1)\r\n : performanceScores.sort((a, b) => b.date > a.date ? -1 : 1)\r\n }\r\n\r\n // Legacy to get around the fact that some score are single\r\n static mapToRecommendationScore(score: number) {\r\n return [{ score: score } as RecommendationScore] as RecommendationScore[];\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UrlHelperService {\r\n\r\n public static getApiUrl = () => {\r\n return UrlHelperService.getProtocolName() + `api.${UrlHelperService.getHostNameDomain()}`;\r\n }\r\n\r\n public static getPlatformUrl = () => {\r\n return UrlHelperService.getProtocolName() + `platform.${UrlHelperService.getHostNameDomain()}`;\r\n }\r\n\r\n static getHostNameDomain = () => {\r\n return window.location.host;\r\n }\r\n\r\n static getProtocolName = () => {\r\n return window.location.protocol + '//';\r\n }\r\n\r\n}\r\n","export const environment = {\r\n production: true\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n // eslint-disable-next-line no-console\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["isEqual","BehaviorSubject","combineLatest","map","Subscription","switchMap","i0","viewModel_r1","CustomizeComponent","constructor","runService","translateService","router","screenerService","userService","referenceDataProxy","instant","riskMetricsKey","item","toUpperCase","currentUserInfo","role","activeRun","selectPillarKeyAction$","selectSourceKeyAction$","selectMetricTypeKeyAction$","metricItemToggledAction$","financialsUpdated$","comparisonCompaniesChanged$","pipe","selectedPillarKey","selectedSourceKey","selectMetricTypeKey","_","financialsUpdated","comparisonCompaniesChanged","data","comparisonCompanies","clonedData","CheckIfPVARMissing","structuredClone","comparisonCompanies$","next","value","metricTypes","_a","filter","mt","source","key","screenerSettingsChanged$","benchmarkingSelections","ComparisonCompaniesAreDifferent","getFincialDetailsSelections","getPeerCompanyCount","industry","revenue","employee","peerCompanyCount","benchmarkingSelection","pillars","filterPillars","sources","filteredSources","filteredButtonMenuMetricTypes","items","filteredMetricTypeItems","showIndustryMessage","find","s","_b","i","pillar","_c","isIndustryDefault","screenerChanged","ngOnInit","subscriptions$","add","screenerCreated$","subscribe","runId","navigate","ngOnDestroy","unsubscribe","selectPillar","selectSource","selectMetricType","toggleItem","metricTypeItem","selected","comparisonCompaniesCount","length","activeRunComparisonCompanesCount","peerCompanyIds","company","clientId","clonedDataPeerCompanyIds","save","buttonMenuItems","wtwSubGroupedMetrics","includes","metricType","text","esgPillars","p","count","flatMap","metricSources","metricSourceItemFilter","name","toString","industryPICS6","employeeBucketId","revenueBucketId","selectors","inputs","search","decls","vars","consts","template","x","undefined","element","isSelectedAvailable","push","ctx_r0","FinancialsComponent","referenceDataService","get","message","pics6Industries$","employeeBuckets$","revenueBuckets$","uiSignal","debugInfo","uiLabel","industries","employeeBuckets","revenueBuckets","all","id","description","change","selectValuesArray","Array","AutocompleteClientSearchComponent","of","tap","Renderer2","IndividualCompanyDetailsComponent","screenersProxy","modalService","screenersService","renderer","individualCompanyDetailsTranslationKey","clientName","results","clientSearch","comparisonCompanySelections","comparisonCompanySelectionOperation","isUsingIndustryDefaultData","companies","ngAfterViewInit","unListeneToAutoCompleteFocus","listen","_searchComponent","inputRef","nativeElement","onFocus","companySelected","comparisonCompanySelection","alert","addPeerCompany","peerCompany","removePeerCompany","index","splice","statuschanged","status","displayResults","maxCompanyCount","translationKeyBase","modalConfig","title","withHeader","noButton","display","yesButton","confirm","viewQuery","ctx","Highcharts","more","vm_r1","CompaniesComparisonChartComponent","activatedRoute","parent","url","toLowerCase","path","toLocaleLowerCase","screenerCompanyPercentile","percentile","comparisonCompanyScores","forEach","companyName","boxChartSeriesData","BoxChartData","boxChartPercentileLabels","BoxChartPercentileLabels","scatterChartCompanyLabels","CompanyDataScatterSeriesPoints","chartOptions","buildChartOptions","highcharts","seriesData","chart","type","inverted","height","marginLeft","backgroundColor","tooltip","enabled","plotOptions","boxplot","medianWidth","whiskerWidth","series","color","legend","align","verticalAlign","layout","y","itemMarginBottom","itemMarginRight","labelFormatter","seriesOptions","yData","xAxis","visible","min","max","yAxis","enableMouseTracking","showInLegend","credits","low","q1","median","q3","high","dataLabels","format","style","textOutline","marker","companyScore","d","ranNum","Math","ceil","random","round","colours","innerData","radius","fillColor","indexOf","ExecutiveSummaryDetailComponent","tabs","routeConfig","children","child","startsWith","link","moment","MyPerformanceScoreComponent","clientService","GraphTypeEnum","translationKey","score","benchmark","currentClientChanged","selectGraphTypeKeyAction$","client","selectedGraphType","sortedPerformanceScores","performanceScores","sort","a","b","date","latestPerformanceScore","switchGraph","EsgScoringDataUtilities","PerformanceBenchmarkOptions","PerformanceBenchmarkComponent","options$","performanceScores$","options","scores","xAxisLabels","buildSeriesData","bubbleColour","latestScoreBubbleColour","bubbleValueColour","xAxisTitle","yAxisTitle","scoresByAscendingDate","sortPillarPerformanceScoresByDate","config","shadow","fillOpacity","plotBorderWidth","categories","tickWidth","tickInterval","latestScoreDate","lineWidth","lineColor","PerformanceScoreOptions","PerformanceScoreComponent","clientScoreColour","industryScoreColour","percentilePolygonColour","symbolWidth","symbolPadding","shared","allSeries","LineSeriesData","clientScore","industryScore","AreaSeriesData","seriesName","symbol","zIndex","industry25thPerc","industry75thPerc","MissingTranslationHandler","ThemeScoringComponent","tierId","r","filterAction$","themeUrl","pillarUrl","tierIdToToggle","_filters","f","pillarKey","recommendations","themes","theme","split","join","recommendation","poweredBy","some","metricTypeKey","paragraph","filters","themeKey","vm","totalCount","filteredRecommendations","tier","missingTranslationHandler","handle","params","console","log","filterClicked","navigateToActionLever","actionLeverKey","relativeTo","queryParams","fromPillar","fromTheme","exhaustMap","Observable","startWith","Subject","withLatestFrom","DownloadModalComponent","pillar_r12","vm_r10","ExecutiveSummaryComponent","runsService","esgAppInsightsService","executiveSummaryKey","isClient","setScreenerActiveAction$","screenerListItem","updateActiveScreener","setScreenerActiveComplete$","run","screener","result","newerDataAvailable","runLatestAction$","hideNotificationSpinner","currentClient","requestNewScreenerCreateDataJob","screenerId","jobKeyResponse","pollScreenerDataReady","navigateByUrl","retrievingMessage","picS6","employeeBucket","e","revenueBucket","riskOfferings","subscriptions","runLatestActionComplete$","showNotificationSpinner","screenerManagementKey","downloadReportClick","markRunAsComplete","reportDownloadList","setRportVisibilityBasedOnUserRole","heading","closeButtonText","downloadButtonText","downloads","openWithComponent","report","HIDE_DOWNLOAD_FROM","isDisabled","topN","list","n","slice","setActiveScreener","spinnerMessage","rescoreNotification$","expandPanel","collapsiblePanel","close","AppInsightsEventAction","AppInsightsEventCategory","OfferingComponent","allActionLevers","offering","actionLevers","defaultActionLeverRoute","pillarTopThemeActionLever","queryParamsHandling","lever","gaps","g","strengths","logInsight","rundId","eventCategory","eventAction","filteredBy","replace","action_lever","OfferingsComponent","showDropdownMenuAction$","showMoreAction$","localisationActionLevers","defaultOfferingsCount","showDropdownMenu","showMore","ENVIRONMENT","SOCIAL","GOVERNANCE","environmentActionLevers","IS_ENVIRONMENT","socialActionLevers","IS_SOCIAL","governanceActionLevers","IS_GOVERNANCE","allLevers","concat","offerings","offeringsCount","orderedThemes","themesKey","replaceAll","fromPillarKey","fromThemeKey","isFiltered","toggleMenu","closeMenu","seeMore","seeLess","pi_r4","ctx_r2","pi_r6","ctx_r3","ScoreAndBenchmarkComponent","mediaObserver","asObservable","state","lessThanLarge","mqAlias","extraSmall","scoreHeading","benchmarkHeading","barBackgroundColor","barColor","barPercentLabelColor","barOffsetPercentLabelColor","EMPTY","from","EditScreenerModalComponent","ctx_r8","ctx_r27","ScreenerManagementComponent","_esgAppInsightsService","isAdmin","editAction$","newScreenerModalData","screenerName","screenerDescription","screenerManagementModalKey","acceptButtonText","cancelButtonText","confirmWithComponent","modalResponse","screenerSettings","edit","CLIENT_RUNS","RUNEDITED","deleteAction$","hasActiveUsers","deleteConfirmResult","RUNDELETED","delete","getDefaultScreenerRunId","c","client$","screenerDeletedComplete$","screenerEditedComplete$","__","screeners","screenerFilterAction$","createdByMe","currentRunId","screenerFilterChanged","event","load","RUNLOADED","deleteScreener","editScreener","_r1","ComingSoonComponent","_config","settings","contactEmail","NextPreviousComponent","syblingRoutes","currentRouteIndex","findIndex","current","previous","showCurrent"],"sourceRoot":"webpack:///","x_google_ignoreList":[111]}