{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/about/about.component.ts","./src/app/about/about.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.constants.ts","./src/app/app.module.ts","./src/app/common/add-filter/add-filter.component.ts","./src/app/common/add-filter/add-filter.component.html","./src/app/common/alert/alert.component.ts","./src/app/common/alert/alert.component.html","./src/app/common/confirm-model/confirm-model.component.ts","./src/app/common/confirm-model/confirm-model.component.html","./src/app/data-cleansing/cleansing-rule/cleansing-rule.component.ts","./src/app/data-cleansing/cleansing-rule/cleansing-rule.component.html","./src/app/data-cleansing/data-cleansing.component.ts","./src/app/data-cleansing/data-cleansing.component.html","./src/app/data-cleansing/knn-regression-popup/knn-regression-popup.component.ts","./src/app/data-cleansing/knn-regression-popup/knn-regression-popup.component.html","./src/app/data-cleansing/rules/rules.component.ts","./src/app/data-cleansing/rules/rules.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/kpiformulabuilder/constant-modal/constant-modal.component.ts","./src/app/kpiformulabuilder/constant-modal/constant-modal.component.html","./src/app/kpiformulabuilder/constants/constants.component.ts","./src/app/kpiformulabuilder/constants/constants.component.html","./src/app/kpiformulabuilder/create-formula-model/create-formula-model.component.ts","./src/app/kpiformulabuilder/create-formula-model/create-formula-model.component.html","./src/app/kpiformulabuilder/evaluate-formula-model/evaluate-formula-model.component.ts","./src/app/kpiformulabuilder/evaluate-formula-model/evaluate-formula-model.component.html","./src/app/kpiformulabuilder/evaluate-formula-results/evaluate-formula-results.component.ts","./src/app/kpiformulabuilder/evaluate-formula-results/evaluate-formula-results.component.html","./src/app/kpiformulabuilder/kpi-models/constants.model.ts","./src/app/kpiformulabuilder/kpiformulabuilder.component.ts","./src/app/kpiformulabuilder/kpiformulabuilder.component.html","./src/app/kpiformulabuilder/viewFormula/viewFormula.component.ts","./src/app/kpiformulabuilder/viewFormula/viewFormula.component.html","./src/app/kpiformulabuilder/viewFormula/editBox.component.html","./src/app/models/dataSource.model.ts","./src/app/models/filterTag.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/rules/rules.detail.model.ts","./src/app/models/rules/rules.label.model.ts","./src/app/models/rules/rules.model.ts","./src/app/nav-bar/nav-bar.component.ts","./src/app/nav-bar/nav-bar.component.html","./src/app/overage/overage.component.ts","./src/app/pi-point/pi-point.component.ts","./src/app/pi-point/pi-point.component.html","./src/app/pihistory-data/pihistory-data.component.ts","./src/app/pihistory-data/pihistory-data.component.html","./src/app/pihistory-data/parameter-modal.component.html","./src/app/pihistory-data/run-pihistory-data/run-pihistory-data.component.ts","./src/app/pihistory-data/run-pihistory-data/run-pihistory-data.component.html","./src/app/pipeline-configuration/monitor/monitor.component.ts","./src/app/pipeline-configuration/monitor/monitor.component.html","./src/app/pipeline-configuration/monitor/monitor-parameter-modal.component.html","./src/app/pipeline-configuration/pipeline-configuration.component.ts","./src/app/pipeline-configuration/pipeline-configuration.component.html","./src/app/services/auth.interceptor.ts","./src/app/services/data-cleansing.service.ts","./src/app/services/global.service.ts","./src/app/services/graph.service.ts","./src/app/services/group-guard.service.ts","./src/app/services/http.service.ts","./src/app/services/kpi-formula-builder.service.ts","./src/app/services/overage.service.ts","./src/app/services/pihistory-service.ts","./src/app/services/pipeline-service.ts","./src/app/services/tagmaster-service.ts","./src/app/services/tenant.service.ts","./src/app/services/theme.service.ts","./src/app/services/xsrf.interceptor.ts","./src/app/shared/common-constants.ts","./src/app/shared/keys-pipe/keys.pipe.ts","./src/app/tagmaster/tagmaster.component.ts","./src/app/tagmaster/tagmaster.component.html","./src/app/tagmaster/modal.component.html","./src/app/theme/theme.module.ts","./src/assets/UOMData.ts","./src/environments/environment.ts","./src/main.ts","./src/polyfills.ts"],"sourcesContent":["import { Component, Inject, Optional } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\n\r\nexport class DialogData {\r\n Version: string;\r\n BuildNumber: string;\r\n DateOfBuild: string;\r\n 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 about dialog\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

About Release

\r\n
\r\n \r\n \r\n \r\n \r\n
Version{{data.Version}}
Build Number{{data.BuildNumber}}
Build Date{{data.DateOfBuild}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { OverageComponent } from './overage/overage.component';\r\nimport { PiPointComponent } from './pi-point/pi-point.component';\r\nimport { pihistoryDataComponent } from './pihistory-data/pihistory-data.component';\r\nimport { MonitorComponent } from './pipeline-configuration/monitor/monitor.component';\r\nimport { PipelineConfigurationComponent } from './pipeline-configuration/pipeline-configuration.component';\r\nimport { TagmasterComponent } from './tagmaster/tagmaster.component';\r\nimport { GroupGuardService } from './services/group-guard.service';\r\nimport { KpiFormulaBuilderComponent } from './kpiformulabuilder/kpiformulabuilder.component';\r\nimport { ViewFormulaComponent } from './kpiformulabuilder/viewFormula/viewFormula.component';\r\nimport { DataCleansingComponent } from './data-cleansing/data-cleansing.component';\r\nimport { RulesComponent } from './data-cleansing/rules/rules.component';\r\nimport { ConstantsComponent } from './kpiformulabuilder/constants/constants.component';\r\nimport { CreateFormulaModelComponent } from './kpiformulabuilder/create-formula-model/create-formula-model.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: 'DataPlatform',\r\n component: HomeComponent,\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_TagAdminGroupId,\r\n enValue.groups_client_FoundationUserGroupId\r\n ],\r\n breadcrumb: \"Dashboard\"\r\n },\r\n children: [\r\n {\r\n path: 'TagMaster',\r\n component: TagmasterComponent,\r\n data: {\r\n breadcrumb: \"Overview\"\r\n },\r\n },\r\n {\r\n path: 'PiPoint',\r\n component: PiPointComponent,\r\n data: {\r\n breadcrumb: \"Overview\"\r\n },\r\n },\r\n {\r\n path: 'Monitor',\r\n component: MonitorComponent,\r\n data: {\r\n breadcrumb: \"Overview\"\r\n },\r\n },\r\n {\r\n path: 'PipelineDetails',\r\n component: PipelineConfigurationComponent,\r\n data: {\r\n breadcrumb: \"PipelineDetails\"\r\n }\r\n },\r\n {\r\n path: 'PIHistoryData',\r\n component: pihistoryDataComponent,\r\n data: {\r\n breadcrumb: \"History\"\r\n }\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'TagMaster',\r\n pathMatch: 'full'\r\n }\r\n ]\r\n },\r\n {\r\n path: 'FormulaBuilder',\r\n component: KpiFormulaBuilderComponent,\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_TagAdminGroupId,\r\n enValue.groups_client_FoundationUserGroupId\r\n ],\r\n breadcrumb: \"Dashboard\"\r\n },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'viewFormula'\r\n },\r\n {\r\n path: 'viewFormula',\r\n component: ViewFormulaComponent,\r\n },\r\n {\r\n path: 'createFormula',\r\n component: CreateFormulaModelComponent,\r\n },\r\n {\r\n path: 'constants',\r\n component: ConstantsComponent,\r\n }\r\n ]\r\n },\r\n {\r\n path: 'DataCleansing',\r\n component: DataCleansingComponent,\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_TagAdminGroupId,\r\n enValue.groups_client_FoundationUserGroupId\r\n ],\r\n breadcrumb: \"Dashboard\"\r\n },\r\n children: [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n redirectTo: 'rules'\r\n },\r\n {\r\n path: 'rules',\r\n component: RulesComponent,\r\n }\r\n ]\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'DataPlatform',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes), RouterModule.forRoot(routes, { useHash: false, onSameUrlNavigation: 'reload', relativeLinkResolution: 'legacy' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, HostListener, Inject, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Router } from \"@angular/router\";\r\nimport { AuthenticationResult, EventMessage, EventType, InteractionType, PopupRequest } from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { concatMap, filter, takeUntil } from 'rxjs/operators';\r\nimport { Globals } from './models/globals.model';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { GlobalService } from './services/global.service';\r\nimport { GraphService } from './services/graph.service';\r\nimport { HttpService } from './services/http.service';\r\nimport { OverageService } from './services/overage.service';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\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 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, private readonly 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 title = 'Platform';\r\n countryList: any;\r\n data: any;\r\n countryCode: any;\r\n isMobileResolution: boolean;\r\n screenWidth: any;\r\n currentComponent: number;\r\n @HostListener('window:resize', ['$event'])\r\n getScreenSize(event?) {\r\n this.screenWidth = window.innerWidth;\r\n if (this.screenWidth < 768) {\r\n this.isMobileResolution = true;\r\n }\r\n else {\r\n this.isMobileResolution = false;\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n this.isLoading = true;\r\n this.initialize();\r\n this.countryCode = \"EN\";\r\n }\r\n\r\n /**\r\n * detects current component as per current url\r\n * sets component id as per url detected.\r\n */\r\n detectCurrentComponent() {\r\n const route = this._router.url;\r\n if (route.includes('DataCleansing')) {\r\n this.currentComponent = AppConstants.dataCleansingComponentId;\r\n } else {\r\n this.currentComponent = AppConstants.formulaComponentId;\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 //set user details in global session \r\n this.globals.userEmail = userAccount.username;\r\n // call appinsight\r\n this.initAppInsight(this);\r\n if (this.globals.groups.length === 0) {\r\n this.overageService.readGraphGroups(this.authService, this.grphService, this.assignRole, this);\r\n }\r\n }\r\n }\r\n\r\n initAppInsight(thisRef: AppComponent) {\r\n let appInsightKey = (thisRef.globals.config.appInsightKey) ? thisRef.globals.config.appInsightKey : \"test\";\r\n this.appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: appInsightKey,\r\n enableAutoRouteTracking: true\r\n }\r\n });\r\n this.appInsights.loadAppInsights();\r\n this.setUserId();\r\n this.logPageView();\r\n }\r\n logPageView(name?: string, url?: string, properties?: any, measurements?: any, duration?: number) {\r\n this.appInsights.trackPageView({\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n });\r\n }\r\n setUserId() {\r\n this.appInsights.setAuthenticatedUserContext(this.globals.userEmail);\r\n this.appInsights.context.user.id = this.globals.userEmail;\r\n }\r\n\r\n\r\n assignRole(thisRef: AppComponent) {\r\n const groupsClientIds = ['PlatformAdminGroupId', 'TagAdminGroupId', 'FoundationUserGroupId'];\r\n groupsClientIds.forEach((groupId) => {\r\n if (thisRef.grphService.user.groupIDs.includes(thisRef.globals.config['groups_client_' + groupId])) {\r\n thisRef.globals.groups.push(groupId);\r\n }\r\n });\r\n\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_TagAdminGroupId)) {\r\n thisRef.globals.rbacName = 'Tag Admin';\r\n }\r\n else if (thisRef.grphService.user.groupIDs.includes(thisRef.globals.config.groups_client_FoundationUserGroupId)) {\r\n thisRef.globals.rbacName = 'Data Platform User';\r\n }\r\n else {\r\n thisRef.globals.rbacName = 'User';\r\n }\r\n thisRef.detectCurrentComponent();\r\n thisRef.tenantService.getTenantListFromServer(thisRef.currentComponent);\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
Tag Master
\r\n
\r\n
\r\n
PI Point
\r\n
\r\n
\r\n
PI History
\r\n
\r\n
\r\n
Pipeline Details
\r\n
\r\n
\r\n
Monitor
\r\n
\r\n
\r\n \r\n
\r\n
Formula
\r\n
\r\n
\r\n
Constants
\r\n
\r\n
\r\n \r\n
\r\n
Rules
\r\n
\r\n
\r\n
\r\n
\r\n\r\n 6)?'collapsedMatSidenavContent':'non-collapsedMatSidenavContent'\">\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","export const AppConstants = {\r\n formulaComponentId: 3,\r\n dataCleansingComponentId: 4,\r\n platformAdminT1GroupId: 'ba2233f5-d1c8-4d50-842e-a020b409f78f',\r\n};\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { APP_BASE_HREF, CommonModule } from '@angular/common';\r\nimport { HttpClient, HttpClientModule, HTTP_INTERCEPTORS, HttpClientXsrfModule } 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, Title } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserCacheLocation, InteractionType, IPublicClientApplication, PublicClientApplication } from '@azure/msal-browser';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgMultiSelectDropDownModule } from 'ng-multiselect-dropdown';\r\nimport { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { AboutComponent } from './about/about.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { MatTableExporterModule } from 'mat-table-exporter';\r\nimport { 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 { HomeComponent } from './home/home.component';\r\nimport { Globals } from './models/globals.model';\r\nimport { MsalBroadcastService, MsalGuard, MsalInterceptor, MsalInterceptorConfiguration, MsalService, MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { MSAL_GUARD_CONFIG, MSAL_INTERCEPTOR_CONFIG } from '@azure/msal-angular';\r\nimport { MsalGuardConfiguration } from '@azure/msal-angular';\r\nimport { NavBarComponent } from './nav-bar/nav-bar.component';\r\nimport { OverageComponent } from './overage/overage.component';\r\nimport { PiPointComponent } from './pi-point/pi-point.component';\r\nimport { ParameterModalComponent, pihistoryDataComponent } from './pihistory-data/pihistory-data.component';\r\nimport { RunPIHistoryDataComponent } from './pihistory-data/run-pihistory-data/run-pihistory-data.component';\r\nimport { MonitorComponent, MonitorParameterModalComponent } from './pipeline-configuration/monitor/monitor.component';\r\nimport { PipelineConfigurationComponent } from './pipeline-configuration/pipeline-configuration.component';\r\nimport { KpiFormulaBuilderComponent } from './kpiformulabuilder/kpiformulabuilder.component';\r\nimport { EditBoxComponent, ViewFormulaComponent } from './kpiformulabuilder/viewFormula/viewFormula.component';\r\nimport { AddFilterComponent } from './common/add-filter/add-filter.component';\r\n/** Services */\r\nimport { GlobalService } from './services/global.service';\r\nimport { HttpService } from './services/http.service';\r\nimport { PiHistoryService } from './services/pihistory-service';\r\nimport { PipelineService } from './services/pipeline-service';\r\nimport { TagMasterService } from './services/tagmaster-service';\r\nimport { KeysPipe } from './shared/keys-pipe/keys.pipe';\r\nimport { ModalComponent, TagmasterComponent } from './tagmaster/tagmaster.component';\r\nimport { DataCleansingComponent } from './data-cleansing/data-cleansing.component';\r\nimport { RulesComponent } from './data-cleansing/rules/rules.component';\r\nimport { CleansingRuleComponent } from './data-cleansing/cleansing-rule/cleansing-rule.component';\r\nimport { CreateFormulaModelComponent } from './kpiformulabuilder/create-formula-model/create-formula-model.component';\r\nimport { ConstantsComponent } from './kpiformulabuilder/constants/constants.component';\r\nimport { ConstantModalComponent } from './kpiformulabuilder/constant-modal/constant-modal.component';\r\nimport { KnnRegressionPopupComponent } from './data-cleansing/knn-regression-popup/knn-regression-popup.component';\r\nimport { EvaluateFormulaModelComponent } from './kpiformulabuilder/evaluate-formula-model/evaluate-formula-model.component';\r\nimport { EvaluateFormulaResultsComponent } from './kpiformulabuilder/evaluate-formula-results/evaluate-formula-results.component';\r\nimport { polyfill as keyboardEventKeyPolyfill } from 'keyboardevent-key-polyfill';\r\nimport { MentionModule } from 'angular-mentions';\r\nimport { XsrfInterceptor } from './services/xsrf.interceptor';\r\nimport { TenantService } from './services/tenant.service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nkeyboardEventKeyPolyfill();\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.foundationPlatformApi_client_resourceUri, [enValue.foundationPlatformApi_client_resourceScope]],\r\n [enValue.graphApi_client_resourceUri, [enValue.graphApi_client_resourceScope]],\r\n [enValue.platformAdminApi_client_resourceUri, [enValue.platformAdminApi_client_resourceScope]]\r\n];\r\n\r\nfunction MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication({\r\n auth: {\r\n clientId: enValue.clientId,\r\n redirectUri: enValue.redirectUri,\r\n authority: enValue.authority,\r\n postLogoutRedirectUri: enValue.postLogoutRedirectUri,\r\n },\r\n cache: {\r\n cacheLocation: enValue.cache_client.cacheLocation,\r\n storeAuthStateInCookie: isIE, // set to true for IE 11\r\n }\r\n });\r\n}\r\n\r\nfunction MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set(enValue.foundationPlatformApi_client_resourceUri, [enValue.foundationPlatformApi_client_resourceScope]);\r\n protectedResourceMap.set(enValue.graphApi_client_resourceUri, [enValue.graphApi_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 HomeComponent,\r\n TagmasterComponent,\r\n ModalComponent,\r\n pihistoryDataComponent,\r\n RunPIHistoryDataComponent,\r\n PipelineConfigurationComponent,\r\n MonitorComponent,\r\n ParameterModalComponent,\r\n MonitorParameterModalComponent,\r\n AboutComponent,\r\n PiPointComponent,\r\n AlertComponent,\r\n ConfirmModelComponent,\r\n KeysPipe,\r\n KpiFormulaBuilderComponent,\r\n ViewFormulaComponent,\r\n EditBoxComponent,\r\n AddFilterComponent,\r\n DataCleansingComponent,\r\n RulesComponent,\r\n CleansingRuleComponent,\r\n CreateFormulaModelComponent,\r\n ConstantsComponent,\r\n ConstantModalComponent,\r\n KnnRegressionPopupComponent,\r\n EvaluateFormulaModelComponent,\r\n EvaluateFormulaResultsComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n CommonModule,\r\n HttpClientModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatStepperModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatTabsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatListModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatDialogModule,\r\n MatInputModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatRadioModule,\r\n MatAutocompleteModule,\r\n BrowserAnimationsModule,\r\n NgbModule,\r\n NgMultiSelectDropDownModule.forRoot(),\r\n AppRoutingModule,\r\n TypeaheadModule.forRoot(),\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatRippleModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule,\r\n MatCheckboxModule,\r\n DragDropModule,\r\n MatTableExporterModule,\r\n MatChipsModule,\r\n MentionModule,\r\n HttpClientXsrfModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n providers: [{\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 TagMasterService, PiHistoryService, PipelineService, Title\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n constructor(public globalService: GlobalService, public globals: Globals, public http: HttpClient) {\r\n\r\n // global config details\r\n this.globals.config = enValue;\r\n\r\n this.globals.releaseDetails = enValue.ReleaseDetails;\r\n\r\n // Check Subscription\r\n this.globals.subscription = enValue.subscription;\r\n this.globalService.environment = enValue.environment;\r\n\r\n // Check Tag Movement Environment\r\n this.globalService.tagMovMsg = enValue.moveTagMasterMsg;\r\n }\r\n}\r\n","import { Component, 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, UntypedFormControl, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { FilterResponseModel } from '../../models/filter/filter-response.model';\r\n\r\n@Component({\r\n selector: 'app-add-filter',\r\n templateUrl: './add-filter.component.html',\r\n styleUrls: ['./add-filter.component.css']\r\n})\r\nexport class AddFilterComponent implements OnInit {\r\n @Input() filterList: FilterModel[];\r\n @Input() application: string;\r\n @Input() selectedFilters: FilterResponseModel[];\r\n @Output() filterResponse = new EventEmitter();\r\n\r\n public conditionList: string[];\r\n public valuesList: string[];\r\n public constants: CommonConstants;\r\n\r\n public addFilterForm: UntypedFormGroup;\r\n /** 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\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 /**\r\n * Hides field name from dropdown\r\n * @param fieldName\r\n */\r\n hideFieldName(fieldName: string) {\r\n return (![\"NoOfManipulatedVar\", \"RunId\"].includes(fieldName) && this.selectedFilters?.find(t => t.selectedFieldName == fieldName));\r\n }\r\n\r\n /**\r\n * Disables value\r\n * @param element\r\n */\r\n disableValues(element: string) {\r\n let check: boolean = (!this.addFilterForm.get('value').value?.includes(element) && this.addFilterForm.get('value').value?.length >= 5);\r\n return check;\r\n }\r\n\r\n /**Adding a new filter */\r\n submitFilter() {\r\n let response: FilterResponseModel = new FilterResponseModel();\r\n response.selectedFieldName = this.helper.replaceFilterText(this.addFilterForm.get('filterName').value.fieldName, this.application);\r\n response.selectedCondition = this.addFilterForm.get('condition').value;\r\n response.selectedValue = this.addFilterForm.get('value').value;\r\n this.filterResponse.emit({ filterResponse: response });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
Field Name
\r\n
\r\n \r\n
\r\n
Condition
\r\n
\r\n \r\n
\r\n
Value
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GlobalService } from '../../services/global.service';\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.css']\r\n})\r\nexport class AlertComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n data.title = data.success ? \"Success\" : \"Failure\";\r\n };\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n \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 { DataCleansingService } from '../../services/data-cleansing.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { RulesDetailModel } from '../../models/rules/rules.detail.model';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl } from '@angular/forms';\r\nimport { RulesModel } from '../../models/rules/rules.model';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { RulesLabelModel } from '../../models/rules/rules.label.model';\r\nimport { KnnRegressionPopupComponent } from '../knn-regression-popup/knn-regression-popup.component';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-cleansing-rule',\r\n templateUrl: './cleansing-rule.component.html',\r\n styleUrls: ['./cleansing-rule.component.css']\r\n})\r\nexport class CleansingRuleComponent implements OnInit {\r\n\r\n dataSource = [];\r\n parameterList: any[];\r\n selectedParameter;\r\n isLoading: boolean = false;\r\n readOnly: boolean = false;\r\n cleansingRulesList: RulesLabelModel[];\r\n masterCleansingRulesList: RulesLabelModel[];\r\n conditionList: string[];\r\n selectedSequence: number = 0;\r\n private readonly insufficientRulesData: RulesLabelModel = new RulesLabelModel(0, \"Create Blank Entries\", \"Expected Data Frequency (minute)\", \"Textbox\");\r\n\r\n displayedColumns: string[] = ['cleansingMethod'];\r\n rulesDataSource: MatTableDataSource;\r\n cleansingRuleData: RulesModel;\r\n iscleansingDataAvailable = true;\r\n\r\n public cleansingRuleForm = new UntypedFormGroup({\r\n id: new UntypedFormControl(''),\r\n dataSourceId: new UntypedFormControl({ value: '', disabled: false }, Validators.required),\r\n tagName: new UntypedFormControl({ value: '', disabled: true }, Validators.required)\r\n });\r\n\r\n constructor(public dialogRef: MatDialogRef, private readonly dataCleansingService: DataCleansingService, public globalService: GlobalService,\r\n public fb: UntypedFormBuilder, @Inject(MAT_DIALOG_DATA) public data: any, private readonly titleService: Title) {\r\n titleService.setTitle('Data Cleansing');\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getToken();\r\n }\r\n\r\n getToken() {\r\n this.dataCleansingService.getToken().pipe(\r\n switchMap((data: any) => {\r\n this.isLoading = true;\r\n this.cleansingRuleData = new RulesModel();\r\n this.conditionList = [\"<\", \">\", \"<=\", \">=\", \"==\", \"!=\", \"Null Values\", \"Non Numeric\", \"Insufficient Data\"];\r\n return of(data);\r\n }),\r\n switchMap((data) => { this.getDataSources(); return of([]); }),\r\n switchMap((data) => { this.fetchCleansingRulesList(); return of([]); }),\r\n switchMap((data) => { this.loadCleansingRulesTableData(); return of([]); }),\r\n switchMap((data) => { this.getDataSourceParameters(); return of([]); }),\r\n ).subscribe((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**Fetches list of datasources */\r\n getDataSources() {\r\n this.dataCleansingService.getDataSources().subscribe((data: any) => {\r\n this.dataSource = data;\r\n return of(this.dataSource)\r\n }, (error: Error) => { this.isLoading = false; });\r\n }\r\n\r\n /**Fetches all cleansing rules */\r\n fetchCleansingRulesList() {\r\n this.dataCleansingService.listAllCleansingRules().subscribe((data: RulesLabelModel[]) => {\r\n if (this.globalService.isNotNullObject(data) && data.length > 0) {\r\n this.masterCleansingRulesList = [...data];\r\n this.listAllCleansingRules();\r\n this.isLoading = false;\r\n return of(this.masterCleansingRulesList)\r\n }\r\n }, (error: Error) => { this.isLoading = false; });\r\n }\r\n\r\n loadCleansingRulesTableData() {\r\n this.iscleansingDataAvailable = false;\r\n if (this.data.displayType !== 'add') {\r\n this.cleansingRuleData = this.data.ruleData;\r\n this.listAllCleansingRules();\r\n for (let a = 0; a < this.cleansingRuleData.cleansingRules.length; a++) {\r\n this.checkDuplicateCleansingMethod(this.cleansingRuleData.cleansingRules[a].cleansingMethod);\r\n }\r\n if (this.globalService.isNotNullObject(this.cleansingRuleData)) {\r\n this.cleansingRuleForm.get('dataSourceId').disable();\r\n this.cleansingRuleForm = new UntypedFormGroup({\r\n cleansingRuleConfigId: new UntypedFormControl(this.cleansingRuleData.cleansingRuleConfigId),\r\n dataSourceId: new UntypedFormControl({ value: this.cleansingRuleData.dataSourceId, disabled: true }, Validators.required),\r\n tagName: new UntypedFormControl({ value: this.cleansingRuleData.tagName, disabled: true }, Validators.required)\r\n });\r\n \r\n this.rulesDataSource = new MatTableDataSource(this.cleansingRuleData.cleansingRules);\r\n this.rulesDataSource.data.sort((a, b) => a.sequence - b.sequence);\r\n this.isLoading = false;\r\n }\r\n } else {\r\n this.cleansingRuleForm = this.fb.group({\r\n dataSourceId: ['', Validators.required],\r\n tagName: [{ value: '', disabled: true }, Validators.required]\r\n });\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n /**Fetches list of selected datasource parameters*/\r\n getDataSourceParameters() {\r\n this.isLoading = true;\r\n this.dataCleansingService.getDataSourceParameters(this.cleansingRuleForm.get('dataSourceId').value).subscribe((data: any): void => {\r\n if (this.globalService.isNotNullObject(data) && data.length > 0) {\r\n this.cleansingRuleForm.get('tagName').enable();\r\n this.parameterList = data;\r\n }\r\n this.isLoading = false;\r\n }, (error: Error) => { this.isLoading = false; });\r\n }\r\n\r\n /**Triggered when new data source is selected */\r\n onDataSourceSelected(event) {\r\n let selectedDataSource = this.cleansingRuleForm.get('dataSourceId').value;\r\n this.cleansingRuleForm.reset();\r\n this.cleansingRuleForm.get('dataSourceId').setValue(selectedDataSource);\r\n this.cleansingRuleData.dataSourceId = selectedDataSource;\r\n this.getDataSourceParameters();\r\n }\r\n\r\n /**Triggered when tag is selected */\r\n onTagNameSelected(event) {\r\n this.dataCleansingService.listCleansingRulesForSelectedId(this.cleansingRuleForm.get('dataSourceId').value, this.cleansingRuleForm.get('tagName').value)\r\n .subscribe((data: any): void => {\r\n if (this.globalService.isNotNullObject(data)) {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Cleansing rules for the parameter \" + this.cleansingRuleForm.get('tagName').value + \" is already available. Please select a different parameter\" });\r\n let selectedDataSource = this.cleansingRuleForm.get('dataSourceId').value;\r\n this.cleansingRuleForm.reset();\r\n this.cleansingRuleForm.get('dataSourceId').setValue(selectedDataSource);\r\n } else {\r\n this.cleansingRuleData.tagName = this.cleansingRuleForm.get('tagName').value;\r\n this.cleansingRuleData.cleansingRules = [];\r\n this.addNewRule();\r\n }\r\n }, (error: Error) => { this.isLoading = false; });\r\n }\r\n\r\n /**Checks if table should be displayed */\r\n displayTable() {\r\n let displayTable: boolean = false;\r\n if (this.data && this.data.displayType == 'add') {\r\n displayTable = this.globalService.isNotNullObject(this.cleansingRuleForm) && this.cleansingRuleForm.get('tagName').valid && (this.parameterList.find(element => element.tagName == this.cleansingRuleForm.get('tagName').value));\r\n } else {\r\n displayTable = true;\r\n }\r\n return displayTable;\r\n }\r\n\r\n /**Adds a new rule */\r\n addNewRule() {\r\n this.cleansingRuleData.cleansingRules.push(new RulesDetailModel());\r\n this.setSelectedSequence(this.cleansingRuleData.cleansingRules.length);\r\n for (let i = 0; i < this.cleansingRuleData.cleansingRules.length; i++) {\r\n this.cleansingRuleData.cleansingRules[i].sequence = i + 1;\r\n if (i == this.cleansingRuleData.cleansingRules.length - 1) {\r\n this.cleansingRuleData.cleansingRules[i].cleansingMethod = \"Untitled *\";\r\n this.cleansingRuleData.cleansingRules[i].evaluateInfluencingTag = false;\r\n if (this.data.displayType == 'edit') {\r\n this.cleansingRuleData.cleansingRules[i].cleansingRuleConfigId = this.data.ruleData.cleansingRuleConfigId;\r\n }\r\n }\r\n }\r\n this.rulesDataSource = new MatTableDataSource(this.cleansingRuleData.cleansingRules);\r\n }\r\n\r\n /**Deletes a rule */\r\n deleteModel() {\r\n let toBeDeletedMethod: string = this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingMethod;\r\n this.cleansingRuleData.cleansingRules.splice(this.selectedSequence, 1);\r\n this.selectedSequence = 0;//To avoid errors in case the selectedSequence was the last element\r\n for (let i = 0; i < this.cleansingRuleData.cleansingRules.length; i++) {\r\n this.cleansingRuleData.cleansingRules[i].sequence = i + 1;\r\n }\r\n this.checkDuplicateCleansingMethod(toBeDeletedMethod);\r\n this.rulesDataSource = new MatTableDataSource(this.cleansingRuleData.cleansingRules);\r\n }\r\n\r\n /**\r\n * Changes the sequence of the rules\r\n * @param event\r\n */\r\n drop(event: CdkDragDrop) {\r\n let tempData = this.rulesDataSource.data;\r\n let previousMethodName: string = this.cleansingRuleData.cleansingRules[event.previousIndex].cleansingMethod;\r\n let currentMethodName: string = this.cleansingRuleData.cleansingRules[event.currentIndex].cleansingMethod;\r\n moveItemInArray(this.rulesDataSource.data, event.previousIndex, event.currentIndex);\r\n this.updateSequence(tempData, previousMethodName, currentMethodName);\r\n }\r\n\r\n /**\r\n * Updates the sequence number after drop event.\r\n * @param tempData\r\n * @param previousMethodName\r\n * @param currentMethodName\r\n */\r\n updateSequence(tempData: RulesDetailModel[], previousMethodName: string, currentMethodName: string) {\r\n for (let i = 0; i < tempData.length; i++) {\r\n tempData[i].sequence = i + 1;\r\n }\r\n this.rulesDataSource = new MatTableDataSource(tempData);\r\n this.checkDuplicateCleansingMethod(previousMethodName);\r\n this.checkDuplicateCleansingMethod(currentMethodName);\r\n this.listAllCleansingRules();\r\n this.rulesDataSource.data.sort((a, b) => a.sequence - b.sequence);\r\n }\r\n\r\n /**Lists all rules */\r\n listAllCleansingRules() {\r\n if(this.cleansingRuleData.cleansingRules) {\r\n if (this.cleansingRuleData.cleansingRules[this.selectedSequence].condition == \"Insufficient Data\") {\r\n this.cleansingRulesList = [];\r\n this.cleansingRulesList.push(this.insufficientRulesData);\r\n } else {\r\n this.cleansingRulesList = this.masterCleansingRulesList;\r\n }\r\n }\r\n }\r\n\r\n /**Cancels the pop-up */\r\n onCancelClick(value: boolean): void {\r\n this.dialogRef.close(value);\r\n }\r\n\r\n /**Saves data cleansing rule */\r\n saveCleansingRule() {\r\n let rules: RulesModel = this.cleansingRuleData;\r\n if (this.data.displayType === 'add') {\r\n rules.createdBy = this.globalService.loggedInUser;\r\n }\r\n rules.updatedBy = this.globalService.loggedInUser;\r\n for (let i = 0; i < rules.cleansingRules.length; i++) {\r\n rules.cleansingRules[i].sequence = i + 1;\r\n if (!rules.cleansingRules[i].evaluateInfluencingTag) {\r\n rules.cleansingRules[i].influencingTag = \"\";\r\n }\r\n }\r\n this.dataCleansingService.saveCleansingRule(rules).subscribe((data: any): void => {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Rules for \" + rules.tagName + \" saved successfully.\" });\r\n\r\n this.onCancelClick(true);\r\n }, (error: Error) => {\r\n this.isLoading = false;\r\n this.dataCleansingService.getToken().subscribe(locData => {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Rules for \" + rules.tagName + \" could not be saved.\" });\r\n\r\n });\r\n\r\n });\r\n }\r\n\r\n /**\r\n * Sets the selected sequence number\r\n * @param sequence\r\n */\r\n setSelectedSequence(sequence: number) {\r\n this.selectedSequence = sequence - 1;\r\n this.listAllCleansingRules();\r\n }\r\n\r\n /**Checks if cleansing qualifier should be displayed */\r\n displayCleansingQualifier() {\r\n let labelName: string = this.getCleansingQualifierLabel();\r\n let check: boolean = this.globalService.isNotNull(this.cleansingRuleData.cleansingRules[this.selectedSequence]?.cleansingMethod) &&\r\n (this.cleansingRuleData.cleansingRules[this.selectedSequence]?.cleansingMethod !== \"Untitled *\") &&\r\n (labelName?.toLowerCase() !== \"hidden\");\r\n return check;\r\n }\r\n\r\n /**Finds cleansing Qualifier Label Name */\r\n getCleansingQualifierLabel(): string {\r\n if (this.cleansingRuleData.cleansingRules[this.selectedSequence].condition == \"Insufficient Data\") {\r\n return this.insufficientRulesData.labelName;\r\n } else {\r\n return this.cleansingRulesList?.find((element: RulesLabelModel) =>\r\n element.cleansingMethod == this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingMethod)?.labelName;\r\n }\r\n }\r\n\r\n /**Checks if add button should be disabled */\r\n disableAddBtn() {\r\n let untitledMethod: RulesDetailModel = this.cleansingRuleData.cleansingRules?.find((ele: RulesDetailModel) => ele.cleansingMethod == \"Untitled *\");\r\n let check: boolean = this.globalService.isNotNullObject(untitledMethod) || this.cleansingRuleData.cleansingRules?.length > 5 ||\r\n (this.cleansingRuleData.cleansingRules && (!this.globalService.isNotNull(this.cleansingRuleData.cleansingRules[this.selectedSequence].condition) ||\r\n (![\"Null Values\", \"Non Numeric\", \"Insufficient Data\"].includes(this.cleansingRuleData.cleansingRules[this.selectedSequence].condition) &&\r\n !this.globalService.isNotNull(this.cleansingRuleData.cleansingRules[this.selectedSequence].value?.toString())))) ||\r\n (this?.cleansingRuleData?.cleansingRules && this?.cleansingRuleData?.cleansingRules[this.selectedSequence]?.evaluateInfluencingTag &&\r\n !this.globalService.isNotNull(this.cleansingRuleData.cleansingRules[this.selectedSequence].influencingTag)) ||\r\n (this.cleansingRuleData.cleansingRules && this.displayCleansingQualifier() &&\r\n !this.globalService.isNotNull(this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingQualifier));\r\n return check;\r\n }\r\n\r\n /**\r\n * Checks if duplicate cleansing method exists\r\n * @param cleansingMeth\r\n */\r\n checkDuplicateCleansingMethod(cleansingMeth: string) {\r\n let dupMethod: RulesDetailModel[] = this.cleansingRuleData.cleansingRules?.filter((ele: RulesDetailModel) => ele.cleansingMethod == cleansingMeth);\r\n if (dupMethod.length > 1) {\r\n for (let i = 0; i < dupMethod.length; i++) {\r\n dupMethod[i].cleansingMethodModified = dupMethod[i].cleansingMethod.concat(\" (\", (i + 1).toString(), \")\");\r\n }\r\n } else {\r\n for (let i = 0; i < dupMethod.length; i++) {\r\n dupMethod[i].cleansingMethodModified = dupMethod[i].cleansingMethod;\r\n }\r\n }\r\n if (!this.displayCleansingQualifier()) {\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingQualifier = \"\";\r\n }\r\n }\r\n\r\n /**Display or hide the values based on condition selected */\r\n displayHideValue() {\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingMethod = \"Untitled *\";\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingMethodModified = \"\";\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingQualifier = \"\";\r\n if ([\"Non Numeric\", \"Null Values\", \"Insufficient Data\"].includes(this.cleansingRuleData.cleansingRules[this.selectedSequence].condition)) {\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].value = \"\";\r\n }\r\n this.listAllCleansingRules();\r\n }\r\n\r\n /**Returns true if text value field should be displayed, else false */\r\n displayTextFieldValue() {\r\n let check: boolean = [\"==\", \"!=\"].includes(this.cleansingRuleData.cleansingRules[this.selectedSequence].condition);\r\n return check;\r\n }\r\n\r\n addKnnDependantVariables() {\r\n let dataToPass = {\r\n parameterList: this.parameterList,\r\n cleansingQualifier: this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingQualifier\r\n };\r\n this.globalService.openModelWindowSmall(this.updateQualifierAfterChange, this, KnnRegressionPopupComponent, dataToPass);\r\n }\r\n\r\n updateQualifierAfterChange(thisRef: CleansingRuleComponent, result) {\r\n thisRef.cleansingRuleData.cleansingRules[thisRef.selectedSequence].cleansingQualifier = result.cleansingQualifier;\r\n }\r\n\r\n changeEvaluateTag() {\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].condition = \"\";\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingMethod = \"Untitled *\";\r\n this.cleansingRuleData.cleansingRules[this.selectedSequence].cleansingQualifier = \"\";\r\n if (this.cleansingRuleData.cleansingRules[this.selectedSequence].evaluateInfluencingTag) {\r\n this.conditionList = [\"<\", \">\", \"<=\", \">=\", \"==\", \"!=\", \"Null Values\", \"Non Numeric\"];\r\n } else {\r\n this.conditionList = [\"<\", \">\", \"<=\", \">=\", \"==\", \"!=\", \"Null Values\", \"Non Numeric\", \"Insufficient Data\"];\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n Add Cleansing Rule\r\n View Cleansing Rule\r\n Edit Cleansing Rule\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
0;\">\r\n
\r\n \r\n \r\n Rules Sequence\r\n \r\n \r\n {{element.sequence}}   \r\n {{element.cleansingMethodModified}}\r\n {{element.cleansingMethod}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Evaluate Influencing Tag\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\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 } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-data-cleansing',\r\n templateUrl: './data-cleansing.component.html',\r\n styleUrls: ['./data-cleansing.component.css']\r\n})\r\nexport class DataCleansingComponent {\r\n\r\n constructor(private readonly titleService: Title) {\r\n titleService.setTitle('Data Cleansing');\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, Inject, Output, EventEmitter } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GlobalService } from '../../services/global.service';\r\n\r\n@Component({\r\n selector: 'app-knn-regression-popup',\r\n templateUrl: './knn-regression-popup.component.html',\r\n styleUrls: ['./knn-regression-popup.component.css']\r\n})\r\nexport class KnnRegressionPopupComponent implements OnInit {\r\n\r\n searchedTagName: string;\r\n selectedTags: string[] = [];\r\n tagNameList: any = [];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public globalService: GlobalService) { }\r\n\r\n ngOnInit(): void {\r\n if (this.globalService.isNotNull(this.data.cleansingQualifier)) {\r\n this.selectedTags = this.data.cleansingQualifier.split(\",\");\r\n }\r\n if (this.globalService.isNotNullObject(this.data.parameterList)) {\r\n this.loadTagNamesList();\r\n } \r\n }\r\n\r\n loadTagNamesList() {\r\n this.tagNameList = [...this.data.parameterList];\r\n if (this.globalService.isNotNullObject(this.selectedTags)) {\r\n for (let element of this.selectedTags) {\r\n let index: number = this.tagNameList.indexOf(this.tagNameList.find(a => element == a.tagName));\r\n this.tagNameList.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n /**disable input box */\r\n disableKnnBlockQualifier() {\r\n let check: boolean = (this.selectedTags.length >= 5);\r\n return check;\r\n }\r\n \r\n /**\r\n * Allows adding multiple tags for KNN\r\n * @param event\r\n */\r\n onTagNameSelectedKnn(event) {\r\n this.selectedTags.push(event.value);\r\n let index: number = this.tagNameList.indexOf(this.tagNameList.find(a => event.value == a.tagName));\r\n this.tagNameList.splice(index, 1);\r\n this.searchedTagName = \"\";\r\n }\r\n\r\n /**\r\n * Removes that selected tag\r\n * @param index\r\n */\r\n remove(index: number): void {\r\n this.selectedTags.splice(index, 1);\r\n this.loadTagNamesList();\r\n }\r\n\r\n disableSave() {\r\n let check: boolean = (this.selectedTags.length < 1) || this.disableKnnBlockQualifier();\r\n return check;\r\n }\r\n\r\n saveDependantVariables() {\r\n this.dialogRef.close({ cleansingQualifier: this.selectedTags.toString() });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Dependant Variables\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{element}}\r\n 25\" matTooltip={{element}}>{{element.slice(0,25)}}\r\n 25\" matTooltip=\"{{element}}\">...\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","import { Component, OnDestroy, ViewChild } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { DataCleansingService } from '../../services/data-cleansing.service';\r\nimport { FilterModel } from '../../models/filter/filter-request.model';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FilterResponseModel } from '../../models/filter/filter-response.model';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { FilterFieldTypes } from '../../shared/common-constants';\r\nimport { CleansingRuleComponent } from '../cleansing-rule/cleansing-rule.component';\r\nimport { Globals } from '../../models/globals.model';\r\nimport { ConfirmModelComponent } from '../../common/confirm-model/confirm-model.component';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { RulesModel } from '../../models/rules/rules.model';\r\nimport { NavigationEnd, Router, RouterEvent } from '@angular/router';\r\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { of, Subject } from 'rxjs';\r\nimport { TenantService } from 'src/app/services/tenant.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-rules',\r\n templateUrl: './rules.component.html',\r\n styleUrls: ['./rules.component.css']\r\n})\r\nexport class RulesComponent implements OnDestroy {\r\n isLoader: boolean = false;\r\n emptyData = false;\r\n displayedColumns: string[] = ['dataSourceName', 'tagName', 'cleansingRules', 'updatedBy', 'action'];\r\n rulesDataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: RulesModel[];\r\n selectedCleansingRuleConfigId: RulesModel;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n public destroyed = new Subject();\r\n searchText: string;\r\n\r\n constructor(private readonly dataCleansingService: DataCleansingService, public globals: Globals, public globalService: GlobalService,\r\n private readonly titleService: Title, private readonly router: Router, private readonly tenantService: TenantService, public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.rulesDataSource = new MatTableDataSource(emptyList);\r\n titleService.setTitle('Data Cleansing');\r\n this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroyed),\r\n switchMap((data: any) => { this.getToken(); return of(data); }),\r\n switchMap((data) => { this.getRulesData(this); return of(data); }),\r\n ).subscribe((error) => {\r\n console.log(error);\r\n });\r\n }\r\n getToken() {\r\n this.dataCleansingService.getToken().subscribe(locData => {\r\n return of(this);\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n \r\n\r\n /**\r\n * Fetches the rules data\r\n * @param thisRef\r\n */\r\n getRulesData(thisRef: RulesComponent) {\r\n if(thisRef.tenantService.getCurrentTenant()){\r\n thisRef.emptyData = false;\r\n thisRef.isLoader = true;\r\n thisRef.selectedFilters = [];\r\n thisRef.dataCleansingService.getAllRules().subscribe((response: RulesModel[]): void => {\r\n if (response && response.length > 0) {\r\n thisRef.masterData = [...response];\r\n thisRef.rulesDataSource = new MatTableDataSource(response);\r\n if (response.length > 0) {\r\n thisRef.rulesDataSource.sort = thisRef.sort;\r\n thisRef.rulesDataSource.paginator = thisRef.paginator;\r\n if (thisRef.globalService.isNotNull(thisRef.searchText)) {\r\n thisRef.globalService.applyFilter(thisRef.searchText, thisRef.rulesDataSource);\r\n }\r\n }\r\n thisRef.isLoader = false;\r\n }\r\n else {\r\n thisRef.rulesDataSource.data = [];\r\n thisRef.isLoader = false;\r\n this.emptyData = true;\r\n } \r\n thisRef.filterList = [];\r\n thisRef.createFilterList();\r\n });\r\n }\r\n }\r\n\r\n setSearchText(filterValue: string) {\r\n filterValue = filterValue.trim().toLowerCase();\r\n this.searchText = filterValue;\r\n }\r\n\r\n /**Add cleansing rule */\r\n addCleansingRule() {\r\n let dataToPass = { displayType: \"add\" };\r\n this.openModelWindow(this.getRulesData, this, CleansingRuleComponent, '80%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let cols: string[] = ['dataSourceName', 'tagName', 'cleansingRules', 'updatedBy'];\r\n this.rulesDataSource.filterPredicate = (data, filter: string): boolean =>{\r\n return data.dataSourceName.toLowerCase().includes(filter)||data.cleansingRules.length.toString().includes(filter)||data.tagName.toLowerCase().includes(filter)||data.updatedBy.toLowerCase().includes(filter) \r\n };\r\n for (let a = 0; a < cols.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(cols[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n let unique;\r\n if (cols[a] == \"dataSourceName\") {\r\n unique = [...new Set(this.rulesDataSource.data.map(a => a.dataSourceName))];\r\n } else if (cols[a] == \"tagName\") {\r\n unique = [...new Set(this.rulesDataSource.data.map(a => a.tagName))];\r\n } else if (cols[a] == \"cleansingRules\") {\r\n tempFilter.fieldType = FilterFieldTypes.values;\r\n unique = [...new Set(this.rulesDataSource.data.map(a => a.cleansingRules.length))];\r\n } else if (cols[a] == \"updatedBy\") {\r\n unique = [...new Set(this.rulesDataSource.data.map(a => a.updatedBy))];\r\n }\r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n if (this.rulesDataSource) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.rulesDataSource.data = this.globalService.conditionalDataFiltering(filterResponse, this.rulesDataSource.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\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.rulesDataSource.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.rulesDataSource.data = this.globalService.conditionalDataFiltering(element, this.rulesDataSource.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Delete model\r\n * @param element\r\n */\r\n deleteModel(element: RulesModel) {\r\n let dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Do you really want to delete the rules for tag ' + element.tagName + '?'\r\n };\r\n\r\n this.selectedCleansingRuleConfigId = element;\r\n this.globalService.openModelWindow(this.deleteModelAfterConfirmation, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n /**\r\n * Delete cleansing rule after confirmation\r\n * @param thisRef\r\n */\r\n deleteModelAfterConfirmation(thisRef: RulesComponent) {\r\n thisRef.dataCleansingService.deleteCleansingRule(thisRef.selectedCleansingRuleConfigId.cleansingRuleConfigId).subscribe((data: any): void => {\r\n if (data) {\r\n thisRef.globalService.showAlert(AlertComponent, { success: true, message: thisRef.selectedCleansingRuleConfigId.tagName + ' deleted successfully' });\r\n thisRef.getRulesData(thisRef);\r\n }\r\n }, (error: Error) => { });\r\n }\r\n\r\n /**\r\n * Loads the details only for view\r\n * @param element\r\n */\r\n viewDetails(element: RulesModel) {\r\n let dataToPass = { ruleData: element, displayType: \"view\" };\r\n this.openModelWindow(this.getRulesData, this, CleansingRuleComponent, '80%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n /**\r\n * Loads the details only for editting\r\n * @param element\r\n */\r\n editDetails(element: RulesModel) {\r\n let dataToPass = { ruleData: element, displayType: \"edit\" };\r\n this.openModelWindow(this.getRulesData, this, CleansingRuleComponent, '80%', 'custom-modalbox', dataToPass);\r\n }\r\n\r\n openModelWindow(methodRef: (thisRef: any, result?: any) => void, thisRef, cleansingComponent, widthOfWindow, panleClassName, dataToPass) {\r\n const dialogRef = this.dialog.open(cleansingComponent, {\r\n width: widthOfWindow,\r\n panelClass: panleClassName,\r\n data: dataToPass\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result) {\r\n thisRef.isLoader = true;\r\n thisRef.getRulesData(thisRef);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Data Cleansing\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n search\r\n
\r\n
\r\n \r\n \r\n {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" +\r\n 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 Data Source\r\n {{element.dataSourceName}}\r\n \r\n \r\n Tag Name\r\n \r\n {{element.tagName}}\r\n 40\" ngbTooltip=\"{{element.tagName}}\"\r\n placement=\"bottom\">{{element.tagName.slice(0,40)}}\r\n 40\">...\r\n \r\n \r\n \r\n Number of Rules\r\n {{element.cleansingRules.length}}\r\n \r\n \r\n Last Modified By\r\n {{element.updatedBy}}\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
There are no records to\r\n display.
\r\n \r\n
\r\n\r\n \r\n
","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GlobalService } from './../services/global.service';\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent {\r\n constructor(public router: Router, public globals: GlobalService) { }\r\n \r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { ConstantModel } from '../kpi-models/constants.model';\r\nimport { UOMData } from 'src/assets/UOMData';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { Globals } from '../../models/globals.model';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\n@Component({\r\n selector: 'app-constant-modal',\r\n templateUrl: './constant-modal.component.html',\r\n styleUrls: ['./constant-modal.component.css']\r\n})\r\nexport class ConstantModalComponent implements OnInit {\r\n\r\n isLoader = false;\r\n unitList: string[];\r\n unitTypeList: string[];\r\n mode: string;\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n public constantsForm = new UntypedFormGroup({\r\n constantId: new UntypedFormControl(''),\r\n value: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n uom: new UntypedFormControl({ value: '', disabled: true }, Validators.required),\r\n lastModifiedBy: new UntypedFormControl({ value: '', disabled: true }, Validators.required)\r\n });\r\n\r\n constructor(public fb: UntypedFormBuilder, public globalService: GlobalService, private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n private readonly titleService: Title, private readonly httpService: HttpService, public global: Globals,\r\n public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: ConstantModel) {\r\n titleService.setTitle('Constants');\r\n this.unitTypeList = Object.keys(UOMData);\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.global.config.graphApi_client_resourceUri;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.globalService.isNotNullObject(this.data)) {\r\n this.mode = 'edit';\r\n this.loadEditForm(this.data);\r\n } else {\r\n this.mode = 'add';\r\n this.loadEmptyCreateForm();\r\n }\r\n }\r\n\r\n /**Loads empty create form */\r\n loadEmptyCreateForm() {\r\n this.constantsForm = this.fb.group({\r\n constantId: ['', Validators.required],\r\n value: [{ value: '', disabled: true }, Validators.required],\r\n unitType: [{ value: '', disabled: true }, Validators.required],\r\n uom: [{ value: '', disabled: true }, Validators.required]\r\n });\r\n }\r\n\r\n /**Loads edit form for constants */\r\n loadEditForm(data: ConstantModel) {\r\n this.isLoader = true;\r\n const uomMap = Object.keys(UOMData).map(key => ({ type: key, value: UOMData[key] }));\r\n const uomrequired = uomMap.filter(function (elem) {\r\n return elem.value.includes(data.uom);\r\n });\r\n let uType = '';\r\n let eUnit = '';\r\n if (uomrequired && uomrequired.length > 0) {\r\n uType = uomrequired[0].type;\r\n eUnit = data.uom;\r\n }\r\n this.constantsForm = this.fb.group({\r\n constantId: new UntypedFormControl(data.constantId, Validators.required),\r\n value: new UntypedFormControl(data.value, Validators.required),\r\n unitType: new UntypedFormControl(uType, Validators.required),\r\n uom: new UntypedFormControl(eUnit, Validators.required)\r\n });\r\n this.constantsForm.get('constantId').disable();\r\n this.populateUOM();\r\n this.isLoader = false;\r\n }\r\n\r\n populateUOM() {\r\n this.constantsForm.get('uom').enable();\r\n this.unitList = UOMData[this.constantsForm.get('unitType').value];\r\n }\r\n\r\n /**Saves name of constant */\r\n onNameSave() {\r\n this.constantsForm.get('value').enable();\r\n }\r\n\r\n /**Saves value of constant */\r\n onValueSave() {\r\n this.constantsForm.get('unitType').enable();\r\n }\r\n\r\n /**Saves data for constants */\r\n saveFormula() {\r\n this.isLoader = true;\r\n const constants: ConstantModel = this.constantsForm.value;\r\n constants.lastModifiedBy = this.globalService.loggedInUser;\r\n if (this.mode === 'add') {\r\n constants.createdBy = this.globalService.loggedInUser;\r\n this.kpiFormulaService.saveConstantFormula(constants).subscribe((data: any): void => {\r\n if (data) {\r\n this.onCancelClick();\r\n this.globalService.showAlert(AlertComponent, { success: true, message: 'Constants for ' + constants.constantId + ' saved successfully.' });\r\n this.isLoader = false;\r\n } else {\r\n this.onCancelClick();\r\n this.isLoader = false;\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n });\r\n } else if (this.mode === 'edit') {\r\n constants.createdBy = this.data.createdBy;\r\n constants.constantId = this.data.constantId;\r\n this.kpiFormulaService.updateConstantFormula(constants).subscribe((data: any): void => {\r\n if (data) {\r\n this.isLoader = false;\r\n this.onCancelClick();\r\n this.globalService.showAlert(AlertComponent, { success: true, message: 'Constants for ' + constants.constantId + ' updated successfully.' });\r\n this.isLoader = false;\r\n } else {\r\n this.onCancelClick();\r\n this.isLoader = false;\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n });\r\n }\r\n }\r\n\r\n /**Checks if save button should be enabled */\r\n enableSave(): boolean {\r\n return false;\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
\r\n Add Constant\r\n Edit Constant - {{data.constantId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \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, ViewChild } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { Globals } from '../../models/globals.model';\r\nimport { ConstantModel } from '../kpi-models/constants.model';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { ConfirmModelComponent } from '../../common/confirm-model/confirm-model.component';\r\nimport { HttpParams } from '@angular/common/http';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConstantModalComponent } from '../constant-modal/constant-modal.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 { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\n@Component({\r\n selector: 'app-constants',\r\n templateUrl: './constants.component.html',\r\n styleUrls: ['./constants.component.css']\r\n})\r\nexport class ConstantsComponent implements OnInit {\r\n\r\n isLoader = false;\r\n emptyData = false;\r\n displayedColumns: string[] = ['add', 'constantId', 'value', 'uom', 'lastModifiedBy', 'action'];\r\n constantsDataSource: MatTableDataSource;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n selectedConstant: ConstantModel;\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n searchText: string = \"\";\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: ConstantModel[];\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n\r\n constructor(public globalService: GlobalService, private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n private readonly titleService: Title, private readonly httpService: HttpService,\r\n public global: Globals, public dialog: MatDialog) {\r\n const emptyList: any[] = [];\r\n this.constantsDataSource = new MatTableDataSource(emptyList);\r\n titleService.setTitle('Constants');\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.global.config.graphApi_client_resourceUri;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getConstantsData(this);\r\n this.isLoader = false;\r\n }\r\n\r\n /** Fetches list of constant data*/\r\n getConstantsData(thisRef: ConstantsComponent) {\r\n thisRef.isLoader = true;\r\n thisRef.kpiFormulaService.getConstantsFormula().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n thisRef.masterData = [...data];\r\n thisRef.isLoader = false;\r\n thisRef.constantsDataSource = new MatTableDataSource(data);\r\n thisRef.constantsDataSource.paginator = thisRef.paginator;\r\n thisRef.constantsDataSource.sort = thisRef.sort;\r\n if (thisRef.globalService.isNotNull(thisRef.searchText)) {\r\n thisRef.globalService.applyFilter(thisRef.searchText, thisRef.constantsDataSource);\r\n }\r\n if (thisRef.filterList.length == 0) {\r\n thisRef.createFilterList();\r\n }\r\n } else {\r\n thisRef.emptyData = true;\r\n thisRef.isLoader = false;\r\n thisRef.constantsDataSource = new MatTableDataSource(data);\r\n }\r\n }, (error) => {\r\n thisRef.isLoader = false;\r\n });\r\n }\r\n\r\n /**\r\n * Delete model\r\n * @param element\r\n */\r\n deleteModel(element: ConstantModel) {\r\n const dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Do you really want to delete the constant ' + element.constantId + '?'\r\n };\r\n this.selectedConstant = element;\r\n this.globalService.openModelWindow(this.deleteModelAfterConfirmation,\r\n this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n setSearchText(filterValue: string) {\r\n filterValue = filterValue.trim().toLowerCase();\r\n this.searchText = filterValue;\r\n }\r\n\r\n /**\r\n * Delete cleansing rule after confirmation\r\n * @param thisRef\r\n */\r\n deleteModelAfterConfirmation(thisRef: ConstantsComponent) { \r\n thisRef.kpiFormulaService.deleteConstantModel(thisRef.selectedConstant.constantId).subscribe((data: any): void => {\r\n thisRef.isLoader = false;\r\n thisRef.globalService.showAlert(AlertComponent, { success: true, message: 'Constants for ' + thisRef.selectedConstant.constantId + ' deleted successfully.' });\r\n thisRef.getConstantsData(thisRef);\r\n }, (error) => {\r\n thisRef.isLoader = false;\r\n });\r\n }\r\n\r\n /**\r\n * Edit details\r\n * @param element\r\n */\r\n editDetails(element: ConstantModel) {\r\n this.globalService.openModelWindowSmall(this.getConstantsData, this, ConstantModalComponent, element);\r\n }\r\n\r\n /**Adds new constant */\r\n addConstants() {\r\n this.globalService.openModelWindowSmall(this.getConstantsData, this, ConstantModalComponent, null);\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let cols: string[] = ['constantId', 'uom', 'lastModifiedBy'];\r\n for (let a = 0; a < cols.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(cols[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n let unique;\r\n if (cols[a] == \"constantId\") {\r\n unique = [...new Set(this.constantsDataSource.data.map(a => a.constantId))];\r\n } else if (cols[a] == \"value\") {\r\n tempFilter.fieldType = FilterFieldTypes.values;\r\n unique = [...new Set(this.constantsDataSource.data.map(a => a.value))];\r\n } else if (cols[a] == \"uom\") {\r\n unique = [...new Set(this.constantsDataSource.data.map(a => a.uom))];\r\n } else if (cols[a] == \"lastModifiedBy\") {\r\n unique = [...new Set(this.constantsDataSource.data.map(a => a.lastModifiedBy))];\r\n }\r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.constantsDataSource.data = this.globalService.conditionalDataFiltering(filterResponse, this.constantsDataSource.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n if (index >= 0) {\r\n this.selectedFilters.splice(index, 1);\r\n this.constantsDataSource.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.constantsDataSource.data = this.globalService.conditionalDataFiltering(element, this.constantsDataSource.data);\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 {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Constant Name\r\n \r\n {{element.constantId}}\r\n 60\" ngbTooltip=\"{{element.constantId}}\" placement=\"bottom\">{{element.constantId.slice(0,60)}}\r\n 60\">...\r\n \r\n \r\n \r\n Value\r\n \r\n {{element.value}}\r\n \r\n \r\n \r\n \r\n UOM\r\n {{element.uom}}\r\n \r\n \r\n Last Modified By\r\n {{element.lastModifiedBy}}\r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n There are no records to display.\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, Inject, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AlertComponent } from 'src/app/common/alert/alert.component';\r\nimport { ConfirmModelComponent } from 'src/app/common/confirm-model/confirm-model.component';\r\nimport { Globals } from 'src/app/models/globals.model';\r\nimport { GlobalService } from 'src/app/services/global.service';\r\nimport { HttpService } from 'src/app/services/http.service';\r\nimport { UOMData } from 'src/assets/UOMData';\r\nimport { FormulaList } from '../kpi-models/FormulaList';\r\nimport { dataSourceModel } from '../../models/dataSource.model';\r\nimport { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\nlet tagNames = [];\r\nlet prefixTag = '';\r\n\r\nexport interface FBDialogData {\r\n FormulaList: FormulaList[];\r\n UsedFor: string;\r\n}\r\n\r\nexport interface Constant {\r\n constantId: string;\r\n value: string;\r\n uom: string;\r\n createdBy: string;\r\n lastModifiedBy: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-create-formula-model',\r\n templateUrl: './create-formula-model.component.html',\r\n styleUrls: ['./create-formula-model.component.scss']\r\n})\r\nexport class CreateFormulaModelComponent implements OnInit {\r\n isLoader = false;\r\n formulaBuilderForm = new UntypedFormGroup({\r\n frequencyHcf: new UntypedFormControl('', [Validators.required, Validators.min(5), Validators.max(10080)]),\r\n siConversionIgnored: new UntypedFormControl(false),\r\n uomType: new UntypedFormControl('', Validators.required),\r\n uom: new UntypedFormControl('', Validators.required),\r\n formulaName: new UntypedFormControl('', Validators.required),\r\n formulaExpression: new UntypedFormControl('', Validators.required),\r\n dataSource: new UntypedFormControl('')\r\n });\r\n processNames: string[];\r\n existingFormulae = [];\r\n constants = [];\r\n mathFunctions = [];\r\n uomMap: Array;\r\n uomTypes: string[];\r\n uoms: string[];\r\n result: any;\r\n formulaList: FormulaList[] = [];\r\n apiUri: string;\r\n graphUri: string;\r\n storageRequired = false;\r\n lastFormulaVisitedIndex = 0;\r\n modelTitle = 'Add Formula';\r\n deletedKpiIds: string[] = [];\r\n initialAction;\r\n shortcutKey = '';\r\n prefixTag = '';\r\n selectedDataSource: dataSourceModel = new dataSourceModel();\r\n dataSources = new dataSourceModel();\r\n expressionItems = {};\r\n @ViewChild('txtExpression') expressionElement: ElementRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: FBDialogData,\r\n public globals: Globals,\r\n public globalService: GlobalService, \r\n private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n private readonly http: HttpClient,\r\n private readonly httpService: HttpService,\r\n private readonly cd: ChangeDetectorRef\r\n ) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n this.formulaBuilderForm.controls['uom'].disable();\r\n this.uomTypes = Object.keys(UOMData);\r\n this.uomMap = Object.keys(UOMData).map(key => ({ type: key, value: UOMData[key] }));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoader = true;\r\n if (this.data.UsedFor === 'edit' || this.data.UsedFor === 'view') {\r\n this.initialAction = 'edit';\r\n this.preprocessingForEdit();\r\n this.modelTitle = 'Edit Formula - ' + this.formulaList[this.formulaList.length - 1].formulaName;\r\n if (this.data.UsedFor === 'view') {\r\n this.initialAction = 'view';\r\n this.modelTitle = 'View Formula - ' + this.formulaList[this.formulaList.length - 1].formulaName;\r\n this.formulaBuilderForm.disable();\r\n this.isLoader = false;\r\n }\r\n } else {\r\n this.addNewFormula('create');\r\n }\r\n if (this.data.UsedFor === 'edit' || this.data.UsedFor === 'create') {\r\n this.getDataSource();\r\n this.getMathFunctions();\r\n this.getFormulas();\r\n this.getConstants();\r\n this.isLoader = false;\r\n }\r\n this.formulaBuilderForm.controls['dataSource'].valueChanges.subscribe(data => {\r\n if (data !== null || data !== '') {\r\n this.selectedDataSource = data;\r\n }\r\n });\r\n this.resetExpressionData();\r\n }\r\n\r\n checkShortcut(event) { \r\n const keypress = event.key;\r\n switch (keypress) {\r\n case '@': {\r\n this.shortcutKey = '@';\r\n prefixTag = this.selectedDataSource.name + '_';\r\n tagNames = this.selectedDataSource.tags;\r\n this.setExpressionData('@', tagNames);\r\n break;\r\n }\r\n case '#': {\r\n this.shortcutKey = '#';\r\n prefixTag = '';\r\n tagNames = this.constants;\r\n this.setExpressionData('#', tagNames);\r\n break;\r\n }\r\n case '$': {\r\n this.shortcutKey = '$';\r\n prefixTag = '';\r\n tagNames = this.existingFormulae;\r\n this.setExpressionData('$', tagNames);\r\n break;\r\n }\r\n case '~': {\r\n this.shortcutKey = '~';\r\n prefixTag = '';\r\n tagNames = this.mathFunctions;\r\n this.setExpressionData('~', tagNames);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n setExpressionData(keyName, keyData){\r\n this.expressionItems = {\r\n mentions: [\r\n {\r\n triggerChar: keyName,\r\n items: keyData,\r\n mentionSelect: (e: any) => {\r\n if(keyName == '@'){\r\n return this.selectedDataSource.name + '_' + e.label + \" \";\r\n }\r\n else{\r\n return e.label + \" \";\r\n }\r\n \r\n },\r\n }]\r\n };\r\n }\r\n\r\n resetExpressionData(){\r\n this.expressionItems = {\r\n mentions: [\r\n {\r\n items: [],\r\n triggerChar: '@',\r\n mentionSelect: (e: any) => {\r\n return '';\r\n }\r\n },\r\n {\r\n items: [],\r\n triggerChar: '#',\r\n mentionSelect: (e: any) => {\r\n return '';\r\n }\r\n },\r\n {\r\n items: [],\r\n triggerChar: '$',\r\n mentionSelect: (e: any) => {\r\n return '';\r\n }\r\n },\r\n {\r\n items: [],\r\n triggerChar: '~',\r\n mentionSelect: (e: any) => {\r\n return '';\r\n }\r\n }\r\n ]\r\n };\r\n }\r\n\r\n itemSelected(event: any) {\r\n this.expressionElement.nativeElement.focus();\r\n this.resetExpressionData();\r\n }\r\n\r\n findChoices(searchText: string) {\r\n return tagNames.filter(item =>\r\n item.toLowerCase().includes(searchText.toLowerCase())\r\n );\r\n }\r\n\r\n /**\r\n * does preprocessing for edit/view data and maps data to formcontrols\r\n */\r\n preprocessingForEdit() {\r\n this.formulaList = [...this.data.FormulaList].reverse();\r\n this.lastFormulaVisitedIndex = this.formulaList.length - 1;\r\n const lastFormula = this.formulaList[this.lastFormulaVisitedIndex];\r\n this.formulaBuilderForm.controls['frequencyHcf'].setValue(lastFormula.frequency);\r\n const uomrequired = this.uomMap.filter(function (elem) {\r\n return elem.value.includes(lastFormula.targetUom);\r\n });\r\n if (uomrequired[0]) {\r\n this.formulaBuilderForm.controls['uomType'].setValue(uomrequired[0].type);\r\n }\r\n this.populateUOM();\r\n this.formulaBuilderForm.controls['uom'].setValue(lastFormula.targetUom);\r\n this.formulaBuilderForm.controls['formulaName'].setValue(lastFormula.formulaName);\r\n this.formulaBuilderForm.controls['formulaExpression'].setValue(lastFormula.userExpression);\r\n this.formulaBuilderForm.controls['siConversionIgnored'].setValue(lastFormula.ignoreSi);\r\n }\r\n\r\n /**\r\n * Calls API to get process names from backend api.\r\n */\r\n getDataSource() {\r\n this.isLoader = true;\r\n this.kpiFormulaService.getProcessNames().subscribe((data: dataSourceModel) => {\r\n this.dataSources = data;\r\n this.formulaBuilderForm.controls['dataSource'].setValue(this.dataSources[0], { onlySelf: true });\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Calls API to get math functions from backend api.\r\n */\r\n getMathFunctions() {\r\n this.kpiFormulaService.getMathFunctions().subscribe((data: string[]) => {\r\n this.mathFunctions = data;\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Calls API to get formula names from backend api.\r\n */\r\n getFormulas() {\r\n this.kpiFormulaService.getFormulaNames().subscribe((data: any): void => {\r\n for (let i = 0; i < data.length; i++) {\r\n this.existingFormulae[i] = data[i].formulaId;\r\n }\r\n if (this.data.UsedFor === 'edit') {\r\n for (let i = 0; i < this.formulaList.length - 1; i++) {\r\n this.existingFormulae.unshift(this.formulaList[i].formulaName);\r\n }\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n /**\r\n * calls API to get constants list\r\n */\r\n getConstants() {\r\n this.kpiFormulaService.getConstantsFormula().subscribe((data: Constant[]) => {\r\n for (let i = 0; i < data.length; i++) {\r\n this.constants[i] = data[i].constantId;\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * filteres processNames/existingformulae array and shows only those\r\n * which contains value provided\r\n * @param value value by which array is to be filtered\r\n * @param term which term is to be filtered formula/process/constant\r\n */\r\n private _filter(value: string, term): string[] {\r\n const filterValue = value.toLowerCase();\r\n if (term === 'process') {\r\n return this.processNames.filter(option => option.toLowerCase().includes(filterValue));\r\n } else if (term === 'formula') {\r\n return this.existingFormulae.filter(option => option.toLowerCase().includes(filterValue));\r\n } else {\r\n return this.constants.filter(option => option.toLowerCase().includes(filterValue));\r\n }\r\n }\r\n\r\n /**\r\n * appends a formula in formulalist and updates necessary variables\r\n */\r\n addNewFormula(callingFor: string) {\r\n const formula = {\r\n formulaId: '',\r\n frequency: 0,\r\n userExpression: '',\r\n formulaName: 'undefined *',\r\n targetUom: '',\r\n UOM: '',\r\n createdBy: '',\r\n lastModifiedBy: '',\r\n isDisabled: false,\r\n storageRequired: false,\r\n isNewlyAddedAtEdit: false,\r\n ignoreSi: false\r\n };\r\n if (callingFor === 'create') {\r\n this.formulaList.push(formula);\r\n this.storageRequired = false;\r\n this.lastFormulaVisitedIndex = this.formulaList.length - 1;\r\n } else {\r\n this.saveFormulaNameNExpression(this.formulaList.length - 1);\r\n const mainFormula = this.formulaList.splice(this.formulaList.length - 1, 1);\r\n formula.isNewlyAddedAtEdit = true;\r\n formula.storageRequired = true;\r\n this.formulaList.push(formula);\r\n this.formulaList.push(mainFormula[0]);\r\n this.cd.detectChanges();\r\n this.highlightCurrentNUpdateFormula(this.formulaList.length - 2);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * populate values in second dropdown on selection of value in first\r\n * @param uomType uomtype selected\r\n */\r\n populateUOM() {\r\n const _self = this;\r\n _self.result = this.uomMap.filter((u) => {\r\n if (this.formulaBuilderForm.controls['uomType'].value === u.type) {\r\n _self.uoms = u.value;\r\n this.formulaBuilderForm.controls['uom'].enable();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * updates data of intermediate formula in formulalist\r\n */\r\n saveIntermediate() {\r\n const index = this.storageRequired ? this.lastFormulaVisitedIndex : this.formulaList.length - 1;\r\n if (this.formulaBuilderForm.controls['formulaExpression'].value !== ''\r\n || this.formulaBuilderForm.controls['formulaName'].value !== '') {\r\n if (this.saveFormulaNameNExpression(index) !== false) {\r\n this.saveFormulaDetails(index);\r\n this.formulaList[index].storageRequired = true;\r\n this.formulaBuilderForm.controls['formulaExpression'].reset('');\r\n this.formulaBuilderForm.controls['formulaName'].reset('');\r\n if (!this.storageRequired) {\r\n this.addNewFormula('create');\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * updates provided formula name and expression in formulalist\r\n * @param index index of formula in formulalist\r\n */\r\n saveFormulaNameNExpression(index) {\r\n const formula = this.formulaList[index];\r\n formula.userExpression = this.formulaBuilderForm.controls['formulaExpression'].value;\r\n // checks if current formula name and existing formula name are different\r\n if (formula.formulaName !== this.formulaBuilderForm.controls['formulaName'].value) {\r\n // checks if formula with formula name is already there\r\n // if so, shows alert, resets formula name and returns false\r\n if (this.formulaList.filter(m => m.formulaName.toLowerCase() ===\r\n this.formulaBuilderForm.controls['formulaName'].value.toLowerCase()).length > 0) {\r\n this.globalService.showAlert(AlertComponent,\r\n {\r\n success: false,\r\n message: 'You cannot create formula with duplicate names'\r\n });\r\n this.formulaBuilderForm.controls['formulaName'].reset('');\r\n return false;\r\n }\r\n\r\n // removes existing name of intermediate formula from dropdown\r\n if (this.existingFormulae.includes(formula.formulaName)) {\r\n this.existingFormulae.splice(this.existingFormulae.indexOf(formula.formulaName), 1);\r\n }\r\n\r\n formula.formulaName = this.formulaBuilderForm.controls['formulaName'].value === '' ? 'undefined *'\r\n : this.formulaBuilderForm.controls['formulaName'].value;\r\n\r\n // adds updated formuala name in autocomplete\r\n if (!this.existingFormulae.includes(formula.formulaName)) {\r\n this.existingFormulae.unshift(formula.formulaName);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * updates remaining details of provided formula in formulalist\r\n * @param index index of formula in formulalist\r\n */\r\n saveFormulaDetails(index) {\r\n const formula = this.formulaList[index];\r\n formula.lastModifiedBy = this.globalService.loggedInUser;\r\n formula.UOM = this.formulaBuilderForm.controls['uomType'].value;\r\n formula.targetUom = this.formulaBuilderForm.controls['uom'].value;\r\n formula.createdBy = this.data.UsedFor === 'edit' ? formula.createdBy : this.globalService.loggedInUser;\r\n formula.frequency = this.formulaBuilderForm.controls['frequencyHcf'].value;\r\n formula.ignoreSi = this.formulaBuilderForm.controls['siConversionIgnored'].value;\r\n }\r\n\r\n /**\r\n * used for traversal between 2 formulae\r\n * @param index index of currently clicked formula in formulalist\r\n */\r\n traverseToAnotherFormula(index) {\r\n if (this.formulaList[this.lastFormulaVisitedIndex].storageRequired) {\r\n if (this.saveIntermediate() === false) {\r\n return false;\r\n }\r\n }\r\n\r\n this.highlightCurrentNUpdateFormula(index);\r\n }\r\n\r\n /**\r\n * Shows confirm popup for confirmation of delete of intermediate formula\r\n */\r\n deleteIntermediate() {\r\n const dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Deleting an intermediate formula would affect the formulas dependent on it. Are you sure you want to delete?'\r\n };\r\n this.globalService.openModelWindow(this.deleteIntermediateFormula, this, ConfirmModelComponent,\r\n '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n /**\r\n * deletes intermediate formula from formulalist and stores kpi id in another string array\r\n * @param thisRef reference for current component\r\n */\r\n deleteIntermediateFormula(thisRef: CreateFormulaModelComponent) {\r\n if (!thisRef.formulaList[thisRef.lastFormulaVisitedIndex].isNewlyAddedAtEdit) {\r\n thisRef.deletedKpiIds.push(thisRef.formulaList[thisRef.lastFormulaVisitedIndex].formulaId);\r\n }\r\n thisRef.formulaList.splice(thisRef.lastFormulaVisitedIndex, 1);\r\n thisRef.cd.detectChanges();\r\n thisRef.highlightCurrentNUpdateFormula(thisRef.lastFormulaVisitedIndex);\r\n }\r\n\r\n /**\r\n * highlights currenlty clicked formula and loads values of formulaname\r\n * and expression in form control and updates storage required field\r\n * @param index index of currently clicked formula\r\n */\r\n highlightCurrentNUpdateFormula(index) {\r\n const element = document.getElementsByClassName('highlighted')[0];\r\n if (element) {\r\n element.classList.remove('highlighted');\r\n }\r\n if (document.getElementById('fieldFormula_' + index)) {\r\n document.getElementById('fieldFormula_' + index).classList.add('highlighted');\r\n }\r\n this.storageRequired = this.formulaList[index].storageRequired;\r\n this.formulaBuilderForm.controls['formulaExpression'].setValue(this.formulaList[index].userExpression);\r\n this.formulaBuilderForm.controls['formulaName'].setValue(\r\n this.formulaList[index].formulaName === 'undefined *' ? '' : this.formulaList[index].formulaName);\r\n this.lastFormulaVisitedIndex = index;\r\n if (this.initialAction === 'edit') {\r\n if (this.formulaList[index].isNewlyAddedAtEdit) {\r\n this.data.UsedFor = 'create';\r\n } else {\r\n this.data.UsedFor = 'edit';\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * final save call which calls backend api and saves formula\r\n */\r\n SaveFormula() {\r\n this.saveFormulaNameNExpression(this.lastFormulaVisitedIndex);\r\n\r\n for (let index = 0; index < this.formulaList.length; index++) {\r\n this.saveFormulaDetails(index);\r\n }\r\n this.isLoader = true;\r\n this.kpiFormulaService.saveFinalFormula(this.deletedKpiIds, this.formulaList).subscribe((result: any): void => {\r\n this.isLoader = false;\r\n if (result.m_StringValue === 'Success') {\r\n this.dialogRef.close('Success');\r\n } else {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: result.m_StringValue });\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * get call on click of cancle button on update dialog box\r\n * closes dialog box with result as 'Cancel'\r\n */\r\n onCancelClick(): void {\r\n this.dialogRef.close('Cancel');\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{modelTitle}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Formula Name\r\n
\r\n \"intermediate\r\n {{formula.formulaName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
Use the prefix @ for tags, $ for formulas, # for constants and ~ for math functions
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{formulaBuilderForm.errors}}\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 { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { UntypedFormBuilder, UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { Globals } from '../../models/globals.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { evaluateFormula } from '../kpi-models/evaluateFormula';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\n@Component({\r\n selector: 'app-evaluate-formula-model',\r\n templateUrl: './evaluate-formula-model.component.html',\r\n styleUrls: ['./evaluate-formula-model.component.scss']\r\n})\r\nexport class EvaluateFormulaModelComponent implements OnInit {\r\n isLoader: boolean;\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 formulaDataSource: MatTableDataSource;\r\n mainFormulaName = this.data.formulaName;\r\n mainFormulaFrequency = this.data.formulaFrequency;\r\n mainFormulaExpression = this.data.formulaExpression;\r\n mainFormulaIgnoreSi = this.data.ignoreSi;\r\n displayedColumns: string[] = ['ConstantTag', 'ValueDataSource', 'UOM', 'EntryType'];\r\n inputArr = [];\r\n apiUri: string;\r\n evaluateClicked = false;\r\n isTypeOIAdded = false;\r\n formulaBuilderForm = new UntypedFormGroup({\r\n startTime: new UntypedFormControl({ value: new Date(new Date().setHours(0, 0, 0, 0)), disabled: false }, Validators.required),\r\n endTime: new UntypedFormControl({ value: new Date(new Date(new Date().setHours(0, 0, 0, 0)).getTime() + (this.data.formulaFrequency * 60 * 1000)), disabled: true }, Validators.required)\r\n });\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public dialog: MatDialog,\r\n public globals: GlobalService,\r\n public fb: UntypedFormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly httpService: HttpService,\r\n private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n public global: Globals) {\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoader = false;\r\n this.loadInitialData();\r\n }\r\n\r\n loadInitialData() {\r\n for (let i = 0; i < this.data.data.FormulaDetails.length; i++) {\r\n for (let c = 0; c < this.data.data.FormulaDetails[i].constants.length; c++) {\r\n let uniqueArr = this.inputArr.filter(item => item.ConstantTag == this.data.data.FormulaDetails[i].constants[c].constantId);\r\n if (uniqueArr.length == 0) {\r\n this.inputArr.push({\r\n ConstantTag: this.data.data.FormulaDetails[i].constants[c].constantId,\r\n ValueDataSource: this.data.data.FormulaDetails[i].constants[c].constantValue,\r\n UOM: this.data.data.FormulaDetails[i].constants[c].uom,\r\n EntryType: \"C\",\r\n isDisabled: true\r\n });\r\n }\r\n }\r\n for (let t = 0; t < this.data.data.FormulaDetails[i].tags.length; t++) {\r\n let uniqueArr = this.inputArr.filter(item => item.ConstantTag == this.data.data.FormulaDetails[i].tags[t].tagId);\r\n if (uniqueArr.length == 0) {\r\n this.inputArr.push({\r\n ConstantTag: this.data.data.FormulaDetails[i].tags[t].tagId,\r\n ValueDataSource: this.data.data.FormulaDetails[i].tags[t].tagId,\r\n UOM: this.data.data.FormulaDetails[i].tags[t].uom,\r\n EntryType: \"T\",\r\n isDisabled: true\r\n });\r\n }\r\n }\r\n } \r\n this.formulaDataSource = new MatTableDataSource(this.inputArr); \r\n }\r\n\r\n /**Cancels the pop-up */\r\n onCancelClick(value: boolean): void {\r\n this.dialogRef.close(value);\r\n }\r\n\r\n enableManualEntry(el) {\r\n el.isDisabled = !el.isDisabled;\r\n if (el.isDisabled) {\r\n el.ValueDataSource = el.ConstantTag;\r\n } else {\r\n el.ValueDataSource = '';\r\n }\r\n }\r\n\r\n updateEndDate(startDate) {\r\n this.formulaBuilderForm.patchValue({ endTime: new Date(startDate._selected.getTime() + (this.data.formulaFrequency * 60 * 1000)) });\r\n }\r\n \r\nfilterDataBeforeEvaluateFormula(){\r\n for (let f = 0; f < this.inputArr.length; f++) {\r\n if (this.inputArr[f].ConstantTag == this.inputArr[f].ValueDataSource) {\r\n this.inputArr[f].ValueDataSource = null;\r\n }\r\n }\r\n for (let i = 0; i < this.data.data.FormulaDetails.length; i++) {\r\n for (let t = 0; t < this.data.data.FormulaDetails[i].tags.length; t++) {\r\n let tagValue = this.inputArr.find((o, v) => {\r\n return o.ConstantTag === this.data.data.FormulaDetails[i].tags[t].tagId;\r\n });\r\n if(tagValue){\r\n this.data.data.FormulaDetails[i].tags[t].tagValue = tagValue.ValueDataSource;\r\n }\r\n }\r\n }\r\n}\r\n evaluateFormula() {\r\n this.filterDataBeforeEvaluateFormula();\r\n const formulaDtls: evaluateFormula = this.data.data.FormulaDetails;\r\n let stTime = new Date(this.formulaBuilderForm.get('startTime').value.toString().split('GMT')[0] + ' UTC').toISOString().split('.')[0];\r\n let edTime = new Date(this.formulaBuilderForm.get('endTime').value.toString().split('GMT')[0] + ' UTC').toISOString().split('.')[0];\r\n this.kpiFormulaService.getEvaluateFormula(stTime, edTime, formulaDtls).subscribe((result: any): void => {\r\n this.isLoader = true;\r\n //check valueType == 'O' (Output)\r\n const oResult = Array.isArray(result) ? result.filter(e => e.valueType == \"O\" || e.valueType == \"I\") : [];\r\n\r\n //format array as per required keys to match DataSource (removed 'Time' key)\r\n let partialOResult = oResult.map((\r\n { formulaElementName, uom, value, valueType }) => ({ formulaElementName, uom, value, valueType }));\r\n\r\n //change keys of objects to match DataSource keys (removed 'Time' key)\r\n let actualOResult = partialOResult.map(item => {\r\n return {\r\n ConstantTag: item.formulaElementName,\r\n ValueDataSource: item.value,\r\n UOM: item.uom,\r\n EntryType: item.valueType\r\n };\r\n });\r\n\r\n //add 'isDisabled' key to match DataSource keys (removed 'Time' key)\r\n const finalOIResult = actualOResult.map(v => ({...v, isDisabled: true}))\r\n \r\n let availableData = this.formulaDataSource.data;\r\n\r\n // 'availableData' is already present when pop-up is opened whereas 'finalOIResult' is new response data.\r\n \r\n // get matching object between 'finalOIResult' and 'availableData' for 'ValueDataSource: null' object\r\n // and save it in tempResult\r\n let tempResult = [];\r\n for (let i = 0; i < finalOIResult.length; i++) {\r\n for (let j = 0; j < availableData.length; j++) {\r\n if (finalOIResult[i].ConstantTag == availableData[j].ConstantTag) {\r\n tempResult.push(finalOIResult[i]);\r\n break;\r\n }\r\n }\r\n }\r\n \r\n // get matching object from 'availableData' and replace the 'ValueDataSource: null' object with 'tempResult' object\r\n // and update 'availableData' array\r\n for (let k = 0; k < availableData.length; k++) {\r\n for (let l = 0; l < tempResult.length; l++) {\r\n if (availableData[k].ConstantTag == tempResult[l].ConstantTag) {\r\n availableData[k].ValueDataSource = tempResult[l].ValueDataSource;\r\n break;\r\n }\r\n }\r\n } \r\n \r\n // and finally create merged data for 'formulaDataSource'\r\n let ids = new Set(availableData.map(d => d.ConstantTag));\r\n let mergedData = [...availableData, ...finalOIResult.filter(d => !ids.has(d.ConstantTag))];\r\n \r\n this.formulaDataSource.data = mergedData;\r\n \r\n this.isTypeOIAdded = true;\r\n this.evaluateClicked = false;\r\n this.isLoader = false;\r\n\r\n }, (error: any): void => {\r\n this.dialogRef.close(true);\r\n this.isLoader = false;\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error while evaluating Formula\" });\r\n });\r\n }\r\n\r\n updateTagValue(el, val) {\r\n el.ValueDataSource = val;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Evaluate Formula\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{mainFormulaFrequency}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Constants / Tags\r\n \r\n {{element.ConstantTag}}\r\n \r\n \r\n \r\n Value / Data Source\r\n \r\n {{element.ValueDataSource}}\r\n {{element.ValueDataSource}}\r\n\r\n \r\n \r\n\r\n {{element.ValueDataSource}}\r\n \r\n \r\n \r\n UOM\r\n \r\n {{element.UOM}}\r\n \r\n \r\n \r\n Manual Entry\r\n \r\n \r\n \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 { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { GlobalService } from '../../services/global.service';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { Globals } from '../../models/globals.model';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { evaluateFormula } from '../kpi-models/evaluateFormula';\r\nimport { evaluateFormulaResults } from '../kpi-models/evaluateFormulaResults';\r\nimport { EvaluateFormulaModelComponent } from '../evaluate-formula-model/evaluate-formula-model.component';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\n@Component({\r\n selector: 'app-evaluate-formula-results',\r\n templateUrl: './evaluate-formula-results.component.html',\r\n styleUrls: ['./evaluate-formula-results.component.scss']\r\n})\r\nexport class EvaluateFormulaResultsComponent implements OnInit {\r\n isLoader: boolean;\r\n formulaDataSource: MatTableDataSource;\r\n mainFormulaId = this.data.formulaId;\r\n mainFormulaExpression = this.data.formulaExpression;\r\n mainFormulaName = \"\";\r\n mainFormulaValue = 0;\r\n mainFormulaUOM = \"\";\r\n displayedColumns: string[] = ['ConstantTag', 'ValueDataSource', 'UOM', 'EntryType'];\r\n apiUri: string;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public globals: GlobalService,\r\n public dialog: MatDialog,\r\n public fb: UntypedFormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly httpService: HttpService,\r\n private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n public global: Globals\r\n ) {\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isLoader = false;\r\n this.loadInitialData();\r\n }\r\n\r\n loadInitialData() {\r\n this.kpiFormulaService.getTestFormulaResult(this.mainFormulaId).subscribe((result: evaluateFormulaResults[]) => {\r\n let itemIndex = result.findIndex(item => item.entryType == 'C'); // Moving constant to front\r\n if (itemIndex > -1) {\r\n result.splice(0, 0, result.splice(itemIndex, 1)[0]); // Moving constant to front\r\n }\r\n\r\n itemIndex = result.findIndex(item => item.entryType == 'O');\r\n\r\n if (itemIndex == -1) {\r\n this.globals.showAlert(AlertComponent, { success: false, message: \"Error while evaluating formula\" });\r\n } else {\r\n this.mainFormulaName = result[itemIndex].tagId;\r\n this.mainFormulaValue = result[itemIndex].tagValue;\r\n this.mainFormulaUOM = result[itemIndex].uom;\r\n\r\n result.splice(result.length - 1, 0, result.splice(itemIndex, 1)[0]); // Moving output to end\r\n result.pop();\r\n }\r\n this.formulaDataSource = new MatTableDataSource(result);\r\n });\r\n }\r\n\r\n /**Cancels the pop-up */\r\n onCancelClick(value: boolean): void {\r\n this.dialogRef.close(value);\r\n }\r\n\r\n backEvaluate() {\r\n this.dialogRef.close(true);\r\n\r\n const dataTbSent: any = {};\r\n this.kpiFormulaService.getFormulaDetailsOnKpiId(this.data.formulaId).subscribe((data: evaluateFormula[]) => {\r\n dataTbSent.FormulaDetails = data;\r\n const dataToPass = {\r\n title: 'Evaluate Formula',\r\n formulaName: this.data.formulaName,\r\n formulaFrequency: this.data.formulaFrequency,\r\n formulaExpression: this.data.formulaExpression,\r\n data: dataTbSent\r\n };\r\n this.dialog.open(EvaluateFormulaModelComponent, {\r\n width: '1300px',\r\n disableClose: true,\r\n panelClass: 'confirm-modalbox',\r\n data: dataToPass\r\n });\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n}\r\n","
\r\n \"close\r\n
Evaluate Formula
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Constants / Tags\r\n \r\n {{element.tagId}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Value / Data Source\r\n \r\n {{element.tagValue}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n UOM\r\n \r\n {{element.uom}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manual Entry\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","export class ConstantModel {\r\n constantId: string;\r\n value: number;\r\n uom: string;\r\n lastModifiedBy: string;\r\n createdBy?: string;\r\n filterResponse?:any\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { CreateFormulaModelComponent } from './create-formula-model/create-formula-model.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-kpiformulabuilder',\r\n templateUrl: './kpiformulabuilder.component.html',\r\n styleUrls: ['./kpiformulabuilder.component.css']\r\n})\r\nexport class KpiFormulaBuilderComponent {\r\n fbDialogRef = null;\r\n constructor(public dialog: MatDialog,\r\n public globals: GlobalService,\r\n private readonly titleService: Title,\r\n private readonly router: Router\r\n ) {\r\n titleService.setTitle('Formula Builder');\r\n }\r\n\r\n /**\r\n * open create model on click of + button\r\n */\r\n openFBDialog() {\r\n if (this.fbDialogRef == null) {\r\n const data: any = {};\r\n data.FormulaList = null;\r\n data.UsedFor = 'create';\r\n this.fbDialogRef = this.dialog.open(CreateFormulaModelComponent, {\r\n data: data, panelClass: 'custom-modalbox'\r\n });\r\n this.fbDialogRef.afterClosed().subscribe(result => {\r\n this.fbDialogRef = null;\r\n if (result === 'Success') {\r\n this.globals.showAlert(AlertComponent, { success: true, message: 'Formula Created Successfully' });\r\n this.router.navigate(['FormulaBuilder/viewFormula']);\r\n } else if (result !== 'Cancel') {\r\n this.globals.showAlert(AlertComponent, { success: false, message: result.m_StringValue });\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n Formula Builder\r\n \r\n
\r\n \r\n
","import { Component, Inject, ViewChild, OnDestroy } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { FormulaList } from '../kpi-models/FormulaList';\r\nimport { GlobalService } from './../../services/global.service';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { ConfirmModelComponent } from '../../common/confirm-model/confirm-model.component';\r\nimport { Globals } from 'src/app/models/globals.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { CreateFormulaModelComponent } from '../create-formula-model/create-formula-model.component';\r\nimport { EvaluateFormulaModelComponent } from '../evaluate-formula-model/evaluate-formula-model.component';\r\nimport { HttpService } from 'src/app/services/http.service';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router, RouterEvent } from '@angular/router';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\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 { evaluateFormula } from '../kpi-models/evaluateFormula';\r\nimport { KPIFormulaBuilderService } from 'src/app/services/kpi-formula-builder.service';\r\n\r\n@Component({\r\n selector: 'app-viewFormula',\r\n templateUrl: './viewFormula.component.html',\r\n styleUrls: ['./viewFormula.component.css']\r\n})\r\nexport class ViewFormulaComponent implements OnDestroy {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n public destroyed = new Subject();\r\n formulaList: MatTableDataSource;\r\n isLoader = false;\r\n emptyData = false;\r\n delKpiDetails: any;\r\n apiUri: string;\r\n graphUri: string;\r\n headers = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n };\r\n displayedColumns = ['formulaId', 'userExpression', 'targetUom', 'lastModifiedBy', 'actions'];\r\n\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: FormulaList[];\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n\r\n constructor(\r\n private readonly httpClient: HttpClient, \r\n public dialog: MatDialog, \r\n public globals: GlobalService,\r\n public global: Globals, \r\n private readonly httpService: HttpService,\r\n private readonly kpiFormulaService: KPIFormulaBuilderService,\r\n private readonly titleService: Title,\r\n private readonly router: Router) {\r\n const emptyList: any[] = [];\r\n this.formulaList = new MatTableDataSource(emptyList);\r\n titleService.setTitle('Formula Builder');\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.global.config.graphApi_client_resourceUri;\r\n this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroyed)\r\n ).subscribe(() => {\r\n this.getToken()\r\n });\r\n }\r\n getToken() {\r\n this.kpiFormulaService.getTokendata().subscribe(locData => {\r\n {\r\n this.GetFormulaList();\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * gets called on click of edit button.\r\n * opens edit dialog and takes result from it and\r\n * opens alert box on required cases.\r\n * @param rowData row to be edited\r\n * @param actionType type of action\r\n */\r\n openDialog(rowData, actionType) {\r\n this.isLoader = true;\r\n const dataTbSent: any = {};\r\n this.kpiFormulaService.getFormulaOnKpiId(rowData.formulaId).subscribe((data: FormulaList[]) => {\r\n dataTbSent.FormulaList = data;\r\n dataTbSent.UsedFor = actionType;\r\n const dialogRef = this.dialog.open(CreateFormulaModelComponent, {\r\n data: dataTbSent, panelClass: 'custom-modalbox'\r\n });\r\n \r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === 'Success') {\r\n this.globals.showAlert(AlertComponent, { success: true, message: 'Updated Successfully' });\r\n this.GetFormulaList();\r\n } else if (result !== 'Cancel') {\r\n this.globals.showAlert(AlertComponent, { success: false, message: result.m_StringValue });\r\n }\r\n });\r\n this.isLoader = false;\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n testFormula(rowData) {\r\n this.isLoader = true;\r\n const dataTbSent: any = {};\r\n this.kpiFormulaService.getFormulaDetailsOnKpiId(rowData.formulaId).subscribe((data: evaluateFormula[]) => {\r\n dataTbSent.FormulaDetails = data;\r\n const dataToPass = {\r\n title: 'Evaluate Formula',\r\n formulaName: rowData.formulaName,\r\n formulaFrequency: rowData.frequency,\r\n formulaExpression: rowData.userExpression,\r\n ignoreSi: dataTbSent.FormulaDetails[0].ignoreSi,\r\n data: dataTbSent\r\n };\r\n this.dialog.open(EvaluateFormulaModelComponent, {\r\n width: '1300px',\r\n disableClose: true,\r\n panelClass: 'confirm-modalbox',\r\n data: dataToPass\r\n });\r\n this.isLoader = false;\r\n }, (error) => {\r\n this.isLoader = false;\r\n console.log(error);\r\n });\r\n }\r\n\r\n /**\r\n * Calls backend api for getting list of formulae\r\n * set data to mat table datasource\r\n * calls further method used as primary authorization\r\n */\r\n GetFormulaList() {\r\n this.isLoader = true;\r\n this.emptyData = false;\r\n this.kpiFormulaService.getFormulaNames().subscribe((data: any): void => {\r\n if (data.length > 0) {\r\n this.isLoader = false;\r\n this.masterData = [...data];\r\n this.formulaList = new MatTableDataSource(data);\r\n this.formulaList.paginator = this.paginator;\r\n this.formulaList.sort = this.sort;\r\n this.setDisabledForUnAuthorizedUser();\r\n if (this.filterList.length == 0) {\r\n this.createFilterList();\r\n }\r\n this.isLoader = false;\r\n } else {\r\n this.emptyData = true;\r\n this.isLoader = false;\r\n this.formulaList = new MatTableDataSource(data);\r\n }\r\n }, (error) => {\r\n this.isLoader = false;\r\n });\r\n }\r\n\r\n /**\r\n * set disbaled property for each formula.\r\n * works as a primary authorization.\r\n */\r\n setDisabledForUnAuthorizedUser() {\r\n for (let i = 0; i < this.formulaList.filteredData.length; i++) {\r\n if (this.formulaList.filteredData[i].createdBy !== this.globals.loggedInUser && this.globals.globals.rbacName !== 'Platform Admin') {\r\n this.formulaList.filteredData[i].isDisabled = true;\r\n }\r\n }\r\n }\r\n\r\n // function to delete the entry\r\n deleteFormula(row) {\r\n this.delKpiDetails = row;\r\n const dataToPass = {\r\n title: 'Delete',\r\n isDelete: true,\r\n message: 'Are you sure to delete : ' + row.formulaId + ' ? Intermediate formulae dependent on this will also be deleted.'\r\n };\r\n this.globals.openModelWindow(this.deleteFormulaOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n /**\r\n * Calls post method for deletion of a formula and\r\n * opens popup according to result.\r\n * @param thisRef references current component\r\n */\r\n deleteFormulaOnConfirm(thisRef: ViewFormulaComponent) {\r\n thisRef.isLoader = true;\r\n thisRef.kpiFormulaService.getDeleteFormula(thisRef.delKpiDetails).subscribe((result: any): void => {\r\n if (result === 'Successfully deleted') {\r\n thisRef.globals.showAlert(AlertComponent, { success: true, message: result });\r\n } else {\r\n thisRef.globals.showAlert(AlertComponent, { success: false, message: result.m_StringValue });\r\n }\r\n thisRef.GetFormulaList();\r\n thisRef.isLoader = true;\r\n });\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let cols: string[] = ['formulaId', 'userExpression', 'targetUom', 'lastModifiedBy'];\r\n for (let a = 0; a < cols.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n tempFilter.fieldName = this.globals.replaceDisplayText(cols[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n let unique;\r\n if (cols[a] == \"formulaId\") {\r\n unique = [...new Set(this.formulaList.data.map(a => a.formulaId))];\r\n } else if (cols[a] == \"userExpression\") {\r\n unique = [...new Set(this.formulaList.data.map(a => a.userExpression))];\r\n } else if (cols[a] == \"targetUom\") {\r\n unique = [...new Set(this.formulaList.data.map(a => a.targetUom))];\r\n } else if (cols[a] == \"lastModifiedBy\") {\r\n unique = [...new Set(this.formulaList.data.map(a => a.lastModifiedBy))];\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.formulaList.data = this.globals.conditionalDataFiltering(filterResponse, this.formulaList.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n if (index >= 0) {\r\n this.selectedFilters.splice(index, 1);\r\n this.formulaList.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.formulaList.data = this.globals.conditionalDataFiltering(element, this.formulaList.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'app-editBox',\r\n templateUrl: './editBox.component.html',\r\n styleUrls: ['./viewFormula.component.css']\r\n})\r\nexport class EditBoxComponent {\r\n [x: string]: any;\r\n isLoader = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: FormulaList, private readonly httpClient: HttpClient, public globals: GlobalService,\r\n public global: Globals, private readonly kpiFormulaService: KPIFormulaBuilderService) {\r\n this.apiUri = this.global.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.global.config.graphApi_client_resourceUri;\r\n }\r\n\r\n /**\r\n * calls update post call and returns result\r\n * @param data data of formula to be edited\r\n */\r\n public OnUpdateClick(data): void {\r\n this.isLoader = true;\r\n this.data.lastModifiedBy = this.globals.loggedInUser;\r\n this. kpiFormulaService.getEditFormula(data).subscribe((result: any): void => {\r\n this.isLoader = false;\r\n this.dialogRef.close(result);\r\n });\r\n }\r\n\r\n /**\r\n * get call on click of cancle button on update dialog box\r\n * closes dialog box with result as 'Cancel'\r\n */\r\n onCancelClick(): void {\r\n this.dialogRef.close('Cancel');\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 Formula Name\r\n {{element.formulaId}}\r\n \r\n\r\n \r\n \r\n Expression\r\n {{element.userExpression}}\r\n \r\n\r\n \r\n \r\n UOM\r\n {{element.targetUom}}\r\n \r\n\r\n \r\n \r\n Last Modified By\r\n {{element.lastModifiedBy}}\r\n \r\n\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 \"close\r\n
Edit Detailsssss
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","export class dataSourceModel {\r\n name: string;\r\n tags: string[];\r\n\r\n constructor() {\r\n this.name = '';\r\n this.tags = [];\r\n }\r\n}\r\n","export class FilterTags{\r\n constructor(\r\n public tagId: any = '',\r\n public location: any = '',\r\n public unit: any = '',\r\n public equipment: any = '',\r\n public useCase: any = ''\r\n ) { } \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 foundationPlatformApi_client_resourceUri: \"\",\r\n foundationPlatformApi_client_resourceScope: \"\",\r\n graphApi_client_resourceUri: \"\",\r\n graphApi_client_resourceScope: \"\",\r\n platformAdminApi_client_resourceUri: \"\",\r\n platformAdminApi_client_resourceScope: \"\"\r\n };\r\n\r\n userName = '';\r\n name: string = '';\r\n userShortName: string;\r\n userEmail: string;\r\n rbacName: string;\r\n groups: any = [];\r\n\r\n subscription = '';\r\n releaseDetails: any;\r\n}\r\n","export class RulesDetailModel{\r\n sequence: number;\r\n ruleId: number;\r\n cleansingMethod: string;\r\n cleansingMethodModified?: string;\r\n value: string;\r\n cleansingRuleConfigId: number;\r\n evaluateInfluencingTag: boolean = false;\r\n influencingTag: string;\r\n condition: string;\r\n cleansingQualifier: string;\r\n}\r\n","export class RulesLabelModel {\r\n id: number;\r\n cleansingMethod: string;\r\n labelName: string;\r\n inputType: string;\r\n\r\n constructor(id: number, cleansingMethod: string, labelName: string, inputType: string) {\r\n this.id = id;\r\n this.cleansingMethod = cleansingMethod;\r\n this.labelName = labelName;\r\n this.inputType = inputType;\r\n }\r\n}\r\n","import { RulesDetailModel } from \"./rules.detail.model\";\r\n\r\nexport class RulesModel{\r\n cleansingRuleConfigId: number;\r\n dataSourceId: number;\r\n dataSourceName: string;\r\n tagName: string;\r\n createdBy: string;\r\n updatedBy: string;\r\n createdDate?: string;\r\n lastUpdatedDate?: string;\r\n cleansingRules: RulesDetailModel[];\r\n filterResponse?:any\r\n}\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { Router, Event as NavigationEvent, NavigationEnd } 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 { Refinery } from '../models/refinery.model';\r\nimport { Tenant } from '../models/tenant.model';\r\nimport { GlobalService } from '../services/global.service';\r\nimport { TenantService } from '../services/tenant.service';\r\nimport { ThemeService } from '../services/theme.service';\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 userName: string;\r\n userShortName: string;\r\n unreadNotifications: number = 0;\r\n rbacName: string = '';\r\n countryCode: any;\r\n countryList: any;\r\n event$;\r\n routeUrl: string;\r\n releaseDetails: any;\r\n zeroNotification = false;\r\n errorNotification = false;\r\n notificationLimit = 10;\r\n tenantList: Tenant[];\r\n tenantName: string;\r\n refineryName: string;\r\n refineryList: string[];\r\n refinerytMap: Refinery[];\r\n isdataPlatform = true;\r\n constructor(private readonly authService: MsalService,\r\n public dialog: MatDialog, public globals: Globals, public globalService: GlobalService,\r\n public themeService: ThemeService, public _router: Router, private readonly tenantService: TenantService) {\r\n\r\n this.countryList = [\r\n {\r\n \"Id\": 1,\r\n \"Name\": \"English\",\r\n \"Code\": \"EN\",\r\n },\r\n ];\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.event$\r\n = this._router.events\r\n .subscribe(\r\n (event: NavigationEvent) => {\r\n if (event instanceof NavigationEnd) {\r\n this.routeUrl = event.url;\r\n let urlName = this.routeUrl.split(\"/\")\r\n if (urlName[1] == \"FormulaBuilder\" || urlName[1] == \"DataCleansing\"){\r\n this.isdataPlatform = false\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 /**\r\n * binds tenant to dropdown as per refinery slected\r\n */\r\n populateTenant(refineryName: string) {\r\n this.refinerytMap.forEach((u) => {\r\n if (refineryName === u.refineryName) {\r\n this.refineryName = refineryName;\r\n this.tenantList = u.tenantList;\r\n if (this.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 }\r\n\r\n getReleaseDetails() {\r\n this.releaseDetails = this.globals.releaseDetails;\r\n }\r\n\r\n selectFlag(Code: any) {\r\n this.countryCode = Code;\r\n }\r\n\r\n toggleTheme() {\r\n if (this.themeService.isDarkTheme()) {\r\n this.themeService.setLightTheme();\r\n } else {\r\n this.themeService.setDarkTheme();\r\n }\r\n }\r\n\r\n goToHome() {\r\n window.location.href = this.globals.config.platformHomeUrl;\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.tenantService.setCurrentTenant(tenant);\r\n const currentUrl = this._router.url;\r\n if (currentUrl) {\r\n switch (currentUrl.split('/')[1]) {\r\n case 'FormulaBuilder':\r\n this._router.navigate(['FormulaBuilder']);\r\n break;\r\n\r\n case 'DataPlatform':\r\n this._router.navigate(['DataPlatform']);\r\n break;\r\n\r\n case 'DataCleansing':\r\n this._router.navigate(['DataCleansing']);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.event$.unsubscribe();\r\n }\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 this.getGroupId(response.value);\r\n\r\n /**\r\n * Some queries against Microsoft Graph return multiple pages of data either due to server-side paging \r\n * or due to the use of the $top query parameter to specifically limit the page size in a request. \r\n * When a result set spans multiple pages, Microsoft Graph returns an @odata.nextLink property in \r\n * the response that contains a URL to the next page of results.\r\n * learn more at https://docs.microsoft.com/graph/paging\r\n */\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n },\r\n error: (err: AuthError) => {\r\n console.log(err)\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n this.authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n this.service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.getGroupId(response.value);\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n getGroupId(value) {\r\n return value.map(v => this.groups.push(v.id));\r\n }\r\n\r\n private syncGroups() {\r\n this.service.user.groupIDs = this.groups;\r\n this.route.params.subscribe(\r\n (params: Params) => {\r\n this.router.navigate(['/' + params.redirectPath]);\r\n });\r\n }\r\n\r\n handleNextPage(nextPage): void {\r\n this.service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPage(response['@odata.nextLink'])\r\n } else {\r\n this.syncGroups();\r\n }\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource, MatTable } from '@angular/material/table';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { Globals } from '../models/globals.model';\r\nimport { ModalComponent } from '../tagmaster/tagmaster.component';\r\nimport { HttpService } from './../services/http.service';\r\nimport { TagMasterService } from './../services/tagmaster-service';\r\nimport { GlobalService } from '../services/global.service';\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 { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-pi-point',\r\n templateUrl: './pi-point.component.html',\r\n styleUrls: ['./pi-point.component.css']\r\n})\r\nexport class PiPointComponent implements OnInit {\r\n public destroyed = new Subject();\r\n piPointList: MatTableDataSource;\r\n noData;\r\n data = {\r\n \"tagId\": \"\",\r\n \"tagDesc\": \"\",\r\n \"engUnits\": \"\",\r\n \"locationName\": \"\",\r\n \"locIdFromPP\": \"\",\r\n \"action\": \"Create\"\r\n };\r\n firstTableClass: string = \"hideData\";\r\n isLoader: boolean = false;\r\n displayedColumns = ['tag', 'locationName', 'descriptor', 'engUnits', 'pointSource', 'pointType', 'pointTypeX', 'Action'];\r\n\r\n @ViewChild(MatPaginator) piPointPaginator: MatPaginator;\r\n @ViewChild(MatSort) piPointTableSort: MatSort;\r\n tagFilter = new UntypedFormControl('');\r\n locationFilter = new UntypedFormControl('');\r\n engUnitsFilter = new UntypedFormControl('');\r\n pointSourceFilter = new UntypedFormControl('');\r\n configuredFilter = new UntypedFormControl('');\r\n pageSize = 50;\r\n pageIndex = 0;\r\n sortColumn = 'tag';\r\n sortDirection = 'asc';\r\n filterValues = {\r\n tag: '',\r\n locationName: '',\r\n engUnits: '',\r\n pointSource: '',\r\n configured: ''\r\n };\r\n\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n\r\n constructor(\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpService: HttpService,\r\n public tagMasterService: TagMasterService,\r\n public dialog: MatDialog,\r\n public router: Router,\r\n public _router: ActivatedRoute) {\r\n const emptyList: any[] = [];\r\n this.piPointList = new MatTableDataSource(emptyList);\r\n }\r\n\r\n ngOnInit() {\r\n this.getPiPointList(); \r\n\r\n this.locationFilter.valueChanges\r\n .subscribe(\r\n locationName => {\r\n this.filterValues.locationName = locationName;\r\n this.piPointList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.tagFilter.valueChanges\r\n .subscribe(\r\n tag => {\r\n this.filterValues.tag = tag;\r\n this.piPointList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.engUnitsFilter.valueChanges\r\n .subscribe(\r\n engUnits => {\r\n this.filterValues.engUnits = engUnits;\r\n this.piPointList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.pointSourceFilter.valueChanges\r\n .subscribe(\r\n pointSource => {\r\n this.filterValues.pointSource = pointSource;\r\n this.piPointList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.configuredFilter.valueChanges\r\n .subscribe(\r\n configured => {\r\n this.filterValues.configured = configured;\r\n this.piPointList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n }\r\n\r\n public getPiPointList() {\r\n this.isLoader = true; \r\n this.tagMasterService.getPiPoint((this.pageIndex + 1), this.pageSize, this.sortColumn, this.sortDirection)\r\n .subscribe((response: any): void => {\r\n this.isLoader = false;\r\n this.masterData = [...response.lstPiPoint];\r\n this.piPointList = new MatTableDataSource(response.lstPiPoint);\r\n this.noData = this.piPointList.connect().pipe(map(data => data.length === 0));\r\n this.piPointPaginator.length = response.totalCount;\r\n this.firstTableClass = \"showData\";\r\n this.filterList = [];\r\n this.createFilterList();\r\n }, error => {\r\n console.log('error', error);\r\n });\r\n /*NOSONAR\r\n //this.piPointTableSort.sortChange.subscribe(() => {\r\n // debugger;\r\n // //this.piPointList.sort = this.piPointTableSort;\r\n // this.onSortChange();\r\n //});\r\n */\r\n }\r\n\r\n onSortChange() {\r\n this.sortColumn = this.piPointTableSort.active;\r\n if (this.piPointTableSort.direction == 'asc') {\r\n this.sortDirection = 'desc';\r\n }\r\n else {\r\n this.sortDirection = 'asc';\r\n }\r\n this.getPiPointList();\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.pageIndex = event.pageIndex;\r\n this.pageSize = event.pageSize;\r\n this.getPiPointList();\r\n }\r\n\r\n configureTag(rowData): void {\r\n Object.keys(this.data).forEach(k => delete this.data[k]);\r\n this.processConfig(rowData);\r\n \r\n this.dialog.open(ModalComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: this.data\r\n }).afterClosed().subscribe(result => {\r\n \r\n if (result.value) {\r\n this.getPiPointList();\r\n }\r\n });\r\n }\r\n\r\n processConfig(rowData) {\r\n this.data.tagId = rowData.tag;\r\n this.data.tagDesc = rowData.descriptor;\r\n this.data.engUnits = rowData.engUnits;\r\n this.data.locationName = rowData.locationName;\r\n this.data.locIdFromPP = rowData.locationId;\r\n this.isLoader = false;\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n for (let a = 0; a < this.displayedColumns.length - 1; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(this.displayedColumns[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n if (this.displayedColumns[a] == \"tag\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.tag)));\r\n } else if (this.displayedColumns[a] == \"locationName\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.locationName)));\r\n } else if (this.displayedColumns[a] == \"descriptor\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.descriptor)));\r\n } else if (this.displayedColumns[a] == \"engUnits\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.engUnits)));\r\n } else if (this.displayedColumns[a] == \"pointSource\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.pointSource)));\r\n } else if (this.displayedColumns[a] == \"pointType\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.pointType)));\r\n } else if (this.displayedColumns[a] == \"pointTypeX\") {\r\n unique = Array.from(new Set(this.piPointList.data.map(a => a.pointTypeX)));\r\n }\r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.piPointList.data = this.globalService.conditionalDataFiltering(filterResponse, this.piPointList.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n console.dir(index)\r\n if (index >= 0) {\r\n console.dir(\"loaded \")\r\n this.selectedFilters.splice(index, 1);\r\n this.piPointList.data = this.masterData.slice(0);\r\n console.dir(this.masterData.data)\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.piPointList.data = this.globalService.conditionalDataFiltering(element, this.piPointList.data);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Pi Point\r\n
\r\n\r\n
\r\n
\r\n \r\n search\r\n
\r\n
\r\n \r\n \r\n {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Tag\r\n {{row.tag}}\r\n \r\n \r\n Location\r\n {{row.locationName}}\r\n \r\n \r\n \r\n Description\r\n \r\n \r\n {{((row.descriptor != null && row.descriptor.length > 45 ) ? row.descriptor.substring(0, 40) + \"...\" : row.descriptor)}}\r\n \r\n \r\n \r\n Engineering Units\r\n {{row.engUnits != null && row.engUnits}} \r\n \r\n \r\n Point Source\r\n {{row.pointSource}} \r\n \r\n \r\n \r\n Point Type\r\n \r\n {{row.pointType}} \r\n \r\n \r\n \r\n Point Type X\r\n \r\n {{row.pointTypeX}} \r\n \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n add_circle\r\n \r\n \r\n \r\n \r\n \r\n \r\n check_circle\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
\r\n","import { Component, OnInit, ViewChild, ChangeDetectorRef, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } 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 { GlobalService } from './../services/global.service';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { PiHistoryService } from './../services/pihistory-service';\r\nimport { map } from 'rxjs/operators';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { RunPIHistoryDataComponent } from './run-pihistory-data/run-pihistory-data.component';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { FilterFieldTypes } from '../shared/common-constants';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-pihistory-data',\r\n templateUrl: './pihistory-data.component.html',\r\n styleUrls: ['./pihistory-data.component.css']\r\n})\r\nexport class pihistoryDataComponent implements OnInit {\r\n\r\n [x: string]: any;\r\n runList: MatTableDataSource;\r\n @ViewChild('runsTableSort', { static: true }) public runsTableSort: MatSort;\r\n @ViewChild('runsPaginator', { static: true }) runsPaginator: MatPaginator;\r\n firstTableClass: string = \"hideData\";\r\n noData;\r\n isLoader: boolean = false;\r\n nameFilter = new UntypedFormControl('');\r\n statusFilter = new UntypedFormControl('');\r\n displayedColumns = ['runBy', 'runTime', 'lastCheckedStaus', 'parameters', 'Action'];\r\n filterValues = {\r\n runBy: '',\r\n status: ''\r\n };\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n\r\n\r\n constructor(\r\n public globalService: GlobalService,\r\n private readonly httpService: HttpService,\r\n private readonly piHistoryService: PiHistoryService,\r\n private readonly router: Router,\r\n private readonly _router: ActivatedRoute,\r\n public dialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.refreshAllRuns();\r\n this.nameFilter.valueChanges\r\n .subscribe(\r\n runBy => {\r\n this.filterValues.runBy = runBy;\r\n this.runList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.statusFilter.valueChanges\r\n .subscribe(\r\n status => {\r\n this.filterValues.status = status;\r\n this.runList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n }\r\n\r\n getAllHistoryRuns() {\r\n this.isLoader = true;\r\n this.piHistoryService.getAllRuns().subscribe((response: any): void => {\r\n if (response.length > 0) {\r\n this.isLoader = false;\r\n this.masterData = [...response];\r\n this.runList = new MatTableDataSource(response);\r\n this.noData = this.runList.connect().pipe(map(data => data.length === 0));\r\n this.runList.sort = this.runsTableSort;\r\n this.runList.paginator = this.runsPaginator;\r\n this.firstTableClass = \"showData\";\r\n if (this.filterList.length == 0) {\r\n this.createFilterList();\r\n }\r\n } else {\r\n this.isLoader = false;\r\n }\r\n });\r\n }\r\n checkRun(row) {\r\n this.piHistoryService.getUpdatedRun(row.runId).subscribe((response: any): void => {\r\n row.status = response.value.status;\r\n });\r\n }\r\n\r\n refreshAllRuns() {\r\n this.piHistoryService.refreshAll().subscribe((response: any): void => {\r\n this.getAllHistoryRuns();\r\n });\r\n }\r\n\r\n deserialize(json): any[] {\r\n let collection: any[] = [];\r\n collection.push(JSON.parse(json));\r\n return collection;\r\n }\r\n\r\n viewParameterDilog(parameter): void {\r\n this.dialog.open(ParameterModalComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: this.deserialize(parameter)\r\n });\r\n }\r\n\r\n runParameterDialog(): void {\r\n const dialogRef = this.dialog.open(RunPIHistoryDataComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == \"Success\") {\r\n this.refreshAllRuns();\r\n }\r\n });\r\n }\r\n \r\n /**Creates data for filter list */\r\n createFilterList() {\r\n let columns: string[] = [\"runBy\", \"runAt\", \"status\"];\r\n for (let a = 0; a < columns.length; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(columns[a]);\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n let unique;\r\n if (columns[a] == \"runBy\") {\r\n unique = [...new Set(this.runList.data.map(a => a.runBy))];\r\n } else if (columns[a] == \"runAt\") {\r\n unique = [...new Set(this.runList.data.map(a => a.runAt))];\r\n } else if (columns[a] == \"status\") {\r\n unique = [...new Set(this.runList.data.map(a => a.status))];\r\n } \r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterResponse: FilterResponseModel = event.filterResponse;\r\n this.runList.data = this.globalService.conditionalDataFiltering(filterResponse, this.runList.data);\r\n this.selectedFilters.push(filterResponse);\r\n if (this.popover.isOpen()) this.popover.close();\r\n }\r\n\r\n /**\r\n * Removes that filter\r\n * @param selectedFilter\r\n */\r\n remove(selectedFilter: FilterResponseModel): void {\r\n const index = this.selectedFilters.indexOf(selectedFilter);\r\n if (index >= 0) {\r\n this.selectedFilters.splice(index, 1);\r\n this.runList.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let element of this.selectedFilters) {\r\n this.runList.data = this.globalService.conditionalDataFiltering(element, this.runList.data);\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\n@Component({\r\n selector: 'parameter-modal-component',\r\n templateUrl: './parameter-modal.component.html',\r\n styleUrls: ['./parameter-modal.component.css']\r\n})\r\n\r\nexport class ParameterModalComponent {\r\n\r\n editDisabled: boolean = true;\r\n Heading: string = \"Parameters\";\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public httpService: HttpService,\r\n public globals: GlobalService,\r\n public router: Router,\r\n public _router: ActivatedRoute\r\n ) { };\r\n\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(\"Cancel\");\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

Run PI History Data

\r\n Run\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 {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\r\n \r\n \r\n
\r\n
\r\n
 
\r\n
 
\r\n
\r\n
\r\n
\r\n \r\n \r\n Run By\r\n {{row.runBy}} \r\n \r\n \r\n \r\n Run Time\r\n \r\n {{row.runAt}} \r\n \r\n \r\n Last Status\r\n \r\n \r\n check_circle{{row.status}}\r\n \r\n \r\n cancel{{row.status}}\r\n \r\n \r\n rotate_right{{row.status}}\r\n \r\n \r\n query_builder{{row.status}}\r\n \r\n \r\n cancel{{row.status}}\r\n \r\n \r\n \r\n \r\n \r\n Parameters\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n refresh\r\n \r\n \r\n \r\n \r\n refresh\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n No records found\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n","
\r\n
\r\n

Parameter Details

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\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, Input, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { HttpService } from './../../services/http.service';\r\nimport { TagMasterService } from './../../services/tagmaster-service';\r\nimport { GlobalService } from './../../services/global.service';\r\nimport { PiHistoryService } from './../../services/pihistory-service';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { AlertComponent } from '../../common/alert/alert.component';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-run-pihistory-data',\r\n templateUrl: './run-pihistory-data.component.html',\r\n styleUrls: ['./run-pihistory-data.component.css']\r\n})\r\nexport class RunPIHistoryDataComponent implements OnInit {\r\n\r\n unitList;\r\n tagList = [];\r\n selectedTagIds = [];\r\n dropdownSettings = {};\r\n tagIds: any = [];\r\n startDate = new Date();\r\n endDate = new Date();\r\n runBy;\r\n lenErr: boolean = false;\r\n error: boolean = false;\r\n unitFlag: boolean = false;\r\n datDiffErrMsg: string = '';\r\n tagCounter = 0;\r\n useCaseList;\r\n selectedUseCase;\r\n selectedUSeCaseId;\r\n selectedUnit;\r\n checkedADL: boolean = true;\r\n useCaseFlag: boolean = false;\r\n tagsFlag: boolean = false;\r\n isLoader: boolean = false;\r\n allChecked: boolean = false;\r\n @ViewChild('runForm', { static: true }) public runForm: NgForm;\r\n @Input() max: Date | null\r\n today = new Date();\r\n locationList: any = [];\r\n selectedLocationName: any;\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n private readonly httpService: HttpService,\r\n private readonly tagMasterService: TagMasterService,\r\n public globalService: GlobalService,\r\n private readonly router: Router,\r\n private readonly route: ActivatedRoute,\r\n private readonly piHistoryService: PiHistoryService,\r\n\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.today.setDate(this.today.getDate());\r\n this.getLocationList();\r\n this.getUseCaseList();\r\n\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'tagId',\r\n textField: 'tagId',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n limitSelection: 100,\r\n allowSearchFilter: true\r\n };\r\n }\r\n\r\n getUseCaseList() {\r\n this.tagMasterService.getUseCases().subscribe(useCaseData => {\r\n this.useCaseList = useCaseData;\r\n });\r\n }\r\n\r\n getLocationList() {\r\n this.tagMasterService.getLocations().subscribe(data => {\r\n this.locationList = data;\r\n this.selectedLocationName = data[0].locationName;\r\n this.getUnitList();\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n onSelectLocation() {\r\n this.getUnitList();\r\n }\r\n\r\n getUnitList() {\r\n let locationId = this.locationList.find(l => l.locationName == this.selectedLocationName).locationId;\r\n this.tagMasterService.getUnits(locationId).subscribe(unitData => {\r\n this.unitList = unitData;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n unitKeyUp(selection) {\r\n let unitId;\r\n if (selection.value == \"\") {\r\n this.unitFlag = true;\r\n this.selectedUnit = undefined;\r\n } else {\r\n let isUnitAvailable = this.unitList.filter(function (obj) {\r\n if (obj.unitName == selection.value) {\r\n unitId = obj.unitId;\r\n }\r\n return obj.unitName == selection.value;\r\n });\r\n if (isUnitAvailable.length == 0) {\r\n this.unitFlag = true;\r\n this.tagList = [];\r\n } else {\r\n this.unitFlag = false;\r\n }\r\n this.selectedUnit = unitId;\r\n }\r\n\r\n }\r\n\r\n getTagList() {\r\n this.tagCounter = 0;\r\n this.lenErr = false;\r\n this.allChecked = false;\r\n this.selectedTagIds = [];\r\n let locationId = this.locationList.find(l => l.locationName == this.selectedLocationName).locationId;\r\n if (this.selectedUnit != \"\") {\r\n this.isLoader = true;\r\n\r\n this.tagMasterService.getTagIds(locationId, this.selectedUnit, '', this.selectedUSeCaseId).subscribe((tagList: any): void => {\r\n this.isLoader = false;\r\n if (tagList.length > 0) {\r\n this.tagsFlag = false;\r\n this.tagList = tagList;\r\n } else {\r\n this.tagsFlag = true;\r\n this.tagList = tagList;\r\n }\r\n });\r\n } else {\r\n this.tagList = [];\r\n }\r\n }\r\n\r\n checkUncheckAll() {\r\n if (this.allChecked === true) {\r\n this.allChecked = false;\r\n for (let i = 0; i < this.tagList.length; i++) {\r\n this.chkTagIds(this.tagList[i].tagId);\r\n }\r\n } else {\r\n this.allChecked = true;\r\n for (let i = 0; i < this.tagList.length; i++) {\r\n this.chkTagIds(this.tagList[i].tagId);\r\n }\r\n }\r\n }\r\n convert(str) {\r\n let date = new Date(str),\r\n mnth = (\"0\" + (date.getMonth() + 1)).slice(-2),\r\n day = (\"0\" + date.getDate()).slice(-2);\r\n return [date.getFullYear(), mnth, day].join(\"-\");\r\n }\r\n\r\n saveRun(runForm: NgForm) {\r\n this.runBy = this.globalService.loggedInUser;\r\n let useCases = new Array(this.selectedUseCase);\r\n let values = {\r\n \"RunBy\": this.runBy,\r\n \"Parameters\": {\r\n \"StartDate\": runForm.value.startDate,\r\n \"EndDate\": runForm.value.endDate,\r\n \"TagIds\": this.selectedTagIds,\r\n \"onlyADL\": this.checkedADL,\r\n \"useCase\": useCases,\r\n \"Location\": this.selectedLocationName\r\n }\r\n }\r\n\r\n this.piHistoryService.addRun(values).subscribe((result: any): void => {\r\n if (String(result.value).startsWith(\"Success\")) {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: (String(result.value).replace(\":\", \". Run Id: \")) });\r\n this.dialogRef.close(\"Success\");\r\n } else {\r\n this.error = true;\r\n }\r\n }, (error: HttpErrorResponse) => {\r\n if (error.error.toLowerCase().indexOf('pipeline execution throttled') > -1) {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: 'PI History Request Queue limit (100) has reached. Please try again later.' });\r\n }\r\n else {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: 'Something went wrong while requesting History data. Please try again later.' });\r\n }\r\n });\r\n }\r\n\r\n resetRun() {\r\n this.runForm.reset();\r\n this.tagCounter = 0;\r\n this.selectedUnit = undefined;\r\n this.selectedUSeCaseId = undefined;\r\n }\r\n\r\n onDate(event) {\r\n if (this.startDate > this.endDate) {\r\n this.datDiffErrMsg = \"Start date cannot be greater than end date\";\r\n }\r\n else {\r\n let diff = Math.abs(this.endDate.getTime() - this.startDate.getTime());\r\n let diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n if (diffDays > 365) {\r\n this.datDiffErrMsg = \"Date difference should be within 1 year.\";\r\n }\r\n else {\r\n this.datDiffErrMsg = \"\";\r\n }\r\n }\r\n }\r\n chkTagCounter(){\r\n if (this.tagCounter < 101) {\r\n this.lenErr = true;\r\n } else {\r\n this.lenErr = false;\r\n }\r\n if (this.tagCounter == 0) {\r\n this.allChecked = true;\r\n }\r\n }\r\n\r\n chkTagCounterGreaterValue(){\r\n if (this.tagCounter > 0 && this.tagCounter < 101) {\r\n this.lenErr = true;\r\n } else {\r\n this.lenErr = false;\r\n }\r\n if (this.tagCounter == 0) {\r\n this.allChecked = false;\r\n }\r\n }\r\n \r\n chkTagIds(event) {\r\n if (!this.selectedTagIds.includes(event)) {\r\n this.tagCounter = this.tagCounter + 1;\r\n this.selectedTagIds.push(event);\r\n this.chkTagCounter();\r\n } else {\r\n let position = this.selectedTagIds.indexOf(event);\r\n this.selectedTagIds.splice(position, 1);\r\n this.tagCounter = this.tagCounter - 1;\r\n this.chkTagCounterGreaterValue();\r\n }\r\n if (this.tagList.length > 100 && this.tagCounter == this.tagList.length) {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Only 100 tags allowed for selection to run Pi History pipeline.\" });\r\n }\r\n if (this.tagList.length > 100 && this.tagCounter == 100) {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"You have reached tagId selection limit 100 to Run Pi History pipeline.\" });\r\n }\r\n\r\n }\r\n\r\n chkTillADL(event) {\r\n if (event.target.value == \"Use Case Database\") {\r\n this.checkedADL = false;\r\n this.useCaseFlag = false;\r\n } else {\r\n this.checkedADL = true;\r\n }\r\n\r\n }\r\n\r\n useCaseKeyUp(useCase) {\r\n if (this.checkedADL === false && useCase.value == '') {\r\n this.useCaseFlag = true;\r\n this.selectedUSeCaseId = undefined;\r\n } else {\r\n this.useCaseFlag = false;\r\n this.selectedUSeCaseId = undefined;\r\n }\r\n if (useCase.value != '') {\r\n this.selectedUseCase = useCase.value;\r\n let checked = this.useCaseList.filter(function (obj) {\r\n return obj.useCaseName == useCase.value;\r\n });\r\n\r\n if (checked.length == 0) {\r\n this.useCaseFlag = true;\r\n this.selectedUSeCaseId = undefined;\r\n } else {\r\n this.selectedUSeCaseId = checked[0].useCaseId;\r\n this.useCaseFlag = false;\r\n }\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(\"Cancel\");\r\n }\r\n}\r\n","
\r\n
\r\n

New Run Request

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n \r\n date_range\r\n \r\n \r\n
\r\n

{{datDiffErrMsg}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n
\r\n Please provide valid target\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n
\r\n Please provide a valid Use Case\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n \r\n date_range\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n
\r\n
\r\n \r\n
\r\n Please provide a valid unit\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n *\r\n help_outline\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n

You have selected {{tagCounter}} tags.

\r\n

No tags found.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n Select / Unselect All {{chkUnchk}}\r\n
\r\n
\r\n
\r\n \r\n 0\">{{tag.tagId}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Something went wrong. Try again!

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, Inject, Input } from '@angular/core';\r\nimport { NgForm, UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } 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 { Router, ActivatedRoute } from '@angular/router';\r\nimport { GlobalService } from './../../services/global.service';\r\nimport { HttpService } from './../../services/http.service';\r\nimport { PipelineService } from './../../services/pipeline-service';\r\n\r\n@Component({\r\n selector: 'app-monitor',\r\n templateUrl: './monitor.component.html',\r\n styleUrls: ['./monitor.component.css']\r\n})\r\nexport class MonitorComponent implements OnInit {\r\n\r\n @Input() max: Date | null\r\n today = new Date();\r\n\r\n StartTime;\r\n EndTime;\r\n runBy: string;\r\n monitorPipelineList;\r\n firstTableClass: string = \"hideData\";\r\n displayedColumns = ['pipelineName', 'runStart', 'duration', 'status', 'parameters'];\r\n @ViewChild('monitorPipelineTableSort', { static: true }) public monitorPipelineTableSort: MatSort;\r\n @ViewChild('monitorPipelinePaginator', { static: false }) monitorPipelinePaginator: MatPaginator;\r\n\r\n pipelineNameFilter = new UntypedFormControl('');\r\n statusFilter = new UntypedFormControl('');\r\n filterValues = {\r\n pipelineName: '',\r\n status: ''\r\n };\r\n\r\n constructor(\r\n public globals: GlobalService,\r\n public httpService: HttpService,\r\n public pipelineService: PipelineService,\r\n public router: Router,\r\n public _router: ActivatedRoute,\r\n public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n\r\n this.pipelineNameFilter.valueChanges\r\n .subscribe(\r\n pipelineName => {\r\n this.filterValues.pipelineName = pipelineName;\r\n this.monitorPipelineList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.statusFilter.valueChanges\r\n .subscribe(\r\n status => {\r\n this.filterValues.status = status;\r\n this.monitorPipelineList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n }\r\n\r\n createFilter(): (data: any, filter: string) => boolean {\r\n let filterFunction = function (data, filter): boolean {\r\n let searchTerms = JSON.parse(filter);\r\n return data.pipelineName.toLowerCase().indexOf(searchTerms.pipelineName.toLowerCase()) !== -1\r\n && data.status.toLowerCase().indexOf(searchTerms.status.toLowerCase()) !== -1;\r\n }\r\n return filterFunction;\r\n }\r\n\r\n getMonitorPipelineList(monitorPipelineForm: NgForm) {\r\n this.runBy = this.globals.loggedInUser;\r\n this.StartTime = monitorPipelineForm.value.StartTime;\r\n this.EndTime = monitorPipelineForm.value.EndTime;\r\n\r\n let values = {\r\n \"StartTime\": this.StartTime,\r\n \"EndTime\": this.EndTime,\r\n \"ContinuationToken\": this.pipelineService.ContinuationToken,\r\n \"PipelineNames\": []\r\n }\r\n\r\n this.continueMonitorPipelineList(values);\r\n }\r\n\r\n continueMonitorPipelineList(values) {\r\n this.pipelineService.fetchPipelineList(values).subscribe((monitorPipelineData: any): void => {\r\n this.pipelineService.ContinuationToken = monitorPipelineData.continuationToken;\r\n this.monitorPipelineList = new MatTableDataSource(monitorPipelineData.value);\r\n this.monitorPipelineList.filterPredicate = this.createFilter();\r\n this.monitorPipelineList.sort = this.monitorPipelineTableSort;\r\n this.monitorPipelineList.paginator = this.monitorPipelinePaginator;\r\n this.firstTableClass = \"showData\";\r\n });\r\n }\r\n\r\n \r\n\r\n onTableScroll(e) {\r\n const tableViewHeight = e.target.offsetHeight // viewport: ~500px\r\n const tableScrollHeight = e.target.scrollHeight // length of all table\r\n const scrollLocation = e.target.scrollTop; // how far user scrolled\r\n // If the user has scrolled within 200px of the bottom, add more data\r\n const buffer = 200;\r\n const limit = tableScrollHeight - tableViewHeight - buffer;\r\n\r\n if (scrollLocation > limit) {\r\n let values = {\r\n \"StartTime\": this.StartTime,\r\n \"EndTime\": this.EndTime,\r\n \"ContinuationToken\": this.pipelineService.ContinuationToken,\r\n \"PipelineNames\": []\r\n }\r\n this.continueMonitorPipelineList(values);\r\n }\r\n }\r\n\r\n deserialize(json): any[] {\r\n let collection: any[] = [];\r\n collection.push(json);\r\n return collection;\r\n }\r\n\r\n viewParameterDilog(parameter): void {\r\n this.globals.openModelWindow(null, null, MonitorParameterModalComponent, '790px', 'confirm-modalbox-dark', this.deserialize(parameter));\r\n }\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'monitor-parameter-modal-component',\r\n templateUrl: './monitor-parameter-modal.component.html',\r\n styleUrls: ['./monitor-parameter-modal.component.css']\r\n})\r\n\r\nexport class MonitorParameterModalComponent {\r\n\r\n editDisabled: boolean = true;\r\n Heading: string = \"Parameters\";\r\n\r\n\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public httpService: HttpService,\r\n public globals: GlobalService,\r\n public router: Router,\r\n public _router: ActivatedRoute\r\n ) { };\r\n\r\n \r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close(\"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 date_range\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n date_range\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{row.pipelineName}}\r\n \r\n \r\n \r\n Run Start\r\n \r\n {{row.runStart}}\r\n \r\n \r\n \r\n Duration\r\n \r\n {{row.durationInMs | date:'HH:mm:ss'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n check_circle{{row.status}}\r\n \r\n \r\n cancel{{row.status}}\r\n \r\n \r\n rotate_right{{row.status}}\r\n \r\n \r\n query_builder{{row.status}}\r\n \r\n \r\n cancel{{row.status}}\r\n \r\n \r\n \r\n \r\n \r\n Parameters\r\n \r\n \r\n visibility\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","
\r\n
\r\n

Parameter Details

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\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, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl } from '@angular/forms';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { GlobalService } from './../services/global.service';\r\nimport { PipelineService } from './../services/pipeline-service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\nimport { FilterModel } from '../models/filter/filter-request.model';\r\nimport { NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FilterFieldTypes } from '../shared/common-constants';\r\n\r\n@Component({\r\n selector: 'app-pipeline-configuration',\r\n templateUrl: './pipeline-configuration.component.html',\r\n styleUrls: ['./pipeline-configuration.component.css']\r\n})\r\nexport class PipelineConfigurationComponent implements OnInit {\r\n\r\n isLoader: boolean = false;\r\n pipelineList;\r\n pipelineDetailLink;\r\n firstTableClass: string = \"hideData\";\r\n displayedColumns = ['name', 'description', 'folderName', 'Action'];\r\n @ViewChild('pipelineTableSort', { static: false }) public pipelineTableSort: MatSort;\r\n @ViewChild('pipelinePaginator', { static: true }) pipelinePaginator: MatPaginator;\r\n pipelineNameFilter = new UntypedFormControl('');\r\n FolderNameFilter = new UntypedFormControl('');\r\n pipelineDescriptionFilter = new UntypedFormControl('');\r\n\r\n filterValues = {\r\n name: '',\r\n description: '',\r\n folderName: ''\r\n };\r\n\r\n filterList: FilterModel[] = [];\r\n selectedFilters: FilterResponseModel[] = [];\r\n masterData: any;\r\n @ViewChild('popOver') public popover: NgbPopover;\r\n\r\n constructor(\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpClient: HttpClient,\r\n public pipelineService: PipelineService,\r\n public router: Router,\r\n public _router: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.getPipelineList();\r\n this.callADF();\r\n this.pipelineDescriptionFilter.valueChanges\r\n .subscribe(\r\n description => {\r\n this.filterValues.description = description;\r\n this.pipelineList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.FolderNameFilter.valueChanges\r\n .subscribe(\r\n folderName => {\r\n this.filterValues.folderName = folderName;\r\n this.pipelineList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n\r\n this.pipelineNameFilter.valueChanges\r\n .subscribe(\r\n name => {\r\n this.filterValues.name = name;\r\n this.pipelineList.filter = JSON.stringify(this.filterValues);\r\n }\r\n )\r\n }\r\n\r\n getPipelineList() {\r\n this.isLoader = true;\r\n this.pipelineService.fetchPipelines().subscribe((pipelines: any): void => {\r\n this.isLoader = false;\r\n let pipelineList = pipelines.sort((a, b) => {\r\n if(a.name == b.name){\r\n return 0;\r\n }\r\n return a.name > b.name ? 1 : -1\r\n })\r\n\r\n this.pipelineList = new MatTableDataSource(pipelineList);\r\n this.masterData = [...pipelineList];\r\n if (this.filterList.length == 0) {\r\n this.createFilterList();\r\n }\r\n this.pipelineList.sort = this.pipelineTableSort;\r\n this.pipelineList.paginator = this.pipelinePaginator;\r\n this.firstTableClass = \"showData\";\r\n });\r\n \r\n }\r\n\r\n callADF() {\r\n this.httpClient.get(this.globals.config.foundationPlatformApi_client_resourceUri + this.globalService.pipelineADFUrl).subscribe((data: any): void => {\r\n this.pipelineDetailLink = data;\r\n });\r\n }\r\n\r\n\r\n redirectToADF() {\r\n if (this.pipelineDetailLink.url != undefined) {\r\n window.open(this.pipelineDetailLink.url);\r\n }\r\n }\r\n\r\n /**Creates data for filter list */\r\n createFilterList() {\r\n for (let a = 0; a < this.displayedColumns.length-1; a++) {\r\n let tempFilter: FilterModel = new FilterModel();\r\n let unique;\r\n tempFilter.fieldType = FilterFieldTypes.text;\r\n tempFilter.fieldName = this.globalService.replaceDisplayText(this.displayedColumns[a]);\r\n if (this.displayedColumns[a] == \"name\") {\r\n unique = Array.from(new Set(this.pipelineList.data.map(a => a.name)));\r\n } else if (this.displayedColumns[a] == \"description\") {\r\n unique = Array.from(new Set(this.pipelineList.data.map(a => a.description)));\r\n } else if (this.displayedColumns[a] == \"folderName\") {\r\n unique = Array.from(new Set(this.pipelineList.data.map(a => a.folderName)));\r\n }\r\n tempFilter.values = unique;\r\n this.filterList.push(tempFilter);\r\n }\r\n }\r\n\r\n /**\r\n * Returns data from child filter component\r\n * @param event\r\n */\r\n filterResponse(event) {\r\n let filterRes: FilterResponseModel = event.filterResponse;\r\n this.pipelineList.data = this.globalService.conditionalDataFiltering(filterRes, this.pipelineList.data);\r\n this.selectedFilters.push(filterRes);\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 i = this.selectedFilters.indexOf(selectedFilter);\r\n if (i >= 0) {\r\n this.selectedFilters.splice(i, 1);\r\n this.pipelineList.data = this.masterData.slice(0);\r\n if (this.selectedFilters.length > 0) {\r\n for (let ele of this.selectedFilters) {\r\n this.pipelineList.data = this.globalService.conditionalDataFiltering(ele, this.pipelineList.data);\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 {{globalService.replaceDisplayText(element.selectedFieldName) + \" \" + element.selectedCondition + \" \" + element.selectedValue}}\r\n cancel\r\n \r\n \r\n
\r\n
\r\n
 
\r\n
 
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Pipeline Name \r\n {{element.name}} \r\n \r\n \r\n Pipeline Description\r\n {{element.description}} \r\n \r\n \r\n Folder Name\r\n {{element.folderName}} \r\n \r\n \r\n Action\r\n \r\n \r\n visibility\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor} from '@angular/common/http';\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) {}\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}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Globals } from '../models/globals.model';\r\nimport { RulesModel } from '../models/rules/rules.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataCleansingService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n getAllRulesApi = \"api/datacleansing/getdatacleansingconfigs\";\r\n getDataSourceParametersApi = \"api/datacleansing/gettags/\";\r\n getDataSourcesApi = \"api/datacleansing/getdatasources\";\r\n getCleansingRulesListApi = \"api/datacleansing/getrulenames\";\r\n getCleansingRulesEditApi = \"api/datacleansing/getdatacleansingrules\";\r\n saveCleansingRules = \"api/datacleansing/saverules/\";\r\n deleteCleansingRuleApi = \"api/datacleansing/deleterules/\";\r\n tokenApi = \"api/datacleansing/getToken\";\r\n\r\n constructor(private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getAllRules() {\r\n return this.http.get(this.apiUri + this.getAllRulesApi);\r\n }\r\n getToken() {\r\n return this.http.get(this.apiUri + this.tokenApi);\r\n }\r\n\r\n getDataSources() {\r\n return this.http.get(this.apiUri + this.getDataSourcesApi);\r\n }\r\n\r\n getDataSourceParameters(dataSourceId: number) {\r\n return this.http.get(this.apiUri + this.getDataSourceParametersApi + dataSourceId);\r\n }\r\n\r\n listAllCleansingRules() {\r\n return this.http.get(this.apiUri + this.getCleansingRulesListApi);\r\n }\r\n\r\n listCleansingRulesForSelectedId(dataSourceId: string, tagName: string) {\r\n let params = new HttpParams().set('dataSource', dataSourceId)\r\n .set('tagName', tagName);\r\n return this.http.get(this.apiUri + this.getCleansingRulesEditApi, { params });\r\n }\r\n\r\n saveCleansingRule(cleansingRules: RulesModel) {\r\n return this.http.post(this.apiUri + this.saveCleansingRules, cleansingRules);\r\n }\r\n\r\n deleteCleansingRule(dataCleansingConfigId) {\r\n return this.http.post(this.apiUri + this.deleteCleansingRuleApi + dataCleansingConfigId, null);\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 { Globals } from '../models/globals.model';\r\nimport { FilterResponseModel } from '../models/filter/filter-response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GlobalService {\r\n\r\n @Output() renderRibbon: EventEmitter = new EventEmitter(); \r\n authCode: any;\r\n loggedInUser;\r\n subscription: string;\r\n environment: string;\r\n tagMovMsg;\r\n constructor( public httpClient: HttpClient\r\n , public dialog: MatDialog, public globals: Globals) { }\r\n\r\n hasTagAdminAccess(): boolean {\r\n return (this.globals.groups.includes('PlatformAdminGroupId') || this.globals.groups.includes('TagAdminGroupId'));\r\n }\r\n \r\n pipelineADFUrl = 'api/appsettings/section/PipelineDetailsUrl';\r\n isAuthorize: boolean = false;\r\n isActivate: boolean = true;\r\n modelListULR: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n deleteModelURL: string = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models/\";\r\n assetUrl = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/assets\";\r\n registerModelURL = \"https://westeurope.modelmanagement.azureml.net/modelmanagement/v1.0/subscriptions/63c9ab56-b584-4f1a-987a-a92be0864b5e/resourceGroups/RG-CIDI-WE-COMMON-SERVICES/providers/Microsoft.MachineLearningServices/workspaces/comm-mlrepo-we-d/models\";\r\n\r\n userDetails: any;\r\n firstTimeLoad: boolean = true;\r\n\r\n showAlert(model, data) {\r\n this.dialog.open(model, {\r\n width: '450px',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: data\r\n });\r\n }\r\n\r\n showAlertWithCallBack(model, data, methodRef: (thisRef: any, result?: any) => void, thisRef) {\r\n const dialogRef = this.dialog.open(model, {\r\n width: '450px',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: data\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result && result != null) {\r\n methodRef(thisRef);\r\n }\r\n });\r\n }\r\n\r\n openModelWindow(methodRef: (thisRef: any, result?: any) => void, thisRef, modelComponent, widthOfWindow, panelClassName, dataToPass) {\r\n {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: widthOfWindow,\r\n disableClose: true,\r\n panelClass: panelClassName,\r\n data: dataToPass\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === true && methodRef != null) {\r\n methodRef(thisRef);\r\n }\r\n else if (result !== false) {\r\n methodRef(thisRef, result);\r\n }\r\n \r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Loads small sized dialog box\r\n * @param methodRef\r\n * @param thisRef\r\n * @param modelComponent\r\n * @param data\r\n */\r\n openModelWindowSmall(methodRef: (thisRef: any, result?: any) => void, thisRef, modelComponent, data) {\r\n const dialogRef = this.dialog.open(modelComponent, {\r\n width: '450px',\r\n disableClose: true,\r\n panelClass: 'confirm-modalbox-dark',\r\n backdropClass: 'backdropBackground',\r\n height: 'auto',\r\n data: data\r\n });\r\n dialogRef.afterClosed().subscribe(dialogResult => {\r\n methodRef(thisRef, dialogResult);\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 switch(tempText) {\r\n case \"tag\": {\r\n return \"Tag\"; \r\n } \r\n case \"locationName\": {\r\n return \"Location\";\r\n } \r\n case \"descriptor\": {\r\n return \"Description\";\r\n } \r\n case \"engUnits\": {\r\n return \"Engeering Unit\";\r\n } \r\n case \"pointSource\": {\r\n return \"Point Source\";\r\n } \r\n case \"pointType\": {\r\n return \"Point Type\";\r\n } \r\n case \"pointTypeX\": {\r\n return \"Point Type X\";\r\n } \r\n case \"dataSourceName\": {\r\n return \"Data Source\";\r\n } \r\n case \"tagName\": {\r\n return \"Tag Name\";\r\n } \r\n case \"cleansingRules\": {\r\n return \"Number of Rules\";\r\n } \r\n case \"updatedBy\": {\r\n return \"Last Modified By\";\r\n } \r\n case \"runBy\": {\r\n return \"Run By\";\r\n } \r\n case \"runAt\": {\r\n return \"Run Time\";\r\n } \r\n case \"status\": {\r\n return \"Last Status\";\r\n } \r\n case \"name\": {\r\n return \"Pipeline Name\";\r\n } \r\n case \"description\": {\r\n return \"Pipeline Description\";\r\n } \r\n case \"folderName\": {\r\n return \"Folder Name\";\r\n } \r\n case \"constantId\": {\r\n return \"Constant Name\";\r\n } \r\n case \"value\": {\r\n return \"Value\";\r\n } \r\n case \"uom\": {\r\n return \"UOM\";\r\n } \r\n case \"lastModifiedBy\": {\r\n return \"Last Modified By\";\r\n } \r\n case \"formulaId\": {\r\n return \"Formula Name\";\r\n } \r\n case \"userExpression\": {\r\n return \"Expression\";\r\n } \r\n case \"targetUom\": {\r\n return \"UOM\";\r\n }\r\n default: {\r\n return tempText;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Replace filter texts\r\n * @param tempText\r\n * @param application\r\n */\r\n replaceFilterText(tempText: string, application?: string): string {\r\n switch(tempText){\r\n case \"Description\": {\r\n return \"descriptor\";\r\n } \r\n case \"Run By\": {\r\n return \"runBy\";\r\n } \r\n case \"Run Time\": {\r\n return \"runAt\";\r\n } \r\n case \"Last Status\": {\r\n return \"status\";\r\n } \r\n case \"Data Source\": {\r\n return \"dataSourceName\";\r\n } \r\n case \"Tag Name\": {\r\n return \"tagName\";\r\n } \r\n case \"Number of Rules\": {\r\n return \"cleansingRules\";\r\n } \r\n case \"Last Modified By\": {\r\n if ([\"constants\", \"formula\"].includes(application)) {\r\n return \"lastModifiedBy\";\r\n } else {\r\n return \"updatedBy\";\r\n }\r\n } \r\n case \"Tag\": {\r\n return \"tag\";\r\n } \r\n case \"Location\": {\r\n return \"locationName\";\r\n } \r\n case \"Engeering Unit\": {\r\n return \"engUnits\";\r\n } \r\n case \"Point Source\": {\r\n return \"pointSource\";\r\n } \r\n case \"Point Type\": {\r\n return \"pointType\";\r\n } \r\n case \"Point Type X\": {\r\n return \"pointTypeX\";\r\n } \r\n case \"Pipeline Name\": {\r\n return \"name\";\r\n } \r\n case \"Pipeline Description\": {\r\n return \"description\";\r\n } \r\n case \"Folder Name\": {\r\n return \"folderName\";\r\n } \r\n case \"Constant Name\": {\r\n return \"constantId\";\r\n } \r\n case \"Value\": {\r\n return \"value\";\r\n } \r\n case \"UOM\": {\r\n if (application == \"formula\") {\r\n return \"targetUom\";\r\n } else if (application == \"constants\") {\r\n return \"uom\";\r\n }\r\n break;\r\n } \r\n case \"Formula Name\": {\r\n return \"formulaId\";\r\n } \r\n case \"Expression\": {\r\n return \"userExpression\";\r\n } \r\n default: {\r\n return tempText;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * \r\n * @param filterResponse\r\n * @param data\r\n */\r\n conditionalDataFiltering(filterResponse: FilterResponseModel, data) {\r\n let temp;\r\n if (filterResponse.selectedFieldName !== \"cleansingRules\") {\r\n switch(filterResponse.selectedValue.length) {\r\n case 1: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]);\r\n });\r\n break;\r\n } \r\n case 2: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1]);\r\n });\r\n break;\r\n } \r\n case 3: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]);\r\n });\r\n break;\r\n } \r\n case 4: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[3]);\r\n });\r\n break;\r\n } \r\n case 5: {\r\n temp = data.filter(function (df) {\r\n return (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[0]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[1])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[2]) || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[3])\r\n || (df[filterResponse.selectedFieldName] === filterResponse.selectedValue[4]);\r\n });\r\n break;\r\n }\r\n default:{\r\n break;\r\n }\r\n }\r\n } else if (filterResponse.selectedFieldName == \"cleansingRules\") {\r\n switch(filterResponse.selectedCondition) {\r\n case \"==\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName].length === filterResponse.selectedValue[0] );\r\n break;\r\n } \r\n case \">=\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName].length >= parseInt(filterResponse.selectedValue[0], 10));\r\n break;\r\n } \r\n case \"<=\": {\r\n temp = data.filter((df) => df[filterResponse.selectedFieldName].length <= parseInt(filterResponse.selectedValue[0], 10));\r\n break;\r\n }\r\n default:{\r\n break;\r\n }\r\n }\r\n }\r\n return temp;\r\n }\r\n\r\n /**\r\n * Filters data based on input text\r\n * @param filterValue\r\n * @param dataSource\r\n */\r\n applyFilter(filterValue: string, dataSource) {\r\n filterValue = filterValue.trim().toLowerCase(); // Remove whitespace and MatTableDataSource defaults to lowercase matches\r\n dataSource.filter = filterValue;\r\n }\r\n\r\n redirectTo(url) {\r\n window.location.href = url;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { User } from '../models/interfaces/user';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GraphService {\r\n\r\n user: User = {\r\n displayName: \"\",\r\n groupIDs: [],\r\n };\r\n graphUri: string;\r\n\r\n constructor(private readonly http: HttpClient, private readonly globals: Globals) {\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getGroups() {\r\n return this.http.get(this.graphUri);\r\n }\r\n\r\n getNextPage(nextPage) {\r\n return this.http.get(nextPage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { GlobalService } from './global.service';\r\nimport { GraphService } from './graph.service';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GroupGuardService implements CanActivate {\r\n route: ActivatedRouteSnapshot;\r\n\r\n constructor(private readonly authService: MsalService, private readonly service: GraphService\r\n , private readonly router: Router\r\n , public globalServ: GlobalService\r\n , public globals: Globals) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n this.route = route;\r\n\r\n if (this.service.user.groupIDs.length > 0) {\r\n return this.validateGroup();\r\n }\r\n else {\r\n this.router.navigate(['/overage', { redirectPath: route.routeConfig.path}]);\r\n }\r\n }\r\n\r\n validateGroup(): boolean {\r\n const expectedGroups = this.route.data.expectedGroups;\r\n let matchGroups = expectedGroups.filter(grp => this.service.user.groupIDs.includes(grp));\r\n if (expectedGroups.length > 0 && matchGroups.length == 0) {\r\n this.globalServ.showAlertWithCallBack(AlertComponent, { success: false, message: \"You do not have enough access. Redirecting to Home Page...\" }\r\n , this.redirectOnUnAuthorizedAccess, this);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n redirectOnUnAuthorizedAccess(thisRef: GroupGuardService) {\r\n window.location.href = thisRef.globals.config.platformHomeUrl;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HttpService {\r\n\r\n 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 put(url: string, body: any, header: HttpHeaders): Observable {\r\n const httpOptions = {\r\n headers: header\r\n };\r\n return this.http.put(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, HttpParams } from '@angular/common/http';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KPIFormulaBuilderService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n getConstantsApi = \"api/Constants\";\r\n getProcessNamesApi = \"KPIFormulaBuilder/GetProcessNames\";\r\n getMathFunctionsApi = \"KPIFormulaBuilder/GetMathFunctions\";\r\n getFormulaNamesApi = 'KPIFormulaBuilder/GetFormulas';\r\n saveFinalFormulaApi = 'KPIFormulaBuilder/saveFormula';\r\n getEvaluateFormulaApi = 'KPIFormulaBuilder/EvaluateFormula';\r\n getTestFormulaResultApi = 'KPIFormulaBuilder/GetTestFormulaResult';\r\n getFormulaDetailsOnKpiIdApi = 'KPIFormulaBuilder/GetFormulaDetailsOnKpiId';\r\n getTokenApi = 'KPIFormulaBuilder/getToken';\r\n getFormulaOnKpiIdApi = 'KPIFormulaBuilder/GetFormulaOnKpiId';\r\n getDeleteFormulaApi = 'KPIFormulaBuilder/deleteFormula';\r\n getEditFormulaApi = 'KPIFormulaBuilder/editFormula';\r\n\r\n constructor(private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n saveConstantFormula(constants) {\r\n return this.http.post(this.apiUri + this.getConstantsApi, constants);\r\n }\r\n\r\n updateConstantFormula(constants) {\r\n return this.http.put(this.apiUri + this.getConstantsApi, constants);\r\n }\r\n\r\n getConstantsFormula() {\r\n return this.http.get(this.apiUri + this.getConstantsApi);\r\n }\r\n\r\n deleteConstantModel(selectedConstantId) {\r\n let params = { constantId: selectedConstantId };\r\n return this.http.delete(this.apiUri + this.getConstantsApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getProcessNames() {\r\n return this.http.get(this.apiUri + this.getProcessNamesApi);\r\n }\r\n\r\n getMathFunctions() {\r\n return this.http.get(this.apiUri + this.getMathFunctionsApi);\r\n }\r\n\r\n getFormulaNames() {\r\n return this.http.get(this.apiUri + this.getFormulaNamesApi);\r\n }\r\n\r\n saveFinalFormula(deletedKpiIds, formulaList) {\r\n return this.http.post(this.apiUri + this.saveFinalFormulaApi + '?deletedKpiIds=' + deletedKpiIds, formulaList);\r\n }\r\n\r\n getEvaluateFormula(stTime, edTime, formulaDetails) {\r\n return this.http.post(this.apiUri + this.getEvaluateFormulaApi + '?startdate='+ stTime + '&enddate=' + edTime, formulaDetails);\r\n }\r\n\r\n getTestFormulaResult(mainFormulaId) {\r\n return this.http.get(this.apiUri + this.getTestFormulaResultApi + '?formulaId=' + mainFormulaId);\r\n }\r\n\r\n getFormulaDetailsOnKpiId(formulaId) {\r\n return this.http.get(this.apiUri + this.getFormulaDetailsOnKpiIdApi + '?formulaId=' + formulaId);\r\n }\r\n\r\n getTokendata() {\r\n return this.http.get(this.apiUri + this.getTokenApi);\r\n }\r\n\r\n getFormulaOnKpiId(formulaId) {\r\n return this.http.get(this.apiUri + this.getFormulaOnKpiIdApi + '?formulaId=' + formulaId);\r\n }\r\n\r\n getDeleteFormula(kpiDetails) {\r\n return this.http.post(this.apiUri + this.getDeleteFormulaApi, kpiDetails);\r\n }\r\n\r\n getEditFormula(data) {\r\n return this.http.post(this.apiUri + this.getEditFormulaApi, data);\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { GraphService } from './graph.service';\r\nimport { Globals } from '../models/globals.model';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class OverageService {\r\n\r\n groups: string[] = [];\r\n\r\n constructor(private readonly http: HttpClient, private readonly globals: Globals) {\r\n }\r\n\r\n readGraphGroups(authService: MsalService, service: GraphService, methodRef: (objRef: any) => void, objRef): void {\r\n service.getGroups().subscribe({\r\n next: (response: any) => {\r\n this.getGroupId(response.value);\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n },\r\n error: (err: AuthError) => {\r\n // If there is an interaction required error,\r\n // call one of the interactive methods and then make the request again.\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(err.errorCode, err.errorMessage)) {\r\n authService.acquireTokenPopup({\r\n scopes: [this.globals.config.graphApi_client_resourceUri]\r\n })\r\n .subscribe(() => {\r\n service.getGroups()\r\n .toPromise()\r\n .then((response: any) => {\r\n this.getGroupId(response.value);\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n getGroupId(value) {\r\n return value.map(v => this.groups.push(v.id));\r\n }\r\n\r\n syncGroupswithRef(service: GraphService, methodRef: (objRef: any) => void, objRef) {\r\n service.user.groupIDs = this.groups;\r\n methodRef(objRef);\r\n }\r\n\r\n handleNextPageWithMethodRef(service: GraphService, nextPage, methodRef: (objRef: any) => void, objRef): void {\r\n service.getNextPage(nextPage)\r\n .subscribe((response: any) => {\r\n response.value.map(v => {\r\n if (!this.groups.includes(v.id)) {\r\n this.groups.push(v.id);\r\n }\r\n });\r\n if (response['@odata.nextLink']) {\r\n this.handleNextPageWithMethodRef(service, response['@odata.nextLink'], methodRef, objRef)\r\n } else {\r\n this.syncGroupswithRef(service, methodRef, objRef);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PiHistoryService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n\tgetAllRunsApi = \"ADF/GetAllActivityRuns \";\r\n\trefreshAllRunsApi = \"ADF/UpdateAllActivityRuns\";\r\n\trefreshRunApi = \"ADF/UpdateActivityRun\";\r\n createRunApi = \"ADF/UpdateHistoryData\";\r\n \r\n\r\n constructor(private readonly httpService: HttpService, private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n getAllRuns() {\r\n return this.http.get(this.apiUri + this.getAllRunsApi);\r\n }\r\n\r\n refreshAll() {\r\n return this.http.get(this.apiUri + this.refreshAllRunsApi);\r\n }\r\n getUpdatedRun(runId) {\r\n let params = { runId: runId };\r\n\r\n return this.http.get(this.apiUri + this.refreshRunApi, {\r\n params: params\r\n });\r\n }\r\n\r\n addRun(RunData) {\r\n return this.http.post(this.apiUri + this.createRunApi, RunData);\r\n }\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PipelineService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n ContinuationToken = null;\r\n useCaseId;\r\n pipelineApi = \"ADF/GetPipelines\";\r\n monitorPipelineApi = \"ADF/GetPipelineRuns\";\r\n \r\n @Output() linkedServiceProperties: EventEmitter = new EventEmitter();\r\n @Output() datasetProperties: EventEmitter = new EventEmitter();\r\n \r\n \r\n constructor(private readonly httpService: HttpService, private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n fetchPipelines() {\r\n return this.http.get(this.apiUri + this.pipelineApi);\r\n }\r\n\r\n fetchPipelineList(pipelineData) {\r\n return this.http.post(this.apiUri + this.monitorPipelineApi, pipelineData);\r\n }\r\n\r\n /**End Dataset */\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { HttpService } from './../services/http.service';\r\nimport { Globals } from '../models/globals.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TagMasterService {\r\n\r\n apiUri: string;\r\n graphUri: string;\r\n\r\n locationApi = \"TagMaster/GetLocations\";\r\n unitApi = \"TagMaster/GetUnits\";\r\n equipmentApi = \"TagMaster/GetEquipments\";\r\n tagTypeApi = \"TagMaster/GetTagTypes\";\r\n tagListApi = \"TagMaster/GetTagsList\";\r\n tagDetailsApi = \"TagMaster/GetTagDetails\";\r\n tagCreateApi = \"TagMaster/CreateTag\";\r\n tagUpdateApi = \"TagMaster/UpdateTag\";\r\n tagIdApi = \"tagmaster/GetTagIds\";\r\n useCaseApi = \"TagMaster/GetUseCases\";\r\n useCaseByMasterTagIdApi = \"tagmaster/GetUseCasesByTagMasterId\";\r\n piPointApi = \"TagMaster/GetPiPointData\";\r\n tagExistInPiPApi = \"TagMaster/TagExistsInPiPoint\";\r\n moveTagAcrossPlatformApi = \"ADF/TagMasterSync\";\r\n tokenApi = \"TagMaster/getToken\";\r\n\r\n locationForFilter: any;\r\n unitForFilter: any;\r\n unitList: any;\r\n equipmentList: any;\r\n useCaseList: any;\r\n eqForFilter: any;\r\n tagIdForFilter: any;\r\n ucForFilter: any;\r\n\r\n constructor(private readonly httpService: HttpService, private readonly globals: Globals, private readonly http: HttpClient) {\r\n this.apiUri = this.globals.config.foundationPlatformApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n tagsMovement(tagToMove) {\r\n return this.http.post(this.apiUri + this.moveTagAcrossPlatformApi, tagToMove);\r\n }\r\n\r\n getLocations() {\r\n return this.http.get(this.apiUri + this.locationApi);\r\n }\r\n getToken() {\r\n return this.http.get(this.apiUri + this.tokenApi);\r\n }\r\n getTagTypes() {\r\n return this.http.get(this.apiUri + this.tagTypeApi);\r\n }\r\n\r\n getUnits(selectedLoc) {\r\n let params = { locationId: selectedLoc };\r\n return this.http.get(this.apiUri + this.unitApi, {\r\n params: params\r\n });\r\n }\r\n\r\n\r\n getUseCases() {\r\n return this.http.get(this.apiUri + this.useCaseApi);\r\n }\r\n\r\n getUseCaseByMasterTagId(selectedMasterTagId) {\r\n let params = { tagMasterId: selectedMasterTagId };\r\n return this.http.get(this.apiUri + this.useCaseByMasterTagIdApi, {\r\n params: params\r\n });\r\n }\r\n\r\n filteredTagList(loc, uc, tagId) {\r\n \r\n if (uc == undefined || uc == null) {\r\n uc = 0;\r\n }\r\n if (loc == undefined || loc == null) {\r\n loc = 0;\r\n }\r\n let params = { tagId: tagId, locationId: loc, useCaseId : uc };\r\n return this.http.get(this.apiUri + this.tagListApi, {\r\n params: params\r\n });\r\n }\r\n\r\n addTag(tagMasterData) {\r\n return this.http.post(this.apiUri + this.tagCreateApi, tagMasterData);\r\n }\r\n\r\n chktagExistInPiPoint(tagId) {\r\n let params = { tagid: tagId };\r\n return this.http.get(this.apiUri + this.tagExistInPiPApi, {\r\n params: params\r\n });\r\n }\r\n\r\n editTag(tagMasterData) {\r\n return this.http.post(this.apiUri + this.tagUpdateApi, tagMasterData);\r\n }\r\n\r\n getTagDetails(tagId) {\r\n let params = { id: tagId };\r\n\r\n return this.http.get(this.apiUri + this.tagDetailsApi, {\r\n params: params\r\n });\r\n }\r\n\r\n getTagIds(loc, unit, eq, useCase) {\r\n let params = { locationId: loc, unitId: unit, equipmentId: eq, useCaseId: useCase };\r\n\r\n return this.http.get(this.apiUri + this.tagIdApi, {\r\n params: params\r\n });\r\n }\r\n\r\n sendNotification(data, globals, isNew) {\r\n let text;\r\n if (isNew == true) {\r\n text = \"created\";\r\n } else {\r\n text = \"upated\";\r\n }\r\n this.http.get(\"/api/appsettings/section/EmailService\").subscribe((emailService: any): void => {\r\n let EmailNotificationUrl = emailService.EmailNotificationUrl;\r\n let cc = emailService.cc;\r\n //});\r\n let dataValue = { \"MailHeader\": { \"From\": \"no-reply@total.com\", \"To\": this.globals.userEmail, \"Cc\": cc, \"Bcc\": \"\", \"Subject\": \"Tag notification\" }, \"Body\": \"Tag \" + data.r4tagName + \" has been \" + text + \".\", \"AttachmentUrls\": null };\r\n let formData = new FormData();\r\n formData.set('data', JSON.stringify(dataValue));\r\n let header = new HttpHeaders({});\r\n this.httpService.post(EmailNotificationUrl, formData, header).subscribe((response: any): void => {\r\n console.log(response);\r\n },\r\n error => {\r\n console.log(\"error:\", error);\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n //getPiPoint() {\r\n // return this.http.get(this.apiUri + this.piPointApi);\r\n //}\r\n\r\n getPiPoint(pageIndex, pageSize, sortColumn, sortDirection) {\r\n return this.http.get(this.apiUri + this.piPointApi + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize +\r\n '&sortColumn=' + sortColumn + '&sortDirection=' + sortDirection);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { AppConstants } from '../app.constants';\r\nimport { Globals } from '../models/globals.model';\r\nimport { Refinery } from '../models/refinery.model';\r\nimport { Tenant } from '../models/tenant.model';\r\nimport { GraphService } from './graph.service';\r\nimport { HttpService } from './http.service';\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,\r\n private readonly graphService: GraphService) {\r\n this.apiUri = this.globals.config.platformAdminApi_client_resourceUri;\r\n this.graphUri = this.globals.config.graphApi_client_resourceUri;\r\n }\r\n\r\n \r\n\r\n /**\r\n * calls api for getting list of tenants and exports data to other\r\n * components using subject\r\n */\r\n getTenantListFromServer(componentId: number) {\r\n this.httpService.get(this.apiUri + 'api/Tenant/GetRefineries?componentId=' + componentId, null).subscribe((data: Refinery[]) => {\r\n if (data && data.length > 0) {\r\n data.forEach(element => {\r\n if (element.tenantList !== null) {\r\n const filteredTenants: Tenant[] = this.filterTenants(element.tenantList);\r\n // case for a user who dont have access on any of the tenant of donges\r\n // so that he/she will be able to access data of Test Bed tenant\r\n if (filteredTenants.length === 0 && element.refineryName === 'Donges') {\r\n filteredTenants.push(element.tenantList.find(tenant1 => tenant1.tenantSecurityGrp === AppConstants.platformAdminT1GroupId));\r\n } else if (filteredTenants.length === 0 && element.refineryName !== 'Donges') {\r\n data.splice(data.indexOf(element), 1);\r\n }\r\n element.tenantList = filteredTenants;\r\n } else {\r\n data.splice(data.indexOf(element), 1);\r\n }\r\n });\r\n }\r\n this.tenantList$.next(data);\r\n }, (err) => {\r\n console.log(err);\r\n });\r\n }\r\n\r\n /**\r\n * filters list of tenants available with security grps of user\r\n * @param data list of all tenants available\r\n */\r\n filterTenants(data: Tenant[]): Tenant[] {\r\n const groups: string[] = this.graphService.user.groupIDs;\r\n const finalTenantList: Tenant[] = [];\r\n for (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\r\n isDarkTheme(): boolean {\r\n return this.active.name === dark.name;\r\n }\r\n\r\n setDarkTheme(): void {\r\n this.setActiveTheme(dark);\r\n }\r\n\r\n setLightTheme(): void {\r\n this.setActiveTheme(light);\r\n }\r\n\r\n setActiveTheme(theme: Theme): void {\r\n this.active = theme;\r\n\r\n Object.keys(this.active.properties).forEach(property => {\r\n document.documentElement.style.setProperty(\r\n property,\r\n this.active.properties[property]\r\n );\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpXsrfTokenExtractor } from \"@angular/common/http\";\r\nimport { HttpEvent, HttpHandler, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@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 let xsrfToken = this.xsrfTokenExtractor.getToken();\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 return next.handle(authorizedRequest);\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[] = [\"==\", \">=\", \"<=\"];\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 { Component, OnInit, Inject, ViewChild, OnDestroy } from '@angular/core';\r\nimport { NgForm, UntypedFormControl } from '@angular/forms';\r\nimport { Router, ActivatedRoute, RouterEvent, NavigationEnd } from '@angular/router';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } 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 { GlobalService } from './../services/global.service';\r\nimport { HttpService } from './../services/http.service';\r\nimport { TagMasterService } from './../services/tagmaster-service';\r\nimport { PiHistoryService } from './../services/pihistory-service';\r\nimport { TagMaster } from './../models/tagmaster.model';\r\nimport { FilterTags } from './../models/filterTag.model';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, map, takeUntil } from 'rxjs/operators';\r\nimport { AlertComponent } from '../common/alert/alert.component';\r\nimport { ConfirmModelComponent } from '../common/confirm-model/confirm-model.component';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Globals } from '../models/globals.model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-tagmaster',\r\n templateUrl: './tagmaster.component.html',\r\n styleUrls: ['./tagmaster.component.css']\r\n})\r\nexport class TagmasterComponent implements OnInit, OnDestroy {\r\n [x: string]: any;\r\n tagList: MatTableDataSource;\r\n dataForFilter = new FilterTags();\r\n tags;\r\n fTags;\r\n noData;\r\n startAct: boolean = true;\r\n locationList;\r\n locCode;\r\n unitCode;\r\n unitList;\r\n useCaseList;\r\n useCaseForFilter;\r\n tagIdsToExport = [];\r\n filterErrMsg: boolean = false;\r\n isLoader: boolean = false;\r\n @ViewChild('filterTagForm', { static: true }) public filterTagForm: NgForm;\r\n @ViewChild('tagsPaginator', { static: true }) tagsPaginator: MatPaginator;\r\n @ViewChild('tagsTableSort', { static: true }) public tagsTableSort: MatSort;\r\n firstTableClass: string = \"hideData\";\r\n tagIdFilter = new UntypedFormControl('');\r\n \r\n tagDescFilter = new UntypedFormControl('');\r\n locationNameFilter = new UntypedFormControl('');\r\n displayedColumns = ['export', 'tagId', 'locationName','tenantName', 'tagDesc', 'Action'];\r\n disabledFlag: boolean = true;\r\n public destroyed = new Subject();\r\n\r\n filterValues = {\r\n tagId: '',\r\n locationName: '',\r\n tagDesc: '',\r\n };\r\n\r\n constructor(\r\n public globals: Globals,\r\n public globalService: GlobalService,\r\n public httpService: HttpService,\r\n public tagMasterService: TagMasterService,\r\n public piHistoryService: PiHistoryService,\r\n public dialog: MatDialog,\r\n public router: Router,\r\n public _router: ActivatedRoute,\r\n public domSanitizer: DomSanitizer\r\n ) {\r\n const emptyList: any[] = [];\r\n this.tagList = new MatTableDataSource(emptyList);\r\n this.router.events.pipe(\r\n filter((event: RouterEvent) => event instanceof NavigationEnd),\r\n takeUntil(this.destroyed)\r\n ).subscribe(() => {\r\n this.tagMasterService.getToken().subscribe(locData => {\r\n this.initialize();\r\n });\r\n\r\n });\r\n\r\n this.safeLocation = domSanitizer.bypassSecurityTrustResourceUrl(`locFocusOut(location)`)\r\n }\r\n\r\n ngOnInit() {\r\n // for now no data to initialized in oninit\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyed.next();\r\n this.destroyed.complete();\r\n }\r\n\r\n initialize() {\r\n this.getLocationList();\r\n \r\n this.getTagList();\r\n this.getUseCaseList();\r\n if (this.tagMasterService.locationForFilter != undefined) {\r\n this.setFilter();\r\n }\r\n\r\n this.tagIdFilter.valueChanges.subscribe(tagId => {\r\n this.filterValues.tagId = tagId;\r\n this.tagList.filter = JSON.stringify(this.filterValues);\r\n });\r\n\r\n this.tagDescFilter.valueChanges.subscribe(tagDesc => {\r\n this.filterValues.tagDesc = tagDesc;\r\n this.tagList.filter = JSON.stringify(this.filterValues);\r\n });\r\n\r\n this.locationNameFilter.valueChanges.subscribe(locationName => {\r\n this.filterValues.locationName = locationName;\r\n this.tagList.filter = JSON.stringify(this.filterValues);\r\n });\r\n\r\n }\r\n\r\n setFilter() {\r\n this.disabledFlag = false;\r\n this.dataForFilter.location = this.tagMasterService.locationForFilter;\r\n this.dataForFilter.useCase = this.tagMasterService.ucForFilter;\r\n this.dataForFilter.tagId = this.tagMasterService.tagIdForFilter;\r\n\r\n this.useCaseList = this.tagMasterService.useCaseList;\r\n }\r\n\r\n resetFilter() {\r\n this.filterTagForm.reset();\r\n this.dataForFilter = new FilterTags();\r\n this.tagList = null;\r\n this.startAct = true;\r\n this.initialize();\r\n }\r\n EnabledFilter(selectedLoc) {\r\n this.locCode = selectedLoc.item.locationId;\r\n if (this.locCode == \"\") {\r\n this.filterErrMsg = true;\r\n this.disabledFlag = true;\r\n } else {\r\n this.filterErrMsg = false;\r\n this.disabledFlag = false;\r\n }\r\n }\r\n getUseCaseList() {\r\n this.isLoader = true;\r\n this.tagMasterService.getUseCases().subscribe(useCaseData => {\r\n this.useCaseList = useCaseData;\r\n this.isLoader = false;\r\n });\r\n this.tagMasterService.useCaseList = this.useCaseList;\r\n }\r\n\r\n moveTagAcrossPlatform() {\r\n let dataToPass = {\r\n title: this.globalService.tagMovMsg,\r\n isDelete: false,\r\n message: 'The selected Tags will ' + this.globalService.tagMovMsg + '.'\r\n };\r\n this.globalService.openModelWindow(this.moveTagsOnConfirm, this, ConfirmModelComponent, '450px', 'confirm-modalbox', dataToPass);\r\n }\r\n\r\n moveTagsOnConfirm(thisRef: TagmasterComponent) {\r\n let values = {\r\n \"Parameters\": {\r\n \"tagIds\": thisRef.tagIdsToExport,\r\n \"userName\": thisRef.globalService.loggedInUser\r\n }\r\n }\r\n thisRef.tagMasterService.tagsMovement(values).subscribe((result: any): void => {\r\n if (String(result.value).startsWith(\"Success\")) {\r\n thisRef.globalService.showAlert(AlertComponent, { success: true, message: \"Tags movement request has been initiated. Please verify in target instance after sometime.\" });\r\n } else {\r\n thisRef.error = true;\r\n }\r\n });\r\n }\r\n\r\n isChecked(id) {\r\n if (this.tagIdsToExport.includes(id)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n chkTagIds(event) {\r\n if (!this.tagIdsToExport.includes(event)) {\r\n this.tagIdsToExport.push(event);\r\n } else {\r\n let position = this.tagIdsToExport.indexOf(event);\r\n this.tagIdsToExport.splice(position, 1);\r\n }\r\n }\r\n\r\n createFilter(): (data: any, filter: string) => boolean {\r\n let filterFunction = function (data, filter): boolean {\r\n let searchTerms = JSON.parse(filter);\r\n let tagDesc = (data.tagDesc != null) ? data.tagDesc.toLowerCase() : \"\";\r\n return data.tagId.toLowerCase().indexOf(searchTerms.tagId.toLowerCase()) !== -1\r\n \r\n && tagDesc.indexOf(searchTerms.tagDesc.toLowerCase()) !== -1\r\n && data.locationName.toLowerCase().indexOf(searchTerms.locationName.toLowerCase()) !== -1\r\n \r\n }\r\n return filterFunction;\r\n }\r\n\r\n getTagList() {\r\n this.tagMasterService.filteredTagList(this.locCode, this.useCaseForFilter, this.dataForFilter.tagId).subscribe((tagList: any): void => {\r\n this.tags = tagList;\r\n this.fTags = tagList;\r\n });\r\n }\r\n getLocationList() {\r\n this.isLoader = true;\r\n this.tagMasterService.getLocations().subscribe(locData => {\r\n this.locationList = locData;\r\n this.isLoader = false;\r\n }, (error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n locFocusOut(loc) {\r\n\r\n let isLocation = this.locationList.filter(function (obj) {\r\n return obj.locationName == loc.value;\r\n });\r\n if (isLocation.length == 0) {\r\n this.filterErrMsg = true;\r\n this.disabledFlag = true;\r\n this.locCode = \"\";\r\n } else {\r\n this.locCode = isLocation[0].locationId;\r\n this.filterErrMsg = false;\r\n this.disabledFlag = false;\r\n }\r\n this.getTagList();\r\n /**After switching between the tabs*/\r\n this.tagMasterService.locationForFilter = loc.value;\r\n }\r\n \r\n tagIdFocusOut(tag) {\r\n if (tag.value != undefined) {\r\n this.tagMasterService.tagIdForFilter = tag.value;\r\n } else {\r\n this.tagMasterService.tagIdForFilter = \"\";\r\n }\r\n\r\n }\r\n validateUseCase(event) {\r\n let uc = this.useCaseList.filter(function (ucObj) {\r\n if (ucObj.useCaseName == event.value) {\r\n return ucObj.useCaseId;\r\n }\r\n });\r\n if (uc.length == 1) {\r\n this.useCaseForFilter = uc[0].useCaseId;\r\n }\r\n\r\n this.getUseCaseList();\r\n }\r\n\r\n checkUseCase(useCase) {\r\n if (useCase.value != '') {\r\n let uc = this.useCaseList.filter(function (ucObj) {\r\n if (ucObj.useCaseName == useCase.value) {\r\n return ucObj.useCaseId;\r\n }\r\n });\r\n if (uc.length == 1) {\r\n this.useCaseForFilter = uc[0].useCaseId;\r\n }\r\n\r\n } else {\r\n this.useCaseForFilter = \"\";\r\n }\r\n this.getUseCaseList();\r\n this.tagMasterService.ucForFilter = useCase.value;\r\n }\r\n\r\n filterTags(filterTagForm: NgForm) {\r\n this.isLoader = true;\r\n let loc = this.reverseLoc(filterTagForm.value.location);\r\n \r\n this.tagMasterService.filteredTagList(loc, this.useCaseForFilter, this.dataForFilter.tagId).subscribe((filteredTagList: any): void => {\r\n this.tagList = new MatTableDataSource(filteredTagList);\r\n this.tagList.filterPredicate = this.createFilter();\r\n this.dataCheck = this.tagList.connect().pipe(map(data => data.length === 0));\r\n this.noData = this.arrayIsEmpty(this.dataCheck.destination.value);\r\n this.startAct = false;\r\n this.tagList.sort = this.tagsTableSort;\r\n this.tagList.paginator = this.tagsPaginator;\r\n this.firstTableClass = \"showData\";\r\n this.isLoader = false;\r\n });\r\n }\r\n\r\n //To check if a tagList array is empty\r\n arrayIsEmpty(array) {\r\n if (!Array.isArray(array)) {\r\n return false;\r\n }\r\n if (array.length == 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n updateDilog(rowdata, action): void {\r\n rowdata.action = action;\r\n const dialogRef = this.dialog.open(ModalComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: rowdata,\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == \"Success\") {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Updated Successfully\" });\r\n }\r\n this.getLocationList();\r\n if(action === 'update') {\r\n this.filterTags(this.filterTagForm);\r\n }\r\n \r\n });\r\n }\r\n\r\n openDialog(): void {\r\n const dialogRef = this.dialog.open(ModalComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: {}\r\n\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == \"Success\") {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Updated Successfully\" });\r\n \r\n\r\n }\r\n this.getLocationList();\r\n \r\n });\r\n }\r\n\r\n getLocationName(locationForTagName) {\r\n if (locationForTagName != null) {\r\n let loc = this.locationList.filter(function (locObj) {\r\n if (locObj.locationId == locationForTagName) {\r\n return locObj.locationName;\r\n }\r\n });\r\n return loc[0].locationName;\r\n }\r\n\r\n }\r\n\r\n reverseLoc(locName) {\r\n if (locName != '') {\r\n let loc = this.locationList.filter(function (locObj) {\r\n if (locObj.locationName == locName) {\r\n return locObj.locationId;\r\n }\r\n });\r\n return loc[0].locationId;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n \r\n}\r\n\r\n\r\n@Component({\r\n selector: 'modal-component',\r\n templateUrl: './modal.component.html',\r\n styleUrls: ['./tagmaster.component.css']\r\n})\r\n\r\nexport class ModalComponent {\r\n show: boolean;\r\n View: boolean = false;\r\n editDisabled: boolean = false;\r\n Heading: string = \"Create Tag\";\r\n isLoader: boolean = false;\r\n disabledFlag: boolean = true;\r\n UseCaseToTags = [];\r\n locationList;\r\n useCaseList;\r\n availableTags;\r\n dropdownSettings = {};\r\n tempLoc: string = \"-_\";\r\n tempTagId = \"-\";\r\n locId; eqId; disabledLoc; disabledTT;\r\n locationFlag: boolean = false; \r\n isEdit: boolean = false;\r\n errMsg: string;\r\n errFlag: boolean = false;\r\n tagAvailable: boolean = false;\r\n tagExistInPiPointFlag: boolean = false;\r\n @ViewChild('tagForm', { static: true }) public tagForm: NgForm;\r\n initialValue = {\r\n tagDesc: this.data.tagDesc,\r\n tagId: this.data.tagId\r\n };\r\n constructor(\r\n public dialog: MatDialog,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: TagMaster,\r\n public httpService: HttpService,\r\n public globalService: GlobalService,\r\n public tagMasterService: TagMasterService,\r\n public router: Router,\r\n public _router: ActivatedRoute,\r\n public piHistoryService: PiHistoryService\r\n ) { };\r\n\r\n ngOnInit() {\r\n \r\n this.getUseCaseList();\r\n this.getLocationList();\r\n this.getAvailableTags();\r\n this.checkProperty();\r\n\r\n this.dropdownSettings = {\r\n singleSelection: false,\r\n idField: 'useCaseId',\r\n textField: 'useCaseName',\r\n selectAllText: 'Select All',\r\n unSelectAllText: 'UnSelect All',\r\n itemsShowLimit: 10,\r\n limitSelection: 10,\r\n allowSearchFilter: true\r\n };\r\n }\r\n\r\n checkProperty() {\r\n if (this.data.action == \"View\") {\r\n this.fetchUseCaseToTags();\r\n this.Heading = \"Tag Details\";\r\n this.isEdit = false;\r\n this.editDisabled = true;\r\n }\r\n if (this.data.action == \"update\") {\r\n this.fetchUseCaseToTags();\r\n this.Heading = \"Update Tag\";\r\n this.isEdit = true;\r\n this.editDisabled = true;\r\n }\r\n if (this.data.action == \"Create\" || this.data.action == undefined) {\r\n this.isLoader = false;\r\n \r\n\r\n this.Heading = \"Create Tag\";\r\n this.isEdit = false;\r\n this.editDisabled = false;\r\n }\r\n }\r\n\r\n\r\n getAvailableTags() {\r\n\r\n this.tagMasterService.filteredTagList('', '', '').subscribe((tagList: any): void => {\r\n this.availableTags = tagList;\r\n console.dir(this.availableTags);\r\n });\r\n }\r\n\r\n fetchUseCaseToTags() {\r\n this.tagMasterService.getUseCaseByMasterTagId(this.data.id).subscribe(tagDetail => {\r\n this.data.UseCaseToTags = tagDetail;\r\n });\r\n }\r\n\r\n getLocationList() {\r\n this.tagMasterService.getLocations().subscribe(locData => {\r\n this.locationList = locData;\r\n let loc = this.data.locationName;\r\n if (this.data.locationId == undefined && loc != undefined) {\r\n let location = this.locationList.filter(function (locObj) {\r\n return locObj.locationName == loc;\r\n })[0];\r\n this.locId = location.locationId;\r\n this.data.locationId = location.locationId;\r\n }\r\n else {\r\n this.locId = this.data.locationId;\r\n }\r\n\r\n if (this.data.action == \"View\" || this.data.action == \"update\") {\r\n this.disabledLoc = this.data.locationName;\r\n }\r\n \r\n });\r\n }\r\n\r\n \r\n \r\n\r\n getUseCaseList() {\r\n this.tagMasterService.getUseCases().subscribe(useCaseData => {\r\n this.useCaseList = useCaseData;\r\n });\r\n this.isLoader = false;\r\n }\r\n\r\n \r\n /** Start - Tpeahead on selet events*/\r\n locationChange(locationForTagName) {\r\n \r\n if (locationForTagName.item.locationName != \"\" || locationForTagName.item.locationName != \"undefined\") {\r\n this.locationFlag = false;\r\n this.tempLoc = locationForTagName.item.locationName + \"_\";\r\n this.locId = locationForTagName.item.locationId;\r\n \r\n } else {\r\n this.tempLoc = \"_-_ \";\r\n }\r\n }\r\n\r\n/** Start - Check for wrong input */\r\n locationKeyUp(selection) {\r\n let isLocationAvailable = this.locationList.filter(function (obj) {\r\n return obj.locationName == selection.value;\r\n });\r\n if (isLocationAvailable != undefined && isLocationAvailable.length == 0) {\r\n this.locationFlag = true;\r\n }\r\n }\r\n\r\n /** End - Check for wrong input */\r\n\r\n onDiscardClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onCancelClick(): void {\r\n if(this.data.action == 'View'){\r\n this.tagForm.reset({\r\n disTagDesc: this.data.tagDesc,\r\n tagId: this.data.tagId\r\n });\r\n } else if(this.data.action == 'update'){\r\n this.tagForm.reset({\r\n tagDesc: this.initialValue.tagDesc,\r\n tagId: this.initialValue.tagId\r\n });\r\n }\r\n \r\n this.dialogRef.close(\"Cancel\");\r\n }\r\n\r\n createSelectedUseCaseList(selectedUseCases) {\r\n if (selectedUseCases != undefined) {\r\n const newArray = selectedUseCases.map(o => {\r\n return { useCaseId: o.useCaseId };\r\n });\r\n\r\n return newArray;\r\n }\r\n\r\n }\r\n\r\n createTag(tagForm: NgForm) {\r\n this.isLoader = true;\r\n this.data.createdBy = this.globalService.loggedInUser;\r\n this.data.r4location = \"\";\r\n this.data.modifiedBy = this.globalService.loggedInUser;\r\n if (this.data.locIdFromPP > 0) {\r\n this.data.locationId = this.data.locIdFromPP;\r\n } else {\r\n this.data.locationId = this.locId;\r\n }\r\n const modifiedData = {...this.data};\r\n modifiedData.UseCaseToTags = this.createSelectedUseCaseList(tagForm.value.UseCaseToTags); \r\n\r\n this.tagMasterService.addTag(modifiedData).subscribe((result: any): void => {\r\n if (result.value != null && result.value != 0) {\r\n this.isLoader = false;\r\n this.data.id = result.value;\r\n this.globalService.showAlert(AlertComponent, { success: true, message: 'Tag configured successfully.' });\r\n this.dialogRef.close(\"added\");\r\n this.isLoader = false;\r\n this.getAvailableTags();\r\n }\r\n },\r\n error => {\r\n console.log('error', error);\r\n });\r\n\r\n }\r\n\r\n convert(str) {\r\n let date = new Date(str),\r\n mnth = (\"0\" + (date.getMonth() + 1)).slice(-2),\r\n day = (\"0\" + date.getDate()).slice(-2);\r\n return [date.getFullYear(), mnth, day].join(\"-\");\r\n }\r\n\r\n updateTag() {\r\n this.isLoader = true;\r\n \r\n this.data.modifiedBy = this.globalService.loggedInUser;\r\n const modifiedData = {...this.data};\r\n modifiedData.UseCaseToTags = this.createSelectedUseCaseList(this.data.UseCaseToTags); \r\n this.tagMasterService.editTag(modifiedData).subscribe((result: any): void => {\r\n if (result.value == \"Success\") {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: 'Tag updated successfully.' });\r\n this.dialogRef.close(\"added\");\r\n this.isLoader = false; \r\n }\r\n });\r\n }\r\n\r\n getLocationName(locationForTagName) {\r\n return this.locationList.filter(function (locObj) {\r\n if (locObj.locationId == locationForTagName) {\r\n return locObj.locationName;\r\n }\r\n });\r\n }\r\n\r\n updateDilog(rowdata, action): void {\r\n rowdata.action = action;\r\n this.checkProperty();\r\n const dialogRef = this.dialog.open(ModalComponent, {\r\n width: '80%',\r\n panelClass: 'confirm-modalbox-dark',\r\n height: 'auto',\r\n data: rowdata,\r\n disableClose: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result == \"Success\") {\r\n this.globalService.showAlert(AlertComponent, { success: true, message: \"Updated Successfully\" });\r\n }\r\n });\r\n }\r\n\r\n onUseCaseDeSelect(event) {\r\n this.globalService.showAlert(AlertComponent, { success: false, message: \"Cannot remove already subscribed use cases.\" });\r\n this.fetchUseCaseToTags();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Location 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 \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \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\r\n \r\n \r\n \r\n \r\n \r\n \r\n Tag ID\r\n {{row.tagId}}\r\n \r\n \r\n \r\n Location\r\n {{row.locationName}} \r\n \r\n \r\n Use case\r\n {{row.tenantName}} \r\n \r\n \r\n Description\r\n \r\n {{((row.tagDesc != null && row.tagDesc.length > 30 ) ? row.tagDesc.substring(0, 10) + \"...\" : row.tagDesc)}}\r\n \r\n \r\n \r\n Action\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n There are no records to display.\r\n
\r\n
\r\n Select Location to continue with Tag.\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n {{Heading}}\r\n
\r\n\r\n\r\n
{{errMsg}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Tag ID*\r\n help_outline\r\n
\r\n
\r\n \r\n \r\n Tag Id is required.\r\n \r\n
\r\n Tag Id is already available.\r\n
\r\n
\r\n Tag id does not exist in PI Point.\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Please provide valid location\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Tag Description\r\n
\r\n
\r\n \r\n \r\n \r\n Tag 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
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class ThemeModule { }\r\nexport interface Theme {\r\n name: string;\r\n properties: any;\r\n}\r\n\r\nexport const light: Theme = {\r\n name: \"light\",\r\n properties: {\r\n \"--background-default\": \"#FFFFFF\",\r\n \"--background-item-box\": \"#FFFFFF\",\r\n \"--heading-item-box\": \"#000000\",\r\n \"--background-right-default\": \"#FFFFFF\",\r\n \"--background-chart-box\": \"#FFFFFF\",\r\n }\r\n};\r\n\r\nexport const dark: Theme = {\r\n name: \"dark\",\r\n properties: {\r\n \"--background-default\": \"#2C2C2C\",\r\n \"--background-item-box\": \"#576271\",\r\n \"--heading-item-box\": \"#FFFFFF\",\r\n \"--background-right-default\": \"#707070\",\r\n \"--background-chart-box\": \"#FFFFFF\",\r\n }\r\n};\r\n","export const UOMData = {\r\n 'Currency': [\r\n 'EUR',\r\n 'USD'\r\n ],\r\n 'CurrencyRate': [\r\n 'EUR/hr',\r\n 'EUR/day',\r\n 'EUR/year',\r\n 'USD/hr',\r\n 'USD/day',\r\n 'USD/year'\r\n ],\r\n 'Current': [\r\n 'A'\r\n ],\r\n 'Density': [\r\n 'kg/m3',\r\n 'g/cc'\r\n ],\r\n 'Dynamic Viscosity': [\r\n 'dyn/mm**2*s'\r\n ],\r\n 'Energy': [\r\n 'BTU',\r\n 'kBTU',\r\n 'cal',\r\n 'kcal',\r\n 'J',\r\n 'kJ',\r\n 'MJ',\r\n 'Wh',\r\n 'kWh',\r\n 'MWh',\r\n 'tep',\r\n 'ktep'\r\n ],\r\n 'EnergyRate': [\r\n 'BTU/s',\r\n 'BTU/min',\r\n 'BTU/hr',\r\n 'BTU/day',\r\n 'kBTU/s',\r\n 'kBTU/min',\r\n 'kBTU/hr',\r\n 'kBTU/day',\r\n 'cal/s',\r\n 'cal/min',\r\n 'cal/hr',\r\n 'cal/day',\r\n 'kcal/s',\r\n 'kcal/min',\r\n 'kcal/hr',\r\n 'kcal/day',\r\n 'J/s',\r\n 'J/min',\r\n 'J/hr',\r\n 'J/day',\r\n 'kJ/s',\r\n 'kJ/min',\r\n 'kJ/hr',\r\n 'kJ/day',\r\n 'MJ/s',\r\n 'MJ/min',\r\n 'MJ/hr',\r\n 'MJ/day',\r\n 'tep/s',\r\n 'tep/min',\r\n 'tep/hr',\r\n 'tep/day',\r\n 'ktep/s',\r\n 'ktep/min',\r\n 'ktep/hr',\r\n 'ktep/day',\r\n 'Gcal/hr'\r\n ],\r\n 'Energy/Mass': [\r\n 'J/kg',\r\n 'kJ/kg',\r\n 'kcal/kg',\r\n 'ktep/ktonne',\r\n 'tep/ktonne'\r\n ],\r\n 'Fraction': [\r\n '%',\r\n 'fraction',\r\n 'PPM'\r\n ],\r\n 'Kinematic Viscosity': [\r\n 'mm**2/s'\r\n ],\r\n 'Mass': [\r\n 'mg',\r\n 'g',\r\n 'kg',\r\n 'lb',\r\n 'tonne',\r\n 'ktonne'\r\n ],\r\n 'MassRate': [\r\n 'g/s',\r\n 'g/min',\r\n 'g/hr',\r\n 'kg/s',\r\n 'kg/min',\r\n 'kg/hr',\r\n 'kg/day',\r\n 'lb/s',\r\n 'lb/min',\r\n 'lb/hr',\r\n 'lb/day',\r\n 't/s',\r\n 't/min',\r\n 't/hr',\r\n 't/day'\r\n ],\r\n 'Mass/Mass': [\r\n 't/ktonne',\r\n 'mg/kg',\r\n 'mg/g'\r\n ],\r\n 'Power': [\r\n 'W',\r\n 'kW',\r\n 'MW'\r\n ],\r\n 'Pressure': [\r\n 'atm',\r\n 'bar',\r\n 'mmHg',\r\n 'mmH2O',\r\n 'Pa',\r\n 'kPa',\r\n 'psi'\r\n ],\r\n 'Temperature': [\r\n 'celsius',\r\n 'fahrenheit',\r\n 'kelvin',\r\n 'rankine'\r\n ],\r\n 'Time': [\r\n 's',\r\n 'hr',\r\n 'min',\r\n 'day',\r\n 'year'\r\n ],\r\n 'Voltage': [\r\n 'V',\r\n 'kV'\r\n ],\r\n 'Volume': [\r\n 'cc',\r\n 'm3',\r\n 'ml',\r\n 'litre',\r\n 'bbl'\r\n ],\r\n 'VolumeRate': [\r\n 'cc/s',\r\n 'm3/s',\r\n 'm3/min',\r\n 'm3/hr',\r\n 'ml/s',\r\n 'l/s',\r\n 'l/min',\r\n 'l/hr',\r\n 'bbl/hr',\r\n 'bbl/day',\r\n 'bbl/year'\r\n ],\r\n 'Dimensionless': [\r\n 'Dimensionless'\r\n ]\r\n};\r\n","export const environment = {\r\n production: process.env[\"ISPRODUCTION\"],\r\n clientId: process.env[\"AUTH_CLIENT_CLIENTID\"],\r\n authority: \"https://login.microsoftonline.com/329e91b0-e21f-48fb-a071-456717ecc28e\",\r\n validateAuthority: true,\r\n redirectUri: process.env[\"AUTH_CLIENT_REDIRECTURI\"],\r\n postLogoutRedirectUri: process.env[\"AUTH_CLIENT_POSTLOGOUTREDIRECTURI\"],\r\n navigateToLoginRequestUrl: true,\r\n foundationPlatformApi_client_resourceUri: process.env[\"FOUNDATIONPLATFORMAPI_CLIENT_RESOURCEURI\"],\r\n foundationPlatformApi_client_resourceScope: process.env[\"FOUNDATIONPLATFORMAPI_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_TagAdminGroupId: process.env[\"GROUPS_CLIENT_TAGADMINGROUPID\"],\r\n groups_client_FoundationUserGroupId: process.env[\"GROUPS_CLIENT_FOUNDATIONUSERGROUPID\"],\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 moveTagMasterMsg: \"Move to Pre-Production\",\r\n platformHomeUrl: process.env[\"PLATFORMHOMEURL\"],\r\n platformHubUrl: process.env[\"PLATFORMHUBURL\"],\r\n appInsightKey: process.env[\"APPINSIGHTKEY\"],\r\n platformDocumentation: process.env[\"PLATFORMDOCUMENTATION\"]\r\n};","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport './polyfills.ts';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\n// This file includes polyfills needed by Angular 2 and is loaded before\r\n// the app. You can add your own extra polyfills to this file.\r\nimport \"hammerjs/hammer\";\r\nimport 'core-js/es6/symbol';\r\nimport 'core-js/es6/object';\r\nimport 'core-js/es6/function';\r\nimport 'core-js/es6/parse-int';\r\nimport 'core-js/es6/parse-float';\r\nimport 'core-js/es6/number';\r\nimport 'core-js/es6/math';\r\nimport 'core-js/es6/string';\r\nimport 'core-js/es6/date';\r\nimport 'core-js/es6/array';\r\nimport 'core-js/es6/regexp';\r\nimport 'core-js/es6/map';\r\nimport 'core-js/es6/set';\r\nimport 'core-js/es6/reflect';\r\nimport 'core-js/es7/object';\r\nimport 'core-js/es7/reflect';\r\nimport 'zone.js';\r\n"],"names":["AuthenticationResult","EventMessage","EventType","PopupRequest","Subject","concatMap","filter","takeUntil","MSAL_GUARD_CONFIG","ApplicationInsights","AppConstants","i0","AppComponent","constructor","authService","msalGuardConfig","msalBroadcastService","grphService","overageService","_router","httpService","globals","globalService","tenantService","countryList","getScreenSize","event","screenWidth","window","innerWidth","isMobileResolution","ngOnInit","isLoading","initialize","countryCode","detectCurrentComponent","route","url","includes","currentComponent","dataCleansingComponentId","formulaComponentId","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","properties","measurements","duration","trackPageView","uri","setAuthenticatedUserContext","context","user","id","groupsClientIds","forEach","groupId","groupIDs","push","groups_client_PlatformAdminGroupId","rbacName","groups_client_TagAdminGroupId","groups_client_FoundationUserGroupId","getTenantListFromServer","toggleCollapse","sidenavWidth","disableTooltip","showCross","isMenuOpen","isActive","label","selectFlag","Code","selectors","hostBindings","ctx","MAT_DIALOG_DATA","MatTableDataSource","map","UntypedFormControl","RunPIHistoryDataComponent","FilterModel","FilterFieldTypes","ctx_r22","pihistoryDataComponent","piHistoryService","router","dialog","runBy","status","refreshAllRuns","nameFilter","valueChanges","filterValues","runList","JSON","stringify","statusFilter","getAllHistoryRuns","isLoader","getAllRuns","masterData","noData","connect","data","sort","runsTableSort","paginator","runsPaginator","firstTableClass","filterList","createFilterList","checkRun","row","getUpdatedRun","runId","value","refreshAll","deserialize","json","collection","parse","viewParameterDilog","parameter","open","ParameterModalComponent","width","panelClass","height","runParameterDialog","dialogRef","afterClosed","result","columns","a","tempFilter","fieldName","replaceDisplayText","fieldType","text","unique","Set","runAt","values","filterResponse","conditionalDataFiltering","selectedFilters","popover","isOpen","close","remove","selectedFilter","index","indexOf","splice","slice","element","viewQuery","fileName","sheet","onCancelClick","decls","vars","consts","template"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}