{"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/bpmn-js/bpmn-js.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/confirm-model/confirm-model.component.ts","./src/app/common/confirm-model/confirm-model.component.html","./src/app/common/workflow-report/workflow-report.component.ts","./src/app/common/workflow-report/workflow-report.component.html","./src/app/custom-component/custom-component-builder/custom-component-builder.ts","./src/app/custom-component/custom-component-builder/custom-component-builder.html","./src/app/custom-component/custom.component.ts","./src/app/custom-component/custom.component.html","./src/app/models/custom-function.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/ioparameters.model.ts","./src/app/models/mlmodel/mlModel-parameters.model.ts","./src/app/models/mlmodel/mlModel.model.ts","./src/app/models/workflow/Model.model.ts","./src/app/models/workflow/componentDetails.ts","./src/app/models/workflow/flosheetList.model.ts","./src/app/models/workflow/inputParameters.model.ts","./src/app/models/workflow/monitoring.model.ts","./src/app/models/workflow/outputParameters.model.ts","./src/app/models/workflow/parameter.model.ts","./src/app/models/workflow/workflow.model.ts","./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/props-provider/CustomPaletteProvider.ts","./src/app/safe.pipe.ts","./src/app/services/auth.interceptor.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/workflow-service.ts","./src/app/services/xsrf.interceptor.ts","./src/app/shared/common-constants.ts","./src/app/shared/keys-pipe/keys.pipe.ts","./src/app/theme/theme.module.ts","./src/app/workflow-builder/connector-specification/connector-specification.component.ts","./src/app/workflow-builder/connector-specification/connector-specification.component.html","./src/app/workflow-builder/custom-comp-mngr/custom-comp-mngr.component.ts","./src/app/workflow-builder/custom-comp-mngr/custom-comp-mngr.component.html","./src/app/workflow-builder/flowsheet-specification/flowsheet-specification.component.ts","./src/app/workflow-builder/flowsheet-specification/flowsheet-specification.component.html","./src/app/workflow-builder/formula-specification/formula-specification.component.ts","./src/app/workflow-builder/formula-specification/formula-specification.component.html","./src/app/workflow-builder/send-data/send-data.component.ts","./src/app/workflow-builder/send-data/send-data.component.html","./src/app/workflow-builder/std-comp-mngr/std-comp-mngr.component.ts","./src/app/workflow-builder/std-comp-mngr/std-comp-mngr.component.html","./src/app/workflow-builder/workflow-builder.component.ts","./src/app/workflow-builder/workflow-builder.component.html","./src/app/workflow-builder/workflow-scheduler/workflow-scheduler.component.ts","./src/app/workflow-builder/workflow-scheduler/workflow-scheduler.component.html","./src/app/workflow/rename-model/rename-model.component.ts","./src/app/workflow/rename-model/rename-model.component.html","./src/app/workflow/save-workflow/save-workflow.component.ts","./src/app/workflow/save-workflow/save-workflow.component.html","./src/app/workflow/workflow-events/workflow.events.handler.ts","./src/app/workflow/workflow.component.ts","./src/app/workflow/workflow.component.html","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts","./src/app/workflow-builder/custom-js/CustomRenderer.js","./src/app/workflow-builder/custom-js/customRules.js","./src/app/workflow-builder/custom-js/index.js","./src/app/workflow-builder/index.js"],"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 SinequaURL: 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 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 { workflowBuilderComponent } from './workflow-builder/workflow-builder.component';\r\nimport { workflowComponent } from './workflow/workflow.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 { customComponent } from './custom-component/custom.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: 'Workflow',\r\n component: workflowComponent,\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_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'custom-function',\r\n component: customComponent,\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_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'Workflow/:id/:workflowName',\r\n component: workflowComponent,\r\n canActivate: [\r\n MsalGuard\r\n ],\r\n data: {\r\n expectedGroups: [\r\n enValue.groups_client_PlatformAdminGroupId,\r\n enValue.groups_client_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'Workflow/:workflowName',\r\n component: workflowComponent,\r\n canActivate: [\r\n MsalGuard\r\n ],\r\n data: {\r\n expectedGroups: [\r\n enValue.groups_client_PlatformAdminGroupId,\r\n enValue.groups_client_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'workflowBuilder',\r\n component: workflowBuilderComponent,\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_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: 'workflowBuilder:id:edit',\r\n component: workflowBuilderComponent,\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_FlowsheetBuilderUserGroupId\r\n ]\r\n }\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'Workflow',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes), RouterModule.forRoot(routes, {\r\n useHash: false, onSameUrlNavigation: 'reload'\r\n })],\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@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 public globals: Globals, public globalService: GlobalService,\r\n private readonly tenantService: TenantService) {\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 }\r\n\r\n this.globals.userEmail = userAccount.username;\r\n\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 thisRef.globals.groups.push(thisRef.globals.config.groups_client_FlowsheetBuilderUserGroupId, thisRef.globals.config.groups_client_PlatformAdminGroupId)\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_FlowsheetBuilderUserGroupId)) {\r\n thisRef.globals.rbacName = 'Flowsheet Builder User';\r\n }\r\n else {\r\n thisRef.globals.rbacName = 'User';\r\n }\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 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
Workflow
\r\n
\r\n
\r\n
Custom Function
\r\n
\r\n
\r\n
Builder
\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
\r\n\r\n\r\n","export const AppConstants = {\r\n componentId: 9,\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 { 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 { MatChipsModule } from '@angular/material/chips';\r\nimport { AuthInterceptorService } from './services/auth.interceptor';\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 { workflowBuilderComponent } from './workflow-builder/workflow-builder.component';\r\nimport { WorkflowEventsHandler } from './workflow/workflow-events/workflow.events.handler';\r\nimport { workflowComponent } from './workflow/workflow.component';\r\nimport { RenameModelComponent } from './workflow/rename-model/rename-model.component';\r\nimport { SaveworkflowComponent } from './workflow/save-workflow/save-workflow.component';\r\nimport { Globals } from './models/globals.model';\r\nimport {\r\n MsalBroadcastService, MsalGuard, MsalInterceptor, MsalService, MSAL_INSTANCE,\r\n MsalInterceptorConfiguration, MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG, MsalGuardConfiguration\r\n} from '@azure/msal-angular';\r\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\r\nimport { OverageComponent } from './overage/overage.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\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 { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { FlowsheetSpecificationComponent } from './workflow-builder/flowsheet-specification/flowsheet-specification.component';\r\nimport { AddFilterComponent } from './common/add-filter/add-filter.component';\r\nimport { NotificationComponent } from './notification/notification.component';\r\nimport { WorkflowReportComponent } from './common/workflow-report/workflow-report.component';\r\nimport { customComponent } from './custom-component/custom.component';\r\nimport { CustomComponentBuilder } from './custom-component/custom-component-builder/custom-component-builder';\r\nimport { ConnectorSpecificationComponent } from './workflow-builder/connector-specification/connector-specification.component';\r\nimport { CustomCompMngrComponent } from './workflow-builder/custom-comp-mngr/custom-comp-mngr.component';\r\nimport { StdComponentManagerComponent } from './workflow-builder/std-comp-mngr/std-comp-mngr.component';\r\nimport { WorkflowSchedulerComponent } from './workflow-builder/workflow-scheduler/workflow-scheduler.component';\r\nimport { FormulaSpecificationComponent } from './workflow-builder/formula-specification/formula-specification.component';\r\nimport { SendDataComponent } from './workflow-builder/send-data/send-data.component';\r\nimport { XsrfInterceptor } from './services/xsrf.interceptor';\r\nimport { SafePipe } from './safe.pipe';\r\nimport { TenantService } from './services/tenant.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nlet enValue = environment;\r\n\r\n// checks if the app is running on IE\r\nexport const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\r\n\r\nexport const protectedResourceMap: [string, string[]][] = [\r\n [enValue.platformHubApi_client_resourceUri, [enValue.platformHubApi_client_resourceScope]],\r\n [enValue.flowsheetApi_client_resourceUri, [enValue.flowsheetApi_client_resourceScope]],\r\n [enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]],\r\n [enValue.modelManagementApi_client_resourceUri, [enValue.modelManagementApi_client_resourceScope]],\r\n [enValue.platformFoundationApi_client_resourceUri, [enValue.platformFoundationApi_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 //navigateToLoginRequestUrl: true,\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\n\r\nfunction MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set(enValue.platformHubApi_client_resourceUri, [enValue.platformHubApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.flowsheetApi_client_resourceUri, [enValue.flowsheetApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.modelManagementApi_client_resourceUri, [enValue.modelManagementApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.platformFoundationApi_client_resourceUri, [enValue.platformFoundationApi_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 workflowComponent,\r\n customComponent,\r\n AlertComponent,\r\n ConfirmModelComponent,\r\n SaveworkflowComponent,\r\n workflowBuilderComponent,\r\n KeysPipe,\r\n RenameModelComponent,\r\n FlowsheetSpecificationComponent,\r\n AddFilterComponent,\r\n NotificationComponent,\r\n WorkflowReportComponent,\r\n CustomComponentBuilder,\r\n StdComponentManagerComponent,\r\n ConnectorSpecificationComponent,\r\n CustomCompMngrComponent,\r\n WorkflowSchedulerComponent,\r\n FormulaSpecificationComponent,\r\n SendDataComponent,\r\n SafePipe\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatStepperModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatTabsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatRadioModule,\r\n MatAutocompleteModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n MatTableExporterModule,\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 MatChipsModule,\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 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, TenantService,\r\n WorkflowEventsHandler\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 // global config details\r\n this.globals.config = enValue;\r\n\r\n this.globals.releaseDetails = enValue.ReleaseDetails;\r\n\r\n // Check Subscription4\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 _PaletteProvider from 'bpmn-js/lib/features/palette/PaletteProvider';\r\n\r\nexport const InjectionNames = {\r\n eventBus: 'eventBus',\r\n bpmnFactory: 'bpmnFactory',\r\n elementRegistry: 'elementRegistry',\r\n translate: 'translate',\r\n propertiesProvider: 'propertiesProvider',\r\n bpmnPropertiesProvider: 'bpmnPropertiesProvider',\r\n paletteProvider: 'paletteProvider',\r\n originalPaletteProvider: 'originalPaletteProvider',\r\n};\r\n\r\nexport const OriginalPaletteProvider = _PaletteProvider;\r\n\r\nexport interface IPaletteProvider {\r\n getPaletteEntries(): any;\r\n}\r\n\r\nexport interface IPalette {\r\n registerProvider(provider: IPaletteProvider): any;\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FilterModel } from '../../models/filter/filter-request.model';\r\nimport { CommonConstants, FilterFieldTypes } from '../../shared/common-constants';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { FilterResponseModel } from '../../models/filter/filter-response.model';\r\nimport { GlobalService } from '../../services/global.service';\r\n\r\n@Component({\r\n selector: 'app-add-filter',\r\n templateUrl: './add-filter.component.html',\r\n styleUrls: []\r\n})\r\nexport class AddFilterComponent implements OnInit {\r\n\r\n @Input() filterList: FilterModel[];\r\n @Output() filterResponse = new EventEmitter();\r\n @Input() customTab;\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 /** control for the MatSelect filter keyword multi-selection */\r\n\r\n constructor(public fb: UntypedFormBuilder, public helper: 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 /*onKey(value) {\r\n let filter = value.toLowerCase();\r\n let temp = this.valuesList.filter(option => option.toLowerCase().includes(filter));\r\n this.valuesList = temp;\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].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 /**Adding a new filter */\r\n submitFilter() {\r\n let response: FilterResponseModel = new FilterResponseModel();\r\n if(this.customTab){\r\n response.selectedFieldName = this.helper.replaceCustomFilterText(this.addFilterForm.get('filterName').value.fieldName);\r\n } else{\r\n response.selectedFieldName = this.helper.replaceFilterText(this.addFilterForm.get('filterName').value.fieldName);\r\n }\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
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \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, 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})\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 \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","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 \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, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { EventModel } from '../../models/workflow-report/workflow-event.model';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\n\r\n@Component({\r\n selector: 'app-workflow-report',\r\n templateUrl: './workflow-report.component.html',\r\n styleUrls: ['./workflow-report.component.css']\r\n})\r\nexport class WorkflowReportComponent implements OnInit {\r\n\r\n public reportData: EventModel[];\r\n public selectedEvent: EventModel;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any, public workflowService: WorkflowService) { }\r\n\r\n ngOnInit(): void {\r\n this.getReportsData();\r\n }\r\n\r\n getReportsData() {\r\n this.reportData = this.data.reportData;\r\n this.selectedEvent = this.reportData[0];\r\n this.selectedEvent.triggeredAt = new Date(this.data.reportData[0].triggeredAt);\r\n }\r\n\r\n /**\r\n * Loads active event\r\n * @param eventId\r\n */\r\n isActiveEvent(eventId: number) {\r\n return eventId == this.selectedEvent.eventId;\r\n }\r\n\r\n /**\r\n * Loads Event data\r\n * @param event\r\n */\r\n loadEventData(event: EventModel) {\r\n this.selectedEvent = event;\r\n }\r\n\r\n /**Closes the modal */\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Event History - {{data.workflowName}}\r\n
\r\n
\r\n
\r\n
\r\n
Run ID
\r\n
\r\n
\r\n
{{event.eventId}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Time Elapsed: {{selectedEvent.timeElapsed}}
\r\n
Request Id: {{selectedEvent.requestId }}
\r\n
\r\n
\r\n
Triggered At: {{selectedEvent.triggeredAt | date: 'yyyy-MM-dd HH:mm:ss'}}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Monitoring
\r\n
{{item.triggerTime | date: 'yyyy-MM-dd HH:mm:ss'}}
\r\n
\r\n
\r\n
Violation id: {{item.violationId}}
\r\n
Data Source: {{item.datasource}}
\r\n
\r\n
\r\n
Parameter Name: {{item.parameterName}}
\r\n
Violation Type: {{item.violationType}}
\r\n
\r\n
\r\n
Status: {{item.status}}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Gap Analysis
\r\n
{{item.triggerTime | date: 'yyyy-MM-dd HH:mm:ss'}}
\r\n
\r\n
\r\n
Gap Config Name: {{item.gapConfigName}}
\r\n
Gap: {{item.gap}}
\r\n
\r\n
\r\n
Source 1: {{item.source1}}
\r\n
Source 2: {{item.source2}}
\r\n
\r\n
\r\n
Status: {{item.status}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.name}}
\r\n
{{item.triggerTime | date: 'yyyy-MM-dd HH:mm:ss'}}
\r\n
\r\n
\r\n
Model Name: {{itm.modelName}}
\r\n
Version: {{itm.version}}
\r\n
\r\n
\r\n
\r\n
Status: {{item.status}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Send Data
\r\n
{{item.triggerTime | date: 'yyyy-MM-dd HH:mm:ss'}}
\r\n
\r\n
\r\n
Status: {{item.status}}
\r\n
Selected Datasource: {{item.datasource}}
\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, Inject } 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 { WorkflowService } from '../../services/workflow-service';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { TenantService } from '../../services/tenant.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ioParameter } from '../../models/ioparameters.model';\r\nimport { customFunction } from '../../models/custom-function.model';\r\n\r\n@Component({\r\n selector: 'app-custom-function-builder',\r\n templateUrl: './custom-component-builder.html',\r\n styleUrls: ['./custom-component-builder.css']\r\n})\r\n\r\nexport class CustomComponentBuilder implements OnInit {\r\n inputItems = [];\r\n inputTextItems = [];\r\n outputItems = [];\r\n outputTextItems = [];\r\n regProgress = true;\r\n invalidParameter:boolean = true;\r\n selectedStep = 0;\r\n availModelErro = '';\r\n registrationName = '';\r\n functionDescription = '';\r\n selectedImageName = '';\r\n isInputParameters = true;\r\n activeParam: number = 0;\r\n selectedComponentName = \"\";\r\n dupCapInParam = [];\r\n availableFunctionList = [];\r\n captionExist = true;\r\n dupCapOutParam = [];\r\n validCapInParam = [];\r\n validCapOutParam = [];\r\n selectedComponentType: any = { registrationName: '' } ;\r\n imageToUpload: File = null;\r\n public methodList: string[];\r\n functionMethod = null;\r\n functionName: string;\r\n functionUrl: any;\r\n\r\n isOauthClientAndSecret = false;\r\n isOauthManagedIdentity = false;\r\n authRequired = null;\r\n valueDuplicate: boolean = false;\r\n subscriptionKey: any = '';\r\n subscriptionValue: any = '';\r\n clientIdName : any = '';\r\n clientIdNameValue : any = '';\r\n secretName : any = '';\r\n secretNameValue : any = '';\r\n scopeKeyName : any = '';\r\n scopeKeyValue : any = '';\r\n\r\n urlPattern = new RegExp(\r\n '^(https?:\\\\/\\\\/)?' + // protocol\r\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n '(\\\\#[-a-z\\\\d_]*)?$', // fragment locator\r\n 'i'\r\n );\r\n public inputParameters: MatTableDataSource;\r\n public outputParameters: MatTableDataSource;\r\n public modelData = new customFunction();\r\n public displayedColumns: string[] = [\"parameterName\", \"captionName\", \"action\"];\r\n response: any[];\r\n dataToSend: { \r\n TenantId: number; \r\n Method: any; \r\n Name: any; \r\n ComponentType: string; \r\n ApiUrl: any; \r\n businessDescription: any;\r\n refinaryName: any;\r\n CreatedBy: any; \r\n LastUpdatedBy: any;\r\n ComponentId: any;\r\n ComponentImage: any;\r\n InputParameters: { ComponentName: string; CaptionName: string; ParameterName: string; }[]; \r\n OutputParameters: { ComponentName: string; CaptionName: string; ParameterName: string; }[]; \r\n AuthId: number;\r\n SubscriptionKeyName: any;\r\n subscriptionKeyValue: any;\r\n ClientKeyName: any;\r\n ClientKeyValue: any;\r\n SecretKeyName: any;\r\n SecretKeyValue: any;\r\n ScopeKeyName: any;\r\n ScopeKeyValue: any;\r\n };\r\n nameDuplicate: boolean = false;\r\n ComponentId: any;\r\n isUrlReadOnly: boolean = true;\r\n paramDuplicate: boolean = false;\r\n captionDuplicate: boolean = false;\r\n inputParamDuplicate: boolean;\r\n inputCaptionDuplicate: boolean;\r\n outputParamDuplicate: boolean;\r\n outputCaptionDuplicate: boolean;\r\n dataUpdated: boolean = true;\r\n nameValid: boolean = true;\r\n oauthAuthenticationList = [];\r\n isSecretAvailable: any;\r\n isScopeAvailable: any;\r\n isSubscriptionAvailable: any;\r\n isClientAvailable: any;\r\n secretList: any = [];\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 workflowService: WorkflowService,\r\n public tenantService: TenantService,\r\n public dialog: MatDialog) {\r\n };\r\n\r\n ngOnInit() {\r\n this.regProgress = true;\r\n this.methodList = [\"Post\", \"Get\"];\r\n this.dialogRef.disableClose = true;\r\n this.inputParameters = new MatTableDataSource([new ioParameter()]);\r\n this.outputParameters = new MatTableDataSource([new ioParameter()]);\r\n this.checkIfEdit(this.data);\r\n this.getAllSecretsList();\r\n this.getAuthDetailsList();\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 checkIfEdit(dataForEdit) {\r\n if (dataForEdit.customFunctionData && (dataForEdit.actionType == \"editFunction\" || dataForEdit.actionType == \"viewFunction\")) {\r\n let selectedCustomFunction = dataForEdit.customFunctionData;\r\n if (selectedCustomFunction && selectedCustomFunction !== null && selectedCustomFunction !== undefined) {\r\n this.functionName = selectedCustomFunction.name;\r\n this.functionDescription = selectedCustomFunction.businessDescription;\r\n this.functionMethod = selectedCustomFunction.method;\r\n this.functionUrl = selectedCustomFunction.apiUrl;\r\n this.authRequired = selectedCustomFunction.authId;\r\n\r\n if (selectedCustomFunction.authId === 1) {\r\n this.isOauthClientAndSecret = true;\r\n this.subscriptionKey = selectedCustomFunction.subscriptionKeyName;\r\n this.subscriptionValue = selectedCustomFunction.subscriptionKeyValue;\r\n this.clientIdName = selectedCustomFunction.clientKeyName;\r\n this.clientIdNameValue = selectedCustomFunction.clientKeyValue;\r\n this.secretNameValue = selectedCustomFunction.secretKeyValue;\r\n this.secretName = selectedCustomFunction.secretKeyName;\r\n this.scopeKeyName = selectedCustomFunction.scopeKeyName;\r\n this.scopeKeyValue = selectedCustomFunction.scopeKeyValue;\r\n } else if(selectedCustomFunction.authId === 2) {\r\n this.isOauthManagedIdentity = true;\r\n this.subscriptionKey = selectedCustomFunction.subscriptionKeyName;\r\n this.subscriptionValue = selectedCustomFunction.subscriptionKeyValue;\r\n this.scopeKeyName = selectedCustomFunction.scopeKeyName;\r\n this.scopeKeyValue = selectedCustomFunction.scopeKeyValue;\r\n }\r\n\r\n if(dataForEdit.actionType == \"viewFunction\") this.isUrlReadOnly = false;\r\n this.isInputParameters = true;\r\n this.inputParameters = new MatTableDataSource([new ioParameter()]);\r\n this.outputParameters = new MatTableDataSource([new ioParameter()]);\r\n\r\n let selectedInputData = selectedCustomFunction.inputParameters;\r\n let inputParamList = selectedInputData.map(v => ({\r\n componentName: this.functionName, captionName: v.captionName, parameterName: v.parameterName,\r\n parameterId: 0, parameterDefaultValue: 0, parameterDataType: '', parameterUom: '', uomType: ''\r\n }\r\n ));\r\n this.modelData.inputParameters = inputParamList;\r\n\r\n let selectedOutputData = selectedCustomFunction.outputParameters;\r\n let outputParamList = selectedOutputData.map(v => ({\r\n componentName: this.functionName, captionName: v.captionName, parameterName: v.parameterName,\r\n parameterId: 0, parameterDefaultValue: 0, parameterDataType: '', parameterUom: '', uomType: ''\r\n }\r\n ));\r\n this.modelData.outputParameters = outputParamList;\r\n this.regProgress = false;\r\n }\r\n }\r\n else{\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 stepChange(event) {\r\n this.regProgress = false;\r\n this.isInputParameters = true;\r\n this.activeParam = 0;\r\n this.loadTableData();\r\n }\r\n\r\n /**Loads table data */\r\n loadTableData() {\r\n this.regProgress = true;\r\n if(this.data.actionType == \"addFunction\"){\r\n this.modelData.inputParameters = this.inputParameters.data;\r\n this.modelData.outputParameters = this.outputParameters.data;\r\n }\r\n else{\r\n this.inputParameters.data = this.modelData.inputParameters;\r\n this.outputParameters.data = this.modelData.outputParameters; \r\n }\r\n this.regProgress = false;\r\n }\r\n\r\n configureIt(index) {\r\n this.activeParam = index; \r\n }\r\n\r\n getURLTooltip(){\r\n return this.functionUrl\r\n }\r\n\r\n selectParamType(paramType, inputTabSelected) {\r\n if (inputTabSelected !== this.isInputParameters) {\r\n this.activeParam = 0;\r\n }\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 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 nameType[activeIndex] = !nameValid;\r\n dupType[activeIndex] = nameExisiting.length > 0;\r\n }\r\n }\r\n\r\n handleModelImageInput(imageFile: File) {\r\n this.imageToUpload = imageFile;\r\n this.selectedImageName = this.imageToUpload.name;\r\n this.invalidParameter = false;\r\n }\r\n\r\n validateFirstStep(){\r\n let IsFirstStepInvalid = true;\r\n if(!this.nameValid || this.nameDuplicate || !this.functionDescription || !this.functionMethod || !this.functionUrl || !this.authRequired) {\r\n return IsFirstStepInvalid;\r\n } else {\r\n IsFirstStepInvalid = false;\r\n \r\n if (this.authRequired == 1) {\r\n if (this.subscriptionKey == '' || this.subscriptionValue == '' || this.clientIdName == '' || this.clientIdNameValue == '' || this.secretName == '' ||\r\n this.secretNameValue == '' || this.scopeKeyName == '' || this.scopeKeyValue == '') {\r\n IsFirstStepInvalid = true;\r\n }\r\n } else if(this.authRequired == 2) {\r\n if (this.subscriptionKey == '' || this.subscriptionValue == '' || this.scopeKeyName == '' || this.scopeKeyValue == '') {\r\n IsFirstStepInvalid = true;\r\n }\r\n }\r\n return IsFirstStepInvalid;\r\n } \r\n }\r\n\r\n validateName(event: any) {\r\n if (event.target.value !== '') {\r\n const nameRGEX = new RegExp('^[a-zA-Z0-9]{4,60}$');\r\n this.nameValid = nameRGEX.test(this.functionName);\r\n this.nameDuplicate = false\r\n if(this.nameValid){\r\n let nameValue = this.functionName;\r\n let duplicateExists = this.data.customNameList.filter(obj => obj == nameValue);\r\n this.nameDuplicate = (duplicateExists.length > 0) ? true : false;\r\n }\r\n }\r\n else {\r\n this.nameDuplicate = false\r\n }\r\n }\r\n\r\n validateBeforeUpdate(event: any) {\r\n if (event.target.value && event.target.value !== '' && this.data.customFunctionData) {\r\n let latest = event.target.value;\r\n let businessDescriptionExisting = this.data.customFunctionData.businessDescription;\r\n let methodExisting = this.data.customFunctionData.method;\r\n let apiUrlExisting = this.data.customFunctionData.apiUrl;\r\n\r\n if (businessDescriptionExisting != latest || methodExisting != latest || apiUrlExisting != latest) {\r\n this.invalidParameter = false; // this will enable Save button if form elements are modified by user\r\n }\r\n \r\n let secretNameExisting = this.data.customFunctionData.secretKeyName;\r\n let secretNameValueExisting = this.data.customFunctionData.secretKeyValue;\r\n let subscriptionKeyExisting = this.data.customFunctionData.subscriptionKeyName;\r\n let subscriptionValueExisting = this.data.customFunctionData.subscriptionKeyValue;\r\n let clientIdNameExisting = this.data.customFunctionData.clientKeyName;\r\n let clientIdNameValueExisting = this.data.customFunctionData.clientKeyValue;\r\n let scopeNameExisting = this.data.customFunctionData.scopeKeyName;\r\n let ScopeKeyValueExisting = this.data.customFunctionData.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.invalidParameter = false; // this will enable Save button if parameter is modified by user\r\n }\r\n }\r\n }\r\n\r\n keyUniqueCheck(key) {\r\n if (key === 'secretKey') {\r\n \r\n this.isSecretAvailable = this.secretList.some(item => item.toLowerCase() === this.secretName.toLowerCase());\r\n if (!this.isSecretAvailable && (this.secretName.toLowerCase() == this.subscriptionKey.toLowerCase() || this.secretName.toLowerCase() == this.scopeKeyName.toLowerCase() || this.secretName.toLowerCase() == this.clientIdName.toLowerCase())) {\r\n this.isSecretAvailable = true;\r\n }\r\n }\r\n else if (key === 'scopeKeyName') {\r\n \r\n this.isScopeAvailable = this.secretList.some(item => item.toLowerCase() === this.scopeKeyName.toLowerCase());\r\n if (!this.isScopeAvailable && (this.scopeKeyName.toLowerCase() == this.subscriptionKey.toLowerCase() || this.scopeKeyName.toLowerCase() == this.secretName.toLowerCase() || this.scopeKeyName.toLowerCase() == this.clientIdName.toLowerCase())) {\r\n this.isScopeAvailable = true;\r\n }\r\n }\r\n }\r\n\r\n secretNameCheck(key) {\r\n if (key === 'subscriptionKey') {\r\n\r\n this.isSubscriptionAvailable = this.secretList.some(item => item.toLowerCase() === this.subscriptionKey.toLowerCase());\r\n if (!this.isSubscriptionAvailable && (this.subscriptionKey.toLowerCase() == this.scopeKeyName.toLowerCase() || this.subscriptionKey.toLowerCase() == this.secretName.toLowerCase() || this.subscriptionKey.toLowerCase() == this.clientIdName.toLowerCase())) {\r\n this.isSubscriptionAvailable = true;\r\n }\r\n }\r\n else if (key === 'clientKey') {\r\n\r\n this.isClientAvailable = this.secretList.some(item => item.toLowerCase() === this.clientIdName.toLowerCase());\r\n if (!this.isClientAvailable && (this.clientIdName.toLowerCase() == this.subscriptionKey.toLowerCase() || this.clientIdName.toLowerCase() == this.secretName.toLowerCase() || this.clientIdName.toLowerCase() == this.scopeKeyName.toLowerCase())) {\r\n this.isClientAvailable = true;\r\n }\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 setInputParameters(isInput: boolean) {\r\n this.isInputParameters = isInput;\r\n }\r\n\r\n validateParameter() {\r\n if (this.isInputParameters) {\r\n this.checkDuplicateParam(this.modelData.inputParameters, 'input', 'parameterName');\r\n this.checkDuplicateParam(this.modelData.inputParameters, 'input','captionName');\r\n this.invalidParameter = (this.inputParamDuplicate || this.inputCaptionDuplicate) ? true : false;\r\n }\r\n else {\r\n this.checkDuplicateParam(this.modelData.outputParameters, 'output','parameterName');\r\n this.checkDuplicateParam(this.modelData.outputParameters, 'output','captionName');\r\n this.invalidParameter = (this.outputParamDuplicate || this.outputCaptionDuplicate) ? true : false;\r\n }\r\n }\r\n\r\n checkDuplicateParam(paramList, paramType, nameType){\r\n if (nameType == 'parameterName') {\r\n let paramArr = paramList.map(function (item) { return item.parameterName });\r\n let nameValueDuplicate = paramArr.some(function (item, idx) {\r\n return paramArr.indexOf(item) != idx\r\n });\r\n this.checkNameValidate(nameValueDuplicate, paramType);\r\n } else {\r\n let captionArr = paramList.map(function (item) { return item.captionName });\r\n let captionValueDuplicate = captionArr.some(function (item, idx) {\r\n return captionArr.indexOf(item) != idx\r\n });\r\n this.checkCaptionValidate(captionValueDuplicate, paramType);\r\n }\r\n }\r\n\r\n checkNameValidate(nameValueDuplicate, paramType) {\r\n if (nameValueDuplicate && paramType === 'input') {\r\n this.inputParamDuplicate = true;\r\n } else if (!nameValueDuplicate && paramType === 'input') {\r\n this.inputParamDuplicate = false;\r\n } else if (nameValueDuplicate && paramType === 'output') {\r\n this.outputParamDuplicate = true;\r\n } else if (!nameValueDuplicate && paramType === 'output') {\r\n this.outputParamDuplicate = false;\r\n }\r\n }\r\n\r\n checkCaptionValidate(captionValueDuplicate, paramType){\r\n if (captionValueDuplicate && paramType === 'input') {\r\n this.inputCaptionDuplicate = true\r\n } else if (!captionValueDuplicate && paramType === 'input') {\r\n this.inputCaptionDuplicate = false\r\n } else if (captionValueDuplicate && paramType === 'output') {\r\n this.outputCaptionDuplicate = true\r\n } else if (!captionValueDuplicate && paramType === 'output') {\r\n this.outputCaptionDuplicate = false\r\n }\r\n }\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 addNewParameter() {\r\n if (this.isInputParameters) {\r\n let iParam = this.inputParameters.data;\r\n iParam.push(new ioParameter());\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n this.invalidParameter = true;\r\n } else {\r\n let oParam = this.outputParameters.data;\r\n oParam.push(new ioParameter());\r\n this.outputParameters = new MatTableDataSource(oParam);\r\n this.invalidParameter = true;\r\n }\r\n }\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 ioParameter);\r\n this.inputParameters = new MatTableDataSource(iParam);\r\n this.invalidParameter = 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.invalidParameter = true;\r\n }\r\n else {\r\n this.invalidParameter = 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 ioParameter());\r\n this.outputParameters = new MatTableDataSource(iParam);\r\n this.invalidParameter = 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.invalidParameter = true;\r\n }\r\n else {\r\n this.invalidParameter = false;\r\n }\r\n }\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n/**Check for enabling/disabling Save button */\r\ndisableSave() {\r\n let check: boolean;\r\n if (!check) {\r\n let inputName = this.inputParameters?.data.map(d => d.parameterName);\r\n let inputCaption = this.inputParameters?.data.map(d => d.captionName);\r\n let outputName = this.outputParameters?.data.map(d => d.parameterName);\r\n let outputCaption = this.outputParameters?.data.map(d => d.captionName);\r\n\r\n let iParam: boolean = !this.globals.isNotNullObject(this.inputParameters)\r\n || (this.globals.isNotNullObject(this.inputParameters) && (inputName.includes(\"\") || inputCaption.includes(\"\")));\r\n\r\n let oParam: boolean = !this.globals.isNotNullObject(this.outputParameters)\r\n || (this.globals.isNotNullObject(this.outputParameters) && (outputName.includes(\"\") || outputCaption.includes(\"\")));\r\n check = iParam || oParam;\r\n }\r\n return check;\r\n}\r\n\r\n onOauthSelected() {\r\n let selectedOauth = this.authRequired;\r\n \r\n if (selectedOauth === 1) {\r\n this.isOauthClientAndSecret = true;\r\n this.isOauthManagedIdentity = false; \r\n } else if (selectedOauth === 2) {\r\n this.isOauthManagedIdentity = true;\r\n this.isOauthClientAndSecret = false;\r\n \r\n } else {\r\n this.isOauthClientAndSecret = false;\r\n this.isOauthManagedIdentity = false; \r\n }\r\n \r\n }\r\n\r\n onSubmit() {\r\n this.regProgress = true;\r\n \r\n let inputParamData = this.inputParameters.data;\r\n let inputParamList = inputParamData.map(v => ({\r\n ComponentName: this.functionName,\r\n CaptionName: v.captionName,\r\n ParameterName: v.parameterName,\r\n parameterDefaultValue: this.data.actionType == \"editFunction\" ? v.parameterDefaultValue : 0\r\n }\r\n ));\r\n \r\n let outputParamData = this.outputParameters.data;\r\n let outputParamList = outputParamData.map(v => ({\r\n ComponentName: this.functionName,\r\n CaptionName: v.captionName,\r\n ParameterName: v.parameterName,\r\n parameterDefaultValue: this.data.actionType == \"editFunction\" ? v.parameterDefaultValue : 0\r\n }\r\n ));\r\n\r\n if (this.data.actionType == \"editFunction\") {\r\n this.ComponentId = this.data.customFunctionData.componentId\r\n } else {\r\n this.ComponentId = 0;\r\n }\r\n this.dataToSend =\r\n {\r\n \"TenantId\": this.tenantService.getCurrentTenant().tenantId,\r\n \"Method\": this.functionMethod,\r\n \"Name\": this.functionName,\r\n \"ApiUrl\": this.functionUrl,\r\n \"businessDescription\": this.functionDescription,\r\n \"refinaryName\": this.tenantService.getCurrentTenant().tenantRefinery,\r\n \"ComponentType\":\"Function\",\r\n \"CreatedBy\": this.globals.loggedInUser,\r\n \"LastUpdatedBy\": this.globals.loggedInUser,\r\n \"ComponentId\": this.ComponentId,\r\n \"ComponentImage\": \"\",\r\n \"InputParameters\": inputParamList,\r\n \"OutputParameters\": outputParamList,\r\n \"AuthId\": this.authRequired,\r\n \"SubscriptionKeyName\": this.subscriptionKey,\r\n \"subscriptionKeyValue\": this.subscriptionValue,\r\n \"ClientKeyName\": this.clientIdName,\r\n \"ClientKeyValue\": this.clientIdNameValue,\r\n \"SecretKeyName\": this.secretName,\r\n \"SecretKeyValue\": this.secretNameValue,\r\n \"ScopeKeyName\": this.scopeKeyName,\r\n \"ScopeKeyValue\": this.scopeKeyValue,\r\n }\r\n const formData: FormData = new FormData();\r\n formData.set('data', JSON.stringify(this.dataToSend));\r\n if (this.imageToUpload != null) {\r\n formData.set('modelImage', this.imageToUpload, this.imageToUpload.name);\r\n }\r\n \r\n if(typeof this.dataToSend.TenantId !== 'undefined'){\r\n this.workflowService.saveFinalFunctionData(formData).subscribe((response: any): void => {\r\n this.regProgress = false;\r\n let messageText = this.data.edit ? 'updated' : 'saved';\r\n this.globals.showAlert(AlertComponent, { success: true, message: \"Custom Function \" + messageText + \" successfully!\" });\r\n this.dialogRef.close(true);\r\n },\r\n error => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error while saving data!\" });\r\n this.regProgress = false;\r\n });\r\n } \r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Select Custom Function
\r\n
1
\r\n
\r\n
\r\n
\r\n
\r\n Configure Parameters\r\n
\r\n
2
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Select Custom Function\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n Configure 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
Function Name is required.
\r\n
\r\n
Same Function name already exists.
\r\n
Space and Special Characters are not allowed.
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
Method is required.
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
URL is required.
\r\n
URL should be a https URL.
\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
Description is required.
\r\n
\r\n
\r\n\r\n \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
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 Name\r\n \r\n \r\n \r\n \r\n \r\n Display 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
Input Name is already used.
\r\n
Input Display Name is already used.
\r\n
\r\n
\r\n \r\n \r\n Name\r\n \r\n \r\n \r\n \r\n \r\n Display 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
Output Name is already used.
\r\n
Output Display Name is already used.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { WorkflowService } from '../services/workflow-service';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CustomComponentBuilder } from './custom-component-builder/custom-component-builder';\r\nimport { FilterFieldTypes } from '../shared/common-constants';\r\n\r\n@Component({\r\n selector: 'app-custom',\r\n templateUrl: './custom.component.html',\r\n styleUrls: ['../workflow/workflow.component.css']\r\n})\r\nexport class customComponent implements OnInit {\r\n resourceList: any = [];\r\n dataToPass: any = [];\r\n accessTokenFunction: any;\r\n expandedIndex: any;\r\n isLoading = true;\r\n modelErrorMessage = 'Error';\r\n modelDetails: any;\r\n customCompListDetails: MatTableDataSource;\r\n displayedColumns: string[] = ['componentName', 'businessDescription', 'apiUrl', 'createdBy', \"lastUpdatedTimeStamp\", 'Action'];\r\n isLinear = false;\r\n customComponentId: number = 0;\r\n componentName: string = '';\r\n componentIdDelete: number;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n bearerToken: string;\r\n\r\n filterList: FilterModel[] = [];\r\n customTab: boolean = true;\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n searchText: string = \"\";\r\n\r\n constructor(\r\n public globals: GlobalService,\r\n public workflowService: WorkflowService,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.customCompListDetails = new MatTableDataSource(emptyList);\r\n }\r\n\r\n ngOnInit() {\r\n this.expandedIndex = -1;\r\n this.getCustomComponentList();\r\n }\r\n\r\n getCustomComponentList() {\r\n this.selectedFilters = [];\r\n this.workflowService.getCustomComponentList().subscribe((data: any): void => {\r\n if (data && data !== null && data.length > 0) {\r\n this.masterData = [...data];\r\n this.customCompListDetails = new MatTableDataSource(data);\r\n this.customCompListDetails.sort = this.sort;\r\n this.customCompListDetails.paginator = this.paginator;\r\n if (this.filterList.length == 0) {\r\n this.createFilterList();\r\n }\r\n } else {\r\n this.customCompListDetails.data = [];\r\n }\r\n this.isLoading = false;\r\n this.filterList = [];\r\n this.createFilterList();\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching Custom Component List\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n deleteWorkflow(selectedCustFun) {\r\n this.componentIdDelete = selectedCustFun.componentId;\r\n this.workflowService.getUsedCustomFunction(this.componentIdDelete).subscribe((data: any): void => {\r\n if (data) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Custom Function: \" + selectedCustFun.componentName + \" is already used in the Workflow.\" });\r\n } else {\r\n let dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Do you really want to delete it?'\r\n };\r\n this.globals.openModelWindow(this.deleteOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching Custom Function Data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n deleteOnConfirm(thisRef: customComponent) {\r\n thisRef.isLoading = true;\r\n thisRef.workflowService.deleteCustomComponent(thisRef.componentIdDelete).subscribe((result: any): void => {\r\n if (result == 1) {\r\n thisRef.getCustomComponentList();\r\n }\r\n thisRef.isLoading = false;\r\n thisRef.customComponentId = 0;\r\n thisRef.getCustomComponentList();\r\n thisRef.globals.showAlert(AlertComponent, { success: true, message: \"Custom Function deleted successfully!\" });\r\n }, (error: Error) => {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: \"Error in deleting Component\" });\r\n thisRef.isLoading = false;\r\n thisRef.customComponentId = 0;\r\n });\r\n }\r\n\r\n checkCustomFunction(clickEvent, custFunData: any) {\r\n this.isLoading = true;\r\n if (clickEvent == 'addFunction') {\r\n this.customComponentAction('addFunction', '');\r\n this.isLoading = false;\r\n } else {\r\n this.workflowService.getCustomComponentData(custFunData.componentId).subscribe((data: any): void => {\r\n if (data && data !== null && data !== undefined) {\r\n clickEvent == 'editFunction' ? this.customComponentAction('editFunction', data) : this.customComponentAction('viewFunction', data)\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching Custom Function Data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n }\r\n\r\n customComponentAction(action, custFunData) {\r\n this.dataToPass = {\r\n 'actionType': action,\r\n 'customFunctionData': custFunData,\r\n 'customNameList': this.customCompListDetails.data.map(item => item.componentName),\r\n 'accessToken': this.accessTokenFunction\r\n };\r\n this.openModelWindow(this.updateComponentList, this, CustomComponentBuilder, '80%', 'custom-modalbox', this.dataToPass);\r\n }\r\n\r\n openModelWindow(componentList, thisRef, modelComponent, widthOfWindow, panelClassName, dataToPass, functionality?) {\r\n {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panelClassName,\r\n data: dataToPass,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n componentList(thisRef, result);\r\n this.getCustomComponentList();\r\n }\r\n });\r\n }\r\n }\r\n\r\n updateComponentList(thisRef: customComponent, newCompomentAdded: any) {\r\n if (newCompomentAdded == \"added\") {\r\n thisRef.getCustomComponentList();\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.customCompListDetails.filter = filterValue;\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let columns: string[] = ['componentName', 'businessDescription', 'createdBy'];\r\n\r\n for (let a = 0; a < columns.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldName = this.globals.replaceCustomDisplayText(columns[a]);\r\n if (columns[a] == \"componentName\") {\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n unique = Array.from(new Set(this.customCompListDetails.data.map(a => a.componentName)));\r\n } else if (columns[a] == \"businessDescription\") {\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n unique = Array.from(new Set(this.customCompListDetails.data.map(a => a.businessDescription)));\r\n } else if (columns[a] == \"createdBy\") {\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n unique = Array.from(new Set(this.customCompListDetails.data.map(a => a.createdBy)));\r\n }\r\n tempFilter.values = unique.sort((n1, n2) => n1 - n2);\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.customTab = true;\r\n switch (filterResponse.selectedCondition) {\r\n case \"==\":\r\n this.customCompListDetails.data = this.customCompListDetails.data.filter(\r\n (df) =>\r\n df[filterResponse.selectedFieldName] === filterResponse.selectedValue);\r\n break;\r\n case \">=\":\r\n this.customCompListDetails.data = this.customCompListDetails.data.filter((df) => df[filterResponse.selectedFieldName] >= parseInt(filterResponse.selectedValue, 10));\r\n break;\r\n case \"<=\":\r\n this.customCompListDetails.data = this.customCompListDetails.data.filter((df) => df[filterResponse.selectedFieldName] <= parseInt(filterResponse.selectedValue, 10));\r\n break;\r\n }\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.customCompListDetails.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.customCompListDetails.data = this.globals.conditionalDataFiltering(element, this.customCompListDetails.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Custom Function\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 {{globals.replaceCustomDisplayText(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 Name\r\n {{element.componentName}} \r\n \r\n \r\n Description\r\n {{element.businessDescription}} \r\n \r\n \r\n API URL\r\n {{element.apiUrl.split('?')[0]}} \r\n \r\n \r\n Created By​\r\n {{element.createdBy}} \r\n \r\n \r\n Last Modified Time\r\n {{element.lastUpdatedTimeStamp | date: 'yyyy-MM-dd T HH:mm:ss' }} \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","import { ioParameter } from \"./ioparameters.model\";\r\n\r\nexport class customFunction{\r\n functionName: string;\r\n method: string;\r\n functionUrl: string;\r\n api: string;\r\n inputParameters: ioParameter[];\r\n outputParameters: ioParameter[];\r\n keyValue: string; \r\n refinaryName : string;\r\n\r\n\r\n constructor() {\r\n this.functionName = '';\r\n this.method = '';\r\n this.functionUrl = '';\r\n this.api = '';\r\n this.inputParameters = [];\r\n this.outputParameters = [];\r\n this.keyValue = ''; \r\n this.refinaryName = '';\r\n }\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 platformHubApi_client_resourceUri: \"\",\r\n platformHubApi_client_resourceScope: \"\",\r\n flowsheetApi_client_resourceUri: \"\",\r\n flowsheetApi_client_resourceScope: \"\",\r\n gapAnalysisApi_client_resourceUri: \"\",\r\n gapAnalysisApi_client_resourceScope: \"\",\r\n monitoringApi_client_resourceUri: \"\",\r\n monitoringApi_client_resourceScope: \"\",\r\n graphApi_client_resourceUri: \"\",\r\n graphApi_client_resourceScope: \"\",\r\n modelManagementApi_client_resourceUri: \"\",\r\n modelManagementApi_client_resourceScope: \"\",\r\n notificationApi_client_resourceUri: \"\",\r\n notificationApi_client_resourceScope: \"\",\r\n platformFoundationApi_client_resourceUri: \"\",\r\n platformFoundationApi_client_resourceScope: \"\",\r\n platformAdminApi_client_resourceUri: \"\",\r\n platformAdminApi_client_resourceScope: \"\"\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 subscription: string = '';\r\n releaseDetails: any;\r\n}\r\n","export class ioParameter{\r\n parameterId: number;\r\n parameterName: string;\r\n parameterDefaultValue: unknown;\r\n parameterDataType: string;\r\n parameterUom: string;\r\n captionName: string;\r\n uomType: string;\r\n componentName: 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 this.componentName = '';\r\n }\r\n}\r\n","export class ComponentParameter{\r\n parameterId: number;\r\n parameterName: string;\r\n parameterDefaultValue: unknown;\r\n parameterDataType: string;\r\n captionName: 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.captionName = '';\r\n }\r\n}\r\n","import { ComponentParameter } from \"./mlModel-parameters.model\";\r\n\r\nexport class MlModel{\r\n customComponentId: number;\r\n businessDescription: string;\r\n componentType: string;\r\n componentName: string;\r\n lastUpdatedDate: Date;\r\n createdBy: string;\r\n refinaryName : string;\r\n apiUrl: string;\r\n inputParameters: ComponentParameter[];\r\n outputParameters: ComponentParameter[];\r\n modelImage;\r\n\r\n constructor() {\r\n this.customComponentId = 0;\r\n this.businessDescription = '';\r\n this.componentType = '';\r\n this.componentName = '';\r\n this.lastUpdatedDate = new Date();\r\n this.createdBy = '';\r\n this.refinaryName = '';\r\n this.apiUrl = '';\r\n this.inputParameters = [];\r\n this.outputParameters = [];\r\n this.modelImage = '';\r\n }\r\n}\r\n","import { ComponentDetails } from \"./componentDetails\";\r\nimport { InputParameter } from \"./inputParameters.model\";\r\nimport { OutputParameter } from \"./outputParameters.model\";\r\nimport { formulaList } from \"./formulaList\";\r\n\r\n\r\nexport class PlatformComponent {\r\n componentUniqueId: string;\r\n componentId: number;\r\n componentName: string;\r\n componentImage: string;\r\n componentType: string;\r\n componentDetails: ComponentDetails;\r\n inputParameters: InputParameter[];\r\n outputParameters: OutputParameter[];\r\n isBranchingTrue: any[];\r\n isBranchingFalse: any[];\r\n srcComponent: string[];\r\n sinkComponent: string[];\r\n formulaList: formulaList[];\r\n\r\n constructor() {\r\n this.componentUniqueId = '00';\r\n this.componentId = 0;\r\n this.componentName = '';\r\n this.componentImage = null;\r\n this.componentType = '';\r\n this.componentDetails = new ComponentDetails();\r\n this.inputParameters = [];\r\n this.outputParameters = [];\r\n this.isBranchingTrue = [];\r\n this.isBranchingFalse = [];\r\n this.srcComponent = [];\r\n this.sinkComponent = [];\r\n this.formulaList = [];\r\n }\r\n}\r\n","\r\nexport class ComponentDetails {\r\n id: number;\r\n name: string;\r\n DatasourceId: number;\r\n RawTagName: string;\r\n ThresholdTypeId: number;\r\n condition: string;\r\n value: number;\r\n frequency: number;\r\n workflowTriggerTypeId: number;\r\n frequencyUnitId: number;\r\n dataSourceId: number;\r\n startTime: string;\r\n endTime: string;\r\n selectCollection: boolean;\r\n\r\n constructor() {\r\n this.id = 0;\r\n this.name = '';\r\n this.DatasourceId = 0;\r\n this.RawTagName = '';\r\n this.ThresholdTypeId = 0;\r\n this.condition = '';\r\n this.value = 0;\r\n this.frequency = 0;\r\n this.workflowTriggerTypeId = 0;\r\n this.frequencyUnitId = 0;\r\n this.dataSourceId = 0;\r\n this.startTime = \"\";\r\n this.endTime = \"\";\r\n this.selectCollection = false;\r\n }\r\n\r\n}\r\n","export class flowsheet {\r\n flowSheetDescription: string;\r\n flowSheetId: number;\r\n flowSheetName: string;\r\n lastUpdatedBy: string;\r\n lastUpdatedTimeStamp: string;\r\n refineryName: string;\r\n\r\n constructor() {\r\n this.flowSheetDescription = '';\r\n this.flowSheetId = 0;\r\n this.flowSheetName = '';\r\n this.lastUpdatedBy = '';\r\n this.refineryName = '';\r\n this.lastUpdatedTimeStamp = '';\r\n this.refineryName = ''\r\n }\r\n}\r\n","import { DataSrc } from \"./workflow.model\";\r\nimport { ComponentParameter } from \"../mlmodel/mlModel-parameters.model\";\r\n\r\nexport class InputParameter {\r\n data: ComponentParameter;\r\n mappedDataSource: DataSrc;\r\n mappedDataSourceId: string;\r\n mappedParameterId: number;\r\n mappedParameterName: string;\r\n mappedFrequency: number;\r\n\r\n constructor() {\r\n this.data = new ComponentParameter();\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 }\r\n\r\n}\r\n","export class monitorElement {\r\n tagThresholdMappingId: number;\r\n alertTypeId: any;\r\n condition: string;\r\n dataSourceId: number;\r\n frequency: number;\r\n monitoringCollectionId: any;\r\n parameterName: string;\r\n recipient: any;\r\n thresholdTypeId: number;\r\n thresholdValue: string;\r\n userId: string;\r\n\r\n constructor() {\r\n this.tagThresholdMappingId = 0;\r\n this.alertTypeId = null;\r\n this.condition = '';\r\n this.dataSourceId = 0;\r\n this.frequency = 0;\r\n this.monitoringCollectionId = null;\r\n this.parameterName = '';\r\n this.recipient = '';\r\n this.thresholdTypeId = 0;\r\n this.thresholdValue = '';\r\n this.userId = '';\r\n }\r\n}\r\n\r\nexport class dataSource {\r\n DatasourceId: number;\r\n Name: string;\r\n\r\n constructor() {\r\n this.DatasourceId = 0;\r\n this.Name = '';\r\n }\r\n}\r\n\r\nexport interface criteriaType {\r\n ThresholdTypeId: number;\r\n Name: string;\r\n}\r\n","import { ComponentParameter } from \"../mlmodel/mlModel-parameters.model\";\r\n\r\nexport class OutputParameter{\r\n data: ComponentParameter;\r\n\r\n constructor() {\r\n this.data = new ComponentParameter();\r\n }\r\n}\r\n","import { PlatformComponent } from \"./Model.model\";\r\nimport { DataSrc } from \"./workflow.model\";\r\n\r\nexport class ParameterModel {\r\n model: PlatformComponent;\r\n parameterId;\r\n dataSource: DataSrc;\r\n dataSourceId;\r\n srcFrequency;\r\n srcParameterId;\r\n srcParameterName;\r\n defaultValue\r\n \r\n }","import { PlatformComponent } from \"./Model.model\";\r\n\r\nexport class Workflow {\r\n bpmnXml: string;\r\n workflowId: number;\r\n name: string;\r\n description: string;\r\n refineryName: string;\r\n createdBy: string;\r\n lastUpdatedTimeStamp: Date;\r\n lastUpdatedBy: string;\r\n\r\n initialComponentUniqueIds: string[];\r\n component: PlatformComponent[];\r\n\r\n constructor() {\r\n this.bpmnXml = '';\r\n this.workflowId = 0;\r\n this.name = '';\r\n this.description = '';\r\n this.refineryName = 'Donges';\r\n this.createdBy = '';\r\n this.lastUpdatedTimeStamp = new Date();\r\n this.lastUpdatedBy = '';\r\n\r\n this.initialComponentUniqueIds = [];\r\n this.component = [];\r\n }\r\n}\r\n\r\nexport enum DataSrc {\r\n component = 0,\r\n user = 1,\r\n extDataSrc = 2\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 { GlobalService } from '../services/global.service';\r\nimport { ThemeService } from '../services/theme.service';\r\nimport { notification } from '../models/interfaces/notifications';\r\n/*NOSONAR\r\nimport { NotificationService } from '../services/notification-service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { NotificationComponent } from '../notification/notification.component';\r\n*/\r\nimport { MLService } from '../services/ml-service';\r\nimport { Tenant } from '../models/tenant.model';\r\nimport { TenantService } from '../services/tenant.service';\r\nimport { Refinery } from '../models/refinery.mode';\r\n\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 notification: notification[] = [];\r\n unreadNotifications: number = 0;\r\n rbacName: string = '';\r\n countryCode: any;\r\n countryList: any;\r\n releaseDetails: any;\r\n /*NOSONAR\r\n zeroNotification = false;\r\n errorNotification = false;\r\n notificationLimit = 10;\r\n hideNotificationNumber = false;\r\n */\r\n dateString: string;\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\r\n constructor(private readonly authService: MsalService, public mlServie: MLService,\r\n /*NOSONAR\r\n //public notificationService: NotificationService,\r\n */\r\n public globalsService: GlobalService,\r\n public dialog: MatDialog, public globals: Globals, public globalService: GlobalService,\r\n public themeService: ThemeService, public _router: Router,\r\n private readonly tenantService: TenantService) {\r\n this.countryList = [\r\n // \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 /**\r\n * used for refinery mapping\r\n * @param refineryName name of refinery\r\n */\r\n\r\n populateTenant(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 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 /*NOSONAR\r\n //getNotification() {\r\n // this.notificationService.getTopNotificationList().subscribe((data: any): void => {\r\n // let notificationsList = data.Notifications;\r\n\r\n // if (notificationsList && notificationsList.length > 0) {\r\n // this.zeroNotification = false;\r\n // this.notification = notificationsList.sort((a, b) => a.acknowledged - b.acknowledged);\r\n // this.unreadNotifications = data.UnreadCount;\r\n // } else if (notificationsList.length == 0) {\r\n // this.unreadNotifications = 0;\r\n // this.zeroNotification = true; \r\n // }\r\n // }, (error: Error) => {\r\n // this.errorNotification = true;\r\n // this.globalsService.showAlert(AlertComponent, { success: false, message: \"Error getting notifications\" });\r\n // });\r\n //}\r\n */\r\n getReleaseDetails() {\r\n this.releaseDetails = this.globals.releaseDetails;\r\n }\r\n /*NOSONAR\r\n //notificationOpen() {\r\n // this.hideNotificationNumber = true;\r\n // this.dateString = new Date().toISOString();\r\n //}\r\n\r\n //notificationClose() {\r\n // this.hideNotificationNumber = false;\r\n // this.notificationService.markReadTopNotification(this.dateString);\r\n //}\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 goToHome() {\r\n window.location.href = this.globals.config.platformHomeUrl;\r\n }\r\n /*NOSONAR\r\n //showAllNotification() {\r\n // this.globalService.openModelWindow(null, this, NotificationComponent, '80%', 'custom-modalbox', this.notification);\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 this._router.navigate(['Workflow']);\r\n /*NOSONAR\r\n this.getNotification();\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\nimport { MLService } from '../services/ml-service';\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, public mlServie: MLService) { }\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 \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 { 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 service: GraphService, private readonly http: HttpClient\r\n , private readonly router: Router\r\n , public route: ActivatedRoute\r\n , public globals: Globals) { }\r\n\r\n ngOnInit(): void {\r\n this.handleResponse();\r\n }\r\n\r\n handleResponse(): void {\r\n this.service.getGroups().subscribe({\r\n next: (response: any) => {\r\n\r\n this.handleGroupResponse(response);\r\n },\r\n error: (err: AuthError) => {\r\n console.log(err)\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n this.authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n this.service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n\r\n this.handleGroupResponse(response);\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n private handleGroupResponse(response:any) {\r\n response.value.map(v => this.groups.push(v.id));\r\n /**\r\n * Some queries against Microsoft Graph return multiple pages of data either due to server-side paging \r\n * or due to the use of the $top query parameter to specifically limit the page size in a request. \r\n * When a result set spans multiple pages, Microsoft Graph returns an @odata.nextLink property in \r\n * the response that contains a URL to the next page of results.\r\n * learn more at https://docs.microsoft.com/graph/paging\r\n */\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n }\r\n\r\n private syncGroups() {\r\n this.service.user.groupIDs = this.groups;\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n this.router.navigate(['/' + params.redirectPath]);\r\n });\r\n }\r\n\r\n handleNextPage(nextPage): void {\r\n this.service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n })\r\n }\r\n}\r\n","import { IPalette, IPaletteProvider } from \"../bpmn-js/bpmn-js\";\r\n\r\nexport class CustomPaletteProvider implements IPaletteProvider {\r\n\r\n static $inject = ['palette', 'originalPaletteProvider', 'elementFactory', 'create'];\r\n private readonly elementFactory: any;\r\n private readonly create: any;\r\n\r\n constructor(private readonly palette: IPalette, private readonly originalPaletteProvider: IPaletteProvider, elementFactory, create) {\r\n palette.registerProvider(this);\r\n this.elementFactory = elementFactory;\r\n this.create = create;\r\n }\r\n\r\n createParticipant(event, collapsed) {\r\n this.create.start(event, this.elementFactory.createParticipantShape(collapsed));\r\n }\r\n\r\n getPaletteEntries() {\r\n let value = JSON.parse(localStorage.getItem('palletData'));\r\n let actions = {};\r\n for (let count = 0; count < value.length; count++) {\r\n for (let componentCnt = 0; componentCnt < value[count].components.length; componentCnt++) {\r\n actions['create.' + value[count].components[componentCnt].componentName + '-task'] =\r\n {\r\n group: 'activity',\r\n className: ['icon-custom-' + value[count].components[componentCnt].componentName],\r\n title: value[count].components[componentCnt].componentName,\r\n action: {\r\n click: () => {\r\n let shape = this.elementFactory.createShape({\r\n type: 'bpmn:Task',\r\n componentName: value[count].components[componentCnt].componentName,\r\n componentId: value[count].components[componentCnt].componentId,\r\n component: 'custom',\r\n componentType: value[count].components[componentCnt].componentType,\r\n componentImg: value[count].components[componentCnt].componentImage,\r\n height: 150,\r\n width: 150\r\n });\r\n this.create.start(event, shape)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return actions;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n \r\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n\t\t\tcase 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n\t\t\tcase 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n\t\t\tcase 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n\t\t\tcase 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n\t\t\tcase 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\r\n\t\t}\r\n }\r\n}","\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor} from '@angular/common/http';\r\nimport { HttpService } from './http.service';\r\nimport { TenantService } from './tenant.service';\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) {}\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\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\r\n authCode: any;\r\n loggedInUser;\r\n subscription: string;\r\n environment: string;\r\n tagMovMsg;\r\n constructor( public httpClient: HttpClient, public dialog: MatDialog) { }\r\n isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n /* URL's for APIMS screen */\r\n customFunctionURL: string = \"https://management.azure.com/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.ApiManagement/service/r4cidi-apim-we-d/apis/custom-component/operations\";\r\n /* URL for model Management screen */\r\n modelListULR: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n deleteModelURL: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models/\";\r\n assetUrl = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/assets\";\r\n registerModelURL = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n\r\n monitoringComponentName = \"Monitoring\";\r\n\r\n userDetails: any;\r\n firstTimeLoad: boolean = true;\r\n\r\n gethttpHeader(bearerToken) {\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 ' + 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 openModelWindowWithoutCallBack(modelComponent, widthOfWindow, panelClassName, dataToPass) {\r\n {\r\n this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panelClassName,\r\n height: 'auto',\r\n data: dataToPass,\r\n disableClose: true\r\n });\r\n }\r\n }\r\n\r\n openModelWindow(methodRef: (thisRef: any, result?: any) => void, thisRef, modelComponent, widthOfWindow, panelClassName, dataToPass, functionality?) {\r\n {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n panelClass: panelClassName,\r\n data: dataToPass,\r\n disableClose: true\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === true && methodRef != null \r\n || result !== false\r\n || result === false && methodRef != null && functionality === \"statusChange\") {\r\n methodRef(thisRef, result);\r\n }\r\n });\r\n }\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\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 /**\r\n * Replaces display text for filter\r\n * @param tempText\r\n */\r\n replaceDisplayText(tempText: string) {\r\n let displayText: string = \"\";\r\n if (tempText == \"workflowName\") {\r\n displayText = \"Workflow Name\";\r\n } else if (tempText == \"workflowDescription\") {\r\n displayText = \"Description\";\r\n } else if (tempText == \"workflowId\") {\r\n displayText = \"Workflow Id\";\r\n } else if (tempText == \"lastRun\") {\r\n displayText = \"Last Run\";\r\n } else if (tempText == \"lastUpdatedBy\") {\r\n displayText = \"Last Modified By\";\r\n } else {\r\n displayText = tempText;\r\n }\r\n return displayText;\r\n }\r\n\r\n /**\r\n * Replaces custom display text for filter\r\n * @param tempText\r\n */\r\n replaceCustomDisplayText(tempText: string) {\r\n let displayText: string = \"\";\r\n if (tempText == \"componentName\") {\r\n displayText = \"Name\";\r\n } else if (tempText == \"businessDescription\") {\r\n displayText = \"Description\";\r\n }else if (tempText == \"createdBy\") {\r\n displayText = \"created By\";\r\n } else {\r\n displayText = tempText;\r\n }\r\n return displayText;\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 == \"Workflow Name\") {\r\n return \"workflowName\";\r\n } else if (tempText == \"Description\") {\r\n return \"workflowDescription\";\r\n } else if (tempText == \"Workflow Id\") {\r\n return \"workflowId\";\r\n } else if (tempText == \"Last Run\") {\r\n return \"lastRun\";\r\n } else if (tempText == \"Last Modified By\") {\r\n return \"lastUpdatedBy\";\r\n } else {\r\n return tempText;\r\n }\r\n } /**\r\n * Replace custom filter texts\r\n * @param tempText\r\n */\r\n replaceCustomFilterText(tempText: string): string {\r\n if (tempText == \"Name\") {\r\n return \"componentName\";\r\n } else if (tempText == \"created By\") {\r\n return \"createdBy\";\r\n } else if (tempText == \"Description\") {\r\n return \"businessDescription\";\r\n } else {\r\n return tempText;\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.selectedCondition == \"==\") {\r\n temp = data.filter(\r\n function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue);\r\n });\r\n } else if (filterResponse.selectedCondition == \">=\") {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName] >= parseInt(filterResponse.selectedValue, 10));\r\n } else if (filterResponse.selectedCondition == \"<=\") {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName] <= parseInt(filterResponse.selectedValue, 10));\r\n }\r\n return temp;\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 private readonly header = { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }) };\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 switch (error.status) {\r\n default:\r\n return throwError(error);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MLService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n componentResourceUri: string;\r\n\r\n getBusinessFunctionTypesApi = \"api/ModelManagement/GetBusinessFunctionTypes\";\r\n getComponentListApi = \"api/Component/ListComponent\";\r\n getModelParametersApi = \"api/GetModelParameter\";\r\n getComponentConnectorApi = 'api/Component/GetComponentConnector';\r\n saveCustomtComponentApi = 'api/Component/SaveComponentMasterData';\r\n saveConfigureModelApi = \"api/SaveModelConfigureData\";\r\n getAuthDetails = \"api/Component/GetAuthDetails\";\r\n getAllSecrets = \"api/Component/GetAllSecrets\";\r\n\r\n constructor(private readonly httpService: HttpService, private readonly globals: Globals, private readonly http: HttpClient, public router: Router) {\r\n this.apiUri = this.globals.config.modelManagementApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n this.componentResourceUri = this.globals.config.platformHubApi_client_resourceUri;\r\n }\r\n\r\n getConfigParameter(name, version) {\r\n return this.http.get(this.apiUri + this.getModelParametersApi + \"/\" + name + \"/\" + version);\r\n }\r\n\r\n getComponentList() {\r\n return this.http.get(this.componentResourceUri + this.getComponentListApi);\r\n }\r\n\r\n getAllSecretsList() {\r\n return this.http.get(this.componentResourceUri + this.getAllSecrets);\r\n }\r\n\r\n getComponentConnector() {\r\n return this.http.get(this.componentResourceUri + this.getComponentConnectorApi);\r\n }\r\n\r\n saveCustomComponent(customComponentData) {\r\n return this.http.post(this.componentResourceUri + this.saveCustomtComponentApi, customComponentData);\r\n };\r\n\r\n redirectToNotifiction(eventId, msg) {\r\n let workflowName = msg.split(\":\")[1].trim().split(\" \")[0];\r\n if (msg.toLowerCase().includes(\"workflow completed\")) {\r\n let url = this.router.createUrlTree(['/Workflow', eventId, workflowName]);\r\n window.open(url.toString(), '_blank');\r\n } else {\r\n let url = this.router.createUrlTree(['/Workflow', workflowName]);\r\n window.open(url.toString(), '_blank');\r\n }\r\n }\r\n\r\n redirectTo(url) {\r\n window.location.href = url;\r\n }\r\n\r\n getAuthDetailsList() {\r\n return this.http.get(this.componentResourceUri + this.getAuthDetails);\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\nimport { TenantService } from '../services/tenant.service';\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 currentTenantId: number;\r\n\r\n getNotificationsApi = \"api/Notification\";\r\n getBatchNotificationUrl = \"api/Notification/GetPaginatedNotifications\";\r\n evs: EventSource;\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 tenantService: TenantService,\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 = \"Platform Hub\";\r\n let currentTenant = this.tenantService.getCurrentTenant();\r\n if (currentTenant == undefined) {\r\n this.currentTenantId = 0;\r\n }\r\n else {\r\n this.currentTenantId = currentTenant.tenantId;\r\n }\r\n\r\n return new Observable(observer => {\r\n let url;\r\n if (this.userName != null) {\r\n url = this.apiUri + this.getNotificationsApi + \"?userName=\" + this.userName + \"&componentName=\" + this.componentName + \"&tenantId=\" + this.currentTenantId;\r\n }\r\n\r\n if (this.evs) {\r\n this.evs.close();\r\n }\r\n\r\n this.evs = this._sseService.getEventSource(url);\r\n this.evs.addEventListener('message', 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.handleGroupResponse(service, response, methodRef, objRef);\r\n },\r\n error: (err: AuthError) => {\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.handleGroupResponse(service, response, methodRef, objRef); \r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n handleGroupResponse(service: GraphService, response:any, methodRef: (objRef: any) => void, objRef) {\r\n response.value.map(v => this.groups.push(v.id));\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n }\r\n\r\n syncGroupswithRef(service: GraphService, methodRef: (objRef: any) => void, objRef) {\r\n service.user.groupIDs = this.groups;\r\n methodRef(objRef);\r\n }\r\n\r\n handleNextPageWithMethodRef(service: GraphService, nextPage, methodRef: (objRef: any) => void, objRef): void {\r\n service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable} from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class SseService {\r\n\r\n\r\n getEventSource(url: string): EventSource {\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 { GraphService } from './graph.service';\r\nimport { AppConstants } from '../app.constants';\r\nimport { Refinery } from '../models/refinery.mode';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TenantService {\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 httpService: HttpService, private readonly globals: Globals, private readonly graphService: GraphService) {\r\n this.apiUri = this.globals.config.platformHubApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n\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.globals.config.platformAdminApi_client_resourceUri\r\n + 'api/Tenant/GetRefineries?componentId=' + componentId, null).subscribe((data: Refinery[]) => {\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 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 (let i = 0; i < groups.length; i++) {\r\n const tenant: Tenant = data.find(tenant1 => tenant1.tenantSecurityGrp === groups[i]);\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 this.setCurrentTenant(finalTenantList[0]);\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 private readonly availableThemes: Theme[] = [light, dark];\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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { GlobalService } from './global.service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { map } from 'rxjs/operators';\r\nimport { TenantService } from './tenant.service';\r\nimport { AppConstants } from '../app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkflowService {\r\n\r\n apiUri: string;\r\n flowsheetUri: string;\r\n graphUri: string;\r\n gapApiUri: string;\r\n monitoringUri: string;\r\n modelApiUri: string;\r\n formulaListUri: string;\r\n platformAdminUri: string;\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 getFlowSheetsListApi = \"api/FlowsheetBuilder/GetFlowSheets\";\r\n getWorkflowListApi = \"api/Component/GetWorkflowList\";\r\n UpdateWorkflowStatusApi = \"api/Component/UpdateWorkflowStatus\";\r\n getMonitoringDataList = \"api/CriteriaConfiguration/get\";\r\n getGap_AnalysisDataList = \"api/gapconfiguration/get\";\r\n getDurationList = \"api/duration/get\";\r\n getDataSourceList = \"api/Datasource/get\";\r\n getCriteriaList = \"api/ThresholdType/get\";\r\n deleteWorkflowApi = \"api/Component/DeleteWorkflow\";\r\n getFlowSheetsByModelDetailsApi = \"api/FlowsheetBuilder/GetFlowsheetsByModelDetails\";\r\n saveWorkflowApi = \"api/Component/CreateWorkflow\";\r\n getWorkFlowDataById = \"api/Component/GetWorkflowDetail\";\r\n getDataSourcesApi = \"api/FlowsheetBuilder/GetDataSources\";\r\n getDataSourceParametersApi = \"api/FlowsheetBuilder/GetDataSourceParameters\";\r\n getFlowSheetRunsListApi = \"api/FlowsheetBuilder/GetFlowsheetRunsList\";\r\n getFlowSheetRunDetailsApi = \"api/FlowsheetBuilder/GetFlowsheetRunDetails\";\r\n runFlowSheetApi = \"api/FlowsheetBuilder/Run\";\r\n getLatestRunDetailsApi = \"api/FlowsheetBuilder/GetLatestRunDetails\";\r\n getWorkflowReport = \"api/Component/WorkflowRunReport/\";\r\n getParamList = \"api/rawtags/getdistincttagsbydatasourceid/\";\r\n getCustomCompParametersApi = \"api/Component/GetParameterList\";\r\n getCustomComponentListApi = 'api/Component/GetCustomComponentData';\r\n getAvailalbleFunctionListApi = 'api/Component/GetCustomFunctionsByTenantId';\r\n authCodeApi = 'api/authCode';\r\n staticBpmnUrl = '/assets/bpmn/initial.bpmn';\r\n deleteCustomComponentApi = \"api/Component/DeleteModelMasterData\";\r\n getComponentInputParametersApi = \"api/Component/GetComponentInputParameters\";\r\n getComponentOutputParametersApi = \"api/Component/GetComponentOutputParameters\";\r\n getEditComponentParameterList = 'api/Component/GetCustomParameterList';\r\n /**Scheduler related APIs*/\r\n getListTimerTypeApi = \"api/Component/ListTimerType\";\r\n getListDataSourceApi = \"api/Component/GetByTenant\";\r\n getListFrequencyUnitApi = \"api/Component/ListFrequencyUnit\";\r\n getFormulaListApi = \"KPIFormulaBuilder/GetFormulas\";\r\n getGapCollectionList = \"api/Collection/getAll\";\r\n getCollectionList = 'api/MonitoringCriteriaCollection/get';\r\n tokenApi = \"api/Component/getToken\";\r\n saveModelApi = \"api/Component/GetParameterMasterByComponentName\";\r\n saveFunctionDataApi = \"api/Component/SaveCustomFunction\";\r\n getComponentDataApi = \"api/Component/GetCustomComponentDataByComponentId\";\r\n getUsedCustomFunctionApi = \"api/Component/CheckCustomComponentIsAlreadyUsedInWorkflow\";\r\n\r\n constructor(private readonly globals: Globals, private readonly http: HttpClient, private readonly globalService: GlobalService,\r\n private readonly tenantService: TenantService) {\r\n this.apiUri = this.globals.config.platformHubApi_client_resourceUri;\r\n this.flowsheetUri = this.globals.config.flowsheetApi_client_resourceUri;\r\n this.gapApiUri = this.globals.config.gapAnalysisApi_client_resourceUri;\r\n this.monitoringUri = this.globals.config.monitoringApi_client_resourceUri;\r\n this.modelApiUri = this.globals.config.modelManagementApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n this.formulaListUri = this.globals.config.platformFoundationApi_client_resourceUri;\r\n this.platformAdminUri = this.globals.config.platformAdminApi_client_resourceUri;\r\n }\r\n\r\n getToken() {\r\n return this.http.get(this.apiUri + this.tokenApi);\r\n }\r\n\r\n getWorkflowList() {\r\n return this.http.get(this.apiUri + this.getWorkflowListApi);\r\n }\r\n\r\n getCustomComponentList() {\r\n return this.http.get(this.apiUri + this.getCustomComponentListApi);\r\n }\r\n\r\n /**\r\n * calls put method and returns result recived\r\n * @param workflowId workflow id to be updated\r\n * @param workflowStatus workflow status to be updated\r\n */\r\n updateWorflowStatus(workflowId, workflowStatus) {\r\n return this.http.put(this.apiUri + this.UpdateWorkflowStatusApi + '/' + workflowId + '/' + workflowStatus, null);\r\n }\r\n\r\n getFlowSheetsList() {\r\n return this.http.get(this.flowsheetUri + this.getFlowSheetsListApi);\r\n }\r\n\r\n getFormulaList() {\r\n return this.http.get(this.formulaListUri + this.getFormulaListApi).pipe(\r\n map((res: any[]) => {\r\n const data = res.map(obj => ({\r\n name: obj.formulaId\r\n }));\r\n return data;\r\n })\r\n );;\r\n }\r\n\r\n getFlowData(id) {\r\n let params = { id: id };\r\n return this.http.get(this.apiUri + this.getWorkFlowDataById, {\r\n params: params\r\n });\r\n }\r\n\r\n getDataListDetails(componentName) {\r\n let params = { componentName: componentName };\r\n if (componentName == this.globalService.monitoringComponentName) {\r\n return this.http.get(this.monitoringUri + this.getMonitoringDataList, {\r\n params: params\r\n });\r\n } else {\r\n return this.http.get(this.gapApiUri + this.getGap_AnalysisDataList);\r\n }\r\n }\r\n\r\n getDuration() {\r\n return this.http.get(this.gapApiUri + this.getDurationList);\r\n }\r\n\r\n getDataSource() {\r\n return this.http.get(this.monitoringUri + this.getDataSourceList);\r\n }\r\n\r\n getCriteriaType() {\r\n return this.http.get(this.monitoringUri + this.getCriteriaList);\r\n }\r\n\r\n getCustomCompParamList(edit, functionName) {\r\n if (edit) {\r\n let params = { id: functionName };\r\n return this.http.get(this.apiUri + this.getEditComponentParameterList, {\r\n params: params\r\n });\r\n } else {\r\n let params = { componentName: functionName };\r\n return this.http.get(this.apiUri + this.getCustomCompParametersApi, {\r\n params: params\r\n });\r\n }\r\n }\r\n\r\n deleteWorkflow(workflowId) {\r\n let params = { workflowId: workflowId };\r\n return this.http.delete(this.apiUri + this.deleteWorkflowApi, {\r\n params: params\r\n });\r\n }\r\n\r\n deleteCustomComponent(customComponentId) {\r\n let params = { componentId: customComponentId };\r\n return this.http.delete(this.apiUri + this.deleteCustomComponentApi, {\r\n params: params\r\n });\r\n }\r\n\r\n loadBpmn() {\r\n const url = this.staticBpmnUrl;\r\n return this.http.get(url, {\r\n headers: { observe: 'response' }, responseType: 'text'\r\n })\r\n }\r\n\r\n getAvailalbleFunctionList() {\r\n let tenantFunctionId = this.tenantService.getCurrentTenant().tenantId;\r\n return this.http.get(this.apiUri + this.getAvailalbleFunctionListApi + '?TenantId=' + tenantFunctionId);\r\n }\r\n\r\n saveWorkflow(workflowData) {\r\n return this.http.post(this.apiUri + this.saveWorkflowApi, workflowData);\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 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 public loadReportData(workflowId) {\r\n return this.http.get(this.apiUri + this.getWorkflowReport + workflowId);\r\n }\r\n\r\n getInputParameters(componentId) {\r\n let params = { componentId: componentId };\r\n return this.http.get(this.apiUri + this.getComponentInputParametersApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getOutPutarameters(componentId) {\r\n let params = { componentId: componentId };\r\n return this.http.get(this.apiUri + this.getComponentOutputParametersApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getListTimerType() {\r\n return this.http.get(this.apiUri + this.getListTimerTypeApi);\r\n }\r\n\r\n getListDataSource() {\r\n const tenantId = this.tenantService.getCurrentTenant().tenantId;\r\n return this.http.get(this.platformAdminUri + this.getListDataSourceApi +\r\n '?TenantId=' + tenantId + '&componentId=' + AppConstants.componentId);\r\n }\r\n\r\n getListFrequencyUnit() {\r\n return this.http.get(this.apiUri + this.getListFrequencyUnitApi);\r\n }\r\n\r\n getCollectionListDetails(componentName) {\r\n if (componentName === \"Gap_Analysis\") {\r\n return this.http.get(this.gapApiUri + this.getGapCollectionList);\r\n } else {\r\n return this.http.get(this.monitoringUri + this.getCollectionList);\r\n }\r\n }\r\n\r\n getModelName(functionName) {\r\n return this.http.get(this.apiUri + this.saveModelApi +\r\n '?componentName=' + functionName);\r\n }\r\n\r\n saveFinalFunctionData(functionData) {\r\n return this.http.post(this.apiUri + this.saveFunctionDataApi, functionData);\r\n }\r\n\r\n getCustomComponentData(componentId) {\r\n let params = { componentId: componentId };\r\n return this.http.get(this.apiUri + this.getComponentDataApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getUsedCustomFunction(componentId) {\r\n let params = { componentId: componentId };\r\n return this.http.get(this.apiUri + this.getUsedCustomFunctionApi, {\r\n params: params\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\r\n let xsrfToken = this.xsrfTokenExtractor.getToken();\r\n if (req.url.indexOf('/api') > -1) {\r\n if (xsrfToken != null) {\r\n // create a copy of the request and\r\n // append the XSRF token to the headers list\r\n const authorizedRequest = req.clone({\r\n withCredentials: false,\r\n headers: req.headers.set('X-XSRF-TOKEN', xsrfToken)\r\n });\r\n\r\n return next.handle(authorizedRequest);\r\n } else {\r\n return next.handle(req);\r\n }\r\n }\r\n else {\r\n return next.handle(req);\r\n }\r\n }\r\n}\r\n","export class CommonConstants {\r\n //Add filter\r\n public conditionTypeText: string[] = [\"==\"];\r\n public conditionTypeValues: string[] = [\"==\", \">=\", \"<=\"]; //Validations\r\n}\r\n\r\nexport enum FilterFieldTypes {\r\n text = \"text\",\r\n values = \"values\"\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 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","import { Component, OnInit, Inject } 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 { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { InputParameter } from '../../models/workflow/inputParameters.model';\r\nimport { DataSrc } from '../../models/workflow/workflow.model';\r\nimport { OutputParameter } from '../../models/workflow/outputParameters.model';\r\nimport { WorkflowEventsHandler } from '../../workflow/workflow-events/workflow.events.handler';\r\nimport { ParameterModel } from 'src/app/models/workflow/parameter.model';\r\n\r\n@Component({\r\n selector: 'app-connector-specification',\r\n templateUrl: './connector-specification.component.html',\r\n styleUrls: ['./connector-specification.component.css']\r\n})\r\nexport class ConnectorSpecificationComponent implements OnInit {\r\n\r\n srcModel = new PlatformComponent();\r\n srcOutputParameters: OutputParameter[] = [];\r\n srcConnParameterList: OutputParameter[] = [];\r\n deletedSrcParam: OutputParameter;\r\n sinkModel = new PlatformComponent();\r\n sinkInputParameters: InputParameter[] = [];\r\n sinkConnParameterList: InputParameter[] = [];\r\n deletedSinkParam: InputParameter;\r\n readOnly = false;\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 flowSheetHandler: WorkflowEventsHandler,\r\n public mlService: MLService,\r\n public dialog: MatDialog) {\r\n };\r\n\r\n ngOnInit() {\r\n\r\n this.srcModel = this.data.srcModel;\r\n this.sinkModel = this.data.sinkModel;\r\n this.readOnly = this.data.readOnly;\r\n this.setSrcParameters();\r\n this.setSinkParameters();\r\n }\r\n\r\n setSrcParameters() {\r\n this.srcOutputParameters = this.srcModel.outputParameters\r\n .filter(p => this.sinkModel.inputParameters\r\n .findIndex(ip => ip.mappedDataSource == DataSrc.component && ip.mappedDataSourceId == this.srcModel.componentUniqueId\r\n && ip.mappedParameterId == p.data.parameterId) == -1);\r\n\r\n this.sinkModel.inputParameters.filter(p => p.mappedDataSource == DataSrc.component\r\n && p.mappedDataSourceId == this.srcModel.componentUniqueId).forEach((sinkParam) => {\r\n this.srcConnParameterList.push(this.srcModel.outputParameters.find(p => p.data.parameterId == sinkParam.mappedParameterId));\r\n });\r\n }\r\n\r\n setSinkParameters() {\r\n this.sinkInputParameters = this.sinkModel.inputParameters.filter(p => p.mappedDataSource == DataSrc.user);\r\n this.sinkConnParameterList = this.sinkModel.inputParameters.filter(p => p.mappedDataSource == DataSrc.component\r\n && p.mappedDataSourceId == this.srcModel.componentUniqueId);\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.deletedSinkParam = this.sinkConnParameterList.splice(index, 1)[0];\r\n this.flowSheetHandler.resetParameterSrcMapData(this.deletedSinkParam);\r\n this.flowSheetHandler.returnParameterToOriginalPosition(this.sinkInputParameters, this.deletedSinkParam);\r\n if (this.srcConnParameterList[index]) {\r\n this.deletedSrcParam = this.srcConnParameterList.splice(index, 1)[0];\r\n this.flowSheetHandler.returnParameterToOriginalPosition(this.srcOutputParameters, this.deletedSrcParam);\r\n }\r\n }\r\n\r\n saveConnectorSpecification() {\r\n this.sinkConnParameterList.forEach((connParam, index) => {\r\n let srcParam = this.srcConnParameterList[index];\r\n this.parameterModel.model = this.sinkModel;\r\n this.parameterModel.parameterId = connParam.data.parameterId;\r\n this.parameterModel.dataSource = DataSrc.component;\r\n this.parameterModel.dataSourceId = this.srcModel.componentUniqueId;\r\n this.parameterModel.srcFrequency = 0;\r\n this.parameterModel.srcParameterId = srcParam.data.parameterId;\r\n this.parameterModel.srcParameterName = srcParam.data.parameterName;\r\n this.parameterModel.defaultValue = connParam.data.parameterDefaultValue;\r\n this.flowSheetHandler.updateParameterMapping(this.parameterModel);\r\n });\r\n this.dialogRef.close(false);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Connector Specification\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Output Variables
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n
\r\n
\r\n
\r\n
\r\n No parameters available\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Source Variables
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Sink 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
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Input Variables
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n
\r\n
\r\n
\r\n
\r\n No parameters 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
\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 { MlModel } from '../../models/mlmodel/mlModel.model';\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 { NgForm, UntypedFormGroup, UntypedFormControl } from '@angular/forms';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { DataSrc } from '../../models/workflow/workflow.model';\r\nimport { WorkflowEventsHandler } from '../../workflow/workflow-events/workflow.events.handler';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { InputParameter } from '../../models/workflow/inputParameters.model';\r\nimport { ParameterModel } from 'src/app/models/workflow/parameter.model';\r\n\r\n@Component({\r\n selector: 'app-data-source-manager',\r\n templateUrl: './custom-comp-mngr.component.html',\r\n styleUrls: ['./custom-comp-mngr.component.css']\r\n})\r\n\r\nexport class CustomCompMngrComponent implements OnInit {\r\n\r\n model: PlatformComponent = new PlatformComponent();\r\n inputParameters = [];\r\n srcConnParameterList = [];\r\n sinkConnParameterList = [];\r\n sinkModel = new MlModel();\r\n sinkConnVariablesList: InputParameter[] = [];\r\n sinkVariablesConnToSrcModel: InputParameter[] = [];\r\n srcConnVariablesList = [];\r\n dataToPass = [];\r\n userSinkVar = false;\r\n form_template = [];\r\n @ViewChild('f', { static: true }) registerForm: NgForm;\r\n modelError: string;\r\n myFormGroup: UntypedFormGroup;\r\n deletedSinkParam: InputParameter;\r\n readOnly: false;\r\n isLoading = false;\r\n dataSource: any[];\r\n dataSourceSelected;\r\n dataSourceName;\r\n parameterList: any[];\r\n selectedParameter;\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 flowsheetService: WorkflowService,\r\n public flowSheetHandler: WorkflowEventsHandler,\r\n public dialog: MatDialog) {\r\n };\r\n\r\n ngOnInit() {\r\n this.getDataSources();\r\n this.isLoading = true;\r\n this.dialogRef.disableClose = true;\r\n\r\n this.model = this.data.component;\r\n this.readOnly = this.data.readOnly;\r\n this.inputParameters = this.model.inputParameters;\r\n this.setConnectedParameters();\r\n }\r\n\r\n setConnectedParameters() {\r\n this.sinkConnVariablesList = this.model.inputParameters.filter(p => p.mappedDataSource == DataSrc.extDataSrc);\r\n this.inputParameters = this.model.inputParameters.filter(p => p.mappedDataSource == DataSrc.user);\r\n this.sinkVariablesConnToSrcModel = this.model.inputParameters.filter(p => p.mappedDataSource == DataSrc.component);\r\n \r\n this.sinkConnVariablesList.forEach((param) => {\r\n let srcParameterData = {\r\n mappedDataSource: param.mappedDataSource,\r\n mappedDataSourceId: param.mappedDataSourceId,\r\n mappedFrequency: param.mappedFrequency,\r\n mappedParameterId: param.mappedParameterId,\r\n mappedParameterName: param.mappedParameterName\r\n };\r\n this.srcConnVariablesList.push(srcParameterData);\r\n });\r\n }\r\n\r\n getDataSources() {\r\n this.flowsheetService.getDataSources().subscribe((data: any): void => {\r\n this.dataSource = data;\r\n this.dataSourceSelected = this.dataSource[0];\r\n this.getDataSourceParameters();\r\n }, (error: Error) => { this.modelError = 'Failed to load Data sources.'; this.isLoading = false; });\r\n }\r\n\r\n getDataSourceParameters() {\r\n this.isLoading = true;\r\n this.flowsheetService.getDataSourceParameters(this.dataSourceSelected.dataSourceId).subscribe((data: any): void => {\r\n this.parameterList = data;\r\n this.isLoading = false;\r\n }, (error: Error) => { this.modelError = 'Failed to load data source parameters.'; this.isLoading = false; });\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.sinkConnVariablesList[index]) {\r\n this.deletedSinkParam = this.sinkConnVariablesList.splice(index, 1)[0];\r\n this.flowSheetHandler.resetParameterSrcMapData(this.deletedSinkParam);\r\n this.flowSheetHandler.returnParameterToOriginalPosition(this.inputParameters, this.deletedSinkParam);\r\n }\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 mappedParameterId: parameter.srcParameterId,\r\n mappedParameterName: parameter.srcParameter\r\n };\r\n this.srcConnVariablesList.push(srcParameterData);\r\n this.selectedParameter = undefined;\r\n }\r\n\r\n saveMappingDetails() {\r\n if (this.inputParameters.length === 0) {\r\n this.saveDataSourceMapping();\r\n this.dialogRef.close(false);\r\n }\r\n else {\r\n this.userSinkVar = true;\r\n let formItem = [];\r\n let group = {};\r\n\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 }\r\n }\r\n\r\n gotoPrev() {\r\n this.userSinkVar = 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 this.parameterModel.model = this.model;\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.defaultValue = value;\r\n this.flowSheetHandler.updateParameterMapping(this.parameterModel);\r\n }\r\n this.saveDataSourceMapping();\r\n this.dialogRef.close(false);\r\n }\r\n\r\n saveDataSourceMapping() {\r\n if(this.sinkConnVariablesList){\r\n this.sinkConnVariablesList.forEach((connParam, index) => {\r\n let srcParam = this.srcConnVariablesList[index];\r\n this.parameterModel.model = this.model;\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.defaultValue = connParam.data.parameterDefaultValue;\r\n this.flowSheetHandler.updateParameterMapping(this.parameterModel);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Custom Component Specification: Data Source\r\n
\r\n
\r\n Custom Component Specification: User Input\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Variables
\r\n
\r\n
\r\n
\r\n {{item.data.captionName}}\r\n 25\">{{item.data.captionName.slice(0,25)}}...\r\n
\r\n
\r\n
\r\n No parameters available\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 25\">{{item.data.captionName.slice(0,25)}}...\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\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
\r\n \r\n
\r\n
link
\r\n
\r\n
\r\n
\r\n
\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 \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { flowsheet } from '../../models/workflow/flosheetList.model';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { GlobalService } from '../../services/global.service';\r\n\r\n@Component({\r\n selector: 'app-scenario-specification',\r\n templateUrl: './flowsheet-specification.component.html',\r\n styleUrls: ['./flowsheet-specification.component.css']\r\n})\r\nexport class FlowsheetSpecificationComponent implements OnInit {\r\n componentDetails: PlatformComponent = new PlatformComponent();\r\n isLoading= false;\r\n readOnly: false;\r\n flowsheetSelected;\r\n modelErrorMessage;\r\n flowsheetsListDetails;\r\n selectedFlowsheet: flowsheet = new flowsheet();\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public flowsheetService: WorkflowService,\r\n public dialog: MatDialog,\r\n public globals: GlobalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n this.getFlowsheetList();\r\n this.componentDetails = this.data.component;\r\n this.readOnly = this.data.readOnly;\r\n }\r\n\r\n getFlowsheetList() {\r\n this.flowsheetService.getFlowSheetsList().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n let flowsheetfound: any;\r\n this.flowsheetsListDetails = data;\r\n flowsheetfound = this.flowsheetsListDetails.filter(f => f.flowSheetId == this.componentDetails.componentDetails.id);\r\n this.selectedFlowsheet = flowsheetfound.length > 0 ? flowsheetfound[0] : this.selectedFlowsheet;\r\n } else {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"No Flowsheet availalble!\" });\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching flowsheet list!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n onSelectParameter(parameter) {\r\n this.flowsheetSelected = parameter;\r\n }\r\n\r\n saveFlowsheetDetails() {\r\n this.data.component.componentDetails.name = this.selectedFlowsheet.flowSheetName;\r\n this.data.component.componentDetails.id = this.selectedFlowsheet.flowSheetId;\r\n this.dialogRef.close(false);\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
\r\n \r\n
\r\n
\r\n Flowsheet Specification - {{componentDetails.componentUniqueId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\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, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\r\n\r\n@Component({\r\n selector: 'app-scenario-specification',\r\n templateUrl: './formula-specification.component.html',\r\n styleUrls: ['../flowsheet-specification/flowsheet-specification.component.css']\r\n})\r\nexport class FormulaSpecificationComponent implements OnInit {\r\n componentDetails: PlatformComponent = new PlatformComponent();\r\n isLoading= false;\r\n readOnly: boolean = false;\r\n modelErrorMessage;\r\n formulaListDetails;\r\n selectedFormula = [];\r\n dropdownSettings: IDropdownSettings = {};\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public workflowService: WorkflowService,\r\n public dialog: MatDialog,\r\n public globals: GlobalService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n this.getFormulaList();\r\n this.componentDetails = this.data.component;\r\n if (this.data.component.formulaList.length > 0) {\r\n this.selectedFormula = this.data.component.formulaList;\r\n }\r\n this.readOnly = this.data.readOnly;\r\n }\r\n\r\n getFormulaList() {\r\n this.workflowService.getFormulaList().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.formulaListDetails = data;\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'name',\r\n textField: 'name',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n maxHeight: 180,\r\n itemsShowLimit: 2,\r\n allowSearchFilter: true\r\n };\r\n } else {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Formula's list not availalble!\" });\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching formula list!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n saveFormulaListDetails() {\r\n this.data.component.componentDetails.id = 1;\r\n this.data.component.formulaList = this.selectedFormula;\r\n this.dialogRef.close(false);\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
\r\n \r\n
\r\n
\r\n Formula Builder Specification - {{componentDetails.componentUniqueId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \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, Inject } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\n\r\n@Component({\r\n selector: 'app-send-data',\r\n templateUrl: './send-data.component.html',\r\n styleUrls: ['./send-data.component.css']\r\n})\r\nexport class SendDataComponent implements OnInit {\r\n componentDetails: PlatformComponent = new PlatformComponent();\r\n isLoading = false;\r\n readOnly: false;\r\n dataSourceList: any;\r\n \r\n public sendDataForm = new UntypedFormGroup({\r\n id: new UntypedFormControl(''),\r\n dataSourceId: new UntypedFormControl({ value: '', disabled: false }, Validators.required)\r\n });\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public sendDataService: WorkflowService,\r\n public dialog: MatDialog,\r\n public globalService: GlobalService) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n this.getListDataSource();\r\n this.componentDetails = this.data.component;\r\n this.readOnly = this.data.readOnly;\r\n this.sendDataForm.patchValue({ dataSourceId: this.componentDetails.componentDetails.id });\r\n }\r\n\r\n getListDataSource() {\r\n this.sendDataService.getListDataSource().subscribe((data) => {\r\n this.dataSourceList = data['dataSourceList'];\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n disableSave() {\r\n let check: boolean;\r\n check = this.readOnly || !this.sendDataForm.valid;\r\n return check;\r\n }\r\n\r\n savesendDataSpecifications() {\r\n this.data.component.componentDetails.id = this.sendDataForm.get('dataSourceId').value;\r\n this.data.component.componentDetails.name = this.dataSourceList.find((item: any) => item.datasourceId == this.data.component.componentDetails.id).datasourceName;\r\n this.dialogRef.close(false);\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
\r\n \r\n
\r\n
\r\n Send Data Specification - {{componentDetails.componentUniqueId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \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, Inject, ViewChild } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MlModel } from '../../models/mlmodel/mlModel.model';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { MLService } from '../../services/ml-service';\r\nimport { NgForm, UntypedFormGroup } from '@angular/forms';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { WorkflowEventsHandler } from '../../workflow/workflow-events/workflow.events.handler';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { monitorElement, dataSource, criteriaType } from '../../models/workflow/monitoring.model';\r\nimport { gapElement, duration } from '../../models/workflow/gapAnalysis.model';\r\nimport { IDropdownSettings } from 'ng-multiselect-dropdown';\r\nimport { ConfirmModelComponent } from '../../common/confirm-model/confirm-model.component';\r\n\r\n@Component({\r\n selector: 'app-std-component-manager',\r\n templateUrl: './std-comp-mngr.component.html',\r\n styleUrls: ['./std-comp-mngr.component.css']\r\n})\r\n\r\nexport class StdComponentManagerComponent implements OnInit {\r\n platformComponent: PlatformComponent = new PlatformComponent();\r\n srcConnParameterList = [];\r\n sinkConnParameterList = [];\r\n sinkModel = new MlModel();\r\n srcConnVariablesList = [];\r\n dataToPass = [];\r\n userSinkVar = false;\r\n form_template = [];\r\n @ViewChild('f', { static: true }) registerForm: NgForm;\r\n myFormGroup: UntypedFormGroup;\r\n readOnly: false;\r\n isLoading = false;\r\n dataSource: any[];\r\n dataSourceSelected;\r\n dataSourceName;\r\n selectedParameter;\r\n dataMonitoringList;\r\n dataMonitoringListModified;\r\n durationData: duration[] = [];\r\n datasource: dataSource[] = [];\r\n criteriaTypeData: criteriaType[] = [];\r\n selectedMonitoringElement: monitorElement = new monitorElement();\r\n dataGapList;\r\n selectedGapElement: gapElement[] = [];\r\n parameterSelected= false;\r\n dataListDetails: MatTableDataSource;\r\n modelErrorMessage: string = \"\";\r\n displayedMonitorColumns: string[] = ['Add', 'dataSource', 'parameterName', 'criteriaType', 'condition', 'value', 'frequency'];\r\n displayedGapColumns: string[] = ['Add', 'measuredData', 'referenceData', 'duration'];\r\n branching = false;\r\n isBranching = false;\r\n dropdownList = [];\r\n trueBranches = [];\r\n falseBranches = [];\r\n dropdownSettings: IDropdownSettings = {};\r\n branchigStep = false;\r\n monitoringComponentName: string;\r\n selectedBranches = [];\r\n selectCollection: boolean = false;\r\n collectionsList;\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 workflowService: WorkflowService,\r\n public workflowHandler: WorkflowEventsHandler,\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.monitoringComponentName = this.globals.monitoringComponentName;\r\n this.platformComponent = this.data.component;\r\n this.trueBranches = this.data.component.isBranchingTrue;\r\n this.falseBranches = this.data.component.isBranchingFalse;\r\n if (this.platformComponent.componentName == this.monitoringComponentName) {\r\n this.selectedMonitoringElement.parameterName = this.data.component.componentDetails.name;\r\n this.selectedMonitoringElement.tagThresholdMappingId = this.data.component.componentDetails.id;\r\n this.selectCollection = this.data.component.componentDetails.selectCollection;\r\n this.selectedParameter = this.platformComponent.componentDetails.name;\r\n this.getDataList(this.platformComponent.componentName);\r\n this.getDataSource();\r\n this.getCriteriaList();\r\n } else {\r\n this.selectCollection = this.data.component.componentDetails.selectCollection;\r\n this.selectedParameter = this.platformComponent.componentDetails.name;\r\n this.getDataList(this.platformComponent.componentName);\r\n this.getDuration();\r\n }\r\n this.readOnly = this.data.readOnly;\r\n if (this.data.context.outgoing) {\r\n this.isBranching = this.data.context.outgoing.length > 1;\r\n }\r\n if (this.isBranching) {\r\n this.dropdownList = this.modefiedList(this.data.context.outgoing);\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'name',\r\n textField: 'name',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 2,\r\n allowSearchFilter: false\r\n };\r\n }\r\n }\r\n\r\n modefiedList(dataset) {\r\n let modefiedList: any = [];\r\n const listDataModel = dataset;\r\n for (let i = 0; i < listDataModel.length; i++) {\r\n modefiedList.push({\r\n 'name': listDataModel[i].targetRef.$attrs.componentUniqueId\r\n });\r\n }\r\n return modefiedList;\r\n }\r\n\r\n branchingStep() {\r\n this.branchigStep = !this.branchigStep;\r\n }\r\n\r\n getDuration() {\r\n this.workflowService.getDuration().subscribe((data: any): void => {\r\n this.durationData = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting duration data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getDataSource() {\r\n this.workflowService.getDataSource().subscribe((data: any): void => {\r\n this.datasource = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting data source data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getCriteriaList() {\r\n this.workflowService.getCriteriaType().subscribe((data: any): void => {\r\n this.criteriaTypeData = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting criteria type data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n getDataList(componentName) {\r\n if (this.selectCollection) {\r\n this.workflowService.getCollectionListDetails(componentName).subscribe((data: any): void => {\r\n this.collectionsList = data;\r\n this.loadDataInTable();\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting \" + componentName + \" data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n this.workflowService.getDataListDetails(componentName).subscribe((data: any): void => {\r\n if (componentName == this.monitoringComponentName) {\r\n this.dataMonitoringList = data;\r\n this.dataMonitoringListModified = [...data];\r\n this.dataMonitoringListModified = this.dataMonitoringListModified.filter((test, index, array) =>\r\n index == array.findIndex((findTest) =>\r\n findTest.parameterName == test.parameterName\r\n ));\r\n } else {\r\n this.dataGapList = data;\r\n }\r\n this.loadDataInTable();\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting \" + componentName + \" data\" });\r\n this.isLoading = false;\r\n });\r\n \r\n }\r\n\r\n loadDataInTable() {\r\n if (this.platformComponent.componentDetails && this.platformComponent.componentDetails.name.length > 0) {\r\n this.parameterSelected = true;\r\n this.onSelectParameter(this.platformComponent.componentDetails.name, this.platformComponent.componentDetails.id);\r\n }\r\n }\r\n\r\n onSelectParameter(parameter, id?) {\r\n this.dataListDetails = new MatTableDataSource(this.dataSource);\r\n if (this.platformComponent.componentName == this.monitoringComponentName) {\r\n if (this.selectCollection) {\r\n this.parameterSelected = true;\r\n this.dataListDetails = new MatTableDataSource((this.collectionsList.find(coll => coll.collectionId == id)).criterias);\r\n this.data.component.componentDetails.name = (this.collectionsList.find(coll => coll.collectionId == id)).collectionName;\r\n this.data.component.componentDetails.id = id;\r\n } else {\r\n this.dataListDetails = new MatTableDataSource(this.dataMonitoringList);\r\n this.dataListDetails.filter = parameter.trim().toLowerCase();\r\n }\r\n } \r\n else if (this.selectCollection) {\r\n this.parameterSelected = true;\r\n if (this.dataGapList) {\r\n this.dataListDetails = new MatTableDataSource(this.dataGapList.filter(coll => coll.collectionId == id));\r\n }\r\n if (this.dataGapList.find(coll => coll.collectionId == id)) {\r\n this.data.component.componentDetails.name = (this.dataGapList.find(coll => coll.collectionId == id)).collectionName;\r\n } else {\r\n this.data.component.componentDetails.name = \"\";\r\n }\r\n this.data.component.componentDetails.id = id;\r\n this.dataListDetails.filter = parameter.trim().toLowerCase();\r\n }\r\n else {\r\n this.selectedGapElement = this.dataGapList.filter(g => g.id == id)[0];\r\n this.parameterSelected = true;\r\n this.dataListDetails = new MatTableDataSource(this.dataGapList);\r\n this.dataListDetails.filter = parameter.trim().toLowerCase();\r\n }\r\n }\r\n\r\n radioChange(event ) {\r\n this.parameterSelected = event;\r\n }\r\n\r\n saveMonitorDetails(selectedMonitoringElement: monitorElement) {\r\n const mergedArray = [...this.trueBranches, ...this.falseBranches];\r\n // mergedArray have duplicates, lets remove the duplicates using Set\r\n let set = new Set();\r\n this.selectedBranches = mergedArray.filter(item => {\r\n if (!set.has(item.name)) {\r\n set.add(item.name);\r\n return true;\r\n }\r\n return false;\r\n }, set);\r\n if (this.selectedBranches.length < this.dropdownList.length) {\r\n let dataToPass = {\r\n title: 'Confirm',\r\n isDelete: false,\r\n message: 'Few branches will not execute in any case, do yo wish to continue?'\r\n };\r\n this.globals.openModelWindow(this.saveOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n else {\r\n this.saveOnConfirm(this);\r\n }\r\n }\r\n\r\n saveOnConfirm(thisRef: StdComponentManagerComponent) {\r\n thisRef.data.component.isBranchingTrue = thisRef.trueBranches;\r\n thisRef.data.component.isBranchingFalse = thisRef.falseBranches;\r\n thisRef.data.component.componentDetails.selectCollection = thisRef.selectCollection;\r\n if (!thisRef.selectCollection) {\r\n thisRef.data.component.componentDetails.name = thisRef.selectedMonitoringElement.parameterName;\r\n thisRef.data.component.componentDetails.id = thisRef.selectedMonitoringElement.tagThresholdMappingId;\r\n }\r\n thisRef.dialogRef.close(false);\r\n }\r\n\r\n saveGapDetails(selectedGapElement: gapElement) {\r\n this.data.component.componentDetails.selectCollection = this.selectCollection;\r\n if (!this.selectCollection) {\r\n this.data.component.componentDetails.name = selectedGapElement.gapConfigurationName;\r\n this.data.component.componentDetails.id = selectedGapElement.id;\r\n }\r\n this.dialogRef.close(false);\r\n }\r\n\r\n onCancelClick() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n changeSelection() {\r\n this.selectedParameter = \"\";\r\n this.platformComponent.componentDetails.name = \"\";\r\n this.getDataList(this.platformComponent.componentName);\r\n this.dataListDetails = new MatTableDataSource([]);\r\n }\r\n\r\n disableSavebutton() {\r\n let check: boolean = !this.parameterSelected || this.readOnly || (this.branchigStep && (this.trueBranches.length == 0 && this.falseBranches.length == 0))\r\n || !this.globals.isNotNull(this.selectedParameter);\r\n return check;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Monitoring\r\n Gap Analysis Component Specification - {{platformComponent.componentUniqueId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \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 \r\n \r\n search\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Data Source\r\n \r\n \r\n {{items.Name}}\r\n \r\n \r\n \r\n \r\n Parameter Name\r\n \r\n {{element.parameterName}}\r\n 30\" ngbTooltip=\"{{element.parameterName}}\" placement=\"top\">{{element.parameterName.slice(0,30)}}...\r\n \r\n \r\n \r\n Criteria Type\r\n {{criteriaTypeData[element.thresholdTypeId - 1].Name}} \r\n \r\n \r\n Condition​\r\n {{element.condition}} \r\n \r\n \r\n Value\r\n {{element.thresholdValue}} \r\n \r\n \r\n Frequency\r\n {{element.frequency}} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Measured Data\r\n \r\n {{element.measuredData}}\r\n 30\" ngbTooltip=\"{{element.measuredData}}\" placement=\"top\">{{element.measuredData.slice(0,30)}}...\r\n \r\n \r\n \r\n Reference Data\r\n \r\n {{element.targetData}}\r\n 30\" ngbTooltip=\"{{element.targetData}}\" placement=\"top\">{{element.targetData.slice(0,30)}}...\r\n \r\n \r\n \r\n Duration\r\n \r\n {{durationData[element.durationId - 1].Name}} \r\n \r\n {{element.evaluateFromDate}} to {{element.evaluateToDate}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\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 { HttpClient } from '@angular/common/http';\r\nimport { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { InjectionNames, OriginalPaletteProvider } from '../bpmn-js/bpmn-js';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { WorkflowEventsHandler } from '../workflow/workflow-events/workflow.events.handler';\r\nimport { RenameModelComponent } from '../workflow/rename-model/rename-model.component';\r\nimport { SaveworkflowComponent } from '../workflow/save-workflow/save-workflow.component';\r\nimport { Workflow } from '../models/workflow/workflow.model';\r\nimport { CustomPaletteProvider } from '../props-provider/CustomPaletteProvider';\r\nimport { WorkflowService } from '../services/workflow-service';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { MLService } from '../services/ml-service';\r\nimport CustomModeler from './index';\r\nimport { FlowsheetSpecificationComponent } from './flowsheet-specification/flowsheet-specification.component';\r\nimport { CustomCompMngrComponent } from './custom-comp-mngr/custom-comp-mngr.component';\r\nimport { StdComponentManagerComponent } from './std-comp-mngr/std-comp-mngr.component';\r\nimport { ConnectorSpecificationComponent } from './connector-specification/connector-specification.component';\r\nimport { WorkflowSchedulerComponent } from './workflow-scheduler/workflow-scheduler.component';\r\nimport { FormulaSpecificationComponent } from './formula-specification/formula-specification.component';\r\nimport { SendDataComponent } from './send-data/send-data.component';\r\nimport { of } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\n\r\n@Component({\r\n selector: 'app-workflowBuilder',\r\n templateUrl: './workflow-builder.component.html',\r\n styleUrls: ['./workflow-builder.component.scss'],\r\n host: {\r\n '(document:click)': 'onClick($event)',\r\n }\r\n})\r\nexport class workflowBuilderComponent implements OnInit {\r\n isLoading = false;\r\n modeler;\r\n activPallet = \"STANDARD\";\r\n palletData;\r\n dataToPass: any = [];\r\n bpmnDiagram: any;\r\n element: any;\r\n isEdit: boolean = false;\r\n workflowId: number;\r\n editMode = false;\r\n viewOnly: boolean = false;\r\n isReadyForNewRun = false;\r\n workflowShow = false;\r\n workflow: Workflow = new Workflow();\r\n componentConnectorData: any;\r\n showContextMenu = false;\r\n posX = 0;\r\n posY = 0;\r\n componentToRename: any = {};\r\n renameConponentInfo: any = {};\r\n eventAlreadyDrpped = false;\r\n showBranchingMenu = false;\r\n workflowStatus = \"Inactive\";\r\n searchText: string;\r\n filteredPalletData: any;\r\n\r\n constructor(private readonly http: HttpClient,\r\n public globals: GlobalService,\r\n public workflowService: WorkflowService,\r\n private readonly matIconRegistry: MatIconRegistry,\r\n private readonly domSanitizer: DomSanitizer,\r\n public mlService: MLService,\r\n public dialog: MatDialog,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n private readonly _eref: ElementRef,\r\n public workflowHandler: WorkflowEventsHandler\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n this.mlService.getComponentList().pipe(\r\n switchMap((data: any) => {\r\n localStorage.setItem('palletData', JSON.stringify(data));\r\n let updatedComponents = [...data];\r\n this.palletData = updatedComponents; \r\n this.assignPalletCopy();\r\n this.modeler = this.createCustomModeler();\r\n return of(data);\r\n }),\r\n switchMap((data) => { return of(this.componentList()) }),\r\n ).subscribe();\r\n\r\n this.componentConnector();\r\n }\r\n\r\n assignPalletCopy() {\r\n this.filteredPalletData = Object.assign([], this.palletData);\r\n }\r\n\r\n searchPallet(data: string) {\r\n if (data) {\r\n this.searchText = data;\r\n this.filteredPalletData = Object.assign([], this.palletData)\r\n .filter((element) =>\r\n element.components.some((subElement) => subElement.componentName.toLowerCase().includes(this.searchText.toLowerCase())))\r\n .map(element => {\r\n return {...element, components: element.components.filter(subElement => subElement.componentName.toLowerCase().includes(this.searchText.toLowerCase()))};\r\n });\r\n }\r\n else {\r\n this.assignPalletCopy();\r\n } \r\n }\r\n\r\n componentList(){ \r\n this.isLoading = true;\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n this.workflowShow = params.id;\r\n if (this.workflowShow) {\r\n this.workflowStatus = params.status;\r\n this.editWorkflow(params.id, params.isEdit);\r\n return of(params);\r\n } else {\r\n this.load();\r\n this.seteventBus(this);\r\n this.isLoading = false;\r\n }\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error getting Component data\" });\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n componentConnector(){ \r\n this.mlService.getComponentConnector().subscribe((data: any): void => {\r\n //connecrdata is used to vlidate connection between component\r\n this.componentConnectorData = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Something went wrong...\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n editWorkflow(parameterId, isEdit) {\r\n this.isEdit = isEdit === 'true';\r\n this.viewOnly = isEdit === 'false'\r\n this.workflowId = parameterId;\r\n this.workflowService.getFlowData(parameterId).subscribe((data: any): void => {\r\n try {\r\n this.workflow = JSON.parse(data);\r\n this.modeler.importXML(this.workflow.bpmnXml)\r\n .then(({ warnings }) => {\r\n this.modeler.get('canvas').zoom('fit-viewport', 'auto');\r\n });\r\n this.seteventBus(this);\r\n } catch (err) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: err.message });\r\n }\r\n this.isLoading = false;\r\n //this.modeler.importXML(data.bpmnXml)\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in getting workflow data\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n inEditMode() {\r\n this.isEdit = true;\r\n this.viewOnly = false;\r\n this.seteventBus(this);\r\n }\r\n\r\n onClick() {\r\n if (this.showContextMenu) // or some similar check\r\n this.showContextMenu = false;\r\n this.showBranchingMenu = false;\r\n }\r\n\r\n seteventBus(thisObj) {\r\n let that = thisObj;\r\n let eventBus = thisObj.modeler.get('eventBus');\r\n eventBus.on(['element.click', 'element.contextmenu'], 10000, function (context) {\r\n if (thisObj.viewOnly) {\r\n return false;\r\n }\r\n });\r\n eventBus.on('create.start', function (element) {\r\n // Set uniqueId in component element\r\n that.setUniqueIdForComponent(element);\r\n });\r\n eventBus.on('directEditing.activate', function (elem) {\r\n // Cancel direct editing to override dblclick event properly\r\n let directEditing = that.modeler.get('directEditing');\r\n directEditing.cancel();\r\n });\r\n eventBus.on('shape.added', function (elem) {\r\n that.processShapeAddedEvent(elem);\r\n });\r\n eventBus.on('shape.removed', function (elem) {\r\n if (elem.element.componentType == \"EVENT\") {\r\n that.eventAlreadyDrpped = false;\r\n }\r\n that.removeComponent(elem.element.componentUniqueId);\r\n });\r\n eventBus.on('commandStack.connection.create.postExecuted', function (elem) {\r\n that.validateConnetion(elem.context);\r\n });\r\n eventBus.on('connection.added', function (elem) {\r\n if (elem.element.source.componentUniqueId != elem.element.target.componentUniqueId) {\r\n if (!elem.element.businessObject.sourceRef && !elem.element.businessObject.targetRef) {\r\n that.updateConnection(elem.element);\r\n }\r\n }\r\n });\r\n eventBus.on('connection.removed', function (elem) {\r\n let conns = elem.element.businessObject.$parent.flowElements.filter(e => e.$type == 'bpmn:SequenceFlow');\r\n if (conns.filter(e => e.id != elem.element.id\r\n && e.sourceRef.$attrs.componentUniqueId == elem.element.source.componentUniqueId\r\n && e.targetRef.$attrs.componentUniqueId == elem.element.target.componentUniqueId).length == 0) {\r\n that.removeConnection(elem.element);\r\n }\r\n });\r\n eventBus.on('element.dblclick', 10000, function (context) {\r\n that.processDblClkEvent(context, that);\r\n context.stopPropagation();\r\n });\r\n eventBus.on(\"element.contextmenu\", event => {\r\n that.processContextMenuEvent(event);\r\n });\r\n }\r\n\r\n processShapeAddedEvent(elem) {\r\n if (this.workflow.component.findIndex(c => c.componentUniqueId == elem.element.businessObject.$attrs.componentUniqueId) == -1) {\r\n this.addComponent(elem.element);\r\n } else {\r\n elem.element['componentId'] = Number(elem.element.businessObject.$attrs.componentId);\r\n elem.element['componentImg'] = elem.element.businessObject.$attrs.componentImg;\r\n elem.element['componentName'] = elem.element.businessObject.$attrs.componentName;\r\n elem.element['componentType'] = elem.element.businessObject.$attrs.componentType;\r\n elem.element['componentUniqueId'] = elem.element.businessObject.$attrs.componentUniqueId;\r\n }\r\n if (elem.element.componentType == \"EVENT\") {\r\n this.eventAlreadyDrpped = true;\r\n }\r\n }\r\n\r\n processContextMenuEvent(event) {\r\n if (event.element.type === \"bpmn:Task\") {\r\n this.componentToRename = event;\r\n this.posX = event.originalEvent.pageX;\r\n this.posY = event.originalEvent.pageY;\r\n let entireModeler = this.modeler.getDefinitions();\r\n this.renameConponentInfo = { name: event.gfx.parentNode.children[0].textContent, modeler: entireModeler };\r\n this.showContextMenu = true;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n renameComponent() {\r\n this.globals.openModelWindow(this.changeComponentName, this, RenameModelComponent, '40%', 'custom-modalbox', this.renameConponentInfo);\r\n }\r\n\r\n changeComponentName(thisRef: workflowBuilderComponent, newCompomentName: any) {\r\n let oldName = thisRef.componentToRename.gfx.parentNode.children[0].textContent;\r\n thisRef.workflow.component.forEach((m) => {\r\n if (m.componentUniqueId == oldName) {\r\n m.componentUniqueId = newCompomentName;\r\n }\r\n m.srcComponent.forEach((m1, index) => {\r\n m.srcComponent[index] = m1 == oldName ? newCompomentName : m1;\r\n });\r\n m.sinkComponent.forEach((m1, index) => {\r\n m.sinkComponent[index] = m1 == oldName ? newCompomentName : m1;\r\n });\r\n m.isBranchingTrue.forEach((m1, index) => {\r\n m.isBranchingTrue[index].name = m1.name == oldName ? newCompomentName : m1.name;\r\n });\r\n m.isBranchingFalse.forEach((m1, index) => {\r\n m.isBranchingFalse[index].name = m1.name == oldName ? newCompomentName : m1.name;\r\n });\r\n });\r\n let svgTextElement = thisRef.getTextNodeElement();\r\n thisRef.componentToRename.element.componentUniqueId = newCompomentName;\r\n thisRef.componentToRename.element.businessObject.$attrs.componentUniqueId = newCompomentName;\r\n svgTextElement[0].childNodes[0].nodeValue = newCompomentName;\r\n }\r\n\r\n getTextNodeElement() {\r\n return this.componentToRename.gfx.parentNode.children[0].getElementsByTagName(\"text\");\r\n }\r\n\r\n validateConnetion(connElem) {\r\n\r\n let conns = connElem.parent.children.filter(e => e.type == 'bpmn:SequenceFlow');\r\n // Check If save connection already exists\r\n let connectionAlreadyExist = conns.filter(e => e.id != connElem.connection.id\r\n && e.source.componentUniqueId == connElem.source.componentUniqueId\r\n && e.target.componentUniqueId == connElem.target.componentUniqueId).length > 0;\r\n\r\n // Check if the connection is creating any circle in execution cycle\r\n let srcComponentsTrace = [connElem.source.componentUniqueId];\r\n this.getSrcComponentUniqueIdRecursive(conns, srcComponentsTrace, connElem.source.componentUniqueId);\r\n let isCausingCircle = srcComponentsTrace.findIndex(m => m == connElem.target.componentUniqueId) != -1;\r\n\r\n\r\n //removed notAllowConn and connNotAllow and isSameComponent from below condition for till we finalise rule\r\n if ( connectionAlreadyExist || isCausingCircle) {\r\n this.removeElementFromRegistry(connElem.connection.id);\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Connection is not valid!.\" });\r\n }\r\n }\r\n\r\n getSrcComponentUniqueIdRecursive(conns: any, srcComponentsTrace: string[], componentUniqueId: string) {\r\n let conn = conns.find(c => c.target.componentUniqueId == componentUniqueId);\r\n if (conn != null && srcComponentsTrace.findIndex(m => m == conn.source.componentUniqueId) == -1) {\r\n srcComponentsTrace.push(conn.source.componentUniqueId);\r\n this.getSrcComponentUniqueIdRecursive(conns, srcComponentsTrace, conn.source.componentUniqueId);\r\n }\r\n }\r\n\r\n removeElementFromRegistry(elementId) {\r\n let elementRegistry = this.modeler.get('elementRegistry');\r\n let modeling = this.modeler.get('modeling');\r\n let element = elementRegistry.get(elementId);\r\n modeling.removeElements([element]);\r\n }\r\n\r\n addComponent(element) {\r\n this.workflowHandler.addComponent(this, element.componentUniqueId, element.componentId, element.componentName, element.componentType);\r\n }\r\n\r\n setUniqueIdForComponent(element) {\r\n let maxId: number = 0;\r\n\r\n let b1 = this.modeler.getDefinitions();\r\n let c1;\r\n if (b1.diagrams[0].plane.planeElement) {\r\n c1 = b1.diagrams[0].plane.planeElement.filter((m) => { return m.bpmnElement.$attrs.componentId == element.shape.componentId });\r\n\r\n if (c1.length > 0) {\r\n let args = c1.map(function (m) {\r\n let value = m.bpmnElement.$attrs.componentUniqueId.replace(element.shape.componentName + \"_\", \"\");\r\n return isNaN(value) ? 0 : value;\r\n });\r\n maxId = Math.max(...args);\r\n }\r\n }\r\n\r\n element.shape['componentUniqueId'] = element.shape.componentName + \"_\" + (\"0\" + (maxId + 1)).slice(-2);\r\n }\r\n\r\n updateConnection(element) {\r\n // source and target components in new connection\r\n let newSrcComponent = element.source;\r\n let newSinkComponent = element.target;\r\n // source and target components instances in workflow\r\n let srcComponent = this.workflow.component.find(s => s.componentUniqueId == newSrcComponent.componentUniqueId);\r\n let sinkComponent = this.workflow.component.find(s => s.componentUniqueId == newSinkComponent.componentUniqueId);\r\n // add src and sink relation if not already exist\r\n if (srcComponent.sinkComponent.findIndex(p => p == sinkComponent.componentUniqueId) == -1) {\r\n srcComponent.sinkComponent.push(newSinkComponent.componentUniqueId);\r\n }\r\n if (sinkComponent.srcComponent.findIndex(p => p == srcComponent.componentUniqueId) == -1) {\r\n sinkComponent.srcComponent.push(newSrcComponent.componentUniqueId);\r\n }\r\n }\r\n\r\n removeConnection(element) {\r\n // source and target components in removed connection\r\n let oldSrcComponent = element.source;\r\n let oldSinkComponent = element.target;\r\n // source and target componets instances in workflow\r\n let srcComponent = this.workflow.component.find(s => s.componentUniqueId == oldSrcComponent.componentUniqueId);\r\n let sinkComponent = this.workflow.component.find(s => s.componentUniqueId == oldSinkComponent.componentUniqueId);\r\n // remove src and sink relation\r\n srcComponent.sinkComponent.splice(\r\n srcComponent.sinkComponent.findIndex(m => m == oldSinkComponent.componentUniqueId)\r\n , 1);\r\n srcComponent.isBranchingTrue.splice(\r\n srcComponent.isBranchingTrue.findIndex(m => m.name == oldSinkComponent.componentUniqueId)\r\n , 1);\r\n srcComponent.isBranchingFalse.splice(\r\n srcComponent.isBranchingFalse.findIndex(m => m.name == oldSinkComponent.componentUniqueId)\r\n , 1);\r\n sinkComponent.srcComponent.splice(\r\n sinkComponent.srcComponent.findIndex(m => m == oldSrcComponent.componentUniqueId)\r\n , 1);\r\n }\r\n\r\n removeComponent(componentUniqueId) {\r\n this.workflowHandler.removeComponent(this.workflow, componentUniqueId);\r\n }\r\n\r\n createCustomModeler(): any {\r\n return new CustomModeler({\r\n container: '#canvas',\r\n bpmnRenderer: {\r\n defaultFillColor: 'red',\r\n defaultStrokeColor: 'yellow'\r\n },\r\n width: '100%',\r\n height: '540px',\r\n additionalModules: [\r\n { [InjectionNames.originalPaletteProvider]: ['type', OriginalPaletteProvider] },\r\n { [InjectionNames.paletteProvider]: ['type', CustomPaletteProvider] },\r\n ]\r\n });\r\n }\r\n\r\n changeSource(event) {\r\n event.target.src = 'assets/bpmn/defaultModel.svg';\r\n }\r\n\r\n processDblClkEvent(context, thisRef) {\r\n this.element = context.element; \r\n if (this.element.type == \"bpmn:Task\") {\r\n thisRef.dataToPass = {\r\n 'context': this.element.businessObject,\r\n 'component': this.workflow.component.find(c => c.componentUniqueId == this.element.componentUniqueId),\r\n 'readOnly': this.viewOnly\r\n };\r\n switch (this.element.componentType) {\r\n case \"EVENT\":\r\n case \"ACTION\": {\r\n if (this.element.componentName == 'Flowsheet') {\r\n thisRef.globals.openModelWindow(null, thisRef, FlowsheetSpecificationComponent, '30%', 'custom-modalbox', thisRef.dataToPass);\r\n } else if (this.element.componentName == 'Scheduler') {\r\n thisRef.globals.openModelWindow(null, thisRef, WorkflowSchedulerComponent, '50%', 'custom-modalbox', thisRef.dataToPass);\r\n } else if (this.element.componentName == 'Formula_Builder') {\r\n thisRef.globals.openModelWindow(null, thisRef, FormulaSpecificationComponent, '40%', 'formula-modalbox', thisRef.dataToPass);\r\n } else if (this.element.componentName == 'Send_Data') {\r\n thisRef.globals.openModelWindow(null, thisRef, SendDataComponent, '40%', 'custom-modalbox', thisRef.dataToPass);\r\n } else {\r\n thisRef.globals.openModelWindow(null, thisRef, StdComponentManagerComponent, '80%', 'custom-modalbox', thisRef.dataToPass);\r\n }\r\n break;\r\n }\r\n case \"CUSTOM\": {\r\n thisRef.globals.openModelWindow(null, thisRef, CustomCompMngrComponent, '80%', 'custom-modalbox', thisRef.dataToPass);\r\n break;\r\n }\r\n default: {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n break;\r\n }\r\n }\r\n } else if (this.element.type == \"bpmn:SequenceFlow\") {\r\n let srcModel = this.workflow.component.find(m => m.componentUniqueId == this.element.businessObject.sourceRef.$attrs.componentUniqueId);\r\n let sinkModel = this.workflow.component.find(m => m.componentUniqueId == this.element.businessObject.targetRef.$attrs.componentUniqueId);\r\n thisRef.dataToPass = {\r\n 'srcModel': srcModel,\r\n 'sinkModel': sinkModel,\r\n 'readOnly': this.viewOnly\r\n };\r\n thisRef.globals.openModelWindow(null, thisRef, ConnectorSpecificationComponent, '80%', 'custom-modalbox', thisRef.dataToPass);\r\n }\r\n return false;\r\n }\r\n\r\n selectPalleteType(paletteType) {\r\n this.activPallet = paletteType;\r\n }\r\n\r\n handleError(err: any) {\r\n if (err) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Ups, error, please reload the page\" });\r\n }\r\n }\r\n\r\n selectComponent(componentName, elementType) {\r\n if (elementType == \"EVENT\" && this.eventAlreadyDrpped) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"More than one event not allowed in workflow!\" });\r\n } else {\r\n let element: HTMLElement = document.querySelector(\"[data-action='create.\" + componentName + \"-task']\");\r\n element.click();\r\n }\r\n }\r\n\r\n canvasZoomIn() {\r\n this.modeler.get('zoomScroll').stepZoom(1);\r\n }\r\n canvasZoomOut() {\r\n this.modeler.get('zoomScroll').stepZoom(-1);\r\n }\r\n canvasZoomReset() {\r\n this.modeler.get('zoomScroll').reset();\r\n }\r\n\r\n load() {\r\n this.workflow = \r\n {\r\n \"bpmnXml\": \"\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\",\r\n \"workflowId\": 0,\r\n \"name\": \"\",\r\n \"description\": \"\",\r\n \"refineryName\": \"\",\r\n \"createdBy\": \"\",\r\n \"lastUpdatedTimeStamp\": new Date(),\r\n \"lastUpdatedBy\": \"\",\r\n \"initialComponentUniqueIds\": [],\r\n \"component\": [\r\n {\r\n \"componentUniqueId\": \"Scheduler_01\",\r\n \"componentId\": 1,\r\n \"componentName\": \"Scheduler\",\r\n \"componentImage\": null,\r\n \"componentType\": \"EVENT\",\r\n \"componentDetails\": {\r\n \"id\": 0,\r\n \"name\": \"\",\r\n \"DatasourceId\": 0,\r\n \"RawTagName\": \"\",\r\n \"ThresholdTypeId\": 0,\r\n \"condition\": \"\",\r\n \"value\": 0,\r\n \"frequency\": 0,\r\n \"workflowTriggerTypeId\": 0,\r\n \"frequencyUnitId\": 0,\r\n \"dataSourceId\": 0,\r\n \"startTime\": \"\",\r\n \"endTime\": \"\",\r\n \"selectCollection\": false\r\n },\r\n \"formulaList\": [],\r\n \"inputParameters\": [],\r\n \"outputParameters\": [],\r\n \"isBranchingTrue\": [],\r\n \"isBranchingFalse\": [],\r\n \"srcComponent\": [],\r\n \"sinkComponent\": []\r\n }\r\n ]\r\n };\r\n \r\n this.workflowService.getCustomCompParamList(false, 'Scheduler').subscribe((data: any): void => {\r\n this.workflowHandler.addInputParameter(this.workflow.component[0], data.inputParamters);\r\n this.workflowHandler.addOutputParameter(this.workflow.component[0], data.outputParamters);\r\n }, (error: Error) => { });\r\n let blankBpmnXml = this.workflow.bpmnXml;\r\n try {\r\n this.modeler.importXML(blankBpmnXml)\r\n .then(({ warnings }) => {\r\n this.modeler.get('canvas').zoom('fit-viewport', 'auto');\r\n });\r\n } catch (err) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: err.message });\r\n }\r\n }\r\n\r\n setWorkflowData(thisRef: workflowBuilderComponent, data: Workflow) {\r\n thisRef.isLoading = true;\r\n if (thisRef.workflow.workflowId === 0 && thisRef.workflow.name === '') {\r\n thisRef.workflow.name = data.name;\r\n thisRef.workflow.description = data.description;\r\n thisRef.workflow.refineryName = data.refineryName;\r\n thisRef.workflow.createdBy = thisRef.globals.loggedInUser;\r\n thisRef.workflow.lastUpdatedBy = thisRef.globals.loggedInUser;\r\n thisRef.workflow.bpmnXml = thisRef.bpmnDiagram.xml;\r\n }\r\n else {\r\n thisRef.workflow.refineryName = \"Donges\";\r\n thisRef.workflow.lastUpdatedBy = thisRef.globals.loggedInUser;\r\n thisRef.workflow.bpmnXml = thisRef.bpmnDiagram.xml;\r\n }\r\n\r\n thisRef.workflowService.saveWorkflow(thisRef.workflow).subscribe((data: any): void => {\r\n thisRef.workflow.workflowId = data;\r\n thisRef.editMode = true;\r\n thisRef.isReadyForNewRun = true;\r\n thisRef.globals.showAlert(AlertComponent, { success: true, message: \"Saved Successfully\" });\r\n thisRef.isLoading = false;\r\n }, (error: Error) => {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: \"Error in Saving, please try again.\" });\r\n thisRef.isLoading = false;\r\n });\r\n }\r\n\r\n async save() {\r\n if (this.workflow.component.length !== 0) {\r\n try {\r\n this.bpmnDiagram = await this.modeler.saveXML({ format: true });\r\n this.workflowHandler.calculateInitialComponents(this.workflow);\r\n\r\n if (this.workflow.component.findIndex(c => (c.componentType != \"CUSTOM\" && c.componentDetails.id == 0 && (c.componentDetails.RawTagName === \"\" || c.componentDetails.name === \"\"))) != -1) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Enter all component details\" });\r\n return false;\r\n }\r\n\r\n if (this.workflow.component.findIndex(c => c.sinkComponent.length == 0 && c.srcComponent.length == 0) != -1) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Please connect all compoment in workflow!\" });\r\n return false;\r\n }\r\n\r\n if (this.workflow.initialComponentUniqueIds.length == 0) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Failed to trace starting component. Please have atleast 1 component as starting component.\" });\r\n return false;\r\n }\r\n\r\n this.saveWorkflow();\r\n\r\n } catch (err) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Could not save workflow diagram.\" });\r\n }\r\n } else {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"No components added to save.\" });\r\n }\r\n }\r\n\r\n saveWorkflow() {\r\n if (this.workflow.workflowId === 0 && this.workflow.name === '') {\r\n this.globals.openModelWindow(this.setWorkflowData, this, SaveworkflowComponent, '40%', 'custom-modalbox', '');\r\n }\r\n else {\r\n this.setWorkflowData(this, null);\r\n }\r\n }\r\n\r\n openRunDetails() {\r\n this.isLoading = true;\r\n this.workflowService.getFlowsheetRunsList(this.workflow.workflowId).subscribe((data: any): void => {\r\n if (data.flowSheetRuns && data.flowSheetRuns.length > 0) {\r\n let url = this.router.createUrlTree(['/FSRunDetails', this.workflow.workflowId]);\r\n window.open(url.toString(), '_blank');\r\n }\r\n else {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"No run details are available.\" });\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Run details check failed.\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Hub - Untitled*\r\n {{workflow.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
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{item.componentType}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"modelIconnnn\"\r\n \"modelIconxxxx\"\r\n
\r\n
\r\n {{componentInfo.componentName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Diagnostics\r\n
\r\n
\r\n
    \r\n
  • Rename
  • \r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl, Validators, UntypedFormBuilder } from '@angular/forms';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ComponentDetails } from '../../models/workflow/componentDetails';\r\n\r\n@Component({\r\n selector: 'app-workflow-scheduler',\r\n templateUrl: './workflow-scheduler.component.html',\r\n styleUrls: ['./workflow-scheduler.component.css']\r\n})\r\nexport class WorkflowSchedulerComponent implements OnInit {\r\n\r\n isLoading: boolean;\r\n readOnly: boolean;\r\n workflowTriggerList: any;\r\n durationTypesList: any;\r\n dataSourceList: any;\r\n selectedScheduler: ComponentDetails = new ComponentDetails();\r\n minDt = new Date(new Date().setFullYear(new Date().getFullYear() - 3));\r\n maxDt = new Date(new Date().getTime() + (3 * 365 * 24 * 60 * 60 * 1000));\r\n toMinDt = new Date();\r\n toMaxDt = new Date(new Date().getTime() + (3 * 365 * 24 * 60 * 60 * 1000));\r\n displayMode: string = 'add';\r\n startTimeChanged: boolean;\r\n public dateTimeRange: Date[];\r\n\r\n public schedulerForm = new UntypedFormGroup({\r\n id: new UntypedFormControl(''),\r\n workflowTriggerTypeId: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n frequency: new UntypedFormControl({ value: '', disabled: true }),\r\n frequencyUnitId: new UntypedFormControl({ value: '', disabled: true }),\r\n dataSourceId: new UntypedFormControl({ value: '', disabled: true }),\r\n startTime: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n endTime: new UntypedFormControl({ value: '', disabled: true }, Validators.required)\r\n });\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private readonly workflowService: WorkflowService,\r\n public globalService: GlobalService, public fb: UntypedFormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.isLoading = true;\r\n this.startTimeChanged = false;\r\n this.readOnly = this.data.readOnly;\r\n this.selectedScheduler = this.data.component.componentDetails;\r\n this.fetchListTimerType();\r\n if (this.selectedScheduler?.workflowTriggerTypeId > 0) {\r\n if (this.readOnly) {\r\n this.displayMode = 'view';\r\n } else {\r\n this.displayMode = 'edit';\r\n this.toMinDt = new Date(this.selectedScheduler.startTime);\r\n }\r\n const sTime = new Date(this.selectedScheduler.startTime);\r\n let localEndTime;\r\n if (this.globalService.isNotNull(this.selectedScheduler.endTime)) {\r\n const eTime = new Date(this.selectedScheduler.endTime);\r\n localEndTime = new Date(eTime.getTime() - (eTime.getTimezoneOffset() * 60000));\r\n }\r\n let localStartTime = new Date(sTime.getTime() - (sTime.getTimezoneOffset() * 60000));\r\n this.schedulerForm = this.fb.group({\r\n workflowTriggerTypeId: [{ value: this.selectedScheduler.workflowTriggerTypeId, disabled: this.readOnly }, Validators.required],\r\n frequency: [{ value: this.selectedScheduler.frequency, disabled: this.readOnly }],\r\n frequencyUnitId: [{ value: this.selectedScheduler.frequencyUnitId, disabled: this.readOnly }],\r\n dataSourceId: [{ value: this.selectedScheduler.dataSourceId, disabled: this.readOnly }],\r\n startTime: [{ value: new Date(localStartTime), disabled: this.readOnly }, Validators.required],\r\n endTime: [{ value: new Date(localEndTime), disabled: this.readOnly }, Validators.required]\r\n });\r\n this.checkTriggerType();\r\n } else {\r\n this.schedulerForm = this.fb.group({\r\n workflowTriggerTypeId: ['', Validators.required],\r\n frequency: [{ value: '', disabled: true }],\r\n frequencyUnitId: [{ value: '', disabled: true }],\r\n dataSourceId: [{ value: '', disabled: true }],\r\n startTime: [{ value: '', disabled: true }, Validators.required],\r\n endTime: [{ value: '', disabled: true }, Validators.required]\r\n });\r\n }\r\n this.isLoading = false;\r\n }\r\n\r\n /**Fetcheslist of timer types */\r\n fetchListTimerType() {\r\n this.workflowService.getListTimerType().subscribe((data) => {\r\n this.workflowTriggerList = data;\r\n this.setMinDt();\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n /**Triggered when new trigger type is selected */\r\n onWorkflowTriggerSelected(event) {\r\n this.isLoading = true;\r\n this.selectedScheduler.workflowTriggerTypeId = this.schedulerForm.get('workflowTriggerTypeId').value;\r\n this.schedulerForm.reset();\r\n this.schedulerForm.patchValue({ workflowTriggerTypeId: this.selectedScheduler.workflowTriggerTypeId });\r\n this.checkTriggerType();\r\n }\r\n\r\n checkTriggerType() {\r\n if (this.schedulerForm.get('workflowTriggerTypeId').value == 1) {\r\n this.getListFrequencyUnit();\r\n } else if (this.schedulerForm.get('workflowTriggerTypeId').value == 2) {\r\n this.getListDataSource();\r\n }\r\n else {\r\n this.ShowManualStartTimer();\r\n \r\n }\r\n }\r\n\r\n getListFrequencyUnit() {\r\n this.workflowService.getListFrequencyUnit().subscribe((data) => {\r\n if (!this.readOnly) {\r\n this.schedulerForm.get('frequency').enable();\r\n this.schedulerForm.get('frequencyUnitId').enable();\r\n }\r\n this.durationTypesList = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n ShowManualStartTimer() {\r\n this.schedulerForm.get('startTime').enable();\r\n this.isLoading = false;\r\n \r\n }\r\n\r\n getListDataSource() {\r\n this.workflowService.getListDataSource().subscribe((data) => {\r\n this.schedulerForm.get('dataSourceId').enable();\r\n this.dataSourceList = data['dataSourceList'];\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n \r\n onDurationTypeSelected(event) {\r\n if (this.schedulerForm.get('workflowTriggerTypeId').value == 1) {\r\n this.selectedScheduler.frequency = this.schedulerForm.get('frequency').value;\r\n this.selectedScheduler.frequencyUnitId = this.schedulerForm.get('frequencyUnitId').value;\r\n } else {\r\n this.selectedScheduler.dataSourceId = this.schedulerForm.get('dataSourceId').value;\r\n }\r\n \r\n this.schedulerForm.get('startTime').enable();\r\n this.schedulerForm.get('endTime').enable();\r\n }\r\n\r\n saveSchedulerDetails() {\r\n this.data.component.componentDetails.id = 99999;\r\n this.data.component.componentDetails.workflowTriggerTypeId = this.schedulerForm.get('workflowTriggerTypeId').value;\r\n if (this.schedulerForm.get('workflowTriggerTypeId').value == 1) {\r\n this.data.component.componentDetails.frequency = this.schedulerForm.get('frequency').value;\r\n this.data.component.componentDetails.frequencyUnitId = this.schedulerForm.get('frequencyUnitId').value;\r\n } else {\r\n this.data.component.componentDetails.dataSourceId = this.schedulerForm.get('dataSourceId').value;\r\n }\r\n let sDate = new Date(this.schedulerForm.get('startTime').value.setSeconds(0));\r\n this.selectedScheduler.startTime = sDate.toString();\r\n this.data.component.componentDetails.startTime = sDate; \r\n if (this.displayEndTime()) {\r\n let eDate = new Date(this.schedulerForm.get('endTime').value.setSeconds(0));\r\n this.selectedScheduler.endTime = eDate.toString();\r\n this.data.component.componentDetails.endTime = eDate;\r\n } else {\r\n this.selectedScheduler.endTime = \"\";\r\n this.data.component.componentDetails.endTime = \"\";\r\n }\r\n this.dialogRef.close(false);\r\n }\r\n\r\n disableAddBtn() {\r\n let check: boolean = this.globalService.isNotNullObject(this.schedulerForm) && this.schedulerForm.get('workflowTriggerTypeId').valid &&\r\n ((this.schedulerForm.get('workflowTriggerTypeId').value == 1 && this.schedulerForm.get('frequency').valid &&\r\n this.schedulerForm.get('frequencyUnitId').valid) ||\r\n (this.schedulerForm.get('workflowTriggerTypeId').value == 2 && this.schedulerForm.get('dataSourceId').valid)\r\n || this.schedulerForm.get('workflowTriggerTypeId').value == 3\r\n );\r\n return !check;\r\n }\r\n\r\n /**Closes the dialog box */\r\n onCancelClick() {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n startTimeChange() {\r\n if (['edit', 'add'].includes(this.displayMode)) {\r\n this.startTimeChanged = true;\r\n }\r\n }\r\n\r\n updateEndDate(startDate) {\r\n this.toMinDt = new Date(startDate._selected.toString());\r\n this.toMaxDt = new Date(this.toMinDt.getTime() + (3 * 365 * 24 * 60 * 60 * 1000));\r\n }\r\n\r\n /**Displays end time if start time selected is a time in the past*/\r\n displayEndTime() {\r\n let check: boolean;\r\n if (this.schedulerForm.get('workflowTriggerTypeId').value == 2 || this.schedulerForm.get('workflowTriggerTypeId').value == 3) {\r\n check = false;\r\n } else if (!this.startTimeChanged && ['view', 'edit'].includes(this.displayMode)) {\r\n check = this.globalService.isNotNull(this.selectedScheduler.endTime) && (new Date(this.schedulerForm.get('startTime').value)).getTime() < (new Date()).getTime();\r\n } else {\r\n check = (new Date(this.schedulerForm.get('startTime').value)).getTime() < (new Date()).getTime();\r\n }\r\n return check;\r\n }\r\n\r\n setMinDt() {\r\n let d = new Date();\r\n if (this.schedulerForm.get('workflowTriggerTypeId').value == this.workflowTriggerList[0].timerTypeId) {\r\n this.minDt = new Date(new Date().setFullYear(new Date().getFullYear() - 3));\r\n } else {\r\n this.minDt.setMonth(d.getMonth());\r\n }\r\n this.minDt.setDate(this.minDt.getDate());\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Workflow scheduler\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\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, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-rename-model',\r\n templateUrl: './rename-model.component.html',\r\n styleUrls: ['./rename-model.component.css']\r\n})\r\nexport class RenameModelComponent implements OnInit {\r\n\r\n modelName = \"\";\r\n modeler;\r\n nameExist = true;\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.modelName = this.data.name;\r\n this.modeler = this.data.entireModeler;\r\n }\r\n\r\n validateKey(event) {\r\n let latest = event.target.value;\r\n let nameExisiting;\r\n nameExisiting = this.data.modeler.diagrams[0].plane.planeElement.filter((m) => { return m.bpmnElement.$attrs.modelUniqueId == latest });\r\n this.nameExist = nameExisiting.length > 0;\r\n }\r\n\r\n saveWorkflow() {\r\n this.dialogRef.close(this.modelName);\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(false);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Rename Model\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n
\r\n A name is required for Model.\r\n
\r\n
\r\n This name already exists, please enter a different 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","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Workflow } from '../../models/workflow/workflow.model';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { WorkflowService } from '../../services/workflow-service';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\n\r\n@Component({\r\n selector: 'app-save-flowsheet',\r\n templateUrl: './save-workflow.component.html',\r\n styleUrls: ['./save-workflow.component.css']\r\n})\r\nexport class SaveworkflowComponent {\r\n workflow = new Workflow();\r\n workflowList = [];\r\n isLoading = true;\r\n nameExist = true;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n public workFlowService: WorkflowService,\r\n public globals: GlobalService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.getWorkflowList();\r\n }\r\n\r\n getWorkflowList() {\r\n this.workFlowService.getWorkflowList().subscribe((data: any): void => {\r\n this.workflowList = data;\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n validateUniqueName(event) {\r\n this.nameExist = false;\r\n let workflowName = event.target.value;\r\n let nameExisiting;\r\n nameExisiting = this.workflowList.filter((m) => { return m.workflowName == workflowName });\r\n this.nameExist = nameExisiting.length > 0;\r\n }\r\n\r\n saveWorkflow() {\r\n this.dialogRef.close(this.workflow);\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Save Workflow\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Workflow Name
\r\n *\r\n
\r\n
\r\n \r\n
\r\n A name is required for flowsheet.\r\n
\r\n
\r\n This name already exists, please enter a different name.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Workflow Description
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Workflow, DataSrc } from '../../models/workflow/workflow.model';\r\nimport { PlatformComponent } from '../../models/workflow/Model.model';\r\nimport { workflowBuilderComponent } from '../../workflow-builder/workflow-builder.component';\r\nimport { ComponentParameter } from '../../models/mlmodel/mlModel-parameters.model';\r\nimport { InputParameter } from '../../models/workflow/inputParameters.model';\r\nimport { OutputParameter } from '../../models/workflow/outputParameters.model';\r\nimport { ParameterModel } from 'src/app/models/workflow/parameter.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class WorkflowEventsHandler {\r\n\r\n calculateInitialComponents(workflow: Workflow) {\r\n workflow.initialComponentUniqueIds = [];\r\n workflow.component.filter(m => m.srcComponent.length == 0).forEach((component) => {\r\n workflow.initialComponentUniqueIds.push(component.componentUniqueId);\r\n });\r\n }\r\n\r\n addComponent(workflowBuilder: workflowBuilderComponent, componentUniqueId, componentId, componentName, componentType) {\r\n let platformComponent = new PlatformComponent();\r\n platformComponent.componentUniqueId = componentUniqueId;\r\n platformComponent.componentId = componentId;\r\n platformComponent.componentName = componentName;\r\n platformComponent.componentType = componentType;\r\n this.setUpModelParameters(platformComponent, workflowBuilder, componentName, componentType);\r\n\r\n workflowBuilder.workflow.component.push(platformComponent);\r\n }\r\n\r\n setUpModelParameters(platformComponent: PlatformComponent, workflowBuilder: workflowBuilderComponent, componentName, componentType) {\r\n if (componentType == \"CUSTOM\") {\r\n workflowBuilder.workflowService.getInputParameters(platformComponent.componentId).subscribe((data: any): void => {\r\n this.addInputParameter(platformComponent, data);\r\n workflowBuilder.isLoading = false;\r\n }, (error: Error) => { });\r\n\r\n workflowBuilder.workflowService.getOutPutarameters(platformComponent.componentId).subscribe((data: any): void => {\r\n this.addOutputParameter(platformComponent, data);\r\n workflowBuilder.isLoading = false;\r\n }, (error: Error) => { });\r\n } \r\n else if (componentType == \"ACTION\" || componentType == \"EVENT\" || componentType == \"STANDARD\") {\r\n workflowBuilder.workflowService.getCustomCompParamList(false, componentName).subscribe((data: any): void => {\r\n this.addInputParameter(platformComponent, data.inputParamters);\r\n this.addOutputParameter(platformComponent, data.outputParamters);\r\n workflowBuilder.isLoading = false;\r\n }, (error: Error) => { });\r\n }\r\n }\r\n\r\n addInputParameter(platformComponent: PlatformComponent, inputParameters: any) {\r\n if (inputParameters) {\r\n inputParameters.forEach((param) => {\r\n let inputParam = new InputParameter();\r\n inputParam.data = this.parseParameterData(param);\r\n platformComponent.inputParameters.push(inputParam);\r\n });\r\n }\r\n }\r\n\r\n addOutputParameter(platformComponent: PlatformComponent, outputParameters: any) {\r\n if (outputParameters) {\r\n outputParameters.forEach((param) => {\r\n let outputParam = new OutputParameter();\r\n outputParam.data = this.parseParameterData(param);\r\n platformComponent.outputParameters.push(outputParam);\r\n });\r\n }\r\n }\r\n\r\n parseParameterData(param: any): ComponentParameter {\r\n let parameter = new ComponentParameter();\r\n parameter.parameterId = param.parameterId;\r\n parameter.parameterName = param.parameterName;\r\n parameter.parameterDefaultValue = param.parameterDefaultValue;\r\n parameter.parameterDataType = param.parameterDataType != undefined ? param.parameterDataType : typeof (param.parameterDefaultValue);\r\n parameter.captionName = param.captionName != undefined ? param.captionName : param.parameterName;\r\n\r\n return parameter;\r\n }\r\n\r\n removeComponent(workflow: Workflow, componentUniqueId) {\r\n let index = workflow.component.findIndex(m => m.componentUniqueId == componentUniqueId);\r\n if (index > -1) {\r\n // remove component from flowsheet\r\n workflow.component.splice(index, 1);\r\n index = workflow.initialComponentUniqueIds.findIndex(m => m == componentUniqueId);\r\n workflow.initialComponentUniqueIds.splice(index, 1);\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 }\r\n\r\n returnParameterToOriginalPosition(paramList, param) {\r\n let args = paramList\r\n .filter(p => p.data.parameterId < param.data.parameterId)\r\n .map(function (p) { return p.data.parameterId; });\r\n let prevIndex = Math.max(...args);\r\n prevIndex = prevIndex < 0 ? 0 : prevIndex;\r\n paramList.splice(prevIndex, 0, param);\r\n }\r\n\r\n updateParameterMapping(parameterModel : ParameterModel) {\r\n if (parameterModel.model.inputParameters.length > 0) {\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.data.parameterDefaultValue = parameterModel.defaultValue;\r\n }\r\n }\r\n}\r\n\r\n","import { Component, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { WorkflowService } from '../services/workflow-service';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FilterFieldTypes } from '../shared/common-constants';\r\nimport { WorkflowReportComponent } from '../common/workflow-report/workflow-report.component';\r\nimport { EventModel } from '../models/workflow-report/workflow-event.model';\r\nimport { NavigationEnd, Router, RouterEvent, ActivatedRoute } from '@angular/router';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { forkJoin, Subject } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-workflow',\r\n templateUrl: './workflow.component.html',\r\n styleUrls: ['./workflow.component.css']\r\n})\r\nexport class workflowComponent implements OnDestroy {\r\n resourceList: any = [];\r\n expandedIndex: any;\r\n isLoading = true;\r\n modelErrorMessage = 'Error';\r\n modelDetails: any;\r\n workflowListDetails: MatTableDataSource;\r\n displayedColumns: string[] = ['status', 'workflowName', 'workflowDescription', 'workflowId', 'lastRun', 'lastUpdatedBy', 'Action'];\r\n isLinear = false;\r\n workflowIdToDelete: number = 0;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n statusOption = ['Active', 'Inactive'];\r\n workflowStatus = '';\r\n workflowToChangeStatus;\r\n indexOfWorkflow;\r\n subscription;\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n searchText: string = \"\";\r\n public destroyed = new Subject();\r\n constructor(\r\n public globals: GlobalService,\r\n public workflowService: WorkflowService,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.workflowListDetails = new MatTableDataSource(emptyList);\r\n if (!this.subscription) {\r\n this.subscription = 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 }\r\n\r\n initialize() {\r\n this.expandedIndex = -1;\r\n this.workflowService.getToken().subscribe((data: any): void => { \r\n this.isLoading = true;\r\n let workFlowList = this.getWorkflowList();\r\n let workFlowDetails = this.getWorkflowDetails();\r\n forkJoin([workFlowList, workFlowDetails]);\r\n });\r\n }\r\n\r\n getWorkflowDetails() {\r\n this.route.params.subscribe((params: any) => {\r\n if (!this.globals.isNotNull(params.id) && this.globals.isNotNull(params.workflowName)) {\r\n this.searchText = params.workflowName;\r\n } else if (this.globals.isNotNull(params.id) && this.globals.isNotNull(params.workflowName)) {\r\n this.loadReport(params.id, params.workflowName);\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n getWorkflowList() {\r\n this.selectedFilters = [];\r\n this.workflowService.getWorkflowList().subscribe((data: any): void => {\r\n if (data && data !== null && data.length > 0) {\r\n this.masterData = [...data];\r\n this.workflowListDetails = new MatTableDataSource(data);\r\n this.workflowListDetails.sort = this.sort;\r\n this.workflowListDetails.paginator = this.paginator;\r\n if (this.globals.isNotNull(this.searchText)) {\r\n this.applyFilter(this.searchText);\r\n }\r\n }\r\n else {\r\n this.workflowListDetails.data = [];\r\n }\r\n this.isLoading = false;\r\n this.filterList = [];\r\n this.createFilterList();\r\n }, (error: Error) => {\r\n\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error in fetching Workflow List\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n deleteWorkflow(workflowId) {\r\n let status: string = this.masterData.find(element => element.workflowId == workflowId).status;\r\n if (status == 'Active') {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Disabled when a workflow is online.\" });\r\n } else {\r\n this.workflowIdToDelete = workflowId;\r\n let dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Do you really want to delete it?'\r\n };\r\n this.globals.openModelWindow(this.deleteOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n }\r\n\r\n deleteOnConfirm(thisRef: workflowComponent) {\r\n thisRef.isLoading = true;\r\n thisRef.workflowService.deleteWorkflow(thisRef.workflowIdToDelete).subscribe((result: any): void => {\r\n thisRef.getWorkflowList();\r\n thisRef.isLoading = false;\r\n thisRef.workflowIdToDelete = 0;\r\n thisRef.globals.showAlert(AlertComponent, { success: true, message: \"Workflow deleted successfully!\" });\r\n }, (error: Error) => {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: \"Error in deleting Workflow\" });\r\n thisRef.isLoading = false;\r\n thisRef.workflowIdToDelete = 0;\r\n });\r\n }\r\n\r\n /**\r\n * get called on change of option in dropdown of status\r\n * @param element element\r\n * @param index index of workflow in list\r\n */\r\n onStatusChange(element, index) {\r\n this.indexOfWorkflow = index;\r\n this.workflowStatus = element.status;\r\n this.workflowToChangeStatus = element.workflowId;\r\n const dataToPass = {\r\n title: 'Change Status',\r\n isDelete: false,\r\n message: 'Do you really want to status to ' + element.status + '?'\r\n };\r\n this.globals.openModelWindow(this.changeStatusConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass, 'statusChange');\r\n }\r\n\r\n /**\r\n * checks result if it is confirmed on popup and proceeds\r\n * to call api and updates status on backend\r\n * @param thisRef reference to workflow component\r\n * @param result result coming from model component\r\n */\r\n changeStatusConfirm(thisRef: workflowComponent, result: boolean) {\r\n if (result) {\r\n thisRef.workflowService.updateWorflowStatus(thisRef.workflowToChangeStatus, thisRef.workflowStatus).subscribe((resultStatus) => {\r\n if (!resultStatus) {\r\n thisRef.resetDropdown(thisRef.workflowToChangeStatus);\r\n }\r\n }, (error: Error) => {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: \"Error in updating status of workflow\" });\r\n thisRef.isLoading = false;\r\n thisRef.resetDropdown(thisRef.workflowToChangeStatus);\r\n });\r\n } else {\r\n thisRef.resetDropdown(thisRef.workflowToChangeStatus);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * resets dropdown to its previous value in case of\r\n * failure or cancel\r\n * @param workflowId workflow id which is clicked\r\n */\r\n resetDropdown(workflowId) {\r\n if (workflowId) {\r\n const indexOfWorkflow = this.workflowListDetails.filteredData.findIndex(obj => obj.workflowId === workflowId);\r\n if (this.workflowListDetails.filteredData[indexOfWorkflow].status === this.statusOption[0]) {\r\n this.workflowListDetails.filteredData[indexOfWorkflow].status = this.statusOption[1];\r\n } else {\r\n this.workflowListDetails.filteredData[indexOfWorkflow].status = this.statusOption[0];\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.workflowListDetails.filter = filterValue;\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let columns: string[] = ['workflowName', 'workflowDescription', 'workflowId', 'lastRun', 'lastUpdatedBy'];\r\n for (let a = 0; a < columns.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldName = this.globals.replaceDisplayText(columns[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n if (columns[a] == \"workflowName\") { \r\n unique = Array.from(new Set(this.workflowListDetails.data.map(a => a.workflowName)));\r\n } else if (columns[a] == \"workflowDescription\") { \r\n unique = Array.from(new Set(this.workflowListDetails.data.map(a => a.workflowDescription)));\r\n } else if (columns[a] == \"workflowId\") { \r\n tempFilter.fieldType = FilterFieldTypes.values; \r\n unique = Array.from(new Set(this.workflowListDetails.data.map(a => a.workflowId)));\r\n } else if (columns[a] == \"lastRun\") { \r\n unique = Array.from(new Set(this.workflowListDetails.data.map(a => a.lastRun)));\r\n } else if (columns[a] == \"lastUpdatedBy\") { \r\n unique = Array.from(new Set(this.workflowListDetails.data.map(a => a.lastUpdatedBy)));\r\n }\r\n tempFilter.values = unique.sort((n1, n2) => n1 - n2);\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 switch (filterResponse.selectedCondition) {\r\n case \"==\":\r\n this.workflowListDetails.data = this.workflowListDetails.data.filter(\r\n (df) => df[filterResponse.selectedFieldName] === filterResponse.selectedValue);\r\n break;\r\n case \">=\":\r\n this.workflowListDetails.data = this.workflowListDetails.data.filter(\r\n (df) => df[filterResponse.selectedFieldName] >= parseInt(filterResponse.selectedValue, 10));\r\n break;\r\n case \"<=\":\r\n this.workflowListDetails.data = this.workflowListDetails.data.filter(\r\n (df) => df[filterResponse.selectedFieldName] <= parseInt(filterResponse.selectedValue, 10));\r\n break;\r\n }\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.workflowListDetails.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.workflowListDetails.data = this.globals.conditionalDataFiltering(element, this.workflowListDetails.data);\r\n\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Loads the report for selected workflow\r\n * @param workflowId\r\n * @param workflowName\r\n */\r\n loadReport(workflowId: number, workflowName: string) {\r\n this.isLoading = true;\r\n this.workflowService.loadReportData(workflowId).subscribe((data: EventModel[]) => {\r\n if (data != undefined && data != null && data.length > 0) { \r\n let dataToPass = { workflowId: workflowId, workflowName: workflowName, reportData: data };\r\n this.globals.openModelWindowWithoutCallBack(WorkflowReportComponent, '1000px', 'confirm-modalbox', dataToPass);\r\n } else {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"No reports to show as the workflow never got triggered!\" });\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Something went wrong!\" });\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n editWorkflow(element) {\r\n if (element.status == 'Active') {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Disabled when a workflow is online.\" });\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 Hub\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 {{globals.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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Workflow Name\r\n {{element.workflowName}} \r\n \r\n \r\n Description\r\n {{element.workflowDescription}} \r\n \r\n \r\n Workflow Id\r\n {{element.workflowId}} \r\n \r\n \r\n Last Run\r\n {{element.lastRun | date: 'yyyy-MM-dd T HH:mm:ss' }} \r\n \r\n \r\n Last Modified By​\r\n {{element.lastUpdatedBy}} \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
\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 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 platformHubApi_client_resourceUri: process.env[\"PLATFORMHUBAPI_CLIENT_RESOURCEURI\"],\r\n platformHubApi_client_resourceScope: process.env[\"PLATFORMHUBAPI_CLIENT_RESOURCESCOPE\"],\r\n flowsheetApi_client_resourceUri: process.env[\"FLOWSHEETAPI_CLIENT_RESOURCEURI\"],\r\n flowsheetApi_client_resourceScope: process.env[\"FLOWSHEETAPI_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 gapAnalysisApi_client_resourceUri: \"https://totalr4gapanalysis-cidi.azurewebsites.net/\",\r\n gapAnalysisApi_client_resourceScope: \"api://38523345-ce40-4f68-9a1b-4d58329d934e/access_as_user_APIM\",\r\n monitoringApi_client_resourceUri: \"https://totalr4monitoring-cidi.azurewebsites.net/\",\r\n monitoringApi_client_resourceScope: \"api://38523345-ce40-4f68-9a1b-4d58329d934e/access_as_user_APIM\",\r\n modelManagementApi_client_resourceUri: process.env[\"MODELMANAGEMENTAPI_CLIENT_RESOURCEURI\"],\r\n modelManagementApi_client_resourceScope: process.env[\"MODELMANAGEMENTAPI_CLIENT_RESOURCESCOPE\"],\r\n platformFoundationApi_client_resourceUri: process.env[\"PLATFORMFOUNDATIONAPI_CLIENT_RESOURCEURI\"],\r\n platformFoundationApi_client_resourceScope: process.env[\"PLATFORMFOUNDATIONAPI_CLIENT_RESOURCESCOPE\"],\r\n platformAdminApi_client_resourceUri: process.env[\"PLATFORMADMINAPI_CLIENT_RESOURCEURI\"],\r\n platformAdminApi_client_resourceScope: process.env[\"PLATFORMADMINAPI_CLIENT_RESOURCESCOPE\"],\r\n groups_client_PlatformAdminGroupId: process.env[\"GROUPS_CLIENT_PLATFORMADMINGROUPID\"],\r\n groups_client_FlowsheetBuilderUserGroupId: process.env[\"GROUPS_CLIENT_FLOWSHEETBUILDERUSERGROUPID\"],\r\n graphApi_client_resourceUri: \"https://graph.microsoft.com/v1.0/me/memberOf\",\r\n graphApi_client_resourceScope: \"User.Read\",\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 subscription: process.env[\"SUBSCRIPTION\"],\r\n environment: process.env[\"ENVIRONMENT\"],\r\n platformHomeUrl: process.env[\"PLATFORMHOMEURL\"],\r\n appInsightKey: process.env[\"APPINSIGHTKEY\"],\r\n platformDocumentation: process.env[\"PLATFORMDOCUMENTATION\"],\r\n testing: process.env[\"MODELMANAGEMENTAPI_CLIENT_RESOURCEURI\"]\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","import inherits from 'inherits';\r\n\r\nimport BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';\r\n\r\nimport {\r\n componentsToPath,\r\n createLine\r\n} from 'diagram-js/lib/util/RenderUtil';\r\n\r\nimport {\r\n append as svgAppend,\r\n attr as svgAttr,\r\n create as svgCreate\r\n} from 'tiny-svg';\r\n\r\nlet COLOR_GREEN = '#346cad',\r\n COLOR_WHITE = \"#346cad\",\r\n COLOR_OFF_WHITE = \"#346cad\";\r\n\r\n/**\r\n * A renderer that knows how to render custom elements.\r\n */\r\nexport default function CustomRenderer(eventBus, styles) {\r\n\r\n BaseRenderer.call(this, eventBus, 2000);\r\n\r\n let computeStyle = styles.computeStyle;\r\n\r\n this.drawTriangle = function(p, side) {\r\n let halfSide = side / 2,\r\n points,\r\n attrs;\r\n\r\n points = [side, 0, side, side, 0, side ];\r\n\r\n attrs = computeStyle(attrs, {\r\n stroke: COLOR_WHITE,\r\n strokeWidth: 2,\r\n fill: COLOR_GREEN\r\n });\r\n\r\n let polygon = svgCreate('polygon');\r\n\r\n svgAttr(polygon, {\r\n points: points\r\n });\r\n\r\n svgAttr(polygon, attrs);\r\n\r\n let svgimg = document.createElementNS('http://www.w3.org/2000/svg', 'image');\r\n svgimg.setAttributeNS(null, 'height', '100');\r\n svgimg.setAttributeNS(null, 'width', '100');\r\n svgimg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', 'play-sign_Green.svg');\r\n //svgAppend(p, svgimg);\r\n p.append(svgimg);\r\n return polygon;\r\n };\r\n\r\n this.getTrianglePath = function(element) {\r\n let x = element.x,\r\n y = element.y,\r\n width = element.width,\r\n height = element.height;\r\n\r\n let trianglePath = [\r\n ['M', x + width / 2, y],\r\n ['l', width / 2, height],\r\n ['l', -width, 0 ],\r\n ['z']\r\n ];\r\n\r\n return componentsToPath(trianglePath);\r\n };\r\n\r\n this.customComponent = function (p, componentImg, componentHeight, componentWidth, componentame) {\r\n let circle = svgCreate('circle');\r\n let svgNS = \"http://www.w3.org/2000/svg\";\r\n let svgimg = document.createElementNS(svgNS, 'image');\r\n let componentImagePath = 'assets/bpmn/defaultModel.svg';\r\n if (componentImg && componentImg !== \"null\") {\r\n componentImagePath = \"data:image/svg+xml;base64,\" + componentImg;// 'assets/bpmn/defaultModel.svg';\r\n } else {\r\n componentImagePath = 'assets/bpmn/defaultModel.svg';\r\n }\r\n svgimg.setAttributeNS(null, 'height', componentHeight);\r\n svgimg.setAttributeNS(null, 'width', componentWidth);\r\n\r\n svgimg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', componentImagePath);\r\n svgAppend(p, svgimg);\r\n \r\n let newText = document.createElementNS(svgNS, \"text\");\r\n newText.setAttributeNS(null, \"x\", componentWidth/2);\r\n newText.setAttributeNS(null, \"y\", componentHeight+12);\r\n newText.setAttributeNS(null, \"font-size\", \"13\");\r\n newText.setAttributeNS(null, \"fill\", \"#346cad\");\r\n newText.setAttributeNS(null, \"dominant-baseline\", \"middle\");\r\n newText.setAttributeNS(null, \"text-anchor\", \"middle\");\r\n let textNode = document.createTextNode(componentame);\r\n newText.appendChild(textNode);\r\n svgAppend(p, newText);\r\n return circle;\r\n };\r\n\r\n this.getComponentPath = function (shape) {\r\n //shape.height = 100;\r\n let cx = shape.x + shape.width / 2,\r\n cy = shape.y + shape.height / 2,\r\n radius = shape.width / 2;\r\n\r\n let circlePath = [\r\n ['M', cx, cy],\r\n ['m', 0, -radius],\r\n ['a', radius, radius, 0, 1, 1, 0, 2 * radius],\r\n ['a', radius, radius, 0, 1, 1, 0, -2 * radius],\r\n ['z']\r\n ];\r\n\r\n return componentsToPath(circlePath);\r\n };\r\n\r\n let draw = function (type, opts) {\r\n let svg = document.createElementNS(\"http://www.w3.org/2000/svg\", type);\r\n for (let k in opts) {\r\n svg.setAttribute(k, opts[k]);\r\n }\r\n return svg;\r\n };\r\n\r\n this.drawCustomConnection = function (p, element) {\r\n let marker = draw(\"marker\", {\r\n \"id\": \"endpoint\",\r\n \"viewBox\": \"-50 0 50 50\",\r\n \"refX\": 0,\r\n \"refY\": 25,\r\n \"markerUnits\": \"strokeWidth\",\r\n \"markerWidth\": 5,\r\n \"markerHeight\": 5,\r\n \"orient\": \"auto\",\r\n \"fill\": COLOR_OFF_WHITE\r\n });\r\n let marker_path = draw(\"path\", {\r\n \"d\": \"M -50 0 L 0 25 L -50 50 z\"\r\n });\r\n\r\n svgAppend(p, marker);\r\n marker.appendChild(marker_path);\r\n\r\n var attrs = computeStyle(attrs, {\r\n stroke: COLOR_OFF_WHITE,\r\n strokeWidth: 2,\r\n strokeDasharray: 5,\r\n markerEnd: \"url(#endpoint)\"\r\n });\r\n\r\n return svgAppend(p, createLine(element.waypoints, attrs));\r\n };\r\n\r\n this.getCustomConnectionPath = function(connection) {\r\n let waypoints = connection.waypoints.map(function(p) {\r\n return p.original || p;\r\n });\r\n\r\n let connectionPath = [\r\n ['M', waypoints[0].x, waypoints[0].y]\r\n ];\r\n\r\n waypoints.forEach(function(waypoint, index) {\r\n if (index !== 0) {\r\n connectionPath.push(['L', waypoint.x, waypoint.y]);\r\n }\r\n });\r\n\r\n return componentsToPath(connectionPath);\r\n };\r\n}\r\n\r\ninherits(CustomRenderer, BaseRenderer);\r\n\r\nCustomRenderer.$inject = [ 'eventBus', 'styles' ];\r\n\r\n\r\nCustomRenderer.prototype.canRender = function(element) {\r\n return /^bpmn:/.test(element.type);\r\n};\r\n\r\nCustomRenderer.prototype.drawShape = function(p, element) {\r\n let type = element.type;\r\n let component = element.component;\r\n\r\n if (component === 'custom') {\r\n element.businessObject.$attrs['component'] = 'custom';\r\n element.businessObject.$attrs['componentImg'] = element.componentImg;\r\n element.businessObject.$attrs['componentName'] = element.componentName;\r\n element.businessObject.$attrs['componentId'] = element.componentId;\r\n element.businessObject.$attrs['componentType'] = element.componentType;\r\n element.businessObject.$attrs['componentUniqueId'] = element.componentUniqueId;\r\n return this.customComponent(p, element.componentImg, element.height, element.width, element.componentUniqueId);\r\n }\r\n\r\n if (element.businessObject.$attrs.component === 'custom') {\r\n return this.customComponent(p, element.businessObject.$attrs.componentImg, element.height, element.width, element.businessObject.$attrs.componentUniqueId);\r\n }\r\n};\r\n\r\nCustomRenderer.prototype.getShapePath = function(shape) {\r\n let type = shape.type;\r\n let component = shape.componentType;\r\n\r\n if (component === 'custom') {\r\n return this.getComponentPath(shape);\r\n }\r\n};\r\n\r\nCustomRenderer.prototype.drawConnection = function(p, element) {\r\n\r\n let type = element.type;\r\n\r\n //if (type === 'custom:connection') {\r\n return this.drawCustomConnection(p, element);\r\n //}\r\n};\r\n\r\n\r\nCustomRenderer.prototype.getConnectionPath = function(connection) {\r\n\r\n let type = connection.type;\r\n\r\n if (type === 'custom:connection') {\r\n return this.getCustomConnectionPath(connection);\r\n }\r\n};\r\n","import RuleProvider from \"diagram-js/lib/features/rules/RuleProvider\";\r\n\r\nimport inherits from \"inherits\";\r\n\r\nexport default function CustomRules(eventBus) {\r\n RuleProvider.call(this, eventBus);\r\n\r\n this.addRule(\"elements.delete\", function (context) {\r\n // don't allow deleting script tasks\r\n return context.elements.filter(function (e) {\r\n if (e.componentName === \"Scheduler\") {\r\n return !e.businessObject.$instanceOf(\"bpmn:Task\");\r\n } else {\r\n return e.businessObject.$instanceOf(\"bpmn:Task\");\r\n }\r\n });\r\n });\r\n}\r\n\r\ninherits(CustomRules, RuleProvider);\r\n\r\nCustomRules.$inject = [\"eventBus\"];\r\n","import CustomRenderer from './CustomRenderer';\r\nimport CustomRules from './customRules';\r\n\r\nexport default {\r\n __init__: [\r\n 'customRenderer',\r\n 'customRules'\r\n ],\r\n customRenderer: ['type', CustomRenderer],\r\n customRules: [\"type\", CustomRules]\r\n};\r\n","import Modeler from 'bpmn-js/lib/Modeler';\r\nimport inherits from 'inherits';\r\nimport CustomModule from './custom-js';\r\n\r\n// Function to explort Custom modeler\r\nexport default function CustomModeler(options) {\r\n Modeler.call(this, options);\r\n}\r\n// Call inherits to sync CustomModeler with modeler\r\ninherits(CustomModeler, Modeler);\r\n// Set Prototype modules of CustomModeler\r\nCustomModeler.prototype._modules = [].concat(\r\n CustomModeler.prototype._modules,\r\n [\r\n CustomModule\r\n ]\r\n);\r\n"],"names":["EventType","Subject","concatMap","filter","takeUntil","MSAL_GUARD_CONFIG","ApplicationInsights","AppConstants","i0","AppComponent","constructor","authService","msalGuardConfig","msalBroadcastService","grphService","overageService","_router","httpService","globals","globalService","tenantService","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","push","groups_client_FlowsheetBuilderUserGroupId","groups_client_PlatformAdminGroupId","groupIDs","includes","rbacName","getTenantListFromServer","componentId","toggleCollapse","sidenavWidth","disableTooltip","showCross","isMenuOpen","isActive","label","selectFlag","Code","selectors","hostBindings","ctx","ElementRef","InjectionNames","OriginalPaletteProvider","AlertComponent","RenameModelComponent","SaveworkflowComponent","Workflow","CustomPaletteProvider","CustomModeler","FlowsheetSpecificationComponent","CustomCompMngrComponent","StdComponentManagerComponent","ConnectorSpecificationComponent","WorkflowSchedulerComponent","FormulaSpecificationComponent","SendDataComponent","of","switchMap","ctx_r7","workflowBuilderComponent","http","workflowService","matIconRegistry","domSanitizer","mlService","dialog","router","route","_eref","workflowHandler","getComponentList","data","localStorage","setItem","JSON","stringify","updatedComponents","palletData","assignPalletCopy","modeler","createCustomModeler","componentList","componentConnector","filteredPalletData","Object","assign","searchPallet","searchText","element","components","some","subElement","componentName","toLowerCase","map","params","workflowShow","workflowStatus","status","editWorkflow","isEdit","load","seteventBus","error","showAlert","success","message","getComponentConnector","componentConnectorData","parameterId","viewOnly","workflowId","getFlowData","workflow","parse","importXML","bpmnXml","then","warnings","get","zoom","err","inEditMode","onClick","showContextMenu","showBranchingMenu","thisObj","that","eventBus","on","setUniqueIdForComponent","elem","directEditing","cancel","processShapeAddedEvent","componentType","eventAlreadyDrpped","removeComponent","componentUniqueId","validateConnetion","source","target","businessObject","sourceRef","targetRef","updateConnection","conns","$parent","flowElements","e","$type","$attrs","removeConnection","processDblClkEvent","stopPropagation","event","processContextMenuEvent","component","findIndex","c","addComponent","Number","componentImg","type","componentToRename","posX","originalEvent","pageX","posY","pageY","entireModeler","getDefinitions","renameConponentInfo","gfx","parentNode","children","textContent","preventDefault","renameComponent","openModelWindow","changeComponentName","newCompomentName","oldName","forEach","m","srcComponent","m1","index","sinkComponent","isBranchingTrue","isBranchingFalse","svgTextElement","getTextNodeElement","childNodes","nodeValue","getElementsByTagName","connElem","parent","connectionAlreadyExist","connection","srcComponentsTrace","getSrcComponentUniqueIdRecursive","isCausingCircle","removeElementFromRegistry","conn","find","elementId","elementRegistry","modeling","removeElements","maxId","b1","c1","diagrams","plane","planeElement","bpmnElement","shape","args","value","replace","isNaN","Math","max","slice","newSrcComponent","newSinkComponent","s","p","oldSrcComponent","oldSinkComponent","splice","container","bpmnRenderer","defaultFillColor","defaultStrokeColor","width","height","additionalModules","originalPaletteProvider","paletteProvider","changeSource","src","dataToPass","srcModel","sinkModel","selectPalleteType","paletteType","activPallet","handleError","selectComponent","elementType","document","querySelector","click","canvasZoomIn","stepZoom","canvasZoomOut","canvasZoomReset","reset","Date","getCustomCompParamList","addInputParameter","inputParamters","addOutputParameter","outputParamters","blankBpmnXml","setWorkflowData","description","refineryName","createdBy","lastUpdatedBy","bpmnDiagram","xml","saveWorkflow","editMode","isReadyForNewRun","save","saveXML","format","calculateInitialComponents","componentDetails","RawTagName","initialComponentUniqueIds","openRunDetails","getFlowsheetRunsList","flowSheetRuns","createUrlTree","open","toString","_r1","inherits","BaseRenderer","componentsToPath","createLine","append","svgAppend","attr","svgAttr","create","svgCreate","COLOR_GREEN","COLOR_WHITE","COLOR_OFF_WHITE","CustomRenderer","styles","call","computeStyle","drawTriangle","side","halfSide","points","attrs","stroke","strokeWidth","fill","polygon","svgimg","createElementNS","setAttributeNS","getTrianglePath","x","y","trianglePath","customComponent","componentHeight","componentWidth","componentame","circle","svgNS","componentImagePath","newText","textNode","createTextNode","appendChild","getComponentPath","cx","cy","radius","circlePath","draw","opts","svg","k","setAttribute","drawCustomConnection","marker","marker_path","strokeDasharray","markerEnd","waypoints","getCustomConnectionPath","original","connectionPath","waypoint","$inject","prototype","canRender","test","drawShape","getShapePath","drawConnection","getConnectionPath","RuleProvider","CustomRules","addRule","elements","$instanceOf","__init__","customRenderer","customRules","Modeler","CustomModule","options","_modules","concat"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}