{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/about/about.component.ts","./src/app/about/about.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/common/add-filter/add-filter.component.ts","./src/app/common/add-filter/add-filter.component.html","./src/app/common/alert/alert.component.ts","./src/app/common/alert/alert.component.html","./src/app/common/common-constants.ts","./src/app/common/confirm-model/confirm-model.component.ts","./src/app/common/confirm-model/confirm-model.component.html","./src/app/configure-model-list/configure-model-list.component.ts","./src/app/configure-model-list/configure-model-list.component.html","./src/app/configure-model/apiurl.validator.ts","./src/app/configure-model/configure-model.component.ts","./src/app/configure-model/configure-model.component.html","./src/app/data-source-manager/data-source-manager.component.ts","./src/app/data-source-manager/data-source-manager.component.html","./src/app/mlservices/mlservices.component.ts","./src/app/mlservices/mlservices.component.html","./src/app/mlservices/aml-modal.component.html","./src/app/model-management/model-management.component.ts","./src/app/model-management/model-management.component.html","./src/app/models/amlWorkspace.model.ts","./src/app/models/configure-model/configure-new.model.ts","./src/app/models/filter/filter-request.model.ts","./src/app/models/filter/filter-response.model.ts","./src/app/models/globals.model.ts","./src/app/models/mlmodel/Model.model.ts","./src/app/models/mlmodel/inputParameters.model.ts","./src/app/models/mlmodel/mlModel-parameters.model.ts","./src/app/models/mlmodel/mlModel.model.ts","./src/app/models/mlmodel/parameter.model.ts","./src/app/models/model-delete/model-delete.component.ts","./src/app/models/model-delete/model-delete.component.html","./src/app/models/model-execute/model-execute.component.ts","./src/app/models/model-execute/model-execute.component.html","./src/app/models/model-registration/model-registration.component.ts","./src/app/models/model-registration/model-registration.component.html","./src/app/nav-bar/nav-bar.component.ts","./src/app/nav-bar/nav-bar.component.html","./src/app/notification/notification.component.ts","./src/app/notification/notification.component.html","./src/app/overage/overage.component.ts","./src/app/services/auth.interceptor.ts","./src/app/services/configure-model-service.ts","./src/app/services/flowsheet-service.ts","./src/app/services/global.service.ts","./src/app/services/graph.service.ts","./src/app/services/group-guard.service.ts","./src/app/services/http.service.ts","./src/app/services/ml-service.ts","./src/app/services/notification-service.ts","./src/app/services/overage.service.ts","./src/app/services/sse-service.ts","./src/app/services/tenant.service.ts","./src/app/services/theme.service.ts","./src/app/services/xsrf.interceptor.ts","./src/app/shared/keys-pipe/keys.pipe.ts","./src/app/theme/theme.module.ts","./src/assets/UOMDataTs.ts","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts"],"sourcesContent":["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}\r\n\r\n@Component({\r\n selector: 'app-about',\r\n templateUrl: './about.component.html',\r\n styleUrls: ['../nav-bar/nav-bar.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 { RouterModule, Routes } from '@angular/router';\r\nimport { ModelManagementComponent } from './model-management/model-management.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { OverageComponent } from './overage/overage.component';\r\nimport { GroupGuardService } from './services/group-guard.service';\r\nimport { ConfigureModelListComponent } from './configure-model-list/configure-model-list.component';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nlet enValue = environment;\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: 'modelManagement',\r\n component: ModelManagementComponent,\r\n canActivate: [\r\n MsalGuard,\r\n GroupGuardService\r\n ],\r\n data: {\r\n expectedGroups: [\r\n enValue.groups_client_PlatformAdminGroupId,\r\n enValue.groups_client_ModelMgmtUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'configureModel',\r\n component: ConfigureModelListComponent,\r\n canActivate: [\r\n MsalGuard,\r\n GroupGuardService\r\n ],\r\n data: {\r\n expectedGroups: [\r\n enValue.groups_client_PlatformAdminGroupId,\r\n enValue.groups_client_ModelMgmtUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'modelManagement',\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, HostListener, Inject, Input, OnInit } from '@angular/core';\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, MSAL_GUARD_CONFIG, 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\nimport { TenantService } from './services/tenant.service';\r\nimport { AppConstants } from './app.constants';\r\n\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 sidenavWidth = 3.5;\r\n showCross = false;\r\n isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n appInsights: ApplicationInsights;\r\n appInsightKey: any;\r\n isMenuOpen: boolean = false;\r\n\r\n private readonly _destroying$ = new Subject();\r\n\r\n constructor(private readonly authService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG) private readonly msalGuardConfig: MsalGuardConfiguration,\r\n private readonly msalBroadcastService: MsalBroadcastService,\r\n private readonly grphService: GraphService,\r\n private readonly overageService: OverageService,\r\n public _router: Router, private readonly httpService: HttpService,\r\n private readonly tenantService: TenantService,\r\n public globals: Globals, public 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\r\n title = 'Platform';\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() {\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\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 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\r\n logPageView(name?: string, url?: string, properties?: any, measurements?: any) {\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 assignRole(thisRef: AppComponent) {\r\n const groupsClientIds = ['PlatformAdminGroupId', 'ModelMgmtUserGroupId'];\r\n groupsClientIds.forEach((groupId) => {\r\n if (thisRef.grphService.user.groupIDs.includes(thisRef.globals.config['groups_client_' + groupId])) {\r\n thisRef.globals.groups.push(groupId);\r\n }\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 if (thisRef.grphService.user.groupIDs.includes(thisRef.globals.config.groups_client_ModelMgmtUserGroupId)) {\r\n thisRef.globals.rbacName = 'Model Management User';\r\n }\r\n else {\r\n thisRef.globals.rbacName = 'User';\r\n }\r\n thisRef.tenantService.getTenantListFromServer(AppConstants.componentId);\r\n thisRef.isLoading = false;\r\n }\r\n\r\n // toggle side navigation drawer\r\n toggleCollapse() {\r\n if (this.sidenavWidth === 3.5) {\r\n this.disableTooltip = true;\r\n this.showCross = true;\r\n this.sidenavWidth = 15.5;\r\n this.isMenuOpen = true;\r\n } else {\r\n this.disableTooltip = false;\r\n this.showCross = false;\r\n this.sidenavWidth = 3.5;\r\n this.isMenuOpen = false;\r\n }\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}\r\n","\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n 6)?'horizontalMenu':'verticalMenu'\" [disableClose]=\"true\" #sidenav mode=\"side\" class=\"example-sidenav\" [ngStyle]=\"{ 'width.em': sidenavWidth }\" opened=\"true\">\r\n \r\n \r\n
\r\n
Models
\r\n
\r\n
\r\n
Configure Model
\r\n
\r\n
\r\n
\r\n
\r\n\r\n 6)?'collapsedMatSidenavContent':'non-collapsedMatSidenavContent'\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","export const AppConstants = {\r\n componentId: 5,\r\n platformAdminT1GroupId: 'ba2233f5-d1c8-4d50-842e-a020b409f78f',\r\n}\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 { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } 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 { MatExpansionModule } from '@angular/material/expansion';\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\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { AuthInterceptorService } from './services/auth.interceptor';\r\n\r\n/** Components*/\r\nimport { AppComponent } from './app.component';\r\nimport { AlertComponent } from './common/alert/alert.component';\r\nimport { ConfirmModelComponent } from './common/confirm-model/confirm-model.component';\r\nimport { AmlModalComponent, MlservicesComponent } from './mlservices/mlservices.component';\r\nimport { ModelManagementComponent } from './model-management/model-management.component';\r\nimport { Globals } from './models/globals.model';\r\nimport { ModelDeleteComponent } from './models/model-delete/model-delete.component';\r\nimport { ModelExecuteComponent } from './models/model-execute/model-execute.component';\r\nimport { ModelRegistrationComponent } from './models/model-registration/model-registration.component';\r\nimport {\r\n MsalBroadcastService,\r\n MsalGuard,\r\n MsalInterceptor,\r\n MsalService,\r\n MSAL_INSTANCE,\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INTERCEPTOR_CONFIG,\r\n MsalGuardConfiguration,\r\n MsalInterceptorConfiguration\r\n} from '@azure/msal-angular';\r\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\r\nimport { OverageComponent } from './overage/overage.component';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\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 { AddFilterComponent } from './common/add-filter/add-filter.component';\r\nimport { NotificationComponent } from './notification/notification.component';\r\nimport { DataSourceManagerComponent } from './data-source-manager/data-source-manager.component';\r\nimport { ConfigureModelComponent } from './configure-model/configure-model.component';\r\nimport { XsrfInterceptor } from './services/xsrf.interceptor';\r\nimport { ConfigureModelListComponent } from './configure-model-list/configure-model-list.component';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nlet enValue = environment;\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\nexport const protectedResourceMap: [string, string[]][] = [\r\n [enValue.modelManagementApi_client_resourceUri, [enValue.modelManagementApi_client_resourceScope]],\r\n [enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]],\r\n [enValue.flowsheetApi_client_resourceUri, [enValue.flowsheetApi_client_resourceScope]],\r\n [enValue.platformAdminApi_client_resourceUri, [enValue.platformAdminApi_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.modelManagementApi_client_resourceUri, [enValue.modelManagementApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.flowsheetApi_client_resourceUri, [enValue.flowsheetApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.platformAdminApi_client_resourceUri, [enValue.platformAdminApi_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 AboutComponent,\r\n MlservicesComponent,\r\n AmlModalComponent,\r\n ModelManagementComponent,\r\n ModelExecuteComponent,\r\n ModelDeleteComponent,\r\n AlertComponent,\r\n ModelRegistrationComponent,\r\n ConfirmModelComponent,\r\n KeysPipe,\r\n AddFilterComponent,\r\n NotificationComponent,\r\n DataSourceManagerComponent,\r\n ConfigureModelComponent,\r\n ConfigureModelListComponent\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 MatChipsModule,\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 MatTableExporterModule,\r\n MatExpansionModule\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 {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptorService,\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { FilterModel } from '../../models/filter/filter-request.model';\r\nimport { FilterResponseModel } from '../../models/filter/filter-response.model';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { CommonConstants, FilterFieldTypes } from '../common-constants';\r\n\r\n@Component({\r\n selector: 'app-add-filter',\r\n templateUrl: './add-filter.component.html',\r\n styleUrls: ['./add-filter.component.css']\r\n})\r\nexport class AddFilterComponent implements OnInit {\r\n\r\n @Input() filterList: FilterModel[];\r\n @Input() selectedFilters: FilterResponseModel[];\r\n @Output() filterResponse = new EventEmitter();\r\n\r\n public conditionList: string[];\r\n public valuesList: string[];\r\n public constants: CommonConstants;\r\n\r\n public addFilterForm: UntypedFormGroup;\r\n\r\n constructor(public fb: UntypedFormBuilder, private readonly globalService: GlobalService) { }\r\n\r\n ngOnInit(): void {\r\n this.constants = new CommonConstants();\r\n this.addFilterForm = this.fb.group({\r\n filterName: ['', Validators.required],\r\n condition: ['', Validators.required],\r\n value: ['', Validators.required]\r\n });\r\n }\r\n\r\n /** Triggered when field is selected*/\r\n onFieldSelected() {\r\n this.valuesList = [];\r\n let selectedField = this.addFilterForm.get('filterName').value;\r\n this.addFilterForm.reset();\r\n this.addFilterForm.get('filterName').setValue(selectedField);\r\n let tempType = this.filterList.find(o => o.fieldName === this.addFilterForm.get('filterName').value.fieldName);\r\n switch (tempType.fieldType) {\r\n case FilterFieldTypes.text:\r\n this.conditionList = this.constants.conditionTypeText;\r\n break;\r\n case FilterFieldTypes.values:\r\n this.conditionList = this.constants.conditionTypeValues;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Receive user input and send to search method\r\n * @param value\r\n */\r\n\r\n /**When condition is selected */\r\n onConditionSelected() {\r\n let tempType = this.filterList.find(o => o.fieldName === this.addFilterForm.get('filterName').value.fieldName);\r\n if (tempType.fieldType == \"text\") {\r\n this.valuesList = [...tempType.values].filter(n => n).sort(function (a, b) {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n });\r\n } else if (tempType.fieldType == \"values\") {\r\n this.valuesList = [...tempType.values].sort((a, b) => parseInt(a, 10) - parseInt(b, 10));\r\n }\r\n }\r\n\r\n /**\r\n * Hides field name from dropdown\r\n * @param fieldName\r\n */\r\n hideFieldName(fieldName: string) {\r\n return (fieldName !== \"version\" && this.selectedFilters?.find(t => t.selectedFieldName == fieldName));\r\n }\r\n\r\n /**\r\n * Disables value\r\n * @param element\r\n */\r\n disableValues(element: string) {\r\n let check: boolean = (!this.addFilterForm.get('value').value?.includes(element) && this.addFilterForm.get('value').value?.length >= 5);\r\n return check;\r\n }\r\n\r\n /**Adding a new filter */\r\n submitFilter() {\r\n let response: FilterResponseModel = new FilterResponseModel();\r\n response.selectedFieldName = this.globalService.replaceFilterText(this.addFilterForm.get('filterName').value.fieldName);\r\n response.selectedCondition = this.addFilterForm.get('condition').value;\r\n response.selectedValue = this.addFilterForm.get('value').value;\r\n this.filterResponse.emit({ filterResponse: response });\r\n }\r\n \r\n}\r\n","
\r\n
\r\n
Field Name
\r\n
\r\n \r\n
\r\n
Condition
\r\n
\r\n \r\n
\r\n
Value
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.css']\r\n})\r\nexport class AlertComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n data.title = data.success ? \"Success\" : \"Failure\";\r\n };\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n cancel\r\n
\r\n
\r\n {{data.title}}\r\n
\r\n
\r\n
\r\n
\"Success\"
\r\n
\r\n
\r\n
\"Failure\"
\r\n
\r\n
{{data.message}}
\r\n
\r\n
\r\n\r\n","export class CommonConstants {\r\n\r\n public conditionTypeText: string[] = [\"==\"];\r\n public conditionTypeValues: string[] = [\"==\", \">=\", \"<=\"];\r\n\r\n}\r\n\r\nexport enum FilterFieldTypes {\r\n text = \"text\",\r\n values = \"values\"\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-confirm-model',\r\n templateUrl: './confirm-model.component.html',\r\n styleUrls: ['./confirm-model.component.css']\r\n})\r\nexport class ConfirmModelComponent {\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n intendedAction() {\r\n this.dialogRef.close(true);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n cancel\r\n
\r\n
\r\n {{data.title}}?\r\n
\r\n
\r\n
\r\n
\"Delete\"
\r\n
\r\n {{data.message}}\r\n
This process cannot be undone.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\"Confirm\"
\r\n
\r\n {{data.message}}\r\n
Click \"OK\" to continue.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterEvent } from '@angular/router';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { MLService } from '../services/ml-service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { Globals } from '../models/globals.model';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { FilterFieldTypes } from '../common/common-constants';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ConfigureModelService } from '../services/configure-model-service';\r\nimport { ConfigureModelComponent } from '../configure-model/configure-model.component';\r\n\r\n@Component({\r\n selector: 'app-configure-model-list',\r\n templateUrl: './configure-model-list.component.html',\r\n styleUrls: ['./configure-model-list.component.css']\r\n})\r\nexport class ConfigureModelListComponent implements OnInit, OnDestroy {\r\n dataToPass: any = [];\r\n accessTokenModel: any;\r\n expandedIndex: any;\r\n stringLimit = 20;\r\n isLoading = true;\r\n modelErrorMessage = 'Error';\r\n isModelErrorApp = false;\r\n isModelErrorAPI = false;\r\n isModelErrorOps = false;\r\n isModelErrorService = false;\r\n selectedItem: string = 'All';\r\n configureModelListDetails: MatTableDataSource;\r\n selection = new SelectionModel(false, []);\r\n displayedColumns: string[] = ['registrationName', 'type', 'modelVersion', 'url', 'lastModifiedBy', 'action'];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n selModelToDelete: any;\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n public destroyed = new Subject();\r\n\r\n constructor(\r\n public router: Router,\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpClientObj: HttpClient,\r\n public configureModelService: ConfigureModelService,\r\n public mlService: MLService,\r\n public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.configureModelListDetails = new MatTableDataSource(emptyList);\r\n this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroyed)).subscribe(() => { this.initialize(); });\r\n }\r\n\r\n ngOnInit() {\r\n // 'ngOnInit' should not be empty \r\n }\r\n\r\n initialize() {\r\n this.mlService.geAuthCode().subscribe((data: any): void => {\r\n this.isLoading = true;\r\n this.accessTokenModel = data.accessToken;\r\n this.isModelErrorApp = false;\r\n this.getListofModel();\r\n }, (error: Error) => {\r\n console.log('Error while getting Bearer token, more details: ', error.message);\r\n });\r\n }\r\n\r\n getListofModel() {\r\n this.selectedFilters = [];\r\n this.configureModelService.GetConfigureModelList().subscribe((data: any): void => {\r\n if (data && data !== null && data.length > 0) {\r\n this.masterData = [...data];\r\n this.configureModelListDetails = new MatTableDataSource(data);\r\n this.configureModelListDetails.sort = this.sort;\r\n this.configureModelListDetails.paginator = this.paginator;\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.configureModelListDetails.data = [];\r\n }\r\n this.isLoading = false;\r\n this.createFilterList();\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Error in fetching model repository\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n erroHandlingModSer(msg, error) {\r\n this.isModelErrorService = true;\r\n this.modelErrorMessage = msg + error;\r\n }\r\n\r\n removeErrorMessage() {\r\n this.isModelErrorApp = false;\r\n this.isModelErrorService = false;\r\n this.isModelErrorAPI = false;\r\n this.isModelErrorOps = false;\r\n }\r\n\r\n /**Triggered to check if Configure Model In Use */\r\n checkConfigureModel(clickEvent, clickedModel) {\r\n this.isLoading = true;\r\n this.configureModelService.checkConfigureModelInUse(clickedModel.modelConfigrationId).subscribe((data: any) => {\r\n if (data && clickEvent !== 'viewModel') {\r\n this.isLoading = false;\r\n this.globalService.showAlert(AlertComponent,\r\n { success: false, message: clickedModel.registrationName + \" can not be updated or deleted.\" });\r\n }\r\n else {\r\n this.configureModelService.getConfigureModelDetailsById(clickedModel.modelConfigrationId).subscribe((configureModeldata: any) => {\r\n if (configureModeldata && clickEvent == 'editModel') {\r\n this.openDialog('editModel', configureModeldata)\r\n } else if (configureModeldata && clickEvent == 'viewModel') {\r\n this.openDialog('viewModel', configureModeldata)\r\n } else {\r\n this.deleteModel(configureModeldata)\r\n }\r\n });\r\n }\r\n this.isLoading = false;\r\n }, (err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n deleteModel(selectedModel) {\r\n this.isLoading = true;\r\n this.selModelToDelete = selectedModel;\r\n let message = \"\";\r\n let dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: message + ' Do you really want to delete this model?'\r\n };\r\n this.isLoading = false;\r\n this.globalService.openModelWindow(this.deleteOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n deleteOnConfirm(thisRef: ConfigureModelListComponent) {\r\n thisRef.isLoading = true;\r\n let modelConfigurationId = thisRef.selModelToDelete.modelConfigrationId;\r\n thisRef.configureModelService.deleteConfigureModel(modelConfigurationId).subscribe((data: any): void => {\r\n thisRef.globalService.showAlert(AlertComponent, { success: true, message: \"Configure Model deleted successfully!\" });\r\n thisRef.getListofModel();\r\n }, (error: Error) => {\r\n thisRef.erroHandlingModSer('Error in deleting model' + thisRef.selModelToDelete.modelName + '. More details: ', error.message);\r\n thisRef.isLoading = false;\r\n });\r\n }\r\n\r\n openDialog(ops, modelData?) {\r\n let dataToPass = {\r\n 'selectedData': ops === 'editModel' || 'viewModel' ? modelData : '',\r\n 'accessToken': this.accessTokenModel,\r\n 'modelsData': this.masterData,\r\n 'modelAction' : ops\r\n };\r\n this.openModelWindow(ConfigureModelComponent, '100%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n openModelWindow(modelComponent, widthOfWindow, panleClassName, dataToPass) {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panleClassName,\r\n data: dataToPass\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.isLoading = true;\r\n this.selection.clear();\r\n this.getListofModel();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Filters data based on input text\r\n * @param filterValue\r\n */\r\n applyFilter(filterValue: string) {\r\n filterValue = filterValue.trim().toLowerCase(); // Remove whitespace and MatTableDataSource defaults to lowercase matches\r\n this.configureModelListDetails.filter = filterValue;\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n this.filterList = [];\r\n for (let a = 0; a < this.displayedColumns.length - 1; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(this.displayedColumns[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n if (this.displayedColumns[a] == \"registrationName\") {\r\n unique = [...new Set(this.configureModelListDetails.data.map(a => a.registrationName))];\r\n } else if (this.displayedColumns[a] == \"type\") {\r\n unique = [...new Set(this.configureModelListDetails.data.map(a => a.type))];\r\n } else if (this.displayedColumns[a] == \"modelVersion\") {\r\n unique = [...new Set(this.configureModelListDetails.data.map(a => a.modelVersion))];\r\n } else if (this.displayedColumns[a] == \"url\") {\r\n unique = [...new Set(this.configureModelListDetails.data.map(a => a.url))];\r\n } else if (this.displayedColumns[a] == \"lastModifiedBy\") {\r\n unique = [...new Set(this.configureModelListDetails.data.map(a => a.lastModifiedBy))];\r\n }\r\n tempFilter.values = unique.filter(n => n);\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.configureModelListDetails.data = this.globalService.conditionalDataFiltering(filterResponse, this.configureModelListDetails.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n if (index >= 0) {\r\n this.selectedFilters.splice(index, 1);\r\n this.configureModelListDetails.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.configureModelListDetails.data = this.globalService.conditionalDataFiltering(element, this.configureModelListDetails.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n \r\n {{modelErrorMessage}}\r\n
\r\n
\r\n Configure Model\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n search\r\n
\r\n
\r\n \r\n \r\n {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\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 Name\r\n {{element.registrationName}} \r\n \r\n \r\n Model Type\r\n {{element.type}} \r\n \r\n \r\n Version \r\n {{element.modelVersion}} \r\n \r\n \r\n API URL\r\n {{element.url.split('?')[0]}} \r\n \r\n \r\n Modified By\r\n {{element.lastModifiedBy}} \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n There are no records to display.\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\n \r\nexport class apiurlValidator {\r\n static cannotContainSpace(control: AbstractControl) : ValidationErrors | null {\r\n if(control.value && (control.value as string).indexOf(' ') >= 0){\r\n return {cannotContainSpace: true}\r\n } \r\n return null;\r\n }\r\n}","import { Component, Inject, OnInit, ViewChild, HostListener } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { Globals } from '../models/globals.model';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ModelParameter } from '../models/mlmodel/mlModel-parameters.model';\r\nimport { ConfigureNewModel } from '../models/configure-model/configure-new.model';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { MLService } from '../services/ml-service';\r\nimport { HttpService } from 'src/app/services/http.service';\r\nimport { apiurlValidator } from './apiurl.validator';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\ninterface modelBasedData {\r\n value: Number;\r\n viewValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-configure-model',\r\n templateUrl: './configure-model.component.html',\r\n styleUrls: ['./configure-model.component.css']\r\n})\r\n\r\nexport class ConfigureModelComponent implements OnInit {\r\n @ViewChild('inputParam') inputParam; // accessing the reference element\r\n @ViewChild('outputParam') outputParam; // accessing the reference element\r\n @HostListener('window:resize') onWindowResize() {\r\n if (window.innerWidth <= 768) {\r\n this.isVertical = true;\r\n } else { this.isVertical = false; }\r\n }\r\n response: any;\r\n dataToSend: any;\r\n selectedStep = 0;\r\n isVertical: boolean = false;\r\n activeParam: number = 0;\r\n invalidStepTwo = false;\r\n modelVersion = '';\r\n modelUrl = '';\r\n modelBased = 0;\r\n modelTypeList = [\"Advanced Analytics\", \"Physics Based\"];\r\n oauthAuthenticationList = [];\r\n secretList = [];\r\n isOauthClientAndSecret = false;\r\n isOauthManagedIdentity = false;\r\n modelBasedList: modelBasedData[] = [\r\n { value: 1, viewValue: 'Compiled (DLL, exe, etc.)' },\r\n { value: 2, viewValue: 'Surrogate' },\r\n { value: 3, viewValue: 'Simulation' },\r\n ];\r\n modelOptions: any[];\r\n baseModelTypesList = [];\r\n selectedBasedModel = 0;\r\n regProgress = false;\r\n isSecretAvailable = false;\r\n isScopeAvailable = false;\r\n isSubscriptionAvailable = false;\r\n isClientAvailable = false;\r\n IsFirstStepInvalid = false;\r\n isBasedType = false;\r\n isConfigureEdit = false;\r\n modelConfigrationId: any;\r\n modelVersionUsed = false;\r\n noInputOutputParam = \"\";\r\n subscriptionKey = \"\";\r\n clientIdName = \"\";\r\n scopeKey = \"\";\r\n secretName = \"\";\r\n paramExist: boolean = true;\r\n authExist: boolean = true;\r\n public isInputParameters: boolean = true;\r\n public modelData = new ConfigureNewModel();\r\n public displayedColumns: string[] = [\"parameterName\", \"action\"];\r\n public inputParameters: MatTableDataSource;\r\n public outputParameters: MatTableDataSource;\r\n filteredModelList: Observable;\r\n public configureModelForm = new UntypedFormGroup({\r\n modelType: new UntypedFormControl(''),\r\n modelBased: new UntypedFormControl(''),\r\n modelUrl: new UntypedFormControl(''),\r\n modelVersion: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n modelName: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n authRequired: new UntypedFormControl(''),\r\n subscriptionKey: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n subscriptionValue: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n clientIdName: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n clientIdNameValue: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n secretName: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n secretNameValue: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n scopeKeyName: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n scopeKeyValue: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n });\r\n\r\n constructor(\r\n public httpService: HttpService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public fb: UntypedFormBuilder,\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpClient: HttpClient,\r\n public mlService: MLService) { }\r\n\r\n ngOnInit(): void {\r\n this.configureModelForm = this.fb.group({\r\n modelType: ['', Validators.required],\r\n modelBased: ['', Validators.required],\r\n modelVersion: ['', [Validators.required, Validators.pattern('^[A-Za-z0-9][A-Za-z0-9_.-]*')]],\r\n modelUrl: ['', [Validators.required, Validators.pattern('https://([da-z.-]+).([a-z.]{2,6})([/w .-]*)??([^#\\n\\r]*)#?([^#\\n\\r]*)/?'), apiurlValidator.cannotContainSpace]],\r\n modelName: ['', [Validators.required, Validators.pattern('^[A-Za-z0-9][A-Za-z0-9_.-]*')]],\r\n authRequired: ['', Validators.required],\r\n subscriptionKey: ['', Validators.required],\r\n subscriptionValue: ['', Validators.required],\r\n clientIdName: ['', Validators.required],\r\n clientIdNameValue: ['', Validators.required],\r\n secretName: ['', Validators.required],\r\n secretNameValue: ['', Validators.required],\r\n scopeKeyName: ['', Validators.required],\r\n scopeKeyValue: ['', Validators.required]\r\n });\r\n this.validateFirstStep();\r\n this.setDefaultModel();\r\n this.getBaseModelTypes();\r\n this.getAuthDetailsList();\r\n this.getAllSecretsList();\r\n if (this.data.selectedData) { this.isConfigureEdit = Object.keys(this.data.selectedData).length > 0; }\r\n this.inputParameters = new MatTableDataSource([new ModelParameter()]);\r\n this.outputParameters = new MatTableDataSource([new ModelParameter()]);\r\n this.modelData.inputParameters = this.inputParameters.data;\r\n this.modelData.outputParameters = this.outputParameters.data;\r\n this.filteredModelList = this.configureModelForm.get('modelName').valueChanges.pipe(\r\n startWith(''),\r\n map(value => this._filterModel(value || '')),\r\n );\r\n }\r\n\r\n private _filterModel(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n if (!filterValue || filterValue.length < 1) {\r\n this.modelOptions = [];\r\n }\r\n else {\r\n let modelsNameList = this.data.modelsData.map(a => a.registrationName);\r\n this.modelOptions = [...new Set(modelsNameList.filter(n => n))]; //'Filter' to remove null & 'Set' to remove duplicate model names\r\n return this.modelOptions.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n }\r\n\r\n onModelVersionFocusOut(event: any) {\r\n let filteredModels = this.data.modelsData.filter((model) => {\r\n return model.registrationName === this.configureModelForm.get('modelName').value;\r\n });\r\n\r\n if (filteredModels && filteredModels.length > 0) {\r\n let modelVersionList = filteredModels.map(a => a.modelVersion); // get version list from model selected\r\n let modelVersionExist = modelVersionList.includes(event.target.value); //check if textbox value matches version from the version list\r\n this.modelVersionUsed = modelVersionExist ? true : false;\r\n }\r\n }\r\n\r\n getBaseModelTypes() {\r\n this.mlService.getBaseModelTypes().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.baseModelTypesList = data;\r\n }\r\n this.checkConfigureEdit(this.data);\r\n }, (error: Error) => {\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n getAllSecretsList() {\r\n this.mlService.getAllSecretsList().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.secretList = data;\r\n }\r\n }, (error: Error) => {\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n getAuthDetailsList() {\r\n this.mlService.getAuthDetailsList().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.oauthAuthenticationList = data;\r\n }\r\n }, (error: Error) => {\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n checkConfigureEdit(configureData) {\r\n this.regProgress = true;\r\n if (configureData.selectedData) {\r\n this.configureModelForm.get('modelType').setValue(configureData.selectedData.type);\r\n this.configureModelForm.get('modelBased').setValue(configureData.selectedData.baseModelId);\r\n this.onModelTypeSelected();\r\n this.configureModelForm.get('modelUrl').setValue(configureData.selectedData.url);\r\n this.configureModelForm.get('modelName').setValue(configureData.selectedData.registrationName);\r\n this.configureModelForm.get('modelVersion').setValue(configureData.selectedData.modelVersion);\r\n this.configureModelForm.get('authRequired').setValue(configureData.selectedData.authId);\r\n if (configureData.selectedData.authId === 1) {\r\n this.isOauthClientAndSecret = true;\r\n this.configureModelForm.get('subscriptionKey').setValue(configureData.selectedData.subscriptionKeyName);\r\n this.configureModelForm.get('subscriptionValue').setValue(configureData.selectedData.subscriptionKeyValue);\r\n this.configureModelForm.get('clientIdName').setValue(configureData.selectedData.clientKeyName);\r\n this.configureModelForm.get('clientIdNameValue').setValue(configureData.selectedData.clientKeyValue);\r\n this.configureModelForm.get('secretNameValue').setValue(configureData.selectedData.secretKeyValue);\r\n this.configureModelForm.get('secretName').setValue(configureData.selectedData.secretKeyName);\r\n this.configureModelForm.get('scopeKeyName').setValue(configureData.selectedData.scopeKeyName);\r\n this.configureModelForm.get('scopeKeyValue').setValue(configureData.selectedData.scopeKeyValue);\r\n } else if(configureData.selectedData.authId === 2) {\r\n this.isOauthManagedIdentity = true;\r\n this.configureModelForm.get('subscriptionKey').setValue(configureData.selectedData.subscriptionKeyName);\r\n this.configureModelForm.get('subscriptionValue').setValue(configureData.selectedData.subscriptionKeyValue);\r\n this.configureModelForm.get('scopeKeyName').setValue(configureData.selectedData.scopeKeyName);\r\n this.configureModelForm.get('scopeKeyValue').setValue(configureData.selectedData.scopeKeyValue);\r\n }\r\n\r\n let inputParamList = configureData.selectedData.inputParameters.map(v => ({\r\n parameterName: v.parameterName, parameterDefaultValue: v.parameterDefaultValue, parameterId: v.parameterId,\r\n captionName: \"\", parameterDataType: \"\", parameterUom: \"\", uomType: \"\"\r\n }\r\n ));\r\n\r\n let outputParamList = configureData.selectedData.outputParameters.map(v => ({\r\n parameterName: v.parameterName, parameterDefaultValue: v.parameterDefaultValue, parameterId: v.parameterId,\r\n captionName: \"\", parameterDataType: \"\", parameterUom: \"\", uomType: \"\"\r\n }\r\n ));\r\n \r\n if (inputParamList.length == 0) {\r\n let iParam = this.inputParameters.data;\r\n inputParamList = new MatTableDataSource(iParam);\r\n this.paramExist = true;\r\n }\r\n if (outputParamList.length === 0) {\r\n let iParam = this.outputParameters.data;\r\n outputParamList = iParam;\r\n this.paramExist = true;\r\n }\r\n\r\n this.modelData.inputParameters = inputParamList;\r\n this.modelData.outputParameters = outputParamList;\r\n }\r\n this.regProgress = false;\r\n }\r\n\r\n configureStepChange() {\r\n this.regProgress = true;\r\n this.invalidStepTwo = false;\r\n if (this.modelData.inputParameters.length !== 0 && this.modelData.outputParameters.length !== 0) {\r\n this.noInputOutputParam = \"\";\r\n this.inputParameters.data = this.modelData.inputParameters;\r\n this.outputParameters.data = this.modelData.outputParameters;\r\n this.regProgress = false;\r\n } else {\r\n this.regProgress = false;\r\n this.invalidStepTwo = true;\r\n if (this.data.selectedData) {\r\n this.noInputOutputParam = \"Input and output parameters not available for \"\r\n + \"Model: \" + this.data.selectedData.registrationName + \" with \"\r\n + \"version: \" + this.data.selectedData.modelVersion;\r\n }\r\n }\r\n }\r\n\r\n validateBeforeUpdate(event, modelData) {\r\n if (event.target.value && this.isConfigureEdit) {\r\n let latest = event.target.value;\r\n let secretNameExisting = this.data.selectedData.secretKeyName;\r\n let secretNameValueExisting = this.data.selectedData.secretKeyValue;\r\n let subscriptionKeyExisting = this.data.selectedData.subscriptionKeyName;\r\n let subscriptionValueExisting = this.data.selectedData.subscriptionKeyValue;\r\n let clientIdNameExisting = this.data.selectedData.clientKeyName;\r\n let clientIdNameValueExisting = this.data.selectedData.clientKeyValue;\r\n let scopeNameExisting = this.data.selectedData.scopeKeyName;\r\n let ScopeKeyValueExisting = this.data.selectedData.scopeKeyValue;\r\n\r\n if (secretNameExisting != latest\r\n || secretNameValueExisting != latest\r\n || subscriptionKeyExisting != latest\r\n || subscriptionValueExisting != latest\r\n || clientIdNameExisting != latest\r\n || clientIdNameValueExisting != latest\r\n || scopeNameExisting != latest\r\n || ScopeKeyValueExisting != latest\r\n ) {\r\n this.paramExist = false; // this will enable Save button if parameter is modified by user\r\n }\r\n }\r\n }\r\n\r\n validateParameter(event, rowIndex, modelData) {\r\n if (event.target.value && this.isConfigureEdit) {\r\n if (this.isInputParameters) {\r\n this.parameterValidate(rowIndex, this.data.selectedData.inputParameters, this.modelData.inputParameters);\r\n }\r\n else {\r\n this.parameterValidate(rowIndex, this.data.selectedData.outputParameters, this.modelData.outputParameters);\r\n }\r\n }\r\n }\r\n\r\n parameterValidate(rowIndex, selectedDataArray, modelDataArray) { \r\n let inputNameExisiting;\r\n if (rowIndex < selectedDataArray.length) {\r\n inputNameExisiting = selectedDataArray[rowIndex].parameterName;\r\n }\r\n else {\r\n inputNameExisiting = '';\r\n }\r\n\r\n const isParamDuplicate = selectedDataArray.some(function (arrVal) {\r\n return modelDataArray[rowIndex].parameterName === arrVal.parameterName;\r\n });\r\n\r\n //check if new parameter value added and existing value not used\r\n this.paramExist = !(inputNameExisiting != undefined && inputNameExisiting !== modelDataArray[rowIndex].parameterName && !isParamDuplicate);\r\n\r\n let inputpara = this.inputParameters.data.filter(a => a.parameterName.length == 0);\r\n if (inputpara.length > 0) {\r\n this.paramExist = true;\r\n }\r\n let outputpara = this.outputParameters.data.filter(a => a.parameterName.length == 0);\r\n if (outputpara.length > 0) {\r\n this.paramExist = true;\r\n }\r\n this.validateOauth();\r\n }\r\n\r\n selectParamType(paramType, inputTabSelected) {\r\n if (inputTabSelected !== this.isInputParameters) {\r\n this.activeParam = 0;\r\n }\r\n if (paramType === 'input') {\r\n this.isInputParameters = true;\r\n } else {\r\n this.isInputParameters = false;\r\n }\r\n }\r\n\r\n selectionChange(selelctedStep) {\r\n this.selectedStep = selelctedStep;\r\n }\r\n\r\n setDefaultModel() {\r\n this.configureModelForm.get(\"modelType\").patchValue(null);\r\n this.configureModelForm.get(\"authRequired\").patchValue(null);\r\n }\r\n\r\n onModelTypeSelected() {\r\n let selectedModelType = this.configureModelForm.get('modelType').value;\r\n if (this.inputParam || this.outputParam) {\r\n this.inputParam.nativeElement.value = '';\r\n this.outputParam.nativeElement.value = '';\r\n }\r\n\r\n this.configureModelForm.get('modelType').setValue(selectedModelType);\r\n\r\n if (selectedModelType === 'Physics Based') {\r\n this.isBasedType = true;\r\n this.configureModelForm.get(\"modelBased\").enable();\r\n } else {\r\n this.isBasedType = false;\r\n this.configureModelForm.get(\"modelBased\").disable();\r\n }\r\n }\r\n\r\n keyUniqueCheck(key) {\r\n if (key === 'secretKey') {\r\n this.secretName = (this.configureModelForm.get('secretName').value).toLowerCase();\r\n this.isSecretAvailable = this.secretList.some(item => item.toLowerCase() === this.secretName);\r\n if (!this.isSecretAvailable && (this.secretName == this.subscriptionKey || this.secretName == this.scopeKey || this.secretName == this.clientIdName)) {\r\n this.isSecretAvailable = true;\r\n }\r\n }\r\n else if (key === 'scopeKeyName') {\r\n this.scopeKey = (this.configureModelForm.get('scopeKeyName').value).toLowerCase();\r\n this.isScopeAvailable = this.secretList.some(item => item.toLowerCase() === this.scopeKey);\r\n if (!this.isScopeAvailable && (this.scopeKey == this.subscriptionKey || this.scopeKey == this.secretName || this.scopeKey == this.clientIdName)) {\r\n this.isScopeAvailable = true;\r\n }\r\n }\r\n }\r\n\r\n secretNameCheck(key) {\r\n if (key === 'subscriptionKey') {\r\n this.subscriptionKey = (this.configureModelForm.get('subscriptionKey').value).toLowerCase();\r\n this.isSubscriptionAvailable = this.secretList.some(item => item.toLowerCase() === this.subscriptionKey);\r\n if (!this.isSubscriptionAvailable && (this.subscriptionKey == this.scopeKey || this.subscriptionKey == this.secretName || this.subscriptionKey == this.clientIdName)) {\r\n this.isSubscriptionAvailable = true;\r\n }\r\n }\r\n else if (key === 'clientKey') {\r\n this.clientIdName = (this.configureModelForm.get('clientIdName').value).toLowerCase();\r\n this.isClientAvailable = this.secretList.some(item => item.toLowerCase() === this.clientIdName);\r\n if (!this.isClientAvailable && (this.clientIdName == this.subscriptionKey || this.clientIdName == this.secretName || this.clientIdName == this.scopeKey)) {\r\n this.isClientAvailable = true;\r\n }\r\n }\r\n }\r\n\r\n validateOauth() {\r\n this.authExist = true;\r\n const selectedOauth = this.configureModelForm.get('authRequired').value;\r\n if (selectedOauth && this.isConfigureEdit) { \r\n let authIdExisting = this.data.selectedData.authId;\r\n if (authIdExisting != selectedOauth) {\r\n this.authExist = false; // this will enable Save button if parameter is modified by user\r\n }\r\n }\r\n }\r\n\r\n onOauthSelected() { \r\n let selectedOauth = this.configureModelForm.get('authRequired').value;\r\n this.configureModelForm.get('authRequired').setValue(selectedOauth);\r\n if (selectedOauth === 1) {\r\n this.isOauthClientAndSecret = true;\r\n this.isOauthManagedIdentity = false;\r\n this.configureModelForm.get(\"subscriptionKey\").enable();\r\n this.configureModelForm.get(\"subscriptionValue\").enable();\r\n this.configureModelForm.get(\"clientIdName\").enable();\r\n this.configureModelForm.get(\"clientIdNameValue\").enable();\r\n this.configureModelForm.get(\"secretName\").enable();\r\n this.configureModelForm.get(\"secretNameValue\").enable();\r\n this.configureModelForm.get(\"scopeKeyName\").enable();\r\n this.configureModelForm.get(\"scopeKeyValue\").enable();\r\n } else if (selectedOauth === 2) {\r\n this.isOauthManagedIdentity = true;\r\n this.isOauthClientAndSecret = false;\r\n\r\n this.configureModelForm.get(\"subscriptionKey\").enable();\r\n this.configureModelForm.get(\"subscriptionValue\").enable(); \r\n this.configureModelForm.get(\"scopeKeyName\").enable();\r\n this.configureModelForm.get(\"scopeKeyValue\").enable();\r\n\r\n this.configureModelForm.get(\"clientIdName\").disable();\r\n this.configureModelForm.get(\"clientIdNameValue\").disable();\r\n this.configureModelForm.get(\"secretName\").disable();\r\n this.configureModelForm.get(\"secretNameValue\").disable();\r\n } else {\r\n this.isOauthClientAndSecret = false;\r\n this.isOauthManagedIdentity = false;\r\n this.configureModelForm.get(\"subscriptionKey\").disable();\r\n this.configureModelForm.get(\"subscriptionValue\").disable();\r\n this.configureModelForm.get(\"clientIdName\").disable();\r\n this.configureModelForm.get(\"clientIdNameValue\").disable();\r\n this.configureModelForm.get(\"secretName\").disable();\r\n this.configureModelForm.get(\"secretNameValue\").disable();\r\n this.configureModelForm.get(\"scopeKeyName\").disable();\r\n this.configureModelForm.get(\"scopeKeyValue\").disable();\r\n }\r\n this.validateOauth();\r\n }\r\n\r\n onBasedModelSelected() {\r\n let selectedBasedModel = this.configureModelForm.get('modelBased').value;\r\n this.configureModelForm.get('modelBased').setValue(selectedBasedModel);\r\n }\r\n\r\n /**\r\n * Checks which panel should be displayed\r\n * @param index\r\n */\r\n displayAddParameters(index: number) {\r\n let check: boolean;\r\n if (this.isInputParameters) {\r\n check = (index == this.inputParameters.data.length - 1);\r\n } else {\r\n check = (index == this.outputParameters.data.length - 1);\r\n }\r\n return check;\r\n }\r\n\r\n /**Adds a new parameter to corresponding list */\r\n addNewParameter() {\r\n if (this.isInputParameters) {\r\n let iParam = this.inputParameters.data;\r\n iParam.push(new ModelParameter());\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n this.paramExist = true;\r\n } else {\r\n let oParam = this.outputParameters.data;\r\n oParam.push(new ModelParameter());\r\n this.outputParameters = new MatTableDataSource(oParam);\r\n this.paramExist = true;\r\n }\r\n }\r\n\r\n /**\r\n * Deletes model at selected index\r\n * @param index\r\n */\r\n deleteModel(index: number) {\r\n if (this.isInputParameters) {\r\n if (this.inputParameters.data.length == 1) {\r\n let iParam = this.inputParameters.data;\r\n iParam.push(new ModelParameter());\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n this.paramExist = true;\r\n }\r\n let iParam = this.inputParameters.data;\r\n iParam.splice(index, 1);\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n let inputpara = this.inputParameters.data.filter(a => a.parameterName.length == 0);\r\n if (inputpara.length > 0) {\r\n this.paramExist = true;\r\n }\r\n else {\r\n this.paramExist = false;\r\n }\r\n\r\n } else {\r\n if (this.outputParameters.data.length == 1) {\r\n let iParam = this.outputParameters.data;\r\n iParam.push(new ModelParameter());\r\n this.outputParameters = new MatTableDataSource(iParam);\r\n this.paramExist = true;\r\n }\r\n\r\n let oParam = this.outputParameters.data;\r\n oParam.splice(index, 1);\r\n this.outputParameters = new MatTableDataSource(oParam);\r\n let outputpara = this.outputParameters.data.filter(a => a.parameterName.length == 0);\r\n if (outputpara.length > 0) {\r\n this.paramExist = true;\r\n }\r\n else {\r\n this.paramExist = false;\r\n }\r\n }\r\n }\r\n\r\n /**Check for enabling/disabling Save button */\r\n disableSave() {\r\n let selectedModelType = this.configureModelForm.get('modelType').value;\r\n if (selectedModelType === 'Physics Based') {\r\n this.selectedBasedModel = this.configureModelForm.get('modelBased').value;\r\n } else {\r\n this.selectedBasedModel = 0;\r\n }\r\n let check: boolean;\r\n check = !this.configureModelForm.valid;\r\n if (!check) {\r\n let inputs = this.inputParameters?.data.map(d => d.parameterName);\r\n let outputs = this.outputParameters?.data.map(d => d.parameterName);\r\n\r\n let iParam: boolean = !this.globalService.isNotNullObject(this.inputParameters)\r\n || (this.globalService.isNotNullObject(this.inputParameters) && inputs.includes(\"\"));\r\n\r\n let oParam: boolean = !this.globalService.isNotNullObject(this.outputParameters)\r\n || (this.globalService.isNotNullObject(this.outputParameters) && outputs.includes(\"\"));\r\n check = iParam || oParam;\r\n }\r\n return check;\r\n }\r\n\r\n onSubmit() {\r\n this.regProgress = true;\r\n let inputParamData = this.inputParameters.data.filter(a => a.parameterName != '' && a.parameterName != null);\r\n let inputParamList = inputParamData.map(v => ({\r\n ParameterName: v.parameterName,\r\n ParameterDefaultValue: \"\",\r\n ParameterType: \"1\",\r\n ModelName: this.configureModelForm.value.modelName\r\n }\r\n ));\r\n\r\n let outputParamData = this.outputParameters.data.filter(a => a.parameterName != '' && a.parameterName != null);\r\n let outputParamList = outputParamData.map(v => ({\r\n ParameterName: v.parameterName,\r\n ParameterDefaultValue: \"\",\r\n ParameterType: \"2\",\r\n ModelName: this.configureModelForm.value.modelName\r\n }\r\n ));\r\n\r\n this.modelData = this.configureModelForm.value;\r\n this.modelData.inputParameters = inputParamData;\r\n this.modelData.outputParameters = outputParamData;\r\n this.modelConfigrationId = (this.isConfigureEdit) ? this.data.selectedData.modelConfigrationId : 0;\r\n\r\n this.dataToSend =\r\n {\r\n \"type\": this.configureModelForm.value.modelType,\r\n \"baseModelId\": this.configureModelForm.value.modelBased,\r\n \"url\": this.configureModelForm.value.modelUrl,\r\n \"registrationName\": this.configureModelForm.value.modelName,\r\n \"modelVersion\": this.configureModelForm.value.modelVersion,\r\n \"isActive\": \"1\",\r\n \"createdBy\": this.globalService.loggedInUser,\r\n \"lastModifiedBy\": this.globalService.loggedInUser,\r\n \"inputParameters\": inputParamList,\r\n \"outputParameters\": outputParamList,\r\n \"modelConfigrationId\": this.modelConfigrationId,\r\n \"AuthId\": this.configureModelForm.value.authRequired,\r\n \"SubscriptionKeyName\": this.configureModelForm.value.subscriptionKey,\r\n \"subscriptionKeyValue\": this.configureModelForm.value.subscriptionValue,\r\n \"ClientKeyName\": this.configureModelForm.value.clientIdName,\r\n \"ClientKeyValue\": this.configureModelForm.value.clientIdNameValue,\r\n \"SecretKeyName\": this.configureModelForm.value.secretName,\r\n \"SecretKeyValue\": this.configureModelForm.value.secretNameValue,\r\n \"ScopeKeyName\": this.configureModelForm.value.scopeKeyName,\r\n \"ScopeKeyValue\": this.configureModelForm.value.scopeKeyValue,\r\n }\r\n this.regProgress = false;\r\n\r\n if (typeof this.dataToSend.type !== 'undefined') {\r\n this.mlService.saveData(this.dataToSend).subscribe((response: any): void => {\r\n this.regProgress = false;\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Model configuration data saved successfully!\" });\r\n this.invokeSaveApi(response);\r\n this.dialogRef.close('added');\r\n },\r\n error => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Error while saving data!\" });\r\n this.regProgress = false;\r\n });\r\n }\r\n }\r\n\r\n invokeSaveApi(modelConfigrationId) {\r\n //Generate form data for save post call\r\n const formData: FormData = new FormData();\r\n formData.set('data', JSON.stringify(this.modelData));\r\n formData.append('modelConfigrationId', modelConfigrationId);\r\n this.mlService.saveConfigureModel(formData).subscribe((data: any) => {\r\n this.regProgress = false;\r\n });\r\n this.configureModelForm.reset();\r\n this.deleteNewParameter();\r\n\r\n // clearing the value\r\n if (this.inputParam) {\r\n this.inputParam.nativeElement.value = '';\r\n this.outputParam.nativeElement.value = '';\r\n }\r\n }\r\n\r\n deleteNewParameter() {\r\n if (!this.isInputParameters) {\r\n let iParam = this.inputParameters.data;\r\n iParam.splice(1, iParam.length);\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n\r\n let oParam = this.outputParameters.data;\r\n oParam.splice(1, oParam.length);\r\n this.outputParameters = new MatTableDataSource(oParam);\r\n }\r\n }\r\n\r\n validateFirstStep() {\r\n this.IsFirstStepInvalid = true;\r\n let modelname = this.configureModelForm.get('modelName').value;\r\n let modelType = this.configureModelForm.get('modelType').value;\r\n let modelBased = this.configureModelForm.get('modelBased').value;\r\n let modelVersion = this.configureModelForm.get('modelVersion').value;\r\n let modelUrl = this.configureModelForm.get('modelUrl').value;\r\n let authId = this.configureModelForm.get('authRequired').value;\r\n let subscriptionKey = this.configureModelForm.get('subscriptionKey').value;\r\n let subscriptionValue = this.configureModelForm.get('subscriptionValue').value;\r\n let clientIdName = this.configureModelForm.get('clientIdName').value;\r\n let clientIdNameValue = this.configureModelForm.get('clientIdNameValue').value;\r\n let secretName = this.configureModelForm.get('secretName').value;\r\n let secretNameValue = this.configureModelForm.get('secretNameValue').value;\r\n let scopeKeyName = this.configureModelForm.get('scopeKeyName').value;\r\n let scopeKeyValue = this.configureModelForm.get('scopeKeyValue').value;\r\n if (modelname == '' || modelType == null || modelVersion == '' || modelUrl == '' || authId == null) {\r\n this.IsFirstStepInvalid = true;\r\n }\r\n else {\r\n this.IsFirstStepInvalid = false;\r\n if (modelType == 'Physics Based' && modelBased == '') {\r\n this.IsFirstStepInvalid = true;\r\n }\r\n if ((authId == 1 && (subscriptionKey == '' || subscriptionValue == '' || clientIdName == '' || clientIdNameValue == '' || secretName == '' ||\r\n secretNameValue == '' || scopeKeyName == '' || scopeKeyValue == '')) || \r\n (authId == 2 && (subscriptionKey == '' || subscriptionValue == '' || scopeKeyName == '' || scopeKeyValue == ''))) {\r\n this.IsFirstStepInvalid = true; \r\n }\r\n } \r\n this.validateOauthFields(authId);\r\n return (this.IsFirstStepInvalid);\r\n }\r\n\r\n validateOauthFields(authId:any) {\r\n if ((authId == 1 && (this.isClientAvailable || this.isSubscriptionAvailable || this.isSecretAvailable || this.isScopeAvailable)) ||\r\n (authId == 2 && (this.isSubscriptionAvailable || this.isScopeAvailable))) {\r\n this.IsFirstStepInvalid = true;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Configure Model
\r\n
1
\r\n
\r\n
\r\n
\r\n
\r\n Configure Model Parameters\r\n
\r\n
2
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Configure Model\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n Configure Model Parameters\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 Configure Model\r\n \r\n \r\n \r\n Configure Model Parameters\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 \r\n {{option}}\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n This Model Version is already being used.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n API URL is required.\r\n
\r\n
\r\n It should be a https URL.\r\n
\r\n
\r\n API URL should not contain space.\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 Subscription Key is alredy in use.\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 Client Id is alredy in use.\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 Secret name is alredy in use.\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 Scope Key is alredy in use.\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
0 && !regProgress\">\r\n
\r\n
\r\n
Input Parameters
\r\n
\r\n
\r\n
Output Parameters
\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 \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 {{noInputOutputParam}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MLService } from '../services/ml-service';\r\nimport { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport { DataSrc, ModelParameter } from '../models/mlmodel/mlModel-parameters.model';\r\nimport { NgForm, UntypedFormGroup, UntypedFormControl } from '@angular/forms';\r\nimport { InputParameter } from '../models/mlmodel/inputParameters.model';\r\nimport { Model } from '../models/mlmodel/Model.model';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { catchError, concatMap, flatMap, map, mergeMap, switchMap, tap } from 'rxjs/operators';\r\nimport { EMPTY, of } from 'rxjs';\r\nimport { ParameterModel } from '../models/mlmodel/parameter.model';\r\n\r\n@Component({\r\n selector: 'app-data-source-manager',\r\n templateUrl: './data-source-manager.component.html',\r\n styleUrls: ['./data-source-manager.component.css']\r\n})\r\n\r\nexport class DataSourceManagerComponent implements OnInit {\r\n @ViewChild('f', { static: true }) registerForm: NgForm;\r\n myFormGroup: UntypedFormGroup;\r\n inputParameters = [];\r\n outputParameters = [];\r\n modelVariablesList: InputParameter[] = [];\r\n deletedInputParam: InputParameter;\r\n srcConnVariablesList = [];\r\n modelData = new Model();\r\n dataToPass = [];\r\n nextStep = false;\r\n form_template = [];\r\n isLoading = false;\r\n dataSource: any[];\r\n dataSourceSelected;\r\n dataSourceName;\r\n parameterList: any[];\r\n selectedParameter;\r\n frequncy = 120;\r\n responseOutput = [];\r\n readOnly: false;\r\n runId: number = 0;\r\n simulationRunStatus = true;\r\n dataId;\r\n parameterModel = new ParameterModel();\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public globals: GlobalService,\r\n public mlService: MLService,\r\n public dialog: MatDialog) {\r\n };\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n this.dialogRef.disableClose = true;\r\n this.getModelParameters();\r\n }\r\n\r\n getModelParameters() {\r\n this.mlService.getConfigParameter(this.data.modelId).pipe(\r\n concatMap((data: any) => {\r\n this.addModel(this.modelData, data);\r\n this.outputParameters = data.outputParameters;\r\n this.inputParameters = JSON.parse(JSON.stringify(this.modelData.inputParameters));// to avoid value by reference\r\n //this.getDataSources();\r\n return of(data);\r\n }),\r\n concatMap((data) => {\r\n return of(this.getDataSources());\r\n })\r\n ).subscribe();\r\n }\r\n\r\n addModel(model: Model, responseData) {\r\n model.modelId = responseData.modelId;\r\n model.modelName = responseData.modelName;\r\n model.modelType = this.data.modelType;\r\n responseData.inputParameters.forEach((param) => {\r\n let inputParam = new InputParameter();\r\n inputParam.data = this.parseParameterData(param);\r\n model.inputParameters.push(inputParam);\r\n });\r\n }\r\n\r\n parseParameterData(param: any): ModelParameter {\r\n let parameter = new ModelParameter();\r\n parameter.parameterId = param.parameterId;\r\n parameter.parameterName = param.parameterName;\r\n parameter.parameterDataType = param.parameterDataType;\r\n parameter.parameterUom = param.parameterUom;\r\n parameter.captionName = param.captionName;\r\n return parameter;\r\n }\r\n\r\n\r\n getDataSources(): any {\r\n this.mlService.getDataSources().subscribe((data: any) => {\r\n this.dataSource = data;\r\n this.dataSourceSelected = this.dataSource[0];\r\n this.getDataSourceParameters();\r\n\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Failed to load Data source!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getDataSourceParameters() {\r\n this.mlService.getDataSourceParameters(this.dataSourceSelected.dataSourceId).subscribe((data: any) => {\r\n this.parameterList = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Failed to load data source parameters!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n drop(event) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n transferArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n deleteMapping(index) {\r\n this.srcConnVariablesList.splice(index, 1);\r\n if (this.modelVariablesList[index]) {\r\n this.deletedInputParam = this.modelVariablesList.splice(index, 1)[0];\r\n this.resetParameterSrcMapData(this.deletedInputParam);\r\n this.returnParameterToOriginalPosition(this.inputParameters, this.deletedInputParam);\r\n }\r\n }\r\n\r\n resetParameterSrcMapData(param: InputParameter) {\r\n param.mappedDataSource = DataSrc.user;\r\n param.mappedDataSourceId = '';\r\n param.mappedParameterId = 0;\r\n param.mappedParameterName = '';\r\n param.mappedFrequency = 0;\r\n param.mappedParameterUoM = '';\r\n }\r\n\r\n returnParameterToOriginalPosition(paramList, param) {\r\n let prevIndex = Math.max.apply(Math, paramList\r\n .filter(p => p.parameterId < param.parameterId)\r\n .map(function (p) { return p.parameterId; }));\r\n prevIndex = prevIndex < 0 ? 0 : prevIndex;\r\n paramList.splice(prevIndex, 0, param);\r\n }\r\n\r\n onSelectParameter(parameter) {\r\n let srcParameterData = {\r\n mappedDataSource: DataSrc.extDataSrc,\r\n mappedDataSourceId: this.dataSourceSelected.dataSourceId,\r\n mappedFrequency: this.frequncy,\r\n mappedParameterId: parameter.srcParameterId,\r\n mappedParameterName: parameter.srcParameter,\r\n mappedParameterUoM: ''\r\n };\r\n this.srcConnVariablesList.push(srcParameterData);\r\n this.selectedParameter = undefined;\r\n }\r\n\r\n executeModel() {\r\n this.responseOutput = [];\r\n this.nextStep = true;\r\n let formItem = [];\r\n let group = {};\r\n for (let i = 0; i < this.inputParameters.length; i++) {\r\n if (this.inputParameters[i].mappedDataSource === DataSrc.user) {\r\n let obj = {};\r\n obj['inputModel'] = this.inputParameters[i].data.parameterName + \"-\" + this.inputParameters[i].data.parameterId;\r\n obj['label'] = this.inputParameters[i].data.captionName;\r\n obj['uom'] = this.inputParameters[i].data.parameterUom;\r\n obj['value'] = this.inputParameters[i].data.parameterDefaultValue;\r\n if (obj['value'] == null || typeof (this.inputParameters[i].data.parameterDefaultValue) === 'string') {\r\n obj['type'] = 'textBox';\r\n } else if (obj['value'] == null || typeof (this.inputParameters[i].data.parameterDefaultValue) === 'number') {\r\n obj['type'] = 'number';\r\n } else {\r\n obj['type'] = 'checkbox';\r\n }\r\n formItem.push(obj);\r\n }\r\n }\r\n this.form_template = formItem;\r\n this.form_template.forEach(input_template => {\r\n group[input_template.inputModel] = new UntypedFormControl(input_template.value);\r\n })\r\n this.myFormGroup = new UntypedFormGroup(group);\r\n if (this.inputParameters.length === 0) {\r\n this.executeModelNextLevel();\r\n }\r\n }\r\n\r\n gotoPrev() {\r\n this.nextStep = false;\r\n }\r\n\r\n onSubmit() {\r\n for (let [key, value] of Object.entries(this.myFormGroup.value)) {\r\n let res = key.split('-');\r\n\r\n this.parameterModel.model = this.modelData;\r\n this.parameterModel.parameterId = res[1]\r\n this.parameterModel.dataSource = DataSrc.user;\r\n this.parameterModel.dataSourceId = 1;\r\n this.parameterModel.srcFrequency = 0;\r\n this.parameterModel.srcParameterId = 0;\r\n this.parameterModel.srcParameterName = '';\r\n this.parameterModel.srcParameterUoM = '';\r\n this.parameterModel.defaultValue = value;\r\n this.updateParameterMapping(this.parameterModel);\r\n }\r\n this.executeModelNextLevel();\r\n }\r\n\r\n executeModelNextLevel() {\r\n this.isLoading = true;\r\n this.modelVariablesList.forEach((connParam, index) => {\r\n if (this.srcConnVariablesList.length > 0) {\r\n let srcParam = this.srcConnVariablesList[index];\r\n\r\n this.parameterModel.model = this.modelData;\r\n this.parameterModel.parameterId = connParam.data.parameterId\r\n this.parameterModel.dataSource = DataSrc.extDataSrc;\r\n this.parameterModel.dataSourceId = srcParam.mappedDataSourceId;\r\n this.parameterModel.srcFrequency = srcParam.mappedFrequency;\r\n this.parameterModel.srcParameterId = srcParam.mappedParameterId;\r\n this.parameterModel.srcParameterName = srcParam.mappedParameterName;\r\n this.parameterModel.srcParameterUoM = srcParam.mappedParameterUoM;\r\n this.parameterModel.defaultValue = connParam.data.parameterDefaultValue;\r\n this.updateParameterMapping(this.parameterModel);\r\n }\r\n });\r\n\r\n this.mlService.executeModel(this.modelData).subscribe((data: any): void => {\r\n if ((this.modelData.modelType).toLowerCase() == \"surrogate\" || (this.modelData.modelType).toLowerCase() == \"physics based\") {\r\n this.responseOutput = data;\r\n this.simulationRunStatus = true;\r\n }\r\n else if ((this.modelData.modelType).toLowerCase() == \"simulation\") {\r\n let dataToPass = {\r\n title: 'Run Smoke Test',\r\n isDelete: false,\r\n message: 'Smoke test for this Simulation model will take more time, would you like to continue?'\r\n };\r\n this.runId = data;\r\n this.globals.openModelWindow(this.simulationRunOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Failed to execute test!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n simulationRunOnConfirm(thisRef: DataSourceManagerComponent) {\r\n thisRef.isLoading = false;\r\n thisRef.mlService.getSimulationRunReport(thisRef.runId).subscribe((data: any): void => {\r\n thisRef.simulationRunStatus = data.simulationRunStatus;\r\n thisRef.responseOutput = data.responseOutput;\r\n }, (error: Error) => {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: \"Something Went Wrong\" });\r\n });\r\n }\r\n updateParameterMapping(parameterModel: ParameterModel) {\r\n let param = parameterModel.model.inputParameters.find(p => p.data.parameterId == parameterModel.parameterId);\r\n\r\n param.mappedDataSource = parameterModel.dataSource;\r\n param.mappedDataSourceId = parameterModel.dataSourceId;\r\n param.mappedFrequency = parameterModel.srcFrequency;\r\n param.mappedParameterId = parameterModel.srcParameterId;\r\n param.mappedParameterName = parameterModel.srcParameterName;\r\n param.mappedParameterUoM = parameterModel.srcParameterUoM;\r\n param.data.parameterDefaultValue = parameterModel.defaultValue;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n cancel\r\n
\r\n
\r\n Model Specification: Data Source\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Model: {{modelData.modelUniqueId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Variables
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Variables Name
\r\n
Data Source
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{item.mappedParameterName}}\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
Min
\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
Input Parameters
\r\n
\r\n
\r\n
Output Parameters
\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
{{form_elem.uom}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{form_elem.uom}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{{form_elem.uom}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{linkedItem.data.captionName}}\r\n \r\n
\r\n \r\n
\r\n
link
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0\">\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
Parameter NameValue
{{item.key}}{{item.value}}
\r\n
{{errorOutpuMsg}}
\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, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { GlobalService } from './../services/global.service';\r\nimport { HttpService } from './../services/http.service';\r\nimport { AmlWorkspace } from './../models/amlWorkspace.model';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MLService } from './../services/ml-service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\n\r\n@Component({\r\n selector: 'app-mlservices',\r\n templateUrl: './mlservices.component.html',\r\n styleUrls: ['./mlservices.component.css']\r\n})\r\nexport class MlservicesComponent implements OnInit {\r\n\r\n resourceGroups;\r\n selectedResourceGroup;\r\n workspaceList;\r\n url;\r\n selectedUrl;\r\n constructor(\r\n public globals: GlobalService,\r\n public httpService: HttpService,\r\n public mlService: MLService,\r\n public router: Router,\r\n public _router: ActivatedRoute,\r\n public dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getResourceGroups();\r\n }\r\n\r\n getResourceGroups() {\r\n this.mlService.getResourceGroups().subscribe(resourceGroups => {\r\n this.resourceGroups = resourceGroups;\r\n },error=>{ console.log(error)});\r\n }\r\n getMLWorkspaceList(resourceGroup) {\r\n this.mlService.getAmlWorkspaces(resourceGroup).subscribe(workspaceList => {\r\n this.workspaceList = workspaceList;\r\n },error=>{ console.log(error)});\r\n }\r\n\r\n redirectToML() {\r\n if (this.selectedUrl != undefined) {\r\n let modelListUrl = this.selectedUrl.replace('ml.azure.com/', \"ml.azure.com/model/list/\");\r\n window.open(modelListUrl);\r\n }\r\n }\r\n openDialog(): void {\r\n this.dialog.open(AmlModalComponent, {\r\n width: '80%',\r\n height: 'auto',\r\n panelClass: 'confirm-modalbox-dark',\r\n data: {}\r\n });\r\n }\r\n\r\n onSelectWorkspace(ws) {\r\n this.selectedUrl = ws.url;\r\n }\r\n\r\n onSelectResourceGroup(resourceGroup) {\r\n this.getMLWorkspaceList(resourceGroup.name);\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'modal-component',\r\n templateUrl: './aml-modal.component.html',\r\n styleUrls: ['./aml-modal.component.css']\r\n})\r\n\r\nexport class AmlModalComponent {\r\n isLoader = false;\r\n isCompleted = false;\r\n loaderMessage = \"Creating Workspace. Please wait...\";\r\n locationList;\r\n resourceGroups;\r\n keyVaults;\r\n storageAccounts;\r\n containerRegistries;\r\n applicationInsights;\r\n workspaceNameAvailable = true;\r\n Heading = \"Create AML Workspace\";\r\n workspaceData = new AmlWorkspace();\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n public httpService: HttpService,\r\n public globals: GlobalService,\r\n public mlService: MLService\r\n\r\n ) { };\r\n\r\n ngOnInit() {\r\n this.getResourceGroups();\r\n this.getLocationList();\r\n this.getWorkspaceEditionList();\r\n }\r\n\r\n loadAllChildResources(resourceGroupName) {\r\n this.resetChildFResoucesList();\r\n this.getKeyVaults(resourceGroupName);\r\n this.getStorageAccounts(resourceGroupName);\r\n this.getContainerRegistries(resourceGroupName);\r\n this.getApplicationInsights(resourceGroupName);\r\n }\r\n\r\n resetChildFResoucesList() {\r\n this.workspaceData.storageAccountId = undefined;\r\n this.workspaceData.storAcctName = undefined;\r\n this.workspaceData.applicationInsightName = undefined;\r\n this.workspaceData.keyVaultId = undefined;\r\n this.workspaceData.keyVaultName = undefined;\r\n this.workspaceData.containerRegistryId = undefined;\r\n this.workspaceData.containerRegistryName = undefined;\r\n this.workspaceData.applicationInsightId = undefined;\r\n this.workspaceData.applicationInsightName = undefined;\r\n }\r\n\r\n getResourceGroups() {\r\n this.mlService.getResourceGroups().subscribe(resourceGroups => {\r\n this.resourceGroups = resourceGroups;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n getWorkspaceEditionList() {\r\n this.workspaceData.workspaceEdition = \"Basic\";\r\n }\r\n getLocationList() {\r\n this.mlService.getLocations().subscribe(locData => {\r\n this.locationList = locData;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n getKeyVaults(resourceGroupName) {\r\n this.mlService.getKeyVaults(resourceGroupName).subscribe(kv => {\r\n this.keyVaults = kv;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n getStorageAccounts(resourceGroupName) {\r\n this.mlService.getStorageAccounts(resourceGroupName).subscribe(sa => {\r\n this.storageAccounts = sa;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n getContainerRegistries(resourceGroupName) {\r\n this.mlService.getContainerRegistries(resourceGroupName).subscribe(res => {\r\n this.containerRegistries = res;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n getApplicationInsights(resourceGroupName) {\r\n this.mlService.getApplicationInsights(resourceGroupName).subscribe(res => {\r\n this.applicationInsights = res;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n checkWorkspaceNameAvailability() {\r\n this.mlService.getAmlWorkspace(this.workspaceData.resourceGroupName, this.workspaceData.workspace).subscribe((res: any) => {\r\n if (res.length > 0) {\r\n this.workspaceNameAvailable = false;\r\n }\r\n else {\r\n this.workspaceNameAvailable = true;\r\n }\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n setSelectedProperty(item, itemProperty, targetObj, targetpropertyName) {\r\n targetObj[targetpropertyName] = item[itemProperty];\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(\"Cancel\");\r\n }\r\n\r\n showAlert(data: { success: boolean; message: string; }) {\r\n this.dialog.open(AlertComponent, {\r\n width: '350px',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: data\r\n });\r\n }\r\n\r\n addWorkspace() {\r\n this.isLoader = true;\r\n this.loaderMessage = \"Creating Workspace. It may take upto 10-15 seconds. Please wait...\";\r\n this.workspaceData.createdBy = this.globals.loggedInUser;\r\n this.mlService.CreateMLWorkspace(this.workspaceData).subscribe((result: any): void => {\r\n if (result.status != undefined && result.status == 200) {\r\n this.showAlert({ success: true, message: \"AML Workspace \" + this.workspaceData.workspace + \" has been created successfully.\" });\r\n }\r\n else\r\n {\r\n this.showAlert({ success: false, message: \"Something went wrong while creating AML Workspace \" + this.workspaceData.workspace + \". Please try again.\" });\r\n }\r\n this.isLoader = false;\r\n this.dialogRef.close();\r\n },error=>{console.log(error)});\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n Please select a valid resource group.\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Please select a valid Workspace.\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

{{Heading}}

\r\n
\r\n
\r\n cancel\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 Please provide valid location\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n \r\n Please provide valid Storage Account\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n \r\n Please provide valid container registry name\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n \r\n Please provide valid Workspace\r\n \r\n \r\n Please fill resource group name first.\r\n \r\n \r\n Workspace name is not available.\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 Please provide valid resource group name\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 Please provide valid Key Vault\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 Please provide valid application insight name\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 {{loaderMessage}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { NavigationEnd, Router, RouterEvent } from '@angular/router';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ModelRegistrationComponent } from '../models/model-registration/model-registration.component';\r\nimport { FlowSheetService } from '../services/flowsheet-service';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { MLService } from '../services/ml-service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { Globals } from '../models/globals.model';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { FilterFieldTypes } from '../common/common-constants';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DataSourceManagerComponent } from '../data-source-manager/data-source-manager.component';\r\nimport { TenantService } from '../services/tenant.service';\r\n\r\n@Component({\r\n selector: 'app-model-management',\r\n templateUrl: './model-management.component.html',\r\n styleUrls: ['./model-management.component.css']\r\n})\r\nexport class ModelManagementComponent implements OnInit, OnDestroy {\r\n resourceList: any = [];\r\n accessTokenModel: any;\r\n expandedIndex: any;\r\n stringLimit = 20;\r\n isLoading = true;\r\n modelErrorMessage = 'Error';\r\n isModelErrorApp = false;\r\n isModelErrorAPI = false;\r\n isModelErrorOps = false;\r\n isModelErrorService = false;\r\n modelDetails: any;\r\n selectedItem: string = 'All';\r\n modelType: string[] = ['All', 'Surrogate', 'AIML', 'Simulator'];\r\n modelListDetails: MatTableDataSource;\r\n selection = new SelectionModel(false, []);\r\n displayedColumns: string[] = ['modelName', 'modelTypeName', 'modelVersion', 'businessDescription', 'businessFunctionTypeName', 'action'];\r\n isLinear = false;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n selModelToDelete: any;\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n public destroyed = new Subject();\r\n\r\n constructor(\r\n public router: Router,\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpClientObj: HttpClient,\r\n public flowsheetService: FlowSheetService,\r\n public mlService: MLService,\r\n private readonly tenantService: TenantService,\r\n public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.modelListDetails = new MatTableDataSource(emptyList);\r\n this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroyed)\r\n ).subscribe(() => {\r\n this.initialize();\r\n });\r\n }\r\n\r\n initialize() {\r\n this.expandedIndex = -1;\r\n this.mlService.geAuthCode().subscribe((data: any): void => {\r\n this.isLoading = true;\r\n this.isModelErrorApp = false;\r\n this.accessTokenModel = data.accessToken;\r\n this.getListofModel();\r\n }, (error: Error) => {\r\n console.log('Error while getting Bearer token, more details: ', error.message);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // 'ngOnInit' should not be empty\r\n }\r\n\r\n getListofModel() {\r\n this.selectedFilters = [];\r\n this.mlService.getModelList().subscribe((data: any): void => {\r\n if (data && data !== null && data.length > 0) {\r\n this.masterData = [...data];\r\n this.modelListDetails = new MatTableDataSource(data);\r\n this.modelListDetails.sort = this.sort;\r\n this.modelListDetails.paginator = this.paginator;\r\n this.isLoading = false;\r\n }\r\n else {\r\n this.modelListDetails.data = [];\r\n }\r\n this.isLoading = false;\r\n this.createFilterList();\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Error in fetching model repository\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n checkIfEmpty(objectPassed) {\r\n return objectPassed.length > 0;\r\n }\r\n\r\n truncateString(str) {\r\n if (str.length <= this.stringLimit) {\r\n return str;\r\n } else {\r\n return str.slice(0, this.stringLimit) + '...';\r\n }\r\n }\r\n\r\n filterTenantsModel(dataset, currentTenantName, currentRefinery) {\r\n return dataset.filter(x => x.kvTags.Location == currentRefinery && x.kvTags.TenantName == currentTenantName);\r\n }\r\n\r\n modefiedList(dataset) {\r\n const listDataModel = dataset;\r\n for (let i = 0; i < listDataModel.length; i++) {\r\n let tags = [];\r\n if (listDataModel[i].description) {\r\n listDataModel[i].description = listDataModel[i].description.replace(/\\[([^[\\]]*)\\]/g, function ($0, $1) { tags.push($1); return ''; });\r\n if (tags.length > 0) {\r\n listDataModel[i].type = tags[0];\r\n listDataModel[i].function = tags[1];\r\n listDataModel[i].availalbleModel = {\r\n name: tags[2],\r\n properties: {\r\n urlTemplate: tags[3]\r\n }\r\n };\r\n listDataModel[i].baseModelIdName = tags[4];\r\n } else {\r\n console.log(\"Tags is not available\");\r\n }\r\n } else {\r\n console.log(\"Description is not available\");\r\n }\r\n }\r\n return dataset;\r\n }\r\n\r\n erroHandlingModel(msg, error) {\r\n this.isModelErrorApp = true;\r\n this.modelErrorMessage = msg + error;\r\n }\r\n\r\n erroHandlingModSer(msg, error) {\r\n this.isModelErrorService = true;\r\n this.modelErrorMessage = msg + error;\r\n }\r\n\r\n erroHandlingModAPI(msg, error) {\r\n this.isModelErrorAPI = true;\r\n this.modelErrorMessage = msg + error;\r\n }\r\n\r\n erroHandlingModOps(msg, error) {\r\n this.isModelErrorOps = true;\r\n this.modelErrorMessage = msg + error;\r\n }\r\n\r\n erroHandlingModApp(error) {\r\n this.isModelErrorApp = false;\r\n this.modelErrorMessage = 'Error is: ' + error;\r\n }\r\n\r\n erroHandSerForApp(error) {\r\n this.isModelErrorApp = false;\r\n this.modelErrorMessage = 'Error is: ' + error;\r\n }\r\n\r\n erroHandAPIForApp(error) {\r\n this.isModelErrorApp = false;\r\n this.modelErrorMessage = 'Error is: ' + error;\r\n }\r\n\r\n erroHandOpsForApp(error) {\r\n this.isModelErrorApp = false;\r\n this.modelErrorMessage = 'Error is: ' + error;\r\n }\r\n\r\n filterModel(newValue) {\r\n this.selectedItem = newValue;\r\n }\r\n\r\n selectRow(row) {\r\n this.selection.toggle(row);\r\n }\r\n\r\n removeErrorMessage() {\r\n this.isModelErrorApp = false;\r\n this.isModelErrorService = false;\r\n this.isModelErrorAPI = false;\r\n this.isModelErrorOps = false;\r\n }\r\n\r\n deleteModel(selectedModel) {\r\n this.isLoading = true;\r\n this.selModelToDelete = selectedModel;\r\n let message = \"\";\r\n this.flowsheetService.getFlowSheetsByModelDetails(selectedModel.modelId).subscribe((data: any) => {\r\n this.isLoading = false;\r\n if (data.length > 0) {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"This model is being used in Flowsheet(s). Deleting it will cause those flowsheets to malfunction. So you can not delete \" + selectedModel.modelName + \"model.\" });\r\n }\r\n else {\r\n let dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: message + ' Do you really want to delete this model?'\r\n };\r\n this.globalService.openModelWindow(this.deleteOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n });\r\n }\r\n\r\n deleteOnConfirm(thisRef: ModelManagementComponent) {\r\n thisRef.isLoading = true;\r\n const httpOptions = thisRef.globalService.gethttpHeader(thisRef.accessTokenModel);\r\n let selModelDeleteId = thisRef.selModelToDelete.id;\r\n thisRef.mlService.deleteModelData(selModelDeleteId, httpOptions).subscribe((data: any): void => {\r\n thisRef.mlService.deleteModelMasterData(thisRef.selModelToDelete.modelId, thisRef.selModelToDelete.modelConfigrationId).subscribe((data: any) => {\r\n thisRef.selection.clear();\r\n thisRef.getListofModel();\r\n });\r\n }, (error: Error) => {\r\n thisRef.erroHandlingModSer('Error in deleting model' + thisRef.selModelToDelete.modelName + '. More details: ', error.message);\r\n thisRef.isLoading = false;\r\n });\r\n }\r\n\r\n openDialog(ops, modelData?) {\r\n let dataToPass = {\r\n 'selectedData': ops === 'editModel' || 'viewModel' ? modelData : '',\r\n 'modelAction' : ops,\r\n 'accessToken': this.accessTokenModel\r\n };\r\n this.openModelWindow(ModelRegistrationComponent, '70%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n openModelExec(modelDetails) {\r\n let dataToPass = {\r\n 'name': modelDetails.modelName,\r\n 'version': modelDetails.modelVersion,\r\n 'modelType': modelDetails.modelTypeName,\r\n 'availalbleModel': modelDetails.availalbleModel,\r\n 'accessToken': this.accessTokenModel,\r\n 'modelId': modelDetails.modelId,\r\n 'modelConfigrationId': modelDetails.modelConfigrationId\r\n };\r\n if (modelDetails.modelTypeName == \"AIML\") {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"This feature is not available for \" + modelDetails.modelTypeName + \" type model.\" });\r\n } else {\r\n this.openModelWindow(DataSourceManagerComponent, '80%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n }\r\n\r\n openModelWindow(modelComponent, widthOfWindow, panleClassName, dataToPass) {\r\n {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panleClassName,\r\n data: dataToPass\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n this.isLoading = true;\r\n this.selection.clear();\r\n this.getListofModel();\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Filters data based on input text\r\n * @param filterValue\r\n */\r\n applyFilter(filterValue: string) {\r\n filterValue = filterValue.trim().toLowerCase(); // Remove whitespace and MatTableDataSource defaults to lowercase matches\r\n this.modelListDetails.filter = filterValue;\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n this.filterList = [];\r\n for (let a = 0; a < this.displayedColumns.length - 1; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(this.displayedColumns[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n if (this.displayedColumns[a] == \"modelName\") {\r\n unique = [...new Set(this.modelListDetails.data.map(a => a.modelName))];\r\n } else if (this.displayedColumns[a] == \"modelTypeName\") {\r\n unique = [...new Set(this.modelListDetails.data.map(a => a.modelTypeName))];\r\n } else if (this.displayedColumns[a] == \"modelVersion\") {\r\n unique = [...new Set(this.modelListDetails.data.map(a => a.modelVersion))];\r\n } else if (this.displayedColumns[a] == \"businessDescription\") {\r\n unique = [...new Set(this.modelListDetails.data.map(a => a.businessDescription))];\r\n } else if (this.displayedColumns[a] == \"businessFunctionTypeName\") {\r\n unique = [...new Set(this.modelListDetails.data.map(a => a.businessFunctionTypeName))];\r\n }\r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.modelListDetails.data = this.globalService.conditionalDataFiltering(filterResponse, this.modelListDetails.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n if (index >= 0) {\r\n this.selectedFilters.splice(index, 1);\r\n this.modelListDetails.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.modelListDetails.data = this.globalService.conditionalDataFiltering(element, this.modelListDetails.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n \r\n {{modelErrorMessage}}\r\n
\r\n
\r\n Model Management\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n search\r\n
\r\n
\r\n \r\n \r\n {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\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 Name\r\n {{element.modelName}} \r\n \r\n \r\n Model Type\r\n {{element.modelTypeName}} \r\n \r\n \r\n Version \r\n {{element.modelVersion}} \r\n \r\n \r\n Description\r\n {{element.businessDescription}} \r\n \r\n \r\n Business Function\r\n {{element.businessFunctionTypeName}} \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n There are no records to display.\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","export class AmlWorkspace{\r\n constructor(\r\n public resourceGroupId: any = '',\r\n public resourceGroupName: any = '',\r\n public locationId: any = '',\r\n public locationName: any = '',\r\n public workspace: any = '',\r\n public workspaceEdition: any = '',\r\n public createdBy: any = '',\r\n public keyVaultId: any = '',\r\n public keyVaultName: any = '',\r\n public storageAccountId: any = '',\r\n public storAcctName: any = '',\r\n public containerRegistryId: any = '',\r\n public containerRegistryName: any = '',\r\n public applicationInsightId: any = '',\r\n public applicationInsightName: any = '',\r\n ) { } \r\n}\r\n\r\n","import { ModelParameter } from \"../mlmodel/mlModel-parameters.model\";\r\n\r\nexport class ConfigureNewModel {\r\n modelName: string;\r\n modelType: string;\r\n modelUrl: string;\r\n modelVersion: string;\r\n authId: number;\r\n baseModelId: number;\r\n clientKeyName: string;\r\n clientKeyValue: string;\r\n scopeKeyName: string;\r\n scopeKeyValue: string;\r\n secretKeyName: string;\r\n secretKeyValue: string;\r\n subscriptionKeyName: string;\r\n subscriptionKeyValue: string;\r\n inputParameters: ModelParameter[];\r\n outputParameters: ModelParameter[]\r\n}\r\n","export class FilterModel {\r\n fieldName: string;\r\n fieldType: string;\r\n values: string[];\r\n}\r\n","export class FilterResponseModel {\r\n selectedFieldName: string;\r\n selectedCondition: string;\r\n selectedValue: string[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class Globals {\r\n config: any = {\r\n modelManagementApi_client_resourceUri: \"\",\r\n modelManagementApi_client_resourceScope: \"\",\r\n graphApi_client_resourceUri: \"\",\r\n graphApi_client_resourceScope: \"\",\r\n flowsheetApi_client_resourceUri: \"\",\r\n flowsheetApi_client_resourceScope: \"\",\r\n notificationApi_client_resourceUri: \"\",\r\n notificationApi_client_resourceScope: \"\",\r\n modelsExecURL_AIML: \"\",\r\n modelsExecURL_Surrogate: \"\",\r\n modelsExecURL_Simulation: \"\",\r\n modelOpsDesc_AIML: \"\",\r\n modelOpsDesc_Surrogate: \"\",\r\n modelOpsDesc_Simulation: \"\",\r\n platformAdminApi_client_resourceUri: \"\",\r\n platformAdminApi_client_resourceScope: \"\",\r\n modelListULR: \"\",\r\n deleteModelURL: \"\",\r\n platformHubUrl: \"\",\r\n platformHomeUrl: \"\"\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\r\n subscription: string = '';\r\n releaseDetails: any;\r\n}\r\n","import { InputParameter } from \"./inputParameters.model\";\r\n\r\nexport class Model {\r\n modelId: number;\r\n modelName: string;\r\n modelType: string;\r\n inputParameters: InputParameter[];\r\n\r\n constructor() {\r\n this.modelId = 0;\r\n this.modelName = '';\r\n this.modelType ='';\r\n this.inputParameters = [];\r\n }\r\n}\r\n","import { DataSrc, ModelParameter } from \"../mlmodel/mlModel-parameters.model\";\r\n\r\nexport class InputParameter {\r\n data: ModelParameter;\r\n mappedDataSource: DataSrc;\r\n mappedDataSourceId: string;\r\n mappedParameterId: number;\r\n mappedParameterName: string;\r\n mappedFrequency: number;\r\n mappedParameterUoM: string;\r\n\r\n constructor() {\r\n this.data = new ModelParameter();\r\n this.mappedDataSource = DataSrc.user;\r\n this.mappedDataSourceId = '1';\r\n this.mappedParameterId = 0;\r\n this.mappedParameterName = '';\r\n this.mappedFrequency = 0;\r\n this.mappedParameterUoM = '';\r\n }\r\n\r\n}\r\n","export class ModelParameter{\r\n parameterId: number;\r\n parameterName: string;\r\n parameterDefaultValue: any;\r\n parameterDataType: string;\r\n parameterUom: string;\r\n captionName: string;\r\n uomType: string;\r\n\r\n constructor() {\r\n this.parameterId = 0;\r\n this.parameterName = '';\r\n this.parameterDefaultValue = null;\r\n this.parameterDataType = '';\r\n this.parameterUom = '';\r\n this.captionName = '';\r\n this.uomType = '';\r\n }\r\n}\r\n\r\nexport enum DataSrc {\r\n model = 0,\r\n user = 1,\r\n extDataSrc = 2\r\n}\r\n","import { ModelParameter } from \"./mlModel-parameters.model\";\r\n\r\nexport class MlModel{\r\n modelId: number;\r\n modelName: string;\r\n modelApiVersion: number;\r\n businessDescription: string;\r\n modelType: string;\r\n businessFunctionType: number;\r\n providerInformation: string;\r\n lastUpdatedDate: Date;\r\n createdBy: string;\r\n lastUpdatedBy: string;\r\n refineryName: string;\r\n ModelContainerId: string;\r\n ModelContainerUrl: string;\r\n apiUrl: string;\r\n modelEntityType: string;\r\n inputParameters: ModelParameter[];\r\n outputParameters: ModelParameter[];\r\n baseModelId;\r\n modelConfigrationId;\r\n tenantId: number;\r\n\r\n constructor() {\r\n this.modelId = 0;\r\n this.modelName = '';\r\n this.modelApiVersion = 0;\r\n this.businessDescription = '';\r\n this.modelType = '';\r\n this.businessFunctionType = 0;\r\n this.providerInformation = '';\r\n this.lastUpdatedDate = new Date();\r\n this.createdBy = '';\r\n this.lastUpdatedBy = '';\r\n this.refineryName = '';\r\n this.ModelContainerId = '';\r\n this.ModelContainerUrl = '';\r\n this.apiUrl = '';\r\n this.modelEntityType = '';\r\n this.inputParameters = [];\r\n this.outputParameters = [];\r\n this.baseModelId = '';\r\n this.modelConfigrationId = '';\r\n this.tenantId = 0;\r\n }\r\n}\r\n","import { DataSrc } from '../mlmodel/mlModel-parameters.model';\r\nimport { Model } from \"./Model.model\";\r\n\r\n\r\nexport class ParameterModel {\r\n model: Model; \r\n parameterId;\r\n dataSource: DataSrc;\r\n dataSourceId;\r\n srcFrequency;\r\n srcParameterId;\r\n srcParameterName;\r\n srcParameterUoM;\r\n defaultValue;\r\n\r\n constructor() {\r\n // CONSTRUCTOR IS EMPTY\r\n }\r\n}","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { Globals } from '../globals.model';\r\nimport { MLService } from 'src/app/services/ml-service';\r\n\r\n@Component({\r\n selector: 'app-model-delete',\r\n templateUrl: './model-delete.component.html',\r\n styleUrls: ['./model-delete.component.css']\r\n})\r\nexport class ModelDeleteComponent {\r\n\r\n counter = 0;\r\n modelNotDeleted = false;\r\n notDeletedModel = [];\r\n isModelSerDelete = true;\r\n modelErrDelMsg = '';\r\n isDelErrorAPI = true;\r\n delErrModMessage = 'Message';\r\n selectedTextForDelete = '';\r\n isErrInDelCon = true;\r\n conDelErrMsg = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly httpClient: HttpClient,\r\n public globalsConfig: Globals,\r\n private readonly globals: GlobalService,\r\n public mlService: MLService,) { }\r\n\r\n onDeleteClick(): void {\r\n for (const element of this.data.selectedData.selected) {\r\n this.deleteEachModel(element.id, this.data.selectedData.selected.length);\r\n }\r\n }\r\n\r\n deleteEachModel(modelId, selectedRowNumber) {\r\n const httpOptions = this.globals.gethttpHeader(this.data.accessToken);\r\n this.mlService.deleteEachModelData(modelId, httpOptions).subscribe((data: any): void => {\r\n this.counter++;\r\n if (this.counter === selectedRowNumber) {\r\n this.dialogRef.close('deleted');\r\n }\r\n }, (error: Error) => {\r\n this.notDeletedModel.push(modelId);\r\n this.modelNotDeleted = true;\r\n console.log('Model ' + modelId + ' not deleted because ' + error.message);\r\n });\r\n }\r\n\r\n onOkayClick(): void {\r\n if (this.counter > 0) {\r\n this.dialogRef.close('deleted');\r\n } else { this.dialogRef.close(); }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n erroHandlingDeleteSer(msg, error) {\r\n this.isModelSerDelete = true;\r\n if (msg === 'service') {\r\n this.modelErrDelMsg = msg + error;\r\n } else {\r\n this.modelErrDelMsg = msg;\r\n }\r\n }\r\n\r\n erroHandlingDeleteAPI(msg, error) {\r\n if (msg === 'inApi') {\r\n this.isDelErrorAPI = true;\r\n } else {\r\n this.isDelErrorAPI = false;\r\n }\r\n this.delErrModMessage = msg + error;\r\n }\r\n\r\n selectTextForDelete(newValue) {\r\n if (newValue === 'Added') {\r\n this.selectedTextForDelete = 'Added ' + newValue;\r\n } else {\r\n this.selectedTextForDelete = newValue;\r\n }\r\n }\r\n\r\n erroInConnInDelete(error) {\r\n if (error === 'inConnection') {\r\n this.isErrInDelCon = false;\r\n this.conDelErrMsg = 'Error is: ' + error;\r\n } else {\r\n this.conDelErrMsg = 'Error is in connection: ' + error;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\"delete\"
\r\n
Are you sure?
\r\n
Sorry!
\r\n
\r\n Do you really want yo delete thease models? This process can not be undone.\r\n
\r\n
\r\n You are not authorized to delete below models. Please contact administrator.\r\n
  • {{item}}
\r\n
\r\n
\r\n
Cancel
\r\n
Delete
\r\n
Ok
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { UntypedFormGroup, UntypedFormControl, NgForm } from '@angular/forms';\r\nimport { MLService } from '../../services/ml-service';\r\nimport { ModelParameter } from '../mlmodel/mlModel-parameters.model';\r\nimport { Globals } from '../globals.model';\r\n\r\n@Component({\r\n selector: 'app-model-execute',\r\n templateUrl: './model-execute.component.html',\r\n styleUrls: ['./model-execute.component.css']\r\n})\r\n\r\nexport class ModelExecuteComponent implements OnInit {\r\n regProgress = true;\r\n exeProgress = false;\r\n myFormGroup: UntypedFormGroup;\r\n errorMessage = '';\r\n errorOutpuMsg = '';\r\n opsName = [];\r\n inputParameters: ModelParameter[];\r\n outputParameters: ModelParameter[];\r\n form_template = [];\r\n responseOutput = [];\r\n @ViewChild('f', { static: false }) registerForm: NgForm;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public httpClient: HttpClient,\r\n private readonly globals: GlobalService,\r\n public globasConfig: Globals,\r\n public mlService: MLService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.regProgress = true;\r\n this.opsName = this.data.availalbleModel.properties.urlTemplate;\r\n let modelsDescUrl = this.globasConfig.config.modelsExecURL_AIML[(this.data.modelType).trim()] + (this.data.availalbleModel.name).trim() + '?api-version=2019-12-01';\r\n this.globals.getModelsDescriptions(this.renderFormControl, this, modelsDescUrl, this.data.accessToken);\r\n }\r\n\r\n renderFormControl(data, thisRef: ModelExecuteComponent) {\r\n thisRef.regProgress = true;\r\n thisRef.mlService.getConfigParameterWithDetails(thisRef.data.name, thisRef.data.modelConfigurationId).subscribe((data: any): void => {\r\n thisRef.inputParameters = data.inputParameters;\r\n thisRef.outputParameters = data.outputParameters;\r\n let formItem = [];\r\n let group = {};\r\n for (let i = 0; i < thisRef.inputParameters.length; i++) {\r\n {\r\n let obj = {};\r\n obj['inputModel'] = thisRef.inputParameters[i].parameterName;\r\n obj['label'] = thisRef.inputParameters[i].captionName;\r\n if (typeof (thisRef.inputParameters[i].parameterDefaultValue) === 'string') {\r\n obj['type'] = 'textBox';\r\n } else if (typeof (thisRef.inputParameters[i].parameterDefaultValue) === 'number') {\r\n obj['type'] = 'number';\r\n } else {\r\n obj['type'] = 'checkbox';\r\n }\r\n formItem.push(obj);\r\n }\r\n thisRef.form_template = formItem;\r\n thisRef.form_template.forEach(input_template => {\r\n group[input_template.inputModel] = new UntypedFormControl('');\r\n });\r\n thisRef.myFormGroup = new UntypedFormGroup(group);\r\n thisRef.regProgress = false;\r\n }\r\n }, (error: Error) => {\r\n thisRef.errorMessage = \"Error in getting parameters list for \" + thisRef.data.selectedData.name + \" model\";\r\n thisRef.regProgress = false;\r\n });\r\n }\r\n\r\n\r\n onSubmit() {\r\n this.mlService.apimAuthCodeData().subscribe((data: any): void => {\r\n this.errorOutpuMsg = '';\r\n this.exeProgress = true;\r\n const httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Access-Control-Allow-Methods': 'POST',\r\n 'Authorization': 'Bearer ' + data.accessToken\r\n })\r\n };\r\n const modelsExecUrl = this.globasConfig.config.modelsExecURL[(this.data.modelType).trim()] + this.opsName;\r\n this.mlService.modelsExecData(modelsExecUrl, this.myFormGroup.value, httpOptions).subscribe((data: any): void => {\r\n this.responseOutput = [];\r\n this.modefiedOutput(data);\r\n this.exeProgress = false;\r\n }, (error: Error) => {\r\n this.errorOutpuMsg = 'Error in fetching output, more details: ' + error.message;\r\n this.exeProgress = false;\r\n });\r\n }, (error: Error) => {\r\n console.log('Error while getting Bearer token, more details: ', error.message);\r\n });\r\n }\r\n\r\n modefiedOutput(data) {\r\n for (let [key, value] of Object.entries(data)) {\r\n for (let i = 0; i < this.outputParameters.length; i++) {\r\n if (this.outputParameters[i].parameterName === key) {\r\n let obj = {};\r\n obj['key'] = this.outputParameters[i].captionName;\r\n obj['value'] = value;\r\n this.responseOutput.push(obj);\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
Input Parameters
\r\n
\r\n
\r\n
Output Parameters
\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
\r\n
\r\n
\r\n 0\">\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
Parameter NameValue
{{item.key}}{{item.value}}
\r\n
{{errorOutpuMsg}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{errorMessage}}
\r\n
\r\n","import { Component, OnInit, ViewChild, HostListener, Inject } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { MlModel } from '../mlmodel/mlModel.model';\r\nimport { UOMData } from '../../../assets/UOMDataTs';\r\nimport { ModelParameter } from '../mlmodel/mlModel-parameters.model';\r\nimport { MLService } from '../../services/ml-service';\r\nimport { Globals } from '../globals.model';\r\nimport { TenantService } from '../../services/tenant.service';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { HttpService } from 'src/app/services/http.service';\r\n\r\n@Component({\r\n selector: 'app-model-registration',\r\n templateUrl: './model-registration.component.html',\r\n styleUrls: ['./model-registration.component.css']\r\n})\r\nexport class ModelRegistrationComponent implements OnInit {\r\n stepOne = true;\r\n stepTwo = false;\r\n stepThree = false;\r\n activModelName = 'Physics Based';\r\n availableModelName: string = '';\r\n modelDetails: any;\r\n fileToUpload: File = null;\r\n imageToUpload: File = null;\r\n registrationName = '';\r\n modelApiVersion = '';\r\n description = '';\r\n modelId = 0;\r\n businessFunction: any = { businessFunctionTypeId: 0, businessFunctionTypeName: '' };\r\n physicsBasedType: any = { baseModelId: 0, baseModelName: \"\" };\r\n selectedFileName = '';\r\n selectedImageName = '';\r\n availalbleModel: any = { registrationName: '' };\r\n availalbleModelVersion: any = { modelConfigrationId: '' };\r\n isPhysicsDisabled = true;\r\n isAdvanceDisabled = true;\r\n isCreMsg = false;\r\n apiRegModErr: string;\r\n isModelReg = true;\r\n modRegErrMsg: string;\r\n isCreateErrorApp = false;\r\n createErrorMessage = 'Message';\r\n isModelServiceCreate = true;\r\n modelErrCreateMsg = '';\r\n isCreErrorAPI = false;\r\n creModMessage: string;\r\n selectedText = 'Selected';\r\n isErrInCon = true;\r\n conErrMsg = 'Error';\r\n isErrDel = true;\r\n modDelErr = '';\r\n isViewErr = true;\r\n viewErrMsg = '';\r\n isVertical: boolean = false;\r\n regProgress = false;\r\n errorInModelCreation = '';\r\n modelParamsErro = '';\r\n availModelErro = '';\r\n isLoading = false;\r\n availModelList = [];\r\n modelListOptions = [];\r\n regErrorMsg = false;\r\n businessFunctionTypesList = [];\r\n availModelVersionList = [];\r\n baseModelTypesList = [];\r\n isPhysicsBasedType = true;\r\n selectedStep = 0;\r\n activeParam: number = 0;\r\n isInputParameters = true;\r\n captionExist = true;\r\n dupCapInParam = [];\r\n dupCapOutParam = [];\r\n validCapInParam = [];\r\n validCapOutParam = [];\r\n selectedModelName = \"\";\r\n selectedModelVersion = \"\";\r\n selectedModelType = \"\";\r\n noInputOutputParam = \"\";\r\n uomMap: Array;\r\n uomType: string;\r\n uomTypes: string[];\r\n result: any;\r\n uom: string;\r\n uoms: string[];\r\n modelData = new MlModel();\r\n invalidStepTwo = false;\r\n invalidModelAndVersion = false;\r\n isUOMDisabled = true;\r\n checkUOMTypeChanged: boolean = true;\r\n previousInputUOMType = null;\r\n previousOutputUOMType = null;\r\n masterData: any;\r\n filteredMasterData: any;\r\n @ViewChild('f', { static: true }) registerForm: NgForm;\r\n @ViewChild('stepper', { static: false }) stepper: MatStepper;\r\n @HostListener('window:resize') onWindowResize() {\r\n if (window.innerWidth <= 768) {\r\n this.isVertical = true;\r\n } else { this.isVertical = false; }\r\n }\r\n newImageUploaded: boolean = false;\r\n constructor(\r\n public httpService: HttpService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public httpClient: HttpClient,\r\n private readonly globals: GlobalService,\r\n public globalsConfig: Globals,\r\n public tenantService: TenantService,\r\n public mlService: MLService) { }\r\n\r\n ngOnInit() {\r\n this.regProgress = true;\r\n this.mlService.getToken().subscribe((data: any): void => {\r\n this.uomTypes = Object.keys(UOMData);\r\n this.uomMap = Object.keys(UOMData).map(key => ({ type: key, value: UOMData[key] }));\r\n this.getBusinessFunctionTypes();\r\n this.handleFileInput();\r\n this.getListofModel();\r\n });\r\n }\r\n\r\n configureIt(uomType, index) {\r\n this.activeParam = index;\r\n this.populateUOM(uomType);\r\n }\r\n\r\n stepChange(event) {\r\n let stepLabel = event.selectedStep.label;\r\n this.activeParam = 0;\r\n if (stepLabel == \"configuration\"\r\n && (this.selectedModelName !== JSON.stringify(this.registrationName)\r\n || this.selectedModelType !== JSON.stringify(this.activModelName))) {\r\n this.selectedModelName = JSON.stringify(this.registrationName);\r\n this.selectedModelVersion = JSON.stringify(this.modelApiVersion);\r\n this.selectedModelType = JSON.stringify(this.activModelName);\r\n this.getParameters();\r\n }\r\n }\r\n\r\n filterSelectedParames(params) {\r\n params.filter(\r\n (item) =>\r\n Object.keys(item).includes('captionName') &&\r\n Object.keys(item).includes('parameterUom')\r\n );\r\n }\r\n\r\n getParameters() {\r\n this.invalidStepTwo = false;\r\n this.modelParamsErro = '';\r\n this.mlService.getParameterList(this.availalbleModel.registrationName, this.availalbleModelVersion.modelConfigrationId).subscribe((data: any): void => {\r\n this.modelData.inputParameters = data.inputParamters;\r\n this.modelData.outputParameters = data.outputParamters;\r\n if (data.inputParamters.length !== 0 && data.outputParamters !== 0) {\r\n this.noInputOutputParam = \"\";\r\n if (this.data.selectedData) {\r\n this.getConfigParams(this.data.selectedData.modelId);\r\n } else {\r\n this.regProgress = false;\r\n }\r\n } else {\r\n this.invalidStepTwo = true;\r\n if (this.data.selectedData) {\r\n this.noInputOutputParam = \"Input and output parameters not available for \" + this.data.selectedData.registrationName + \" model\";\r\n }\r\n }\r\n }, (error: Error) => {\r\n this.handleErrorScenario();\r\n });\r\n }\r\n\r\n getListofModel() {\r\n this.mlService.getModelList().subscribe((data: any): void => {\r\n if (data && data !== null && data.length > 0) {\r\n this.masterData = [...data];\r\n this.isLoading = false;\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching model repository\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n handleErrorScenario() {\r\n this.invalidStepTwo = true;\r\n if (this.data.selectedData) {\r\n this.modelParamsErro = \"Error in getting parameters list for \" + this.data.selectedData.registrationName + \" model\";\r\n }\r\n this.regProgress = false;\r\n }\r\n\r\n // populate values in second dropdown on selection of value in first\r\n populateUOM(uomType) {\r\n this.isUOMDisabled = false\r\n const _self = this;\r\n if (this.uomMap && this.uomMap.length > 0) {\r\n _self.result = this.uomMap.filter((u) => {\r\n if (uomType === u.type) {\r\n _self.uoms = u.value;\r\n }\r\n });\r\n }\r\n }\r\n\r\n resetUOM(index, parameterType: string) {\r\n this.captionExist = false;\r\n if (parameterType === \"inputParameters\") {\r\n this.modelData.inputParameters[index].parameterUom = '';\r\n } else if (parameterType === \"outputParameters\") {\r\n this.modelData.outputParameters[index].parameterUom = '';\r\n }\r\n }\r\n\r\n resetUOMType(index, event, parameterType: string) {\r\n this.checkUOMTypeChanged = true;\r\n if (parameterType === \"inputParameters\") {\r\n this.previousInputUOMType = this.modelData.inputParameters[index].parameterUom;\r\n this.modelData.inputParameters[index].parameterUom = event;\r\n }\r\n else if (parameterType === \"outputParameters\") {\r\n this.previousOutputUOMType = this.modelData.outputParameters[index].parameterUom;\r\n this.modelData.outputParameters[index].parameterUom = event;\r\n }\r\n\r\n if (this.previousInputUOMType !== this.modelData.inputParameters[index].parameterUom\r\n || this.previousOutputUOMType !== this.modelData.outputParameters[index].parameterUom) {\r\n this.checkUOMTypeChanged = false;\r\n this.captionExist = false;\r\n }\r\n }\r\n\r\n setBaseModelName(baseModelIdNumber) {\r\n if (baseModelIdNumber == 1) {\r\n return \"Compiled\";\r\n };\r\n return baseModelIdNumber == 2 ? \"Surrogate\" : \"Simulation\";\r\n }\r\n\r\n getConfigParams(modelId) {\r\n this.mlService.getConfigParameter(modelId).subscribe((data: any): void => {\r\n let baseModelIdNumber = this.availalbleModel.baseModelId;\r\n let baseModelIdName = this.setBaseModelName(baseModelIdNumber);\r\n if (baseModelIdName !== \"Simulation\") {\r\n this.modelData.inputParameters = data.inputParameters;\r\n this.modelData.outputParameters = data.outputParameters;\r\n } else {\r\n this.modelData.inputParameters = this.updateConfigParams(this.modelData.inputParameters, data.inputParameters)\r\n this.modelData.outputParameters = this.updateConfigParams(this.modelData.outputParameters, data.outputParameters);\r\n }\r\n if (this.modelData.inputParameters.length > 0) {\r\n this.populateUOM(this.modelData.inputParameters[0].uomType);\r\n }\r\n this.regProgress = false;\r\n }, (error: Error) => {\r\n this.handleErrorScenario();\r\n });\r\n }\r\n\r\n updateConfigParams(rawParam, configParam) {\r\n for (let i = 0; i < rawParam.length; i++) {\r\n for (const element of configParam) {\r\n if (rawParam[i].parameterId === element.parameterId) {\r\n rawParam[i] = element;\r\n }\r\n }\r\n }\r\n return rawParam;\r\n }\r\n\r\n checkIfEdit(dataForEdit) {\r\n if (dataForEdit.selectedData) {\r\n this.activModelName = (dataForEdit.selectedData.modelTypeName).trim();\r\n this.modelId = dataForEdit.selectedData.modelId;\r\n this.physicsBasedType = this.baseModelTypesList.find(x => x.baseModelId == dataForEdit.selectedData.baseModelId);\r\n this.isPhysicsBasedType = (this.activModelName == 'Physics Based') ? true : false;\r\n this.isPhysicsDisabled = false;\r\n this.isAdvanceDisabled = false;\r\n if (this.isPhysicsBasedType) {\r\n this.isPhysicsDisabled = true\r\n }\r\n else { this.isAdvanceDisabled = true };\r\n\r\n this.getAvailableModel(this.activModelName, this.setAvailableModel, dataForEdit.selectedData.modelConfigrationId, dataForEdit.selectedData.registrationName, 'viewEdit');\r\n this.registrationName = (dataForEdit.selectedData.modelName).trim();\r\n this.modelListOptions = [];\r\n this.modelListOptions.push(dataForEdit.selectedData);\r\n this.availalbleModel = {registrationName: dataForEdit.selectedData.registrationName};\r\n this.availalbleModelVersion = dataForEdit.selectedData.modelConfigrationId;\r\n this.description = dataForEdit.selectedData.businessDescription;\r\n this.businessFunction = this.businessFunctionTypesList.find(x => x.businessFunctionTypeName == (dataForEdit.selectedData.businessFunctionTypeName).trim());\r\n } else {\r\n this.activModelName = 'Physics Based';\r\n this.getAvailableModel(this.activModelName, null, null, null, null);\r\n this.regProgress = false;\r\n }\r\n }\r\n\r\n setAvailableModel(availalbleModel, modelConfigrationId, thisRef: ModelRegistrationComponent) {\r\n thisRef.availalbleModel = thisRef.availModelList.find(m => m.registrationName == availalbleModel && m.modelConfigrationId == modelConfigrationId);\r\n thisRef.availalbleModelVersion = thisRef.availModelVersionList.find(m => m.modelConfigrationId == modelConfigrationId);\r\n }\r\n\r\n /**When Reg. Name focused */\r\n resetNameValid() {\r\n if (this.regErrorMsg) {\r\n this.regErrorMsg = false;\r\n }\r\n }\r\n\r\n chkNameValid() {\r\n if (this.registrationName === '') {\r\n this.regErrorMsg = true;\r\n } else {\r\n this.regErrorMsg = false;\r\n }\r\n }\r\n\r\n /**When Model is selected */\r\n onModelSelected(item) {\r\n this.availModelVersionList = [];\r\n this.registrationName = item.registrationName;\r\n\r\n this.mlService.getModelConfigurationData().subscribe((data: any) => {\r\n if (data.length > 0) {\r\n let response = data;\r\n const matchedModel = response.filter(element => element.type == item.type);\r\n this.availModelVersionList = matchedModel.filter(a => a.registrationName === item.registrationName);\r\n }\r\n });\r\n }\r\n\r\n onVersionSelected(item) {\r\n if (this.masterData != null) {\r\n let modelDetails = this.masterData.find(a => a.modelConfigrationId == item.modelConfigrationId && a.registrationName == item.registrationName);\r\n this.filteredMasterData = modelDetails;\r\n if (this.filteredMasterData === undefined) {\r\n this.invalidModelAndVersion = false;\r\n }\r\n else {\r\n this.invalidModelAndVersion = true;\r\n }\r\n }\r\n let matchedBaseModel = this.baseModelTypesList.find(e => e.baseModelId === item.baseModelId);\r\n this.physicsBasedType = matchedBaseModel;\r\n this.availalbleModel.url = item.url;\r\n this.availalbleModel.modelVersion = item.modelVersion;\r\n this.availalbleModel.modelConfigrationId = item.modelConfigrationId;\r\n this.registrationName = item.registrationName + '-' + item.modelVersion;\r\n }\r\n\r\n getAvailableModel(selecteModelType, methodRef: (data: any, modelConfigrationId: any, thisRef: any) => void, modelConfigrationId, availalbleModel, viewEdit) {\r\n this.availModelList = [];\r\n this.availModelErro = '';\r\n this.regProgress = true;\r\n\r\n this.mlService.getModelConfigurationData().subscribe((data: any) => {\r\n if (data.length > 0) {\r\n let response = data;\r\n const matchedModel = response.filter(element => element.type == selecteModelType);\r\n const modelList = matchedModel.filter((value, index, self) =>\r\n index === self.findIndex((t) => (\r\n t.registrationName === value.registrationName\r\n ))\r\n );\r\n this.modelListOptions = viewEdit ? matchedModel : [... new Set(modelList)];\r\n \r\n this.availModelList = matchedModel;\r\n this.availModelVersionList = this.availModelList.filter(a => a.registrationName === availalbleModel);\r\n this.regProgress = false;\r\n if (methodRef != null) {\r\n methodRef(availalbleModel, modelConfigrationId, this);\r\n }\r\n }\r\n else{\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Kindly configure minimum one Model to continue with registration.\" });\r\n this.regProgress = false;\r\n }\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching model repository!\" });\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n selectionChange(selelctedStep) {\r\n this.selectedStep = selelctedStep;\r\n }\r\n\r\n selectParamType(paramType, inputTabSelected) {\r\n if (inputTabSelected !== this.isInputParameters) {\r\n this.activeParam = 0;\r\n }\r\n if (paramType === 'input') {\r\n this.populateUOM(this.modelData.inputParameters[0].uomType);\r\n this.isInputParameters = true;\r\n } else {\r\n this.populateUOM(this.modelData.outputParameters[0].uomType);\r\n this.isInputParameters = false;\r\n }\r\n }\r\n\r\n getBusinessFunctionTypes() {\r\n this.businessFunctionTypesList = [];\r\n this.regProgress = true;\r\n this.mlService.getBusinessFunctionTypes().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.businessFunctionTypesList = data;\r\n }\r\n this.getBaseModelTypes();\r\n }, (error: Error) => {\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n getBaseModelTypes() {\r\n this.mlService.getBaseModelTypes().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.baseModelTypesList = data;\r\n }\r\n this.checkIfEdit(this.data);\r\n }, (error: Error) => {\r\n this.regProgress = false;\r\n });\r\n }\r\n\r\n modefiedList(dataset) {\r\n let modefiedList = [];\r\n const listDataModel = dataset;\r\n for (const element of listDataModel) {\r\n if (element.properties.method === \"POST\") {\r\n modefiedList.push(element);\r\n }\r\n }\r\n return modefiedList;\r\n }\r\n\r\n handleFileInput() {\r\n const blob = new Blob([''], { type: 'text/html' });\r\n blob['lastModifiedDate'] = Date.now();\r\n blob['name'] = 'filename.png';\r\n const file = blob;\r\n this.fileToUpload = file;\r\n this.selectedFileName = this.fileToUpload.name;\r\n }\r\n\r\n handleModelImageInput(imageFile: File) {\r\n this.imageToUpload = imageFile;\r\n this.selectedImageName = this.imageToUpload.name;\r\n this.captionExist = false;\r\n this.invalidStepTwo = false;\r\n this.isUOMDisabled = false;\r\n this.checkUOMTypeChanged = false;\r\n }\r\n\r\n onSubmit() {\r\n this.regProgress = true;\r\n let modifiedTime: any = new Date().toISOString();\r\n this.modelData.modelId = this.modelId;\r\n this.modelData.modelName = this.registrationName;\r\n this.modelData.businessDescription = this.description;\r\n this.modelData.modelType = this.activModelName;\r\n this.modelData.baseModelId = this.availalbleModel.baseModelId;\r\n this.modelData.businessFunctionType = this.businessFunction.businessFunctionTypeId;\r\n this.modelData.lastUpdatedDate = modifiedTime;\r\n this.modelData.createdBy = this.globals.loggedInUser;\r\n this.modelData.lastUpdatedBy = this.globals.loggedInUser;\r\n this.modelData.refineryName = this.tenantService.getCurrentTenant().tenantRefinery;\r\n this.modelData.modelEntityType = 'Basic';\r\n this.modelData.apiUrl = this.availalbleModel.url;\r\n this.modelData.modelConfigrationId = this.availalbleModel.modelConfigrationId;\r\n this.modelData.tenantId = this.tenantService.getCurrentTenant().tenantId;\r\n let baseModelIdNumber = this.availalbleModel.baseModelId;\r\n let baseModelIdName = this.setBaseModelName(baseModelIdNumber);\r\n if (baseModelIdName == \"Simulation\") {\r\n this.filterSelectedParames(this.modelData.inputParameters);\r\n this.filterSelectedParames(this.modelData.outputParameters);\r\n }\r\n this.SyncModelDataInRepo();\r\n }\r\n\r\n //map input and output parameters and sync in database\r\n SyncModelDataInRepo() {\r\n //Generate form data for save post call\r\n const formData: FormData = new FormData();\r\n formData.set('data', JSON.stringify(this.modelData));\r\n if (this.imageToUpload != null) {\r\n formData.set('modelImage', this.imageToUpload, this.imageToUpload.name);\r\n }\r\n\r\n this.saveModelMasterData(this, formData);\r\n }\r\n\r\n saveModelMasterData(thisRef: ModelRegistrationComponent, formData: FormData) {\r\n thisRef.mlService.saveModelMasterData(formData).subscribe((result: any): void => {\r\n thisRef.regProgress = false;\r\n thisRef.globals.showAlert(AlertComponent, { success: true, message: \"Model added succesfully!\" });\r\n thisRef.dialogRef.close('added');\r\n }, (error: Error) => { thisRef.badResponse('Something went wrong while synching Model data.'); });\r\n }\r\n\r\n checkEmptyInputOrOutputParameters(modelData) {\r\n let checkEmptyInputParameters = this.modelData.inputParameters.find((val) => {\r\n return val.captionName === '' || val.parameterUom === '';\r\n });\r\n let checkEmptyOnputParameters = this.modelData.outputParameters.find((val) => {\r\n return val.captionName === '' || val.parameterUom === '';\r\n });\r\n return checkEmptyInputParameters || checkEmptyOnputParameters;\r\n }\r\n\r\n checkValidParam() {\r\n let baseModelIdNumber = this.availalbleModel.baseModelId;\r\n let baseModelIdName = this.setBaseModelName(baseModelIdNumber);\r\n if (baseModelIdName !== \"Simulation\") {\r\n return (this.modelData.inputParameters.findIndex((p, index) => !p.captionName || !p.parameterUom || this.dupCapInParam[index]) > -1\r\n || this.modelData.outputParameters.findIndex(p => !p.captionName || !p.parameterUom) > -1);\r\n } else {\r\n let inputParamValid = this.modelData.inputParameters.filter((m) => {\r\n return m.captionName && m.parameterUom;\r\n });\r\n let outputParamValid = this.modelData.outputParameters.filter((m) => {\r\n return m.captionName && m.parameterUom;\r\n });\r\n return !(inputParamValid.length > 0 && outputParamValid.length > 0 && (!this.checkEmptyInputOrOutputParameters(this.modelData)));\r\n }\r\n }\r\n\r\n validateCaption(event, activeIndex, dupType, nameType, parameters) {\r\n if (event.target.value) {\r\n const nameRGEX = new RegExp('^[A-Za-z0-9][A-Za-z0-9_.-]*');\r\n let latest = event.target.value;\r\n let nameExisiting;\r\n let nameValid = true;\r\n dupType[activeIndex] = false;\r\n nameType[activeIndex] = false;\r\n nameExisiting = parameters.filter((m, index) => {\r\n if (index !== activeIndex) {\r\n return m.captionName == latest;\r\n }\r\n });\r\n this.captionExist = nameExisiting.length > 0;\r\n if (!this.captionExist) {\r\n nameValid = nameRGEX.test(latest);\r\n }\r\n this.checkUOMTypeChanged = false;\r\n nameType[activeIndex] = !nameValid;\r\n dupType[activeIndex] = nameExisiting.length > 0;\r\n }\r\n }\r\n\r\n resetThisParams(params: ModelParameter[], index) {\r\n params[index].captionName = '';\r\n params[index].uomType = '';\r\n params[index].parameterUom = '';\r\n }\r\n\r\n validateFirstStep() {\r\n const nameRGEX = new RegExp('^[A-Za-z0-9][A-Za-z0-9_.-]*');\r\n const nameValid = nameRGEX.test(this.registrationName);\r\n return (!nameValid || this.invalidModelAndVersion || !this.description || this.businessFunction.businessFunctionTypeId == 0 || this.availalbleModel == '');\r\n }\r\n\r\n badResponse(errorMasg) { this.errorInModelCreation = errorMasg; this.regProgress = false; }\r\n onNoClick(this: ModelRegistrationComponent): void {\r\n this.dialogRef.close(this);\r\n }\r\n gotoStepOne(): void {\r\n this.stepOne = true;\r\n this.stepTwo = false;\r\n this.stepThree = false;\r\n }\r\n gotoStepTwo(): void {\r\n this.stepOne = false;\r\n this.stepTwo = true;\r\n this.stepThree = false;\r\n }\r\n selectModelType(modelTypeName) {\r\n if (!this.data.selectedData) {\r\n this.availalbleModel = { registrationName: '' };\r\n this.availalbleModelVersion = \"\";\r\n this.physicsBasedType = { baseModelId: 0, baseModelName: \"\" };\r\n this.activModelName = modelTypeName;\r\n this.getAvailableModel(this.activModelName, this.availalbleModelVersion, null, null, null);\r\n this.regErrorMsg = false;\r\n this.isPhysicsBasedType = (this.activModelName == 'Physics Based') ? true : false;\r\n }\r\n }\r\n\r\n selectAvailModel(modelItem) {\r\n this.availableModelName = modelItem;\r\n this.modelDetails = modelItem;\r\n }\r\n\r\n errorCreatMsg(msg, error) {\r\n if (msg === 'create') { this.isCreMsg = true; } else { this.apiRegModErr = msg + error; }\r\n }\r\n erroModReg(error) {\r\n this.isModelReg = false;\r\n if (error === 'Module') {\r\n this.modRegErrMsg = 'Error is in modeule, more details: ' + error;\r\n } else { this.modRegErrMsg = 'Generic error'; }\r\n }\r\n errorInCreate(msg, error) {\r\n this.isCreateErrorApp = true;\r\n this.createErrorMessage = msg + error;\r\n }\r\n erroHandlingCreateSer(msg, error) {\r\n this.isModelServiceCreate = true;\r\n if (msg === 'service') {\r\n this.modelErrCreateMsg = msg + error;\r\n } else { this.modelErrCreateMsg = msg; }\r\n }\r\n erroHandlingCreateAPI(msg, error) {\r\n if (msg === 'inApi') {\r\n this.isCreErrorAPI = true;\r\n } else { this.isCreErrorAPI = false; }\r\n this.creModMessage = msg + error;\r\n }\r\n selectText(newValue) {\r\n if (newValue === 'Added') { this.selectedText = 'Added ' + newValue; }\r\n else { this.selectedText = newValue; }\r\n }\r\n erroInConn(error) {\r\n if (error === 'inConnection') {\r\n this.isErrInCon = false;\r\n this.conErrMsg = 'Error is: ' + error;\r\n } else { this.conErrMsg = 'Error is in connection: ' + error; }\r\n }\r\n erroCallDel(error) {\r\n this.isErrDel = false;\r\n if (error === 'delete') {\r\n this.modDelErr = 'Error is: ' + error;\r\n } else { this.modDelErr = 'Error'; }\r\n }\r\n erroInViewMod(error) {\r\n if (error === 'view') {\r\n this.isViewErr = false;\r\n this.viewErrMsg = 'Error is: ' + error;\r\n } else { this.viewErrMsg = 'Error is: '; }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Select Model
\r\n
1
\r\n
\r\n
\r\n
\r\n
\r\n Configure UI Preferences\r\n
\r\n
2
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Select Model\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n Configure UI Preferences\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 Select Model\r\n \r\n \r\n \r\n Configure UI Preferences\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Physics Based\r\n
\r\n
\r\n Advanced Analytics\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{availModelErro}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{availModelErro}}
\r\n
This Model is already in use.
\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 The name of a model must be only letters, numbers, dashes, periods, or underscores, and start with a letter or number\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 No File Selected\r\n {{selectedImageName}}\r\n
\r\n \"uploadIcon\"\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
0\">\r\n
\r\n
\r\n
Input Parameters
\r\n
\r\n
\r\n
Output Parameters
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n check_circle\r\n stop_circle\r\n stop_circle\r\n {{items.parameterName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n check_circle\r\n stop_circle\r\n stop_circle\r\n {{items.parameterName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n This name is already set!\r\n
\r\n
\r\n The name of a caption must be only letters, numbers, dashes, periods, or underscores, and start with a letter or number\r\n
\r\n
\r\n
\r\n \r\n
\r\n This name is already set!\r\n
\r\n
\r\n The name of a caption must be only letters, numbers, dashes, periods, or underscores, and start with a letter or number\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 {{noInputOutputParam}}\r\n
\r\n
\r\n {{modelParamsErro}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Model Name:
\r\n
{{registrationName}}
\r\n
\r\n
\r\n
Type:
\r\n
{{activModelName}}
\r\n
\r\n
\r\n
Business Function:
\r\n
{{businessFunction.businessFunctionTypeName}}
\r\n
\r\n
\r\n
Description:
\r\n
{{description}}
\r\n
\r\n
\r\n
Model:
\r\n
{{availalbleModel.properties.displayName}}
\r\n
\r\n
\r\n
Model Image:
\r\n
{{selectedImageName}}
\r\n
\r\n
\r\n {{errorInModelCreation}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { Router } 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 { notification } from '../models/interfaces/notifications';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MLService } from '../services/ml-service';\r\nimport { NotificationService } from '../services/notification-service';\r\nimport { ThemeService } from '../services/theme.service';\r\nimport { Tenant } from '../models/tenant.model';\r\nimport { TenantService } from '../services/tenant.service';\r\nimport { Refinery } from '../models/refinery.model';\r\nimport { concatMap, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\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\r\n userName: string;\r\n userShortName: string;\r\n rbacName: string = '';\r\n countryCode: any;\r\n countryList: any;\r\n releaseDetails: any;\r\n notification: notification[] = [];\r\n unreadNotifications: number = 0;\r\n errorNotification = false;\r\n hideNotificationNumber = false;\r\n dateString: string;\r\n notificationLimit = 10;\r\n tenantList: Tenant[];\r\n tenantName: string;\r\n tenantId: number;\r\n refineryName: string;\r\n refineryList: string[];\r\n refinerytMap: Refinery[];\r\n public destroyed = new Subject();\r\n\r\n constructor(private readonly authService: MsalService, public mlServie: MLService,\r\n public dialog: MatDialog, public globals: Globals, public globalService: GlobalService,\r\n private readonly tenantService: TenantService,\r\n public themeService: ThemeService, public _router: Router, public notificationService: NotificationService) {\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.setDarkTheme();\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 this.tenantService.getTenants().subscribe((data: Refinery[]) => {\r\n let filterData = data.filter(item => item.tenantList[0] != undefined && item.tenantList.length > 0);\r\n this.refineryList = filterData.map(a => a.refineryName);\r\n this.refinerytMap = filterData;\r\n this.populateTenant(this.refineryList[0]);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n\r\n/**\r\n* binds tenant to dropdown as per refinery slected\r\n*/\r\npopulateTenant(refineryName: string) {\r\n if(this.refinerytMap && this.refinerytMap.length > 0){\r\n this.refinerytMap.some((u) => {\r\n if (refineryName === u.refineryName) {\r\n this.refineryName = refineryName;\r\n this.tenantList = u.tenantList;\r\n this.tenantName = this.tenantList[0].tenantName;\r\n this.onTenantChange(this.tenantList[0]);\r\n }\r\n });\r\n } \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 * Used for switching tenants and redirection to particular page\r\n * @param tenant tenant to be updated\r\n */\r\n onTenantChange(tenant: Tenant) {\r\n this.tenantName = tenant.tenantName;\r\n this.tenantId = tenant.tenantId;\r\n this.tenantService.setCurrentTenant(tenant);\r\n \r\n const currentUrl = this._router.url;\r\n if (currentUrl) {\r\n switch (currentUrl.split('/')[1]) {\r\n case 'modelManagement':\r\n this._router.navigate(['/']).then(() => {\r\n this._router.navigate(['modelManagement']);\r\n });\r\n break;\r\n case 'configureModel':\r\n this._router.navigate(['modelManagement']);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n \r\n }\r\n}\r\n\r\n","\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { notification } from '../models/interfaces/notifications';\r\nimport { NotificationService } from '../services/notification-service';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.css']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n\r\n notifications: notification[] = [];\r\n todayDate: Date;\r\n yesterdayDate: Date;\r\n todaysNotification: notification[] = [];\r\n yesterdaysNotification: notification[] = [];\r\n olderNotification: notification[] = [];\r\n isLoading = false;\r\n loadedAll = false;\r\n isFirstLoad = true;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public notificationService: NotificationService,\r\n public globalsService: GlobalService,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.todayDate = new Date();\r\n this.yesterdayDate = new Date(Date.now() - 864e5); //864e5 is 24 hrs\r\n this.notificationService.setFirstPage();\r\n this.handleScroll();\r\n this.getNotifications();\r\n }\r\n\r\n getNotifications() {\r\n this.isLoading = true;\r\n this.notificationService.getBatchNotification().subscribe((data: any): void => {\r\n if (data.Notifications?.length) {\r\n this.notifications.push(...data.Notifications);\r\n this.daywiseNotifications(this.notifications);\r\n } else {\r\n this.loadedAll = true;\r\n }\r\n this.isLoading = false;\r\n this.isFirstLoad = false;\r\n }, (error: Error) => {\r\n this.globalsService.showAlert(AlertComponent, { success: false, message: \"Error in fetching Notification List\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n handleScroll(): void {\r\n document.getElementById(\"modelBody\").onscroll = () => this.detectBottom();\r\n }\r\n\r\n detectBottom(): void {\r\n if (document.getElementById(\"modelBody\").scrollTop >= 295) {\r\n if (!this.loadedAll) {\r\n this.notificationService.paginatePage();\r\n this.getNotifications();\r\n }\r\n }\r\n }\r\n\r\n daywiseNotifications(notifications) {\r\n this.todaysNotification = notifications.filter(e => new Date(e.time).setHours(0, 0, 0, 0) == this.todayDate.setHours(0, 0, 0, 0));\r\n this.yesterdaysNotification = notifications.filter(e => new Date(e.time).setHours(0, 0, 0, 0) == this.yesterdayDate.setHours(0, 0, 0, 0));\r\n this.olderNotification = notifications.filter(e => new Date(e.time).setHours(0, 0, 0, 0) < this.yesterdayDate.setHours(0, 0, 0, 0));\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n cancel\r\n
\r\n
\r\n Notifications\r\n
\r\n
\r\n
\r\n
\r\n
Today
\r\n
\r\n \r\n
\r\n
No Notification
\r\n
\r\n
\r\n
Yesterday
\r\n
\r\n \r\n
\r\n
No Notification
\r\n
\r\n
\r\n
Older
\r\n
\r\n \r\n
\r\n
No Notification
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
{{element.component}}
\r\n
{{element.time | date: 'yyyy-M-dd T HH:mm:ss'}}
\r\n
\r\n
\r\n
\r\n {{element.notificationMessage}}\r\n
\r\n
\r\n
\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 { GlobalService } from '../services/global.service';\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 readonly authService: MsalService, private readonly graphService: GraphService, private readonly http: HttpClient\r\n , private readonly router: Router\r\n , public route: ActivatedRoute\r\n , public globals: Globals,\r\n public globalService: GlobalService,) { }\r\n\r\n ngOnInit(): void {\r\n this.handleResponse();\r\n }\r\n\r\n handleResponse(): void {\r\n this.graphService.getGroups().subscribe({\r\n next: (response: any) => {\r\n this.getGroupId(response.value);\r\n\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 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.graphService.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.getGroupId(response.value);\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 }\r\n });\r\n }\r\n\r\n getGroupId(value) {\r\n return value.map(v => this.groups.push(v.id));\r\n }\r\n\r\n private syncGroups() {\r\n this.graphService.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.graphService.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 { Injectable, Injector } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpHeaders} from '@angular/common/http';\r\nimport { HttpService } from './http.service';\r\nimport { TenantService } from './tenant.service';\r\nimport { MLService } from '../services/ml-service';\r\nimport { first, mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\n\r\nexport class AuthInterceptorService implements HttpInterceptor {\r\n constructor(private readonly injector: Injector, private readonly httpService: HttpService, private readonly tenantService: TenantService, public mlService: MLService) {}\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n let finalTenantId:any;\r\n const injectTenant = this.injector.get(TenantService);\r\n let serviceTenant:any = injectTenant.getCurrentTenant();\r\n\r\n if (serviceTenant?.tenantId && serviceTenant.tenantId > 0) {\r\n finalTenantId = serviceTenant.tenantId;\r\n }\r\n \r\n request = request.clone({\r\n setHeaders: {\r\n tenantId: `${finalTenantId}`\r\n }\r\n })\r\n return next.handle(request);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigureModelService {\r\n apiUri: string;\r\n graphUri: string;\r\n getConfigureModelListApi = \"api/GetModelConfigurationList\";\r\n deleteConfigureModelApi = \"api/DeleteModelConfiguration\";\r\n getConfigureModelById = \"api/GetModelConfigurationById\";\r\n checkConfigureModelInUseApi = \"api/CheckConfigureModelInUse\";\r\n\r\n constructor(private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.modelManagementApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n GetConfigureModelList() { \r\n return this.http.get(this.apiUri + this.getConfigureModelListApi);\r\n }\r\n\r\n getConfigureModelDetailsById(modelConfigurationId) {\r\n let params = { modelConfigurationId: modelConfigurationId };\r\n return this.http.get(this.apiUri + this.getConfigureModelById, {\r\n params: params\r\n });\r\n }\r\n\r\n deleteConfigureModel(modelConfigurationId) {\r\n let params = { modelConfigurationId: modelConfigurationId };\r\n return this.http.delete(this.apiUri + this.deleteConfigureModelApi, {\r\n params: params\r\n });\r\n }\r\n\r\n checkConfigureModelInUse(modelConfigurationId) {\r\n let params = { modelConfigurationId: modelConfigurationId };\r\n return this.http.get(this.apiUri + this.checkConfigureModelInUseApi, {\r\n params: params\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlowSheetService {\r\n apiUri: string;\r\n graphUri: string;\r\n getFlowSheetsByModelDetailsApi = \"api/Flowsheets/GetFlowsheetsByModelDetails\";\r\n getFlowSheetsListApi = \"api/FlowsheetBuilder/GetFlowSheets\";\r\n deleteFlowSheetApi = \"api/FlowsheetBuilder/DeleteFlowsheet/\";\r\n saveFlowSheetApi = \"api/FlowsheetBuilder/SaveFlowsheet\";\r\n getFlowSheetDataById = \"api/FlowsheetBuilder/LoadFlowsheet\";\r\n getDataSourcesApi = \"api/FlowsheetBuilder/GetDataSources\";\r\n getDataSourceParametersApi = \"api/FlowsheetBuilder/GetDataSourceParameters\";\r\n getFlowSheetRunsListApi = \"api/FlowsheetBuilder/GetFlowsheetRunsList\";\r\n runFlowSheetApi = \"api/FlowsheetBuilder/Run\";\r\n\r\n constructor(private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.modelManagementApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getFlowSheetsList() {\r\n return this.http.get(this.apiUri + this.getFlowSheetsListApi);\r\n }\r\n\r\n getFlowData(id) {\r\n let params = { id: id };\r\n return this.http.get(this.apiUri + this.getFlowSheetDataById, {\r\n params: params\r\n });\r\n }\r\n\r\n deleteFlowSheet(flowSheetId) {\r\n let params = { flowsheetId: flowSheetId };\r\n return this.http.delete(this.apiUri + this.deleteFlowSheetApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getFlowSheetsByModelDetails(modelId) {\r\n let params = { modelId: modelId };\r\n return this.http.get(this.apiUri + this.getFlowSheetsByModelDetailsApi, {\r\n params: params\r\n });\r\n }\r\n\r\n saveFlowSheet(flowSheetData) {\r\n return this.http.post(this.apiUri + this.saveFlowSheetApi, flowSheetData);\r\n }\r\n\r\n getDataSources() {\r\n return this.http.get(this.apiUri + this.getDataSourcesApi);\r\n }\r\n\r\n getDataSourceParameters(dataSourceId) {\r\n let params = { dataSourceId: dataSourceId };\r\n return this.http.get(this.apiUri + this.getDataSourceParametersApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getFlowsheetRunsList(flowSheetId) {\r\n let params = { flowSheetId: flowSheetId };\r\n return this.http.get(this.apiUri + this.getFlowSheetRunsListApi, {\r\n params: params\r\n });\r\n }\r\n\r\n initiateNewRun(runReqData) {\r\n return this.http.post(this.apiUri + this.runFlowSheetApi, runReqData);\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 { FilterResponseModel } from '../models/filter/filter-response.model';\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 authCode: any;\r\n loggedInUser;\r\n subscription: string;\r\n environment: string;\r\n tagMovMsg;\r\n \r\n constructor( public httpClient: HttpClient, public dialog: MatDialog) {\r\n }\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 isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n userDetails: any;\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, PUT',\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 showAlertWithCallBack(model, data, methodRef: (thisRef: any, result?: any) => void, thisRef) {\r\n const dialogRef = 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 dialogRef.afterClosed().subscribe(result => {\r\n if(result && result != null){\r\n methodRef(thisRef);\r\n }\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 && result !== undefined) {\r\n methodRef(thisRef, result);\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 /**\r\n * Replaces display text for filter\r\n * @param tempText\r\n */\r\n replaceDisplayText(tempText: string) {\r\n if (tempText == \"modelName\") {\r\n return \"Model Name\";\r\n } else if (tempText == \"registrationName\") {\r\n return \"Configure Model Name\";\r\n } else if (tempText == \"modelTypeName\") {\r\n return \"Model Type\";\r\n } else if (tempText == \"modelApiVersion\") {\r\n return \"Version\";\r\n } else if (tempText == \"modelVersion\") {\r\n return \"Model Version\";\r\n } else if (tempText == \"businessDescription\") {\r\n return \"Description\";\r\n } else if (tempText == \"businessFunctionTypeName\") {\r\n return \"Business Function\";\r\n } else if (tempText == \"url\") {\r\n return \"Configure API URL\";\r\n } else if (tempText == \"type\") {\r\n return \"Configure Model Type\";\r\n } else if (tempText == \"lastModifiedBy\") {\r\n return \"Last Modified By\";\r\n }\r\n }\r\n\r\n /**\r\n * Replace filter texts\r\n * @param tempText\r\n */\r\n replaceFilterText(tempText: string): string {\r\n if (tempText == \"Model Name\") {\r\n return \"modelName\";\r\n } else if (tempText == \"Model Type\") {\r\n return \"modelTypeName\";\r\n } else if (tempText == \"Version\") {\r\n return \"modelApiVersion\";\r\n } else if (tempText == \"Description\") {\r\n return \"businessDescription\";\r\n } else if (tempText == \"Business Function\") {\r\n return \"businessFunctionTypeName\";\r\n } else if (tempText == \"Configure Model Name\") {\r\n return \"registrationName\";\r\n } else if (tempText == \"Configure Model Type\") {\r\n return \"type\";\r\n } else if (tempText == \"Model Version\") {\r\n return \"modelVersion\";\r\n } else if (tempText == \"Configure API URL\") {\r\n return \"url\";\r\n } else if (tempText == \"Last Modified By\") {\r\n return \"lastModifiedBy\";\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param filterResponse\r\n * @param data\r\n */\r\n conditionalDataFiltering(filterResponse: FilterResponseModel, data) {\r\n let temp;\r\n if (filterResponse.selectedFieldName !== \"version\") {\r\n switch(filterResponse.selectedValue.length){\r\n case 1: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]);\r\n });\r\n break;\r\n } \r\n case 2: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1]);\r\n });\r\n break; \r\n } \r\n case 3: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]);\r\n });\r\n break;\r\n } \r\n case 4: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[3]);\r\n });\r\n break;\r\n } \r\n case 5: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[3])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[4]);\r\n });\r\n break;\r\n }\r\n default:{\r\n break;\r\n }\r\n }\r\n } else {\r\n switch(filterResponse.selectedCondition){\r\n case \"==\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]);\r\n break;\r\n }\r\n case \">=\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName] >= parseInt(filterResponse.selectedValue[0], 10));\r\n break;\r\n } \r\n case \"<=\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName] <= parseInt(filterResponse.selectedValue[0], 10));\r\n break;\r\n }\r\n default:{\r\n break;\r\n }\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n /**\r\n * Checks if the given object is not undefined or null.\r\n * @param data string to be checked\r\n */\r\n isNotNullObject(data) {\r\n let response: boolean = false;\r\n if (data != undefined && data != null) {\r\n response = true;\r\n }\r\n return response;\r\n }\r\n\r\n /**\r\n * Checks if the given string parameter is not undefined, null or empty.\r\n * @param data string to be checked\r\n */\r\n isNotNull(data: string) {\r\n let response: boolean = false;\r\n if (data != undefined && data != null && data != \"\") {\r\n response = true;\r\n }\r\n return response;\r\n }\r\n getAssetAppConfig() {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', './assets/config/app-config.json', false);\r\n request.setRequestHeader(\"Cache-Control\", \"max-age=0\");\r\n request.send(null);\r\n\r\n if (request.status === 200) {\r\n let data = JSON.parse(request.responseText);\r\n return data;\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 readonly http: HttpClient, private readonly 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 { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { GlobalService } from './global.service';\r\nimport { GraphService } from './graph.service';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GroupGuardService implements CanActivate {\r\n route: ActivatedRouteSnapshot;\r\n\r\n constructor(private readonly authService: MsalService, private readonly service: GraphService\r\n , private readonly router: Router\r\n , public globalServ: GlobalService\r\n , public globals: Globals) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n this.route = route;\r\n\r\n if (this.service.user.groupIDs.length > 0) {\r\n return this.validateGroup();\r\n }\r\n else {\r\n this.router.navigate(['/overage', { redirectPath: route.routeConfig.path }]);\r\n }\r\n }\r\n\r\n validateGroup(): boolean {\r\n const expectedGroups = this.route.data.expectedGroups;\r\n let matchGroups = expectedGroups.filter(grp => this.service.user.groupIDs.includes(grp));\r\n if (expectedGroups.length > 0 && matchGroups.length == 0) {\r\n this.globalServ.showAlertWithCallBack(AlertComponent, { success: false, message: \"You do not have enough access. Redirecting to Home Page...\" }\r\n , this.redirectOnUnAuthorizedAccess, this);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n redirectOnUnAuthorizedAccess(thisRef: GroupGuardService) {\r\n window.location.href = thisRef.globals.config.platformHomeUrl;\r\n }\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 constructor(private readonly http: HttpClient) { }\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 if(error.status)\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Observable } from 'rxjs';\r\nimport { Globals } from '../models/globals.model';\r\nimport { SseService } from './sse-service';\r\nimport { GlobalService } from './global.service';\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 flowsheetUri: string;\r\n\r\n amlWorkspaceListApi = \"AML/GetAMLWorkspaces\";\r\n amlWorkspaceApi = \"Azure/GetResourcesByTypeAndName\";\r\n createMLWorkspace = \"AML/CreateAMLWorkspace\";\r\n locationApi = \"Azure/GetAllRegions\";\r\n resourceGroupsApi = \"Azure/GetResourceGroups\";\r\n keyVaultsApi = \"Azure/GetKeyVaults\";\r\n storageAccountsApi = \"Azure/GetStorageAccounts\";\r\n containerRegistriesApi = \"Azure/GetContainerRegistries\";\r\n applicationInsightsApi = \"Azure/GetApplicationInsights\";\r\n saveModelMasterDataApi = \"api/SaveModelMasterData\";\r\n getBusinessFunctionTypesApi = \"api/ModelManagement/GetBusinessFunctionTypes\";\r\n deleteModelApi = \"api/ModelManagement/DeleteModelMasterData\";\r\n getModelListApi = \"api/GetModelList\";\r\n getModelParametersApi = \"api/GetModelParameter\";\r\n getParameterListApi = \"api/GetParameterList\";\r\n getConfigParameters = \"api/GetModelParameter\";\r\n getDataSourcesApi = \"api/FlowsheetBuilder/GetDataSources\";\r\n getDataSourceParametersApi = \"api/FlowsheetBuilder/GetDataSourceParameters\";\r\n executeModelUrlApi = \"api/RunModel\";\r\n getSimulationRunApi = \"api/GetSimulationResult\";\r\n saveConfigureModelApi = \"api/SaveModelConfigureData\";\r\n getTokenApi = \"api/ModelManagement/GetToken\";\r\n getBaseModelTypesApi = \"api/ModelManagement/GetBaseModelTypes\";\r\n getAllSecrets = \"api/GetAllSecrets\";\r\n getAuthDetails = \"api/GetAuthDetails\";\r\n saveModelApi = \"api/GetModelConfigurationParameterByModelName\";\r\n saveFormDataUrl: string = \"api/SaveModelConfiguration\";\r\n authCodeApi: string = \"api/authCode\";\r\n apimAuthCodeApi: string = \"api/apimAuthCode\";\r\n modelConfigurationApi: string = \"api/GetModelConfiguration\";\r\n saveModelData = 'api/uploadModel';\r\n\r\n constructor(private readonly httpService: HttpService, private readonly globals: Globals, private readonly http: HttpClient,\r\n private readonly _zone: NgZone, private readonly _sseService: SseService,\r\n public globalService: GlobalService,) {\r\n this.apiUri = this.globals.config.modelManagementApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n this.flowsheetUri = this.globals.config.flowsheetApi_client_resourceUri;\r\n }\r\n\r\n getParameterList(modelName, modelConfigrationId) {\r\n let params = { modelName: modelName, modelConfigrationId: modelConfigrationId };\r\n return this.http.get(this.apiUri + this.getParameterListApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getConfigParameter(modelId) {\r\n return this.http.get(this.apiUri + this.getConfigParameters + \"/\" + modelId);\r\n }\r\n\r\n getConfigParameterWithDetails(name, modelConfigurationId) {\r\n return this.http.get(this.apiUri + this.getConfigParameters + \"/\" + name + \"/\" + modelConfigurationId);\r\n }\r\n\r\n getAmlWorkspaces(resourceGroup) {\r\n let params = { ResourceGroupName: resourceGroup };\r\n return this.http.get(this.apiUri + this.amlWorkspaceListApi, {\r\n params: params\r\n });\r\n }\r\n getAmlWorkspace(ResourceGroup, resourceName) {\r\n let params = { ResourceGroup: ResourceGroup, resourceType: \"Microsoft.MachineLearningServices/workspaces\", resourceName: resourceName };\r\n return this.http.get(this.apiUri + this.amlWorkspaceApi, {\r\n params: params\r\n });\r\n }\r\n getResourceGroups() {\r\n return this.http.get(this.apiUri + this.resourceGroupsApi);\r\n }\r\n getLocations() {\r\n return this.http.get(this.apiUri + this.locationApi);\r\n }\r\n getKeyVaults(resourceGroup) {\r\n let params = { resourceGroup: resourceGroup };\r\n return this.http.get(this.apiUri + this.keyVaultsApi, {\r\n params: params\r\n });\r\n }\r\n getStorageAccounts(resourceGroup) {\r\n let params = { resourceGroup: resourceGroup };\r\n return this.http.get(this.apiUri + this.storageAccountsApi, {\r\n params: params\r\n });\r\n }\r\n getContainerRegistries(resourceGroup) {\r\n let params = { resourceGroup: resourceGroup };\r\n return this.http.get(this.apiUri + this.containerRegistriesApi, {\r\n params: params\r\n });\r\n }\r\n getApplicationInsights(resourceGroup) {\r\n let params = { resourceGroup: resourceGroup };\r\n return this.http.get(this.apiUri + this.applicationInsightsApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getBusinessFunctionTypes() {\r\n return this.http.get(this.apiUri + this.getBusinessFunctionTypesApi);\r\n }\r\n\r\n getToken() {\r\n return this.http.get(this.apiUri + this.getTokenApi);\r\n }\r\n\r\n getBaseModelTypes() {\r\n return this.http.get(this.apiUri + this.getBaseModelTypesApi);\r\n }\r\n\r\n getAllSecretsList() {\r\n return this.http.get(this.apiUri + this.getAllSecrets);\r\n }\r\n\r\n getAuthDetailsList() {\r\n return this.http.get(this.apiUri + this.getAuthDetails);\r\n }\r\n\r\n CreateMLWorkspace(worksapceDetail) {\r\n return this.http.post(this.apiUri + this.createMLWorkspace, worksapceDetail);\r\n };\r\n\r\n saveModelMasterData(modelMasterData) {\r\n return this.http.post(this.apiUri + this.saveModelMasterDataApi, modelMasterData);\r\n };\r\n\r\n deleteModelMasterData(modelId, ModelConfigrationId) {\r\n let params = { modelId: modelId, ModelConfigrationId: ModelConfigrationId };\r\n return this.http.delete(this.apiUri + this.deleteModelApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getModelList() {\r\n return this.http.get(this.apiUri + this.getModelListApi);\r\n }\r\n\r\n getModelParameters(modelId) {\r\n return this.http.get(this.apiUri + this.getModelParametersApi + \"/\" + modelId);\r\n }\r\n\r\n getDataSources() {\r\n return this.http.get(this.flowsheetUri + this.getDataSourcesApi);\r\n }\r\n\r\n getDataSourceParameters(dataSourceId) {\r\n let params = { dataSourceId: dataSourceId };\r\n return this.http.get(this.flowsheetUri + this.getDataSourceParametersApi, {\r\n params: params\r\n });\r\n }\r\n\r\n redirectTo(url) {\r\n window.location.href = url;\r\n }\r\n\r\n executeModel(dataSourceId) {\r\n return this.http.post(this.apiUri + this.executeModelUrlApi, dataSourceId);\r\n }\r\n\r\n getSimulationRunReport(runId) {\r\n return Observable.create(observer => {\r\n const eventSource = this._sseService.getEventSource(this.apiUri + this.getSimulationRunApi + \"?modelRunId=\" + runId);\r\n eventSource.onmessage = event => {\r\n this._zone.run(() => {\r\n let returnData = JSON.parse(event.data);\r\n if (returnData.simulationRunStatus) {\r\n eventSource.close();\r\n }\r\n observer.next(returnData);\r\n });\r\n };\r\n });\r\n }\r\n\r\n saveConfigureModel(saveConfigureModel) {\r\n return this.http.post(this.apiUri + this.saveConfigureModelApi, saveConfigureModel);\r\n }\r\n\r\n saveData(functionData) {\r\n return this.http.post(this.apiUri + this.saveFormDataUrl, functionData);\r\n }\r\n\r\n saveModel(configureModelName) {\r\n let params = { modelName: configureModelName };\r\n return this.http.get(this.apiUri + this.saveModelApi, {\r\n params: params\r\n });\r\n }\r\n\r\n geAuthCode() {\r\n return this.http.get(this.apiUri + this.authCodeApi);\r\n }\r\n\r\n listOfModel(accessTokenModel): any {\r\n let modelsListUrl = this.globals.config.modelListULR;\r\n return this.http.get(modelsListUrl, accessTokenModel);\r\n }\r\n\r\n deleteModelData(selModelDeleteId, httpOptions) {\r\n let deleteModelUrl = this.globals.config.deleteModelURL + selModelDeleteId;\r\n return this.http.delete(deleteModelUrl, httpOptions);\r\n }\r\n\r\n deleteEachModelData(modelId, httpOptions) {\r\n let deleteEachModelUrl = this.globals.config.deleteModelURL + modelId;\r\n return this.http.delete(deleteEachModelUrl, httpOptions);\r\n }\r\n\r\n apimAuthCodeData() {\r\n const httpOptions = { headers: this.globalService.phtHeaders };\r\n let apimAuthCodeUrl = this.apiUri + this.apimAuthCodeApi;\r\n return this.http.get(apimAuthCodeUrl, httpOptions);\r\n }\r\n\r\n modelsExecData(modelsExecUrl, formValue, httpOptions) {\r\n return this.http.post(this.apiUri + modelsExecUrl, formValue, httpOptions);\r\n }\r\n\r\n getModelConfigurationData() {\r\n return this.http.get(this.apiUri + this.modelConfigurationApi);\r\n }\r\n\r\n saveModelFormData(formData) {\r\n return this.http.post(this.apiUri + this.saveModelData, formData);\r\n };\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Globals } from '../models/globals.model';\r\nimport { SseService } from './sse-service';\r\nimport { Observable } from 'rxjs';\r\nimport { notification } from '../models/interfaces/notifications';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n apiUri: string;\r\n graphUri: string;\r\n private pageNr = 1;\r\n userName: string;\r\n componentName: string;\r\n\r\n getNotificationsApi = \"api/Notification\";\r\n getBatchNotificationUrl = \"api/Notification/GetPaginatedNotifications\";\r\n\r\n constructor(private readonly globals: Globals,\r\n private readonly http: HttpClient,\r\n private readonly _zone: NgZone,\r\n private readonly _sseService: SseService) {\r\n this.apiUri = this.globals.config.notificationApi_client_resourceUri;\r\n }\r\n\r\n getTopNotificationList() {\r\n if (this.globals.userEmail) {\r\n this.userName = this.globals.userEmail.split(\"@\")[0];\r\n } \r\n this.componentName = \"Model Management\";\r\n return Observable.create(observer => {\r\n const eventSource = this._sseService.getEventSource(this.apiUri + this.getNotificationsApi + \"?userName=\" + this.userName + \"&componentName=\" + this.componentName);\r\n eventSource.onmessage = event => {\r\n this._zone.run(() => {\r\n let returnData = JSON.parse(event.data);\r\n observer.next(returnData);\r\n });\r\n };\r\n });\r\n }\r\n\r\n getBatchNotification(): Observable {\r\n return this.http.get(this.apiUri + this.getBatchNotificationUrl + \"?userName=\" + this.userName + \"&componentName=\" + this.componentName + \"&pageNo=\" + this.pageNr + \"&pageSize=10\");\r\n }\r\n\r\n markReadTopNotification(dateString): void {\r\n this.http.put(this.apiUri + this.getNotificationsApi + \"/\" + this.userName + \"/\" + this.componentName + \"/\" + dateString, null).subscribe();\r\n }\r\n\r\n setFirstPage(): void {\r\n this.pageNr = 1;\r\n }\r\n\r\n paginatePage(): void {\r\n this.pageNr++;\r\n }\r\n\r\n}\r\n","import { 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 } 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 readonly http: HttpClient, private readonly 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.getGroupId(response.value);\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 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.getGroupId(response.value);\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 });\r\n }\r\n\r\n getGroupId(value) {\r\n return value.map(v => this.groups.push(v.id));\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 { Injectable} from '@angular/core';\r\nimport { TenantService } from './tenant.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SseService {\r\n\r\n constructor(private readonly tenant: TenantService) {}\r\n\r\n getEventSource(url: string): EventSource {\r\n url = url + \"&tenantId=\" + this.tenant.getCurrentTenant().tenantId;\r\n return new EventSource(url);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { Globals } from '../models/globals.model';\r\nimport { Tenant } from '../models/tenant.model';\r\nimport { HttpService } from './http.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GraphService } from './graph.service';\r\nimport { AppConstants } from '../app.constants';\r\nimport { Refinery } from '../models/refinery.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenantService {\r\n private readonly refineryTenantMap: Refinery[];\r\n private readonly tenantList$ = new Subject();\r\n private currentTenant: Tenant;\r\n apiUri: string;\r\n graphUri: string;\r\n constructor(private readonly http: HttpClient, private readonly httpService: HttpService, private readonly globals: Globals,\r\n private readonly graphService: GraphService) {\r\n this.apiUri = this.globals.config.platformAdminApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n /**\r\n * calls api for getting list of tenants and exports data to other\r\n * components using subject\r\n */\r\n getTenantListFromServer(componentId: number) {\r\n this.httpService.get(this.apiUri + 'api/Tenant/GetRefineries?componentId=' + componentId, null).subscribe((data: Refinery[]) => {\r\n if (data && data.length > 0) {\r\n data.forEach(element => {\r\n if (element.tenantList !== null) {\r\n const filteredTenants: Tenant[] = this.filterTenants(element.tenantList);\r\n // case for a user who dont have access on any of the tenant of donges\r\n // so that he/she will be able to access data of Test Bed tenant\r\n if (filteredTenants.length === 0 && element.refineryName === 'Donges') {\r\n filteredTenants.push(element.tenantList.find(tenant1 => tenant1.tenantSecurityGrp === AppConstants.platformAdminT1GroupId));\r\n } else if (filteredTenants.length === 0 && element.refineryName !== 'Donges') {\r\n data.splice(data.indexOf(element), 1);\r\n }\r\n element.tenantList = filteredTenants;\r\n } else {\r\n data.splice(data.indexOf(element), 1);\r\n }\r\n });\r\n }\r\n this.tenantList$.next(data);\r\n }, (err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n /**\r\n * filters list of tenants available with security grps of user\r\n * @param data list of all tenants available\r\n */\r\n filterTenants(data: Tenant[]): Tenant[] {\r\n const groups: string[] = this.graphService.user.groupIDs;\r\n const finalTenantList: Tenant[] = [];\r\n for (const element of groups) {\r\n const tenant: Tenant = data.find(tenant1 => tenant1.tenantSecurityGrp === element);\r\n if (tenant) {\r\n finalTenantList.push(tenant);\r\n }\r\n }\r\n finalTenantList.sort((a:any, b:any) => (a.tenantName > b.tenantName ? 1 : -1));\r\n return finalTenantList ;\r\n }\r\n\r\n /**\r\n * @returns tenantlist as an observable\r\n */\r\n getTenants() {\r\n return this.tenantList$.asObservable();\r\n }\r\n\r\n /**\r\n * sets current tenant\r\n * @param tenant current tenant to be set\r\n */\r\n setCurrentTenant(tenant) {\r\n this.currentTenant = tenant;\r\n }\r\n\r\n /**\r\n * @returns current tenant\r\n */\r\n getCurrentTenant() {\r\n return this.currentTenant;\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\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 { 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 readonly 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 // && req.url.indexOf('/api/authCode') != -1\r\n ) {\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","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({name: 'keys'})\r\nexport class KeysPipe implements PipeTransform {\r\n transform(value): any {\r\n const keys = [];\r\n // tslint:disable-next-line: forin\r\n for (const key in value) {\r\n keys.push(key);\r\n }\r\n return keys;\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\": \"#FFFFFF\",\r\n \"--background-item-box\": \"#FFFFFF\",\r\n \"--heading-item-box\": \"#000000\",\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","export const UOMData = {\r\n 'Currency': [\r\n 'EUR',\r\n 'USD'\r\n ],\r\n 'CurrencyRate': [\r\n 'EUR/hr',\r\n 'EUR/day',\r\n 'EUR/year',\r\n 'USD/hr',\r\n 'USD/day',\r\n 'USD/year'\r\n ],\r\n 'Current': [\r\n 'A'\r\n ],\r\n 'Density': [\r\n 'kg/m3',\r\n 'g/cc'\r\n ],\r\n 'Energy': [\r\n 'BTU',\r\n 'kBTU',\r\n 'cal',\r\n 'kcal',\r\n 'J',\r\n 'kJ',\r\n 'MJ',\r\n 'Wh',\r\n 'kWh',\r\n 'MWh',\r\n 'tep',\r\n 'ktep'\r\n ],\r\n 'EnergyRate': [\r\n 'BTU/s',\r\n 'BTU/min',\r\n 'BTU/hr',\r\n 'BTU/day',\r\n 'kBTU/s',\r\n 'kBTU/min',\r\n 'kBTU/hr',\r\n 'kBTU/day',\r\n 'cal/s',\r\n 'cal/min',\r\n 'cal/hr',\r\n 'cal/day',\r\n 'kcal/s',\r\n 'kcal/min',\r\n 'kcal/hr',\r\n 'kcal/day',\r\n 'J/s',\r\n 'J/min',\r\n 'J/hr',\r\n 'J/day',\r\n 'kJ/s',\r\n 'kJ/min',\r\n 'kJ/hr',\r\n 'kJ/day',\r\n 'MJ/s',\r\n 'MJ/min',\r\n 'MJ/hr',\r\n 'MJ/day',\r\n 'tep/s',\r\n 'tep/min',\r\n 'tep/hr',\r\n 'tep/day',\r\n 'ktep/s',\r\n 'ktep/min',\r\n 'ktep/hr',\r\n 'ktep/day'\r\n ],\r\n 'Energy/Mass': [\r\n 'J/kg',\r\n 'kJ/kg',\r\n 'kcal/kg',\r\n 'ktep/kt',\r\n 'tep/kt'\r\n ],\r\n 'Fraction': [\r\n '%',\r\n 'fraction'\r\n ],\r\n 'Mass': [\r\n 'g',\r\n 'kg',\r\n 'lb',\r\n 'tonne',\r\n 'kilotonne'\r\n ],\r\n 'MassRate': [\r\n 'g/s',\r\n 'g/min',\r\n 'g/hr',\r\n 'kg/s',\r\n 'kg/min',\r\n 'kg/hr',\r\n 'kg/day',\r\n 'lb/s',\r\n 'lb/min',\r\n 'lb/hr',\r\n 'lb/day',\r\n 't/s',\r\n 't/min',\r\n 't/hr',\r\n 't/day'\r\n ],\r\n 'Power': [\r\n 'W',\r\n 'kW',\r\n 'MW'\r\n ],\r\n 'Pressure': [\r\n 'atm',\r\n 'bar',\r\n 'mmHg',\r\n 'mmH2O',\r\n 'Pa',\r\n 'kPa',\r\n 'psi'\r\n ],\r\n 'String': [\r\n 'JSONString'\r\n ],\r\n 'Temperature': [\r\n 'C',\r\n 'F',\r\n 'K',\r\n 'R'\r\n ],\r\n 'Time': [\r\n 's',\r\n 'hr',\r\n 'min',\r\n 'day',\r\n 'year'\r\n ],\r\n 'Voltage': [\r\n 'V',\r\n 'kV'\r\n ],\r\n 'Volume': [\r\n 'cc',\r\n 'm3',\r\n 'ml',\r\n 'litre',\r\n 'bbl'\r\n ],\r\n 'VolumeRate': [\r\n 'cc/s',\r\n 'm3/s',\r\n 'm3/min',\r\n 'm3/hr',\r\n 'ml/s',\r\n 'l/s',\r\n 'l/min',\r\n 'l/hr',\r\n 'bbl/hr',\r\n 'bbl/day',\r\n 'bbl/year'\r\n ],\r\n 'Dimensionless': [\r\n 'Dimensionless'\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 modelManagementApi_client_resourceUri: process.env[\"MODELMANAGEMENTAPI_CLIENT_RESOURCEURI\"],\r\n modelManagementApi_client_resourceScope: process.env[\"MODELMANAGEMENTAPI_CLIENT_RESOURCESCOPE\"],\r\n notificationApi_client_resourceUri: \"https://totalr4platformnotification-cidi.azurewebsites.net/\",\r\n notificationApi_client_resourceUri_resourceScope: \"api://38523345-ce40-4f68-9a1b-4d58329d934e/access_as_user_APIM\",\r\n flowsheetApi_client_resourceUri: process.env[\"FLOWSHEETAPI_CLIENT_RESOURCEURI\"],\r\n flowsheetApi_client_resourceScope: process.env[\"FLOWSHEETAPI_CLIENT_RESOURCESCOPE\"],\r\n groups_client_PlatformAdminGroupId: process.env[\"GROUPS_CLIENT_PLATFORMADMINGROUPID\"],\r\n groups_client_ModelMgmtUserGroupId: process.env[\"GROUPS_CLIENT_MODELMGMTUSERGROUPID\"],\r\n graphApi_client_resourceUri: \"https://graph.microsoft.com/v1.0/me/memberOf\",\r\n graphApi_client_resourceScope: \"User.Read\",\r\n platformAdminApi_client_resourceUri: process.env[\"PLATFORMADMINAPI_CLIENT_RESOURCEURI\"],\r\n platformAdminApi_client_resourceScope: process.env[\"PLATFORMADMINAPI_CLIENT_RESOURCESCOPE\"],\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 modelsExecURL_AIML: process.env[\"modelsExecURL_AIML\"],\r\n modelsExecURL_Surrogate: process.env[\"modelsExecURL_Surrogate\"],\r\n modelsExecURL_Simulation: process.env[\"modelsExecURL_Simulation\"],\r\n modelOpsDesc_AIML: process.env[\"modelOpsDesc_AIML\"],\r\n modelOpsDesc_Surrogate: process.env[\"modelOpsDesc_Surrogate\"],\r\n modelOpsDesc_Simulation: process.env[\"modelOpsDesc_Simulation\"],\r\n modelListULR: process.env[\"MODELLISTULR\"],\r\n deleteModelURL: process.env[\"DELETEMODELURL\"],\r\n subscription: process.env[\"SUBSCRIPTION\"],\r\n environment: process.env[\"environment\"],\r\n platformHomeUrl: process.env[\"PLATFORMHOMEURL\"],\r\n platformHubUrl: process.env[\"PLATFORMHUBURL\"],\r\n appInsightKey: process.env[\"APPINSIGHTKEY\"],\r\n platformDocumentation: process.env[\"PLATFORMDOCUMENTATION\"] \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","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\n// This file includes polyfills needed by Angular 2 and is loaded before\r\n// the app. You can add your own extra polyfills to this file.\r\nimport \"hammerjs/hammer\";\r\nimport 'core-js/es6/symbol';\r\nimport 'core-js/es6/object';\r\nimport 'core-js/es6/function';\r\nimport 'core-js/es6/parse-int';\r\nimport 'core-js/es6/parse-float';\r\nimport 'core-js/es6/number';\r\nimport 'core-js/es6/math';\r\nimport 'core-js/es6/string';\r\nimport 'core-js/es6/date';\r\nimport 'core-js/es6/array';\r\nimport 'core-js/es6/regexp';\r\nimport 'core-js/es6/map';\r\nimport 'core-js/es6/set';\r\nimport 'core-js/es6/reflect';\r\nimport 'core-js/es7/object';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js';\r\n"],"names":["EventType","Subject","concatMap","filter","takeUntil","MSAL_GUARD_CONFIG","ApplicationInsights","AppConstants","i0","AppComponent","constructor","authService","msalGuardConfig","msalBroadcastService","grphService","overageService","_router","httpService","tenantService","globals","globalService","countryList","getScreenSize","screenWidth","window","innerWidth","isMobileResolution","ngOnInit","isLoading","initialize","countryCode","msalSubject$","pipe","msg","eventType","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","_destroying$","checkoutAccount","subscribe","login","authRequest","loginPopup","response","instance","setActiveAccount","account","activeAccount","getActiveAccount","getAllAccounts","length","accounts","userAccount","name","userName","idParts","split","userShortName","charAt","loggedInUser","userEmail","username","initAppInsight","groups","readGraphGroups","assignRole","thisRef","appInsightKey","config","appInsights","instrumentationKey","enableAutoRouteTracking","loadAppInsights","setUserId","logPageView","url","properties","measurements","trackPageView","uri","setAuthenticatedUserContext","context","user","id","groupsClientIds","forEach","groupId","groupIDs","includes","push","groups_client_PlatformAdminGroupId","rbacName","groups_client_ModelMgmtUserGroupId","getTenantListFromServer","componentId","toggleCollapse","sidenavWidth","disableTooltip","showCross","isMenuOpen","isActive","label","selectFlag","Code","selectors","hostBindings","ctx","UntypedFormControl","UntypedFormGroup","Validators","MatTableDataSource","ModelParameter","ConfigureNewModel","AlertComponent","apiurlValidator","map","startWith","MAT_DIALOG_DATA","$event","ctx_r34","ctx_r35","ctx_r36","ctx_r37","_r29","ctx_r77","ctx_r98","ConfigureModelComponent","dialogRef","data","fb","httpClient","mlService","value","viewValue","modelType","modelBased","modelUrl","modelVersion","disabled","required","modelName","authRequired","subscriptionKey","subscriptionValue","clientIdName","clientIdNameValue","secretName","secretNameValue","scopeKeyName","scopeKeyValue","onWindowResize","isVertical","configureModelForm","group","pattern","cannotContainSpace","validateFirstStep","setDefaultModel","getBaseModelTypes","getAuthDetailsList","getAllSecretsList","selectedData","isConfigureEdit","Object","keys","inputParameters","outputParameters","modelData","filteredModelList","get","valueChanges","_filterModel","filterValue","toLowerCase","modelOptions","modelsNameList","modelsData","a","registrationName","Set","n","option","onModelVersionFocusOut","event","filteredModels","model","modelVersionList","modelVersionExist","target","modelVersionUsed","baseModelTypesList","checkConfigureEdit","error","regProgress","secretList","oauthAuthenticationList","configureData","setValue","type","baseModelId","onModelTypeSelected","authId","isOauthClientAndSecret","subscriptionKeyName","subscriptionKeyValue","clientKeyName","clientKeyValue","secretKeyValue","secretKeyName","isOauthManagedIdentity","inputParamList","v","parameterName","parameterDefaultValue","parameterId","captionName","parameterDataType","parameterUom","uomType","outputParamList","iParam","paramExist","configureStepChange","invalidStepTwo","noInputOutputParam","validateBeforeUpdate","latest","secretNameExisting","secretNameValueExisting","subscriptionKeyExisting","subscriptionValueExisting","clientIdNameExisting","clientIdNameValueExisting","scopeNameExisting","ScopeKeyValueExisting","validateParameter","rowIndex","isInputParameters","parameterValidate","selectedDataArray","modelDataArray","inputNameExisiting","isParamDuplicate","some","arrVal","undefined","inputpara","outputpara","validateOauth","selectParamType","paramType","inputTabSelected","activeParam","selectionChange","selelctedStep","selectedStep","patchValue","selectedModelType","inputParam","outputParam","nativeElement","isBasedType","enable","disable","keyUniqueCheck","key","isSecretAvailable","item","scopeKey","isScopeAvailable","secretNameCheck","isSubscriptionAvailable","isClientAvailable","authExist","selectedOauth","authIdExisting","onOauthSelected","onBasedModelSelected","selectedBasedModel","displayAddParameters","index","check","addNewParameter","oParam","deleteModel","splice","disableSave","valid","inputs","d","outputs","isNotNullObject","onSubmit","inputParamData","ParameterName","ParameterDefaultValue","ParameterType","ModelName","outputParamData","modelConfigrationId","dataToSend","saveData","showAlert","success","message","invokeSaveApi","close","formData","FormData","set","JSON","stringify","append","saveConfigureModel","reset","deleteNewParameter","IsFirstStepInvalid","modelname","validateOauthFields","viewQuery"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}