{"version":3,"file":"main.js","mappings":"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","names":["Globals","constructor","this","platformApi_client_resourceUri","platformApi_client_resourceScope","graphApi_client_resourceUri","graphApi_client_resourceScope","notificationApi_client_resourceUri","notificationApi_client_resourceScope","platformHubUrl","apim_urls","factory","HttpService","http","headers","HttpHeaders","postFormData","url","body","post","pipe","catchError","err","handleError","delete","httpParams","header","params","get","error","throwError","i0","GlobalService","httpService","httpClient","dialog","EventEmitter","Accept","AIML","Surrogate","Simulation","gethttpHeader","bearerToken","Authorization","showAlert","model","data","open","width","panelClass","height","openModelWindow","methodRef","thisRef","modelComponent","widthOfWindow","panelClassName","dataToPass","afterClosed","subscribe","result","getModelsDescriptions","modelsDescUrl","accessToken","httpOptions","errorMessage","message","isNotNull","undefined","MLService","globals","globalsService","router","apiUri","config","graphUri","getToken","xsrfTokenUrl","getUseCasesUrl","useCaseUrlsApi","redirectTo","window","location","href","HomeContentComponent","globalService","mlService","ngOnInit","response","modelMgmtUrl","ModelMgmt","flowsheetBuilderUrl","FlowsheetBuilder","machineLearningUrl","MachineLearning","monitoringUrl","Monitoring","gapAnalysisUrl","GapAnalysis","scenarioUrl","Scenario","decisionUrl","Decision","instructionsUrl","Instructions","apimUrl","ApimUrl","foundationPlatformUrl","FoundationPlatformUrl","formulaBuilderUrl","FormulaBuilderurl","dataCleansingUrl","DataCleansingUrl","configureModelUrl","ConfigureModelUrl","hubUrl","selectors","HomeComponent","GraphService","displayName","groupIDs","getGroups","getNextPage","nextPage","routes","path","component","OverageComponent","authService","service","route","handleResponse","next","handleGroupResponse","console","log","InteractionRequiredAuthError","errorCode","acquireTokenPopup","scopes","toPromise","then","value","map","v","groups","push","id","handleNextPage","syncGroups","user","navigate","redirectPath","includes","canActivate","MsalGuard","expectedGroups","title","breadcrumb","label","pathMatch","AppRoutingModule","RouterModule","useHash","relativeLinkResolution","OverageService","readGraphGroups","objRef","handleNextPageWithMethodRef","syncGroupswithRef","DialogData","AboutComponent","dialogRef","onNoClick","close","MAT_DIALOG_DATA","light","name","properties","dark","ThemeService","getAvailableThemes","availableThemes","getActiveTheme","active","isDarkTheme","setDarkTheme","setActiveTheme","setLightTheme","theme","Object","keys","forEach","property","document","documentElement","style","setProperty","NavBarComponent","themeService","_router","countryList","Id","Name","Code","getReleaseDetails","countryCode","$","click","toggleClass","removeClass","addClass","logout","openAboutRelease","releaseDetails","selectFlag","toggleTheme","$localize","ctx","AppComponent","msalGuardConfig","msalBroadcastService","grphService","overageService","Subject","getScreenSize","event","screenWidth","innerWidth","isMobileResolution","isLoading","initialize","msalSubject$","filter","msg","eventType","EventType","takeUntil","_destroying$","concatMap","_this","checkoutAccount","login","authRequest","loginPopup","instance","setActiveAccount","account","getActiveAccount","getAllAccounts","length","accounts","userAccount","userName","idParts","split","userShortName","charAt","loggedInUser","userEmail","username","initAppInsight","assignRole","appInsights","ApplicationInsights","instrumentationKey","appInsightKey","enableAutoRouteTracking","loadAppInsights","setUserId","logPageView","measurements","duration","trackPageView","uri","setAuthenticatedUserContext","context","groups_client_PlatformAdminGroupId","rbacName","isActive","MSAL_GUARD_CONFIG","XsrfInterceptor","xsrfTokenExtractor","intercept","req","xsrfToken","indexOf","authorizedRequest","clone","withCredentials","set","handle","environment","production","process","clientId","authority","validateAuthority","redirectUri","postLogoutRedirectUri","navigateToLoginRequestUrl","subscription","moveTagMasterMsg","platformAdminUrl","platformDocumentation","cache_client","cacheLocation","ReleaseDetails","Version","DateOfBuild","BuildNumber","isIE","navigator","userAgent","enValue","MSALInstanceFactory","PublicClientApplication","auth","cache","storeAuthStateInCookie","MSALInterceptorConfigFactory","protectedResourceMap","Map","interactionType","InteractionType","AppModule","tagMovMsg","bootstrap","provide","APP_INITIALIZER","useValue","Promise","resolve","setTimeout","multi","HTTP_INTERCEPTORS","useClass","MsalInterceptor","MSAL_INSTANCE","useFactory","MSAL_INTERCEPTOR_CONFIG","MsalService","MsalBroadcastService","APP_BASE_HREF","imports","BrowserModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatStepperModule","MatToolbarModule","MatIconModule","MatTabsModule","MatSidenavModule","MatMenuModule","MatFormFieldModule","MatSelectModule","MatListModule","MatTooltipModule","MatTableModule","MatDialogModule","MatInputModule","MatSortModule","MatPaginatorModule","MatRadioModule","MatAutocompleteModule","BrowserAnimationsModule","NgbModule","NgMultiSelectDropDownModule","TypeaheadModule","MatDatepickerModule","MatNativeDateModule","MatRippleModule","OwlDateTimeModule","OwlNativeDateTimeModule","MatCheckboxModule","DragDropModule","NgCircleProgressModule","radius","titleFontSize","outerStrokeWidth","innerStrokeWidth","outerStrokeColor","innerStrokeColor","animationDuration","backgroundPadding","subtitleColor","showSubtitle","showUnits","showInnerStroke","startFromZero","providers","getBaseUrl","getElementsByTagName","deps","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch"],"sourceRoot":"webpack:///","sources":["./src/app/models/globals.model.ts","./src/app/services/http.service.ts","./src/app/services/global.service.ts","./src/app/services/ml-service.ts","./src/app/home-content/home-content.component.ts","./src/app/home-content/home-content.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/services/graph.service.ts","./src/app/app-routing.module.ts","./src/app/overage/overage.component.ts","./src/app/services/overage.service.ts","./src/app/about/about.component.ts","./src/app/about/about.component.html","./src/app/theme/theme.module.ts","./src/app/services/theme.service.ts","./src/app/nav-bar/nav-bar.component.ts","./src/app/nav-bar/nav-bar.component.html","./src/app/app.component.html","./src/app/app.component.ts","./src/app/services/xsrf.interceptor.ts","./src/environments/environment.ts","./src/app/app.module.ts","./src/main.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class Globals {\r\n\r\n config: any = {\r\n platformApi_client_resourceUri: \"\",\r\n platformApi_client_resourceScope: \"\",\r\n graphApi_client_resourceUri: \"\",\r\n graphApi_client_resourceScope: \"\",\r\n notificationApi_client_resourceUri: \"\",\r\n notificationApi_client_resourceScope: \"\",\r\n platformHubUrl: \"\",\r\n apim_urls:\"\"\r\n };\r\n\r\n userName: string = '';\r\n name: string = '';\r\n userShortName: string;\r\n userEmail: string;\r\n rbacName: string;\r\n groups: any = [];\r\n flowsheetBuilderUrl = '';\r\n scenarioUrl = '';\r\n monitoringUrl = '';\r\n gapAnalysisUrl = '';\r\n\r\n subscription: string = '';\r\n releaseDetails: any;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpService {\r\n\r\n private header = { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }) };\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n \r\n public postFormData(url: string, body: any): Observable {\r\n return this.http.post(url, body)\r\n .pipe(catchError(err => this.handleError(err)));\r\n }\r\n\r\n public delete(url: string, httpParams: HttpParams, header: HttpHeaders): Observable {\r\n const httpOptions = {\r\n headers: header,\r\n params: httpParams\r\n };\r\n return this.http.delete(url, httpOptions)\r\n .pipe(catchError(err => this.handleError(err)));\r\n }\r\n\r\n public post(url: string, body: any, header: HttpHeaders): Observable {\r\n const httpOptions = {\r\n headers: header\r\n };\r\n return this.http.post(url, body, httpOptions)\r\n .pipe(catchError(err => this.handleError(err)));\r\n }\r\n\r\n public get(url: string, header: HttpHeaders): Observable {\r\n const httpOptions = {\r\n headers: header\r\n };\r\n return this.http.get(url, httpOptions)\r\n .pipe(catchError(err => this.handleError(err)));\r\n }\r\n\r\n public handleError(error: HttpErrorResponse) {\r\n switch (error.status) {\r\n default:\r\n return throwError(error);\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { EventEmitter, Injectable, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { HttpService } from './../services/http.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GlobalService {\r\n\r\n @Output() renderRibbon: EventEmitter = new EventEmitter();\r\n \r\n headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Methods': 'POST, GET'\r\n });\r\n authCode: any;\r\n configData: any = [];\r\n configUnits: any;\r\n\r\n loggedInUser;\r\n isSubscriptionGranted: boolean = false;\r\n unitAuthorizedUrl: any = [];\r\n defaultUserGroup: string;\r\n subscription: string;\r\n environment: string;\r\n tagMovMsg;\r\n constructor(private httpService: HttpService, public httpClient: HttpClient, public dialog: MatDialog) { }\r\n\r\n phtHeaders = new HttpHeaders({\r\n 'Accept': '*/*',\r\n 'Access-Control-Allow-Credentials': 'true',\r\n 'Access-Control-Allow-Headers': 'x-access-token,Content-Type',\r\n 'Access-Control-Allow-Methods': 'DELETE, POST, GET, OPTIONS',\r\n });\r\n\r\n xsrfTokenUrl = 'api/appsettings/GetToken';\r\n\r\n useCaseUrlsApi = 'api/appsettings/section/UseCaseUrls';\r\n currentUser: any;\r\n currentActiveUrl: any = [];\r\n isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n currentActiveUser = {};\r\n defaultUser: any;\r\n /* URL's for APIMS screen */\r\n resourceListURL: string = \"https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/providers/Microsoft.ApiManagement/service?api-version=2019-12-01\";\r\n\r\n/* URL for model Management screen */\r\n availableModelUrls = {\r\n 'AIML': \"https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/ai-ml-api/operations?api-version=2019-12-01\",\r\n 'Surrogate': \"https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/surrogate-models-api/operations?api-version=2019-12-01\",\r\n \"Simulation\": \"https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/simulator-api/operations?api-version=2019-12-01\"\r\n };\r\n modelsExecURL = {\r\n 'AIML': \"https://r4cidi-apim-we-d.azure-api.net/simstore\",\r\n 'Surrogate': \"https://r4cidi-apim-we-d.azure-api.net\",\r\n \"Simulation\": \"https://r4cidi-apim-we-d.azure-api.net/simulator-api\"\r\n };\r\n modelOpsDesc = {\r\n 'AIML': 'https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/ai-ml-api/operations/',\r\n 'Surrogate': 'https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/surrogate-models-api/operations/',\r\n 'Simulation': 'https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/simulator-api/operations/'\r\n };\r\n modelListULR: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n deleteModelURL: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models/\";\r\n assetUrl = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/assets\";\r\n registerModelURL = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n\r\n userDetails: any;\r\n firstTimeLoad: boolean = true;\r\n \r\n currentUserDetails: any = [];\r\n isSwitchUser: boolean;\r\n \r\n gethttpHeader(bearerToken) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Access-Control-Allow-Methods': 'POST, GET',\r\n 'Authorization': 'Bearer ' + bearerToken\r\n })\r\n };\r\n return httpOptions;\r\n }\r\n\r\n showAlert(model, data) {\r\n this.dialog.open(model, {\r\n width: '450px',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: data\r\n });\r\n }\r\n\r\n openModelWindow(methodRef: (thisRef: any, result?: any) => void, thisRef, modelComponent, widthOfWindow, panelClassName, dataToPass) {\r\n {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panelClassName,\r\n data: dataToPass\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === true && methodRef != null) {\r\n methodRef(thisRef);\r\n }\r\n else if (result !== false) {\r\n methodRef(thisRef, result);\r\n }\r\n \r\n });\r\n }\r\n }\r\n\r\n getModelsDescriptions(methodRef: (data: any, thisRef: any) => void, thisRef, modelsDescUrl, accessToken) {\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Methods': 'POST, GET',\r\n 'Authorization': 'Bearer ' + accessToken\r\n })\r\n };\r\n this.httpClient.get(modelsDescUrl, httpOptions).subscribe((data: any): void => {\r\n methodRef(data, thisRef);\r\n }, (error: Error) => {\r\n thisRef.errorMessage = 'Error in fetching details, more details: ' + error.message;\r\n methodRef(null, thisRef);\r\n });\r\n }\r\n\r\n isNotNull(data: string) {\r\n if (data != undefined && data != null && data != \"\") {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { GlobalService } from './global.service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MLService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n constructor(private httpService: HttpService, private globals: Globals, private http: HttpClient, private globalsService: GlobalService,\r\n public router: Router) {\r\n this.apiUri = this.globals.config.platformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getToken() {\r\n return this.http.get(this.apiUri + this.globalsService.xsrfTokenUrl);\r\n }\r\n \r\n getUseCasesUrl() {\r\n return this.http.get(this.apiUri + this.globalsService.useCaseUrlsApi);\r\n }\r\n\r\n redirectTo(url) {\r\n window.location.href = url;\r\n }\r\n\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Globals } from '../models/globals.model';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MLService } from '../services/ml-service';\r\n\r\n@Component({\r\n selector: 'app-home-content',\r\n templateUrl: './home-content.component.html',\r\n styleUrls: ['./home-content.component.scss']\r\n})\r\nexport class HomeContentComponent implements OnInit {\r\n modelMgmtUrl: string;\r\n flowsheetBuilderUrl: string;\r\n machineLearningUrl: string;\r\n monitoringUrl: string;\r\n gapAnalysisUrl: string;\r\n scenarioUrl: string;\r\n decisionUrl: string;\r\n instructionsUrl: string;\r\n apimUrl: string;\r\n foundationPlatformUrl: string;\r\n formulaBuilderUrl: string;\r\n dataCleansingUrl: string;\r\n configureModelUrl: string;\r\n hubUrl: string;\r\n constructor(public http: HttpClient, public globals: Globals, public globalService: GlobalService, public mlService: MLService) { }\r\n\r\n ngOnInit() {\r\n this.mlService.getToken().subscribe((response: any): void => {\r\n this.getUseCasesUrl();\r\n });\r\n }\r\n\r\n getUseCasesUrl() {\r\n this.mlService.getUseCasesUrl().subscribe((data: any): void => {\r\n this.modelMgmtUrl = data.ModelMgmt;\r\n this.globals.flowsheetBuilderUrl = data.FlowsheetBuilder;\r\n this.machineLearningUrl = data.MachineLearning;\r\n this.globals.monitoringUrl = data.Monitoring;\r\n this.globals.gapAnalysisUrl = data.GapAnalysis;\r\n this.globals.scenarioUrl = data.Scenario;\r\n this.decisionUrl = data.Decision;\r\n this.instructionsUrl = data.Instructions;\r\n this.apimUrl = data.ApimUrl;\r\n this.foundationPlatformUrl = data.FoundationPlatformUrl;\r\n this.formulaBuilderUrl = data.FormulaBuilderurl;\r\n this.dataCleansingUrl = data.DataCleansingUrl;\r\n this.configureModelUrl = data.ConfigureModelUrl;\r\n this.hubUrl = data.platformHubUrl;\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GlobalService } from './../services/global.service';\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent {\r\n constructor(public router: Router, public globals: GlobalService) { }\r\n \r\n}\r\n","
\r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { User } from '../models/interfaces/user';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GraphService {\r\n\r\n user: User = {\r\n displayName: \"\",\r\n groupIDs: [],\r\n };\r\n graphUri: string;\r\n\r\n constructor(private http: HttpClient, private globals: Globals) {\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getGroups() {\r\n return this.http.get(this.graphUri);\r\n }\r\n\r\n getNextPage(nextPage) {\r\n return this.http.get(nextPage);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { HomeContentComponent } from './home-content/home-content.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { OverageComponent } from './overage/overage.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'overage',\r\n component: OverageComponent,\r\n canActivate: [\r\n MsalGuard,\r\n ]\r\n },\r\n {\r\n path: 'RefineryHome',\r\n component: HomeContentComponent,\r\n canActivate: [\r\n MsalGuard\r\n ],\r\n data: {\r\n expectedGroups: [],\r\n title: 'Donges',\r\n breadcrumb: [\r\n {\r\n label: 'RefineryHome',\r\n url: 'RefineryHome'\r\n }\r\n ]\r\n }\r\n },\r\n {\r\n path: 'Admin',\r\n component: HomeComponent,\r\n data: {\r\n breadcrumb: \"Dashboard\"\r\n }\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'RefineryHome',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes), RouterModule.forRoot(routes, { useHash: false, relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GraphService } from 'src/app/services/graph.service';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { Globals } from '../models/globals.model';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthError, InteractionRequiredAuthError } from '@azure/msal-browser';\r\n\r\n@Component({\r\n selector: 'app-overage',\r\n templateUrl: './overage.component.html',\r\n styleUrls: ['./overage.component.css']\r\n})\r\nexport class OverageComponent implements OnInit {\r\n\r\n groups: string[] = [];\r\n\r\n constructor(private authService: MsalService, private service: GraphService, private http: HttpClient\r\n , private router: Router\r\n , public route: ActivatedRoute\r\n , public globals: Globals) { }\r\n\r\n ngOnInit(): void {\r\n this.handleResponse();\r\n }\r\n\r\n handleResponse(): void {\r\n this.service.getGroups().subscribe({\r\n next: (response: any) => {\r\n this.handleGroupResponse(response);\r\n },\r\n error: (err: AuthError) => {\r\n console.log(err)\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n this.authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n this.service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.handleGroupResponse(response);\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n private handleGroupResponse(response:any) {\r\n response.value.map(v => this.groups.push(v.id));\r\n /**\r\n * Some queries against Microsoft Graph return multiple pages of data either due to server-side paging \r\n * or due to the use of the $top query parameter to specifically limit the page size in a request. \r\n * When a result set spans multiple pages, Microsoft Graph returns an @odata.nextLink property in \r\n * the response that contains a URL to the next page of results.\r\n * learn more at https://docs.microsoft.com/graph/paging\r\n */\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n }\r\n\r\n private syncGroups() {\r\n this.service.user.groupIDs = this.groups;\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n this.router.navigate(['/' + params.redirectPath]);\r\n });\r\n }\r\n\r\n handleNextPage(nextPage): void {\r\n this.service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GraphService } from './graph.service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { MsalService, MSAL_INSTANCE, MsalGuard, MsalInterceptor, MsalBroadcastService } from '@azure/msal-angular';\r\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OverageService {\r\n\r\n groups: string[] = [];\r\n\r\n constructor(private http: HttpClient, private globals: Globals) {\r\n }\r\n\r\n readGraphGroups(authService: MsalService, service: GraphService, methodRef: (objRef: any) => void, objRef): void {\r\n service.getGroups().subscribe({\r\n next: (response: any) => {\r\n this.handleGroupResponse(service, response, methodRef, objRef); \r\n },\r\n error: (err: AuthError) => {\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.handleGroupResponse(service, response, methodRef, objRef); \r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n private handleGroupResponse(service: GraphService, response:any, methodRef: (objRef: any) => void, objRef) {\r\n response.value.map(v => this.groups.push(v.id));\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n }\r\n\r\n syncGroupswithRef(service: GraphService, methodRef: (objRef: any) => void, objRef) {\r\n service.user.groupIDs = this.groups;\r\n methodRef(objRef);\r\n }\r\n\r\n handleNextPageWithMethodRef(service: GraphService, nextPage, methodRef: (objRef: any) => void, objRef): void {\r\n service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, Inject, Optional } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nexport class DialogData {\r\n Version: string;\r\n BuildNumber: string;\r\n DateOfBuild: string;\r\n SinequaURL: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-about',\r\n templateUrl: './about.component.html',\r\n styleUrls: ['./about.component.css']\r\n})\r\nexport class AboutComponent {\r\n\r\n constructor(\r\n @Optional() public dialogRef: MatDialogRef,\r\n @Optional() @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) { }\r\n ngOnInit() {\r\n if (this.data == null) {\r\n this.data = new DialogData();\r\n }\r\n }\r\n // close the about dialog\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

About Release

\r\n
\r\n \r\n \r\n \r\n \r\n
Version{{data.Version}}
Build Number{{data.BuildNumber}}
Build Date{{data.DateOfBuild}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class ThemeModule { }\r\nexport interface Theme {\r\n name: string;\r\n properties: any;\r\n}\r\n\r\nexport const light: Theme = {\r\n name: \"light\",\r\n properties: {\r\n \"--background-default\": \"#F4F6F9\",\r\n \"--background-item-box\": \"#FFFFFF\",\r\n \"--heading-item-box\": \"#374649\",\r\n \"--background-right-default\": \"#FFFFFF\",\r\n \"--background-chart-box\": \"#FFFFFF\",\r\n }\r\n};\r\n\r\nexport const dark: Theme = {\r\n name: \"dark\",\r\n properties: {\r\n \"--background-default\": \"#2C2C2C\",\r\n \"--background-item-box\": \"#576271\",\r\n \"--heading-item-box\": \"#FFFFFF\",\r\n \"--background-right-default\": \"#707070\",\r\n \"--background-chart-box\": \"#FFFFFF\",\r\n }\r\n};\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Theme, light, dark } from '../theme/theme.module';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ThemeService {\r\n private active: Theme = light;\r\n private availableThemes: Theme[] = [light, dark];\r\n\r\n getAvailableThemes(): Theme[] {\r\n return this.availableThemes;\r\n }\r\n\r\n getActiveTheme(): Theme {\r\n return this.active;\r\n }\r\n\r\n isDarkTheme(): boolean {\r\n return this.active.name === dark.name;\r\n }\r\n\r\n setDarkTheme(): void {\r\n this.setActiveTheme(dark);\r\n }\r\n\r\n setLightTheme(): void {\r\n this.setActiveTheme(light);\r\n }\r\n\r\n setActiveTheme(theme: Theme): void {\r\n this.active = theme;\r\n\r\n Object.keys(this.active.properties).forEach(property => {\r\n document.documentElement.style.setProperty(\r\n property,\r\n this.active.properties[property]\r\n );\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, SimpleChanges } from '@angular/core';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { Router, ActivatedRoute} from '@angular/router';\r\nimport * as $ from 'jquery';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AboutComponent } from '../about/about.component';\r\nimport { Globals } from '../models/globals.model';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { ThemeService } from '../services/theme.service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { MLService } from '../services/ml-service';\r\n\r\n@Component({\r\n selector: 'app-nav-bar',\r\n templateUrl: './nav-bar.component.html',\r\n styleUrls: ['./nav-bar.component.css']\r\n})\r\nexport class NavBarComponent implements OnInit {\r\n @Input() data: string;\r\n userName: string;\r\n userShortName: string;\r\n unreadNotifications: number = 0;\r\n rbacName: string = '';\r\n countryCode: any;\r\n countryList: any;\r\n releaseDetails: any;\r\n zeroNotification = false;\r\n errorNotification = false;\r\n displayDefaultUser: any = [];\r\n notificationLimit = 10;\r\n hideNotificationNumber = false;\r\n dateString: string;\r\n constructor(private authService: MsalService, public mlService: MLService,\r\n public dialog: MatDialog, public globals: Globals, public globalService: GlobalService,\r\n public themeService: ThemeService, public _router: Router,\r\n public route: ActivatedRoute) {\r\n this.countryList = [ \r\n {\r\n \"Id\": 1,\r\n \"Name\": \"English\",\r\n \"Code\": \"EN\",\r\n }\r\n ];\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.themeService.setLightTheme();\r\n this.getReleaseDetails();\r\n this.countryCode = \"EN\";\r\n $('#handberg').click(function () {\r\n $('.row-offcanvas').toggleClass('active');\r\n $('.collapse').toggleClass('in').toggleClass('hidden-xs').toggleClass('visible-xs');\r\n });\r\n\r\n $(\"#close-sidebar\").click(function () {\r\n $(\".page-wrapper\").removeClass(\"toggled\");\r\n });\r\n $(\"#show-sidebar\").click(function () {\r\n $(\".page-wrapper\").addClass(\"toggled\");\r\n });\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n }\r\n \r\n // show about dialog for version, build date and build number\r\n openAboutRelease(): void { \r\n this.dialog.open(AboutComponent, {\r\n data: this.releaseDetails,\r\n });\r\n \r\n }\r\n\r\n getReleaseDetails() {\r\n this.releaseDetails = this.globals.releaseDetails;\r\n }\r\n\r\n selectFlag(Code: any) {\r\n this.countryCode = Code;\r\n }\r\n\r\n toggleTheme() {\r\n if (this.themeService.isDarkTheme()) {\r\n this.themeService.setLightTheme();\r\n } else {\r\n this.themeService.setDarkTheme();\r\n }\r\n }\r\n\r\n /**\r\n * Triggered whenever a change occurs\r\n * @param changes\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 { Component, HostListener, Inject, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthenticationResult, EventMessage, EventType, PopupRequest } from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { concatMap, filter, takeUntil } from 'rxjs/operators';\r\nimport { Globals } from './models/globals.model';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { GlobalService } from './services/global.service';\r\nimport { GraphService } from './services/graph.service';\r\nimport { HttpService } from './services/http.service';\r\nimport { OverageService } from './services/overage.service';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\n\r\nexport class AppComponent implements OnInit {\r\n\r\n isLoading: boolean;\r\n response: any;\r\n @Input('ngModel') model: any;\r\n disableTooltip = false;\r\n showCross = false;\r\n isDashBoardActive: boolean;\r\n isCalendarActive: boolean;\r\n isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n hideLeftSidebar: boolean = true;\r\n loggedIn = false;\r\n appInsights: ApplicationInsights;\r\n appInsightKey: any;\r\n\r\n\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(private authService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\r\n private msalBroadcastService: MsalBroadcastService,\r\n private grphService: GraphService,\r\n private overageService: OverageService,\r\n public _router: Router, private httpService: HttpService,\r\n public globals: Globals, private globalService: GlobalService) {\r\n this.countryList = [\r\n {\r\n \"Id\": 1,\r\n \"Name\": \"Dutch\",\r\n \"Code\": \"NL\",\r\n },\r\n {\r\n \"Id\": 2,\r\n \"Name\": \"English\",\r\n \"Code\": \"EN\",\r\n },\r\n {\r\n \"Id\": 3,\r\n \"Name\": \"French\",\r\n \"Code\": \"FR\",\r\n },\r\n {\r\n \"Id\": 4,\r\n \"Name\": \"German\",\r\n \"Code\": \"DE\",\r\n },\r\n ];\r\n }\r\n\r\n title = 'Platform';\r\n countryForm: UntypedFormGroup;\r\n countryList: any;\r\n data: any;\r\n countryCode: any;\r\n isMobileResolution: boolean;\r\n screenWidth: any;\r\n\r\n @HostListener('window:resize', ['$event'])\r\n getScreenSize(event?) {\r\n this.screenWidth = window.innerWidth;\r\n if (this.screenWidth < 768) {\r\n this.isMobileResolution = true;\r\n }\r\n else {\r\n this.isMobileResolution = false;\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n this.isLoading = true;\r\n this.initialize();\r\n this.countryCode = \"EN\";\r\n }\r\n\r\n initialize() {\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS || msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS),\r\n takeUntil(this._destroying$),\r\n concatMap(async () => this.checkoutAccount())\r\n ).subscribe()\r\n }\r\n\r\n login() {\r\n if (this.msalGuardConfig.authRequest) {\r\n this.authService.loginPopup({ ...this.msalGuardConfig.authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n this.checkoutAccount();\r\n });\r\n } else {\r\n this.authService.loginPopup()\r\n .subscribe((response: AuthenticationResult) => {\r\n this.authService.instance.setActiveAccount(response.account);\r\n });\r\n }\r\n }\r\n\r\n checkoutAccount() {\r\n let activeAccount = this.authService.instance.getActiveAccount();\r\n\r\n if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.authService.instance.getAllAccounts();\r\n this.authService.instance.setActiveAccount(accounts[0]);\r\n }\r\n\r\n let userAccount = this.authService.instance.getAllAccounts()[0];\r\n if (userAccount?.name && this.globals.userName == '') {\r\n this.globals.userName = userAccount.name;\r\n let idParts = userAccount.name.split(' ');\r\n if (idParts.length > 1) {\r\n this.globals.userShortName = idParts[0].charAt(0) + idParts[1].charAt(0);\r\n this.globalService.loggedInUser = idParts[0] + ' ' + idParts[1];\r\n }\r\n else {\r\n this.globals.userShortName = idParts[0].charAt(0);\r\n this.globalService.loggedInUser = idParts[0];\r\n }\r\n //set user details in global session \r\n this.globals.userEmail = userAccount.username;\r\n // call appinsight\r\n this.initAppInsight(this);\r\n if (this.globals.groups.length === 0) {\r\n this.overageService.readGraphGroups(this.authService, this.grphService, this.assignRole, this);\r\n }\r\n }\r\n }\r\n\r\n initAppInsight(thisRef: AppComponent) {\r\n let appInsightKey = (thisRef.globals.config.appInsightKey) ? thisRef.globals.config.appInsightKey : \"test\";\r\n this.appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: appInsightKey,\r\n enableAutoRouteTracking: true\r\n }\r\n });\r\n this.appInsights.loadAppInsights();\r\n this.setUserId();\r\n this.logPageView();\r\n }\r\n logPageView(name?: string, url?: string, properties?: any, measurements?: any, duration?: number) {\r\n this.appInsights.trackPageView({\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n });\r\n }\r\n setUserId() {\r\n this.appInsights.setAuthenticatedUserContext(this.globals.userEmail);\r\n this.appInsights.context.user.id = this.globals.userEmail;\r\n }\r\n\r\n\r\n assignRole(thisRef: AppComponent) {\r\n thisRef.globals.groups.push(\r\n thisRef.globals.config.groups_client_PlatformAdminGroupId\r\n );\r\n if (thisRef.grphService.user.groupIDs.includes(thisRef.globals.config.groups_client_PlatformAdminGroupId)) {\r\n thisRef.globals.rbacName = 'Platform Admin';\r\n }\r\n else {\r\n thisRef.globals.rbacName = 'Platform User';\r\n }\r\n thisRef.isLoading = false;\r\n }\r\n\r\n isActive(label): boolean {\r\n if (this._router.url.includes(label)) {\r\n return this._router.url.includes(label);\r\n }\r\n }\r\n\r\n selectFlag(Code: any) {\r\n this.countryCode = Code;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpXsrfTokenExtractor } from \"@angular/common/http\";\r\nimport { HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n\r\n@Injectable()\r\nexport class XsrfInterceptor implements HttpInterceptor {\r\n constructor(private xsrfTokenExtractor: HttpXsrfTokenExtractor) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n // load token\r\n \r\n let xsrfToken = this.xsrfTokenExtractor.getToken();\r\n if (req.url.indexOf('/api') > -1){\r\n if (xsrfToken != null) {\r\n // create a copy of the request and\r\n // append the XSRF token to the headers list\r\n const authorizedRequest = req.clone({\r\n withCredentials: false,\r\n headers: req.headers.set('X-XSRF-TOKEN', xsrfToken)\r\n });\r\n \r\n return next.handle(authorizedRequest);\r\n } else {\r\n return next.handle(req);\r\n }\r\n }\r\n else {\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n","export const environment = {\r\n production: process.env[\"ISPRODUCTION\"],\r\n clientId: process.env[\"AUTH_CLIENT_CLIENTID\"],\r\n authority: \"https://login.microsoftonline.com/329e91b0-e21f-48fb-a071-456717ecc28e\",\r\n validateAuthority: true,\r\n redirectUri: process.env[\"AUTH_CLIENT_REDIRECTURI\"],\r\n postLogoutRedirectUri: process.env[\"AUTH_CLIENT_POSTLOGOUTREDIRECTURI\"],\r\n navigateToLoginRequestUrl: true, \r\n subscription: process.env[\"SUBSCRIPTION\"],\r\n environment: process.env[\"environment\"],\r\n platformApi_client_resourceUri: process.env[\"PLATFORMAPI_CLIENT_RESOURCEURI\"],\r\n platformApi_client_resourceScope: process.env[\"PLATFORMAPI_CLIENT_RESOURCESCOPE\"],\r\n notificationApi_client_resourceUri: \"https://totalr4platformnotification-cidi.azurewebsites.net/\",\r\n notificationApi_client_resourceScope: \"api://38523345-ce40-4f68-9a1b-4d58329d934e/access_as_user_APIM\", \r\n moveTagMasterMsg: \"Move to Pre-Production\",\r\n appInsightKey: process.env[\"APPINSIGHTKEY\"],\r\n apim_urls: process.env[\"apim_urls\"],\r\n platformHubUrl: process.env[\"PLATFORMHUBURL\"],\r\n platformAdminUrl: process.env[\"PLATFORMADMINURL\"],\r\n platformDocumentation: process.env[\"PLATFORMDOCUMENTATION\"],\r\n cache_client: {\r\n cacheLocation: \"localStorage\"\r\n },\r\n ReleaseDetails: {\r\n Version: \"1.0.0\",\r\n DateOfBuild: \"NA\",\r\n BuildNumber: \"NA\"\r\n },\r\n groups_client_PlatformAdminGroupId: process.env[\"GROUPS_CLIENT_PLATFORMADMINGROUPID\"],\r\n graphApi_client_resourceUri: \"https://graph.microsoft.com/v1.0/me/memberOf\",\r\n graphApi_client_resourceScope: \"User.Read\",\r\n};","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserCacheLocation, InteractionType, IPublicClientApplication, PublicClientApplication } from '@azure/msal-browser';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { AboutComponent } from './about/about.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\n/** Components*/\r\nimport { AppComponent } from './app.component';\r\nimport { HomeContentComponent } from './home-content/home-content.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { Globals } from './models/globals.model';\r\nimport { MsalBroadcastService, MsalGuard, MsalInterceptor, MsalService, MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG } from '@azure/msal-angular';\r\nimport { MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { MsalInterceptorConfiguration } from '@azure/msal-angular';\r\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\r\nimport { OverageComponent } from './overage/overage.component';\r\n/** Services */\r\nimport { GlobalService } from './services/global.service';\r\nimport { HttpService } from './services/http.service';\r\nimport { KeysPipe } from './shared/keys-pipe/keys.pipe';\r\nimport { XsrfInterceptor } from './services/xsrf.interceptor';\r\nimport { NgCircleProgressModule } from 'ng-circle-progress';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n// checks if the app is running on IE\r\nexport const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\nlet enValue = environment;\r\n\r\nexport const protectedResourceMap: [string, string[]][] = [\r\n [enValue.platformApi_client_resourceUri, [enValue.platformApi_client_resourceScope]],\r\n [enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]]\r\n];\r\n\r\nfunction MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: enValue.clientId,\r\n redirectUri: enValue.redirectUri,\r\n authority: enValue.authority,\r\n postLogoutRedirectUri: enValue.postLogoutRedirectUri,\r\n },\r\n cache: {\r\n cacheLocation: enValue.cache_client.cacheLocation,\r\n storeAuthStateInCookie: isIE, // set to true for IE 11\r\n }\r\n });\r\n}\r\n\r\nfunction MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set(enValue.platformApi_client_resourceUri, [enValue.platformApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]);\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n protectedResourceMap,\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n NavBarComponent,\r\n OverageComponent,\r\n HomeComponent,\r\n HomeContentComponent,\r\n AboutComponent,\r\n KeysPipe\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatStepperModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatTabsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatRadioModule,\r\n MatAutocompleteModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n NgMultiSelectDropDownModule.forRoot(),\r\n AppRoutingModule,\r\n TypeaheadModule.forRoot(),\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatRippleModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n MatCheckboxModule,\r\n DragDropModule,\r\n NgCircleProgressModule.forRoot({\r\n radius: 30,\r\n titleFontSize: '19',\r\n outerStrokeWidth: 4,\r\n innerStrokeWidth: 8,\r\n outerStrokeColor: \"#78C000\",\r\n innerStrokeColor: \"#C7E596\",\r\n animationDuration: 300,\r\n backgroundPadding: -7,\r\n subtitleColor: \"#483500\",\r\n showSubtitle: false,\r\n showUnits: false,\r\n showInnerStroke: false,\r\n startFromZero: false\r\n })\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [\r\n {\r\n provide: APP_INITIALIZER, \r\n useValue: () => new Promise(resolve =>\r\n setTimeout(resolve, 2000)\r\n ),\r\n multi: true\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: XsrfInterceptor, multi: true },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useValue: {\r\n interactionType: InteractionType.Redirect\r\n } as MsalGuardConfiguration\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n Globals,\r\n { provide: APP_BASE_HREF, useValue: '/' }, HttpService, GlobalService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n constructor(public globalService: GlobalService, public globals: Globals, public http: HttpClient) {\r\n\r\n // global config details\r\n this.globals.config = enValue;\r\n\r\n this.globals.releaseDetails = enValue.ReleaseDetails;\r\n\r\n // Check Subscription\r\n this.globals.subscription = enValue.subscription;\r\n this.globalService.environment = enValue.environment;\r\n\r\n // Check Tag Movement Environment\r\n this.globalService.tagMovMsg = enValue.moveTagMasterMsg;\r\n }\r\n}\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport './polyfills.ts';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"x_google_ignoreList":[]}