{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/add-note/add-note.component.ts","webpack:///src/app/add-note/add-note.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/app/faq/faq.component.ts","webpack:///src/app/faq/faq.component.html","webpack:///src/app/faq/dialog-image.html","webpack:///src/app/footer/footer.component.ts","webpack:///src/app/footer/footer.component.html","webpack:///src/app/header/header.component.ts","webpack:///src/app/header/header.component.html","webpack:///src/app/header/logout-popup.html","webpack:///src/app/home/home.component.ts","webpack:///src/app/home/home.component.html","webpack:///src/app/instructional-manual/instructional-manual.component.ts","webpack:///src/app/instructional-manual/instructional-manual.component.html","webpack:///src/app/login/login.component.ts","webpack:///src/app/login/login.component.html","webpack:///src/app/models/productDetails.ts","webpack:///src/app/pipe/highlight.pipe.ts","webpack:///src/app/pipe/number-formatter.pipe.ts","webpack:///src/app/product/product-details/product-details.component.ts","webpack:///src/app/product/product-details/product-details.component.html","webpack:///src/app/product/product-details/popup-image.html","webpack:///src/app/product/product-details/delete-popup.html","webpack:///src/app/product/product-search/product-search.component.ts","webpack:///src/app/product/product-search/product-search.component.html","webpack:///src/app/register-form/register-form.component.ts","webpack:///src/app/register-form/register-form.component.html","webpack:///src/app/register/register.component.ts","webpack:///src/app/register/register.component.html","webpack:///src/app/services/data-sharing.service.ts","webpack:///src/app/services/faq.service.ts","webpack:///src/app/services/fetch-user-details.service.ts","webpack:///src/app/services/file-upload.service.ts","webpack:///src/app/services/product.service.ts","webpack:///src/app/shared/directives/go-back-directive.ts","webpack:///src/app/shared/interceptors/auth-interceptors.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/user-profile/user-profile.component.ts","webpack:///src/app/user-registration-details/user-registration-details.component.ts","webpack:///src/app/user-registration-details/user-registration-details.component.html","webpack:///src/environments/environment.ts","webpack:///src/main.ts","webpack:///src/oauth.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","AddNoteComponent","formBuilder","dialogRef","data","productService","snackBar","fileUploadService","dataSharingService","isHidden","addNotes","productNotes","productSerialNo","imageLoc","updatedBy","operatorId","updatedOn","isDeleted","deletedBy","productNotesFile","filepath","fileType","myDate","Date","submitted","loading","addNoteForm","group","notes","required","close","files","text","invalid","console","log","fileName","_fileNames","productId","fileUploadForNotes","productLine","subscribe","Message","_files","length","map","item","Upload_URL","name","type","forEach","push","addProductNotes","resp","open","duration","setNotes","err","controls","closePopup","SaveNote","selector","templateUrl","styleUrls","routes","path","component","loadChildren","m","AdminModule","redirectTo","pathMatch","AppRoutingModule","forRoot","declarations","imports","AppComponent","broadcastService","cd","router","title","DelAcct","itemStr","localStorage","getItem","refreshTokenTimer","refreshAccessToken","getLoaderStatus","subscription","payload","window","addEventListener","event","historyTraversal","persisted","performance","navigation","location","reload","fetchLoader","val","showLoader","detectChanges","navigate","isIE","navigator","userAgent","indexOf","AppModule","provide","useClass","multi","auth","clientId","authority","redirectUri","cache","cacheLocation","storeAuthStateInCookie","popUp","consentScopes","unprotectedResources","protectedResourceMap","extraQueryParameters","providers","bootstrap","FaqComponent","route","_location","fetchUserDetailsService","faqService","dialog","panelOpenState","productDetailObject","loader","unrestrictedUser","isgetSpareParts","sparePartsData","isselectAll","isOrgPrice","quoteText","AZURE_BLOB_END_POINT","QUESTION_MARK","AZURE_BLOB_SAS_KEY","queryParams","params","sessionStorage","setItem","replaceState","split","setHeader","unrestrictedUserAccess","setUnrestrictedUser","decodedToken","email","includes","pop","fetchUseryEmail","setUserTypeId","userTypeId","userOperatorId","getUserTypeId","fetchUserRole","res","role","fetchProductDetails","removeItem","productDetails","newProducts","filter","serialNumber","docLocation","productFirstAttributes","prodAttributes","attributeValue","setFaq","productLineId","checkQuoteAndOrderForProd","getFaq","faq","faqData","faqImages","obj","getImages","answer","transformLink","images","img","azureBlobImage","error","fetchNotes","fetchProductNotes","fetchSpareParts","navigationExtras","sparePartsResult","some","r","price","convertNotes","notesLength","Object","notesFile","notesFileCount","checkQuoteandOrder","isCheckQuoteOrder","quoteAdmin","orderAdmin","isSelectAll","sp","checked","selectedSP","quoteNo","orderNo","i","note","noteText","startsWith","replace","quoteOrOrder","setLoader","postData","notesText","description","partNo","sendSPQuotes","resetSelection","Result","productSerialNum","sendSPOrder","postFormSubmit","sendUserForm","reset","receivedListSparePartsResult","usPopupToggle","emailIds","value","message","listSpareParts","setShowSmallLoader","sendOthersToSpareParts","str","join","form","document","createElement","action","apiUrl","angular","element","append","method","body","submit","image","DialogContentComponent","width","height","stylizedText","t","gotoProductDetails","EncodedImageURL","FooterComponent","isHeaderVisibility","header","isHeader","HeaderComponent","authService","userDetailService","downArrow","delAcct","setDownArrow","setTimeout","token","firstName","lastName","uniqueName","clearInterval","PopUpContentComponent","clear","logout","deleteUserAccount","status","logoutMethodByDeleteAcct","logoutMethod","HomeComponent","isMessage","unrestrictedUserForm","userName","serialNo","isSerialNo","ManualDoc","InstructionalManualComponent","fetchCount","prodDoc","dataSheetDoc","dataBookDoc","spareDoc","weldingSheetDoc","othersDoc","globalDoc","globalDocument","isSpares","validateEmail1","validateEmail2","validateURL1","validateURL2","isGlobalPDFs","fetchPrductDetails","contEmail1","match","contEmail2","instVideo","maintVideo","prodFiles","userAccessIndicator","customerAccountNo","globalPDFs","pfile","docType","documnt","doclocation","lastSlashValue","replaceAll","dataSheetFile","dataSheetSlashValue","dataSheet","dataBookFile","dataBookSlashValue","dataBook","spareFile","spareLastSlashValue","weldingFile","weldingSlashValue","weldingSheet","othersFile","otherSlashValue","otherSheet","gFile","dir","re","globalDocFileName","globalProductLineFileName","link","url","test","accessMessage","grantAccess","LoginComponent","http","emptyErrMessage","headers","loginForm","handleRedirectCallback","authError","response","errorMessage","acquireTokenPopup","tokenResponse","accessToken","setAccessToken","fetchUserRoleFromServer","now","expiry","getTime","JSON","stringify","get","trim","valid","fetchLoginByEmail","loginRedirect","extraScopesToConsent","onSubmit","goToRegister","ProductDetails","attributeId","HighlightPipe","search","srchTxt","RegExp","NumberFormatterPipe","ProductDetailsComponent","isProductNotes","isNotes","firstSubscribeBtn","subscribeBtn","unsubscribeBtn","uoId","qrcodeId","currency","notesOperatorId","qrCodeCheck","tag","os","sendTag","saveProductSubscription","undefined","fetchqrCodeDetails","selectAll","valveSelectedItem","valveSelectedNextItems","selectedSPValve","productNotesId","notesCountActualValue","notesCount","specificNotesDetails","nextNote","DeleteConfirmPopUpComponent","encodeURI","azureBlobImagePath","deleteSpecificNote","todayISOString","toISOString","deleteNote","deleteProductNotes","deleteNotes","ProductSearchComponent","userStatusForm","isSelected","isButton","isRevoke","isBlocked","isVisible","success","ddlfields","selectRow","userData","subscribeMsg","userstatusPopup","intl","dateFormatter","getDateFormat","format","valueAccess","field","column","searchProductForm","productSId","listProductDetails","productSpecific","prodline","doc","btnChange","uploadFilesProduct","fileUploadSpareParts","file","fileExtension","endsWith","isUploadProgress","fileUpload","messageProductSpecific","prodLine","datacategory","fileUploadProduct","pendingBar","getElementById","rejectedBar","approvedBar","revokedBar","blockedBar","getStatusCount","count","pending","Pending","approved","Approved","rejected","Rejected","blocked","Blocked","revoked","Revoked","total","Total","style","PendingPercentage","RejectedPercentage","ApprovedPercentage","RevokedPercentage","BlockedPercentage","gridValue","localStorageAccessToken","fetchProductLines","productLines","fetchOperatorByStatus","grid","refresh","toolbar","filterSettings","clearFiltering","queryParamsHandling","fetchUserDetails","user","selectedrecords","getSelectedRecords","userRows","approvalStatus","userStatusObject","userStatusInfo","userStatusData","brand","userInfo","getStatusApproved","selectedOperatorIds","u","d","setGrid","currentUserStatus","currentSelectRecords","currentStatus","every","userEmailsSelected","getStatusWithoutMail","args","wildCardSearch","RegisterFormComponent","userService","isError","registerAccountHolder","reActivateErr","addregisterForm","pattern","mobileNo","orgName","country","department","fetchBrandDetails","getCountries","countries","sort","a","b","common","registeredEmail","registeredUserValue","accessLevel","approvedOn","regionalManager","addUserOnBehalf","selectBrand","brandArr","key","userAcctReactivate","emailAcctStatus","goBack","RegisterComponent","userOnBehalfService","dynamicUserRows","newArr","registerForm","minLength","maxLength","jobTitle","editSettings","showConfirmDialog","showDeleteConfirmDialog","allowEditing","allowEditOnDblClick","allowDeleting","mode","commands","buttonOption","cssClass","iconCss","click","deleteUserOnBehalf","dataParams","addedUser","saved_data","details","userBrand","updateUserOnBehalf","row","removedUser","keyCode","excludedKeys","preventDefault","brandParam","create","elem","read","Obj","destroy","write","dataSource","fields","appendTo","ShowDashboardPage","rowSelected","editUserOnBehalf","DataSharingService","showSmallLoader","_subscriberId","userRole","asObservable","pipe","pendingArray","fetchPendingArray","faqs","headerVisibility","isDownArrow","month","year","getRole","find","next","setInterval","acquireTokenSilent","providedIn","FaqService","post","FetchUserDetailsService","options","withAuth","put","emailId","apiUrlCty","result","FileUploadService","_http","fileList","_fileUpload","formData","FormData","dataCategory","ProductService","userId","qrCodeId","sparePartsQuote","sparePartsOrder","objectData","prodlineId","productLineName","searchType","plData","pageNo","pageSize","BackButtonDirective","back","AuthInterceptor","request","has","handle","clone","parse","setHeaders","authorization","SharedModule","UserProfileComponent","userdetails","UserRegistrationDetailsComponent","userDetails","pageSettings","pageCount","selectedrowindex","getSelectedRowIndexes","adminId","userID","environment","production","bootstrapModule","OAuthSettings","scopes"],"mappings":"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","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ProductService } from '../services/product.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { FileUploadService } from '../services/file-upload.service';\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\n\nexport interface DialogData {\n productId: string;\n productLine: any;\n notes: any;\n}\n@Component({\n selector: 'app-add-note',\n templateUrl: './add-note.component.html',\n styleUrls: ['./add-note.component.css']\n})\nexport class AddNoteComponent implements OnInit {\n addNoteForm: FormGroup;\n public isHidden = true;\n fileName: any;\n addNotes = {\n productNotes: {\n productSerialNo: null,\n productNotes: null,\n imageLoc: null,\n updatedBy: { operatorId: 0 },\n updatedOn: null,\n isDeleted: null,\n deletedBy: null,\n },\n productNotesFile: [{\n filepath: null,\n fileType: null,\n }]\n };\n\n myDate = new Date();\n lastSlashValue: any;\n productNotesFile: [];\n submitted = false;\n loading = false;\n constructor(private formBuilder: FormBuilder, public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData, private productService: ProductService,\n private snackBar: MatSnackBar, private fileUploadService: FileUploadService,\n private dataSharingService: DataSharingService) {\n }\n\n ngOnInit(): void {\n this.addNoteForm = this.formBuilder.group({\n notes: ['', Validators.required],\n // password: ['', Validators.required]\n });\n }\n\n closePopup(): void {\n this.dialogRef.close();\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality : Calling file upload and add note api\n * Code Desc : It is saving the note which is entered by admin and seleted file by calling add note api.\n */\n\n get f() { return this.addNoteForm.controls; }\n\n SaveNote(files, text) {\n this.submitted = true;\n if (this.addNoteForm.invalid) {\n return;\n }\n\n this.loading = true;\n\n if (files) {\n console.log('Entered in if condition');\n console.log('this.data.notes;', this.data.notes);\n console.log('File:', files);\n this.fileName = files._fileNames;\n this.addNotes.productNotes.productSerialNo = this.data.productId;\n this.addNotes.productNotes.productNotes = text;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = this.myDate;\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.fileUploadService.fileUploadForNotes(files, this.data.productLine, this.data.productId).subscribe(data => {\n console.log('Response from api', data);\n this.addNotes.productNotesFile = [];\n\n if (data.Message === 'Success') {\n console.log('length of files._files', files._files.length);\n files._files.map(item => {\n return {\n filepath: data.Upload_URL + '/' + item.name,\n fileType: item.type\n };\n }).forEach(item => this.addNotes.productNotesFile.push(item));\n\n console.log('this.addNotes.productNotesFile', this.addNotes.productNotesFile);\n }\n this.productService.addProductNotes(this.addNotes).subscribe(resp => {\n console.log('data', resp);\n if (data.Message === 'Success') {\n this.snackBar.open('New note has been added successfully', '', {\n duration: 3500\n });\n this.dataSharingService.setNotes(true);\n }\n else {\n this.snackBar.open('error in adding notes', '', {\n duration: 3500\n });\n }\n }, (err) => {\n console.log(err);\n });\n\n\n }, (err) => {\n console.log(err);\n });\n }\n else {\n this.addNotes.productNotes.productSerialNo = this.data.productId;\n this.addNotes.productNotes.productNotes = text;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = this.myDate;\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log('data', data);\n if (data.Message === 'Success') {\n this.snackBar.open('New note has been added successfully', '', {\n duration: 3500\n });\n this.dataSharingService.setNotes(true);\n }\n else {\n this.snackBar.open('error in adding notes', '', {\n duration: 3500\n });\n }\n }, (err) => {\n console.log(err);\n });\n }\n this.dialogRef.close();\n }\n\n}\n","
\n

Add Product Note

\n \n
\n
\n\n

You can add notes on product and attach photos and files here...

\n
\n
\n \n
\n
Notes field is required
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n
","import { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { LoginComponent } from \"./login/login.component\";\nimport { RegisterComponent } from \"./register/register.component\";\nimport { AuthGuardService } from \"./services/auth/auth-guard.service\";\nimport { HomeComponent } from \"./home/home.component\";\nimport { ProductSearchComponent } from \"./product/product-search/product-search.component\";\nimport { ProductDetailsComponent } from \"./product/product-details/product-details.component\";\nimport { FaqComponent } from \"./faq/faq.component\";\nimport { InstructionalManualComponent } from \"./instructional-manual/instructional-manual.component\";\nimport { UserProfileComponent } from \"./user-profile/user-profile.component\";\nimport { RegisterFormComponent } from \"./register-form/register-form.component\";\n\nconst routes: Routes = [\n {\n path: \"unrestricted-url-access\",\n component: HomeComponent,\n // canActivate: [AuthGuardService]\n },\n {\n path: \"login\",\n component: LoginComponent,\n },\n {\n path: \"register\",\n component: RegisterComponent,\n },\n {\n path: \"register-form\",\n component: RegisterFormComponent,\n },\n {\n path: \"product-search\",\n component: ProductSearchComponent,\n },\n {\n path: \"product-details\",\n component: ProductDetailsComponent,\n },\n {\n path: \"faq\",\n component: FaqComponent,\n },\n {\n path: \"instructional-manual\",\n component: InstructionalManualComponent,\n },\n {\n path: \"user-profile\",\n component: UserProfileComponent,\n },\n { path: 'admin', loadChildren: () => import('./admin/admin.module').then(m => m.AdminModule) },\n \n { path: \"\", redirectTo: \"login\", pathMatch: \"full\" },\n\n // otherwise redirect to home\n { path: \"**\", component: LoginComponent },\n\n];\n\n@NgModule({\n declarations: [],\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { ChangeDetectorRef, Component,OnInit} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MsalService, BroadcastService } from '@azure/msal-angular';\nimport { DataSharingService } from './services/data-sharing.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent implements OnInit{\n title = 'circor-admin-ui';\n subscription: any;\n showLoader: boolean;\n DelAcct: boolean = false;\n\n constructor(private broadcastService: BroadcastService, public dataSharingService: DataSharingService, private cd: ChangeDetectorRef, private router: Router) {\n const itemStr = localStorage.getItem(\"accessToken\");\n if (itemStr && !this.dataSharingService.refreshTokenTimer) {\n this.dataSharingService.refreshAccessToken();\n }\n }\n ngOnInit(): void {\n this.getLoaderStatus();\n //localStorage.clear();\n \n this.subscription= this.broadcastService.subscribe(\"msal:acquireTokenFailure\", (payload) => {\n });\n // this.broadcastService.subscribe(\"msal:loginSuccess\", payload => {\n // do something here\n \n//});\n/*this.authService.handleRedirectCallback((authError, response) => {\n if (authError) {\n console.error('Redirect Error: ', authError.errorMessage);\n return;\n }\n console.log('Redirect Success: '+ response);\n this.router.navigate(['/product-search']);\n});*/\n\nwindow.addEventListener( \"pageshow\", function ( event ) {\n var historyTraversal = event.persisted || \n ( typeof window.performance != \"undefined\" && \n window.performance.navigation.type === 2 );\n if ( historyTraversal ) {\n // Handle page restore.\n window.location.reload();\n }\n});\n }\n\n getLoaderStatus() {\n this.dataSharingService.fetchLoader.subscribe((val => {\n this.showLoader = val;\n this.cd.detectChanges();\n }))\n }\n \n get getLoaderStatus$() {\n return this.dataSharingService.fetchLoader;\n }\n \n goBack() {\n this.router.navigate(['/login'])\n }\n \n openDelAcctPopUp() {\n this.DelAcct = true;\n }\n \n delAcct() {\n \n }\n\n}\n","
\n
\n\n\n\n\n\n ","import { BrowserModule } from '@angular/platform-browser';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\n\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\n\nimport { AppComponent } from './app.component';\nimport { LoginComponent } from './login/login.component';\nimport { RegisterComponent } from './register/register.component';\nimport { AuthGuardService } from './services/auth/auth-guard.service';\nimport { HomeComponent } from './home/home.component';\nimport { AppRoutingModule } from './app-routing.module';\nimport { ProductSearchComponent } from './product/product-search/product-search.component';\nimport { ProductDetailsComponent } from './product/product-details/product-details.component';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\n\nimport {MatCardModule} from '@angular/material/card';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatGridListModule} from '@angular/material/grid-list';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport { MaterialFileInputModule } from 'ngx-material-file-input';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatBadgeModule} from '@angular/material/badge';\n\nimport { FaqComponent } from './faq/faq.component';\nimport { InstructionalManualComponent } from './instructional-manual/instructional-manual.component';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport { HeaderComponent } from './header/header.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { UserRegistrationDetailsComponent } from './user-registration-details/user-registration-details.component';\nimport { CheckBoxModule } from '@syncfusion/ej2-angular-buttons';\n\nimport { DropDownListAllModule } from '@syncfusion/ej2-angular-dropdowns';\n\nimport { ToolbarModule } from '@syncfusion/ej2-angular-navigations';\n\nimport { NumericTextBoxAllModule } from '@syncfusion/ej2-angular-inputs';\n\nimport { DialogModule } from '@syncfusion/ej2-angular-popups';\n\nimport { GridAllModule } from '@syncfusion/ej2-angular-grids';\n import { MsalModule, MsalInterceptor } from '@azure/msal-angular';\nimport {MatMenuModule} from '@angular/material/menu';\nimport { HighlightPipe } from './pipe/highlight.pipe';\nimport { AddNoteComponent } from './add-note/add-note.component';\nimport { Ng2SearchPipeModule } from 'ng2-search-filter';\nimport { UserProfileComponent } from './user-profile/user-profile.component';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { RegisterFormComponent } from './register-form/register-form.component';\nimport { SharedModule } from './shared/shared.module';\n\nimport { AuthInterceptor } from './shared/interceptors/auth-interceptors';\nimport { NumberFormatterPipe } from './pipe/number-formatter.pipe';\n\nconst isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\n\n\n@NgModule({\n declarations: [\n AppComponent,\n LoginComponent,\n RegisterComponent,\n HomeComponent,\n ProductSearchComponent,\n ProductDetailsComponent,\n FaqComponent,\n InstructionalManualComponent,\n HeaderComponent,\n FooterComponent,\n UserRegistrationDetailsComponent,\n HighlightPipe,\n NumberFormatterPipe,\n AddNoteComponent,\n UserProfileComponent,\n RegisterFormComponent,\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n NoopAnimationsModule,\n MatCardModule,\n MatFormFieldModule,\n MatInputModule,\n MatTabsModule,\n MatGridListModule,\n MatSelectModule,\n MaterialFileInputModule,\n MatExpansionModule,\n MatSnackBarModule,\n MatTooltipModule,\n MatDialogModule,\n MatBadgeModule,\n MatNativeDateModule,\n MatMenuModule,\n HttpClientModule,\n CheckBoxModule,\n DropDownListAllModule,\n ToolbarModule,\n GridAllModule,\n NumericTextBoxAllModule,\n DialogModule,\n Ng2SearchPipeModule,\n SharedModule,\n MsalModule.forRoot({\n auth: {\n // clientId: '0e307113-75d1-43dd-acd8-bc5ec55a0af4', // This is your client ID\n // authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n // redirectUri: 'https://dev-traceability.azurewebsites.net/auth'// This is your redirect URI\n // clientId: '0e307113-75d1-43dd-acd8-bc5ec55a0af4', // This is your client ID\n // authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n // redirectUri: 'https://test-traceability.azurewebsites.net/auth'// This is your redirect URI\n clientId: '73866854-7051-487d-bcdd-9398fd283385', // This is your client ID\n authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n redirectUri: 'https://circorsmart.azurewebsites.net/auth',// This is your redirect URI\n },\n cache: {\n cacheLocation: 'localStorage',\n storeAuthStateInCookie: isIE, // Set to true for Internet Explorer 11\n },\n }, {\n popUp: !isIE,\n consentScopes: [\n 'user.read',\n 'openid',\n 'profile',\n ],\n unprotectedResources: [],\n protectedResourceMap: [\n ['https://graph.microsoft.com/v1.0/me', ['user.read']]\n ],\n extraQueryParameters: {}\n })\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: AuthInterceptor,\n multi: true\n },\n \n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { Router, ActivatedRoute, NavigationExtras } from '@angular/router';\nimport { IspareParts, ProductDetails } from 'src/app/models/productDetails';\nimport { ProductService } from '../services/product.service';\nimport {Location} from '@angular/common';\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { FaqService } from '../services/faq.service';\nimport {faq} from '../models/faq'\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport{ environment} from '../../environments/environment'\nimport jwt_decode from \"jwt-decode\";\n\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\ndeclare var angular: any;\n\nexport interface DialogData {\n image: string;\n}\n@Component({\n selector: 'app-faq',\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.css']\n})\nexport class FaqComponent implements OnInit {\n [x: string]: any;\n panelOpenState = false;\n public productId: string;\n docLocation: any;\n notes: any;\n notesLength: number;\n notesFileCount: number;\n productDetails:any;//ProductDetails[];\n productDetailObject= new ProductDetails();\n newProducts:any;\n loader:boolean=true;\n productLineId:any;\n faqData:faq[];\n getFaq:any;\n getImages:any;\n angular: any;\n faqImages:any;\n imageFileName:any;\n unrestrictedUser:boolean=true;\n content:any;\n public searchword : any;\n str: any;\n productFirstAttributes: string;\n imagePath:string;\n azureBlobImage: any;\n accessMessage:boolean;\n sparePartsResult: any;\n isgetSpareParts: boolean = false;\n sparePartsData: IspareParts[] = [];\n isselectAll: boolean = false;\n isCheckQuoteOrder: any;\n isOrgPrice: boolean = false;\n addNotes = {\n productNotes: {\n productSerialNo: null,\n productNotes: null,\n imageLoc: null,\n updatedBy: { operatorId: 0 },\n updatedOn: null,\n isDeleted: null,\n deletedBy: null,\n quoteText: null\n },\n productNotesFile: [{\n filepath: null,\n fileType: null,\n }]\n };\n constructor(private route: Router, private routes: ActivatedRoute, private productService:ProductService, private _location: Location,\n private fetchUserDetailsService:FetchUserDetailsService, private snackBar: MatSnackBar, private dataSharingService : DataSharingService, private faqService:FaqService,\n public dialog: MatDialog) { \n this.routes.queryParams.subscribe((params) => {\n if (params[\"productId\"] != null) {\n this.productId = params[\"productId\"];\n sessionStorage.setItem('productId', this.productId);\n }\n });\n this._location.replaceState(this._location.path().split(\"?\")[0], \"\");\n this.dataSharingService.setHeader(false);\n\n this.dataSharingService.unrestrictedUserAccess.subscribe(data =>\n this.unrestrictedUser=data);\n console.log(\"unrestrictedUser\", this.unrestrictedUser);\n \n if (localStorage.getItem(\"accessToken\")) {\n this.dataSharingService.setUnrestrictedUser(false);\n this.unrestrictedUser = false;\n }\n let decodedToken = jwt_decode(localStorage.getItem(\"accessToken\"));\n this.email = decodedToken['unique_name'].includes('#') ? decodedToken['unique_name'].split(\"#\").pop() : decodedToken['unique_name'];\n this.fetchUserDetailsService.fetchUseryEmail(this.email).subscribe(data => {\n this.dataSharingService.setUserTypeId(data?.userTypeId?.userTypeId);\n this.userOperatorId = data.operatorId;\n console.log(\"uTypeid\", this.dataSharingService.getUserTypeId());\n });\n this.dataSharingService.fetchUserRole.subscribe((res: string) => {\n this.role = res;\n })\n }\n\n \n//test\n // AZURE_BLOB_END_POINT = 'https://circortesttraceabilitysa.blob.core.windows.net/traceability/'\n // QUESTION_MARK = '?'\n // AZURE_BLOB_SAS_KEY = 'sv=2019-12-12&ss=b&srt=sco&sp=rwdlacx&se=2021-05-31T13:02:14Z&st=2020-11-06T05:02:14Z&spr=https&sig=VpbVv3y0ct%2Bm9jmRz%2FKTPsZ52OpujKieBGhQSdg3rJg%3D'\n //prod\n AZURE_BLOB_END_POINT = 'https://prodcircorsmartsa.blob.core.windows.net/traceability/' \n QUESTION_MARK = '?'\n AZURE_BLOB_SAS_KEY = 'sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2025-12-31T22:31:05Z&st=2021-01-05T14:31:05Z&spr=https&sig=yGEgOLDyUbQLAYoOqPp%2FOsfdiWZFHho57UQ0QdLkxFA%3D'\n \n // azureBlobImagePath = this.AZURE_BLOB_END_POINT + this.EncodedImageURL + this.QUESTION_MARK + this.AZURE_BLOB_SAS_KEY\n\n /**\n * Name : Sandhya Misal\n * Functionality :Calling fetchProductDetails method \n * Code Desc :Calling fetchProductDetails method on page load\n **/\n ngOnInit(): void {\n this.productId = this.productId ?? sessionStorage.getItem('productId');\n this.fetchProductDetails();\n // this.azureBlobImagePath;\n }\n\n ngOnDestroy(): void {\n sessionStorage.removeItem('productId');\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Calling api's to show product details and faq's\n * Code Desc :Fetching all the product details and faq related data through backend api.\n **/\n fetchProductDetails(){\n console.log(\"in fetchMethod\", this.productId);\n if (this.productId) {\n this.productService.fetchProductDetails(this.productId).subscribe(data => {\n console.log(\"data\", data);\n this.loader = false;\n this.productDetails = data;\n this.newProducts = [];\n this.newProducts = this.productDetails.filter((data) =>\n data.serialNumber == this.productId);\n console.log(\"newProduct\", this.newProducts);\n \n this.productDetailObject = this.newProducts[0];\n this.docLocation = this.productDetailObject.docLocation;\n this.productFirstAttributes = this.productDetailObject.prodAttributes[0].attributeValue;\n console.log(\"productObject\", this.productDetailObject);\n this.dataSharingService.setFaq(this.productDetailObject.productLineId);\n this.productLineId = this.productDetailObject.productLineId;\n this.checkQuoteAndOrderForProd();\n\n this.faqService.getFaq(this.productLineId).subscribe(faq => {\n this.faqData = faq;\n console.log(\"getFaq:\", this.faqData);\n this.getFaq = [];\n this.faqImages = [];\n for (var obj of this.faqData) {\n this.getImages = [];\n obj.answer = this.transformLink(obj.answer);\n for (var img of obj.images) {\n console.log(\"img.fileName\", img.fileName);\n img.fileName = this.AZURE_BLOB_END_POINT + img.fileName + this.QUESTION_MARK + this.AZURE_BLOB_SAS_KEY\n console.log(\"this.azureBlobImage\", this.azureBlobImage);\n }\n }\n console.log(\"images\", this.getFaq);\n // for(var img of this.getFaq){\n // console.log(\"faqImages\",img);\n // this.faqImages.push(img.fileName);\n // }\n // console.log(\"faqImages\",this.faqImages);\n }), error => {\n console.log(error);\n }\n\n }), error => {\n console.log(error);\n }\n \n this.dataSharingService.fetchNotes.subscribe((data) => {\n if (data == true) {\n this.fetchProductNotes();\n }\n });\n this.fetchProductNotes();\n this.fetchSpareParts(this.productId);\n \n // this.dataSharingService.faqs.subscribe(data =>{\n // console.log(\"faqdata:\",data);\n // this.productLineId=data;\n // console.log(\"LineId\", this.productLineId);\n \n // })\n // console.log(\"productLineId in ngOnit:\",this.productLineId);\n // this.fetchUserDetailsService.getFaq(this.productLineId).subscribe(faq =>{\n // console.log(\"faq:\",faq);\n // })\n }\n }\n /**\n * Name : Sandhya Misal\n * Functionality :Navigate to miscellaneous information page\n * Code Desc :Navigate to miscellaneous information page\n **/\n ShowInstructionalManualPage(){\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId\n }\n };\n this.route.navigate(['/instructional-manual'], navigationExtras);\n }\n\n fetchSpareParts(productId: any) {\n this.productService.fetchSpareParts(productId).subscribe((res) => {\n console.log(\"sparts\", res);\n this.sparePartsResult = res;\n if (res?.some(r => r.price > 0)) {\n this.isOrgPrice = true;\n }\n if (res.length > 0 ) {\n this.isgetSpareParts = true;\n }\n });\n }\n\n fetchProductNotes() {\n this.productService\n .fetchProductNotes(this.productId)\n .subscribe((notes) => {\n this.notes = notes;\n this.convertNotes();\n console.log(\"notes:\", this.notes);\n this.notesLength = Object.keys(this.notes).length;\n console.log(\"notes length:\", Object.keys(this.notes).length);\n // console.log(\"productNotesFile length:\",Object.keys(this.notes.productNotesFile).length);\n for (var notesFile of this.notes) {\n this.notesFileCount = Object.keys(\n notesFile.productNotesFile\n ).length;\n }\n }),\n (error) => {\n console.log(error);\n };\n }\n\n isUserType() {\n console.log(\"uType\", this.dataSharingService.getUserTypeId());\n return this.dataSharingService.getUserTypeId();\n }\n \n\n checkQuoteAndOrderForProd() {\n this.productService.checkQuoteandOrder(this.productLineId).subscribe((res) => {\n this.isCheckQuoteOrder = res;\n console.log(\"quoteorder\", this.isCheckQuoteOrder);\n });\n}\n\nCheckBoxVisibleForQuoteOrder() {\n return (this.isCheckQuoteOrder && (this.isCheckQuoteOrder.quoteAdmin || this.isCheckQuoteOrder.orderAdmin));\n}\n\nselectAll(isSelectAll) {\n console.log(\"spresult\", this.sparePartsResult, isSelectAll);\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = isSelectAll;\n return sp;\n });\n}\ncheckForAllSelect() {\n let selectedSP = this.sparePartsResult.filter((sp: any) => {\n return sp.checked === true;\n });\n if (selectedSP.length === this.sparePartsResult.length) {\n this.isselectAll = true;\n } else if (selectedSP.length > 0) {\n this.isselectAll = false;\n }\n}\nresetSelection() {\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = false;\n return sp;\n });\n this.isselectAll = false;\n}\n\nconvertNotes() {\n let quoteNo = 0;\n let orderNo = 0;\n for (let i = 0; i < this.notes.length; i++){\n let note = this.notes[i];\n let noteText = note.productNotes.productNotes;\n if (noteText.startsWith(\"Quote: quoteNo\")) {\n noteText = noteText.replace(\"quoteNo\", (quoteNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n quoteNo = quoteNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n } else if (noteText.startsWith(\"Order: orderNo\")) {\n noteText = noteText.replace(\"orderNo\", (orderNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n orderNo = orderNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n }\n }\n}\n\nsparePartsQuotesAndOrder(quoteOrOrder: string) {\n this.dataSharingService.setLoader(true);\n let postData = this.sparePartsResult.filter((sp: any) => sp.checked);\n console.log(postData);\n let notesText = \"\";\n if (quoteOrOrder === \"quote\") {\n notesText = \"Quote: quoteNo\";\n } else if (quoteOrOrder === \"order\") {\n notesText = \"Order: orderNo\";\n }\n for (let i = 0; i < postData.length; i++){\n notesText = notesText + \"

Description: \" + postData[i].description + \"

Part No: \" + postData[i].partNo + \"

\"; \n console.log(notesText);\n }\n \n if (postData.length > 0 && quoteOrOrder === \"quote\") {\n this.productService.sendSPQuotes(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n\n }\n },\n (err) => {\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else if (postData.length > 0 && quoteOrOrder === \"order\") {\n this.productService.sendSPOrder(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n },\n (err) => {\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n });\n }\n}\n \ncloseFormPopup() {\n this.postFormSubmit = !this.postFormSubmit;\n this.sendUserForm.reset();\n this.resetSelection();\n}\n\nsendOthers() {\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n if (receivedListSparePartsResult.length > 0) {\n this.postFormSubmit = true;\n this.usPopupToggle = true;\n } else {\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n }); \n }\n}\n\nsendOthersToSpareParts() {\n let postData: any = {};\n let emailIds: any = [];\n emailIds.push(this.sendUserForm.value.emailIds);\n postData.emailIds = emailIds;\n\n // let emailIds: any = this.sendUserForm.value.emailIds.split(\",\");\n // postData.emailIds = emailIds; \n postData.message = this.sendUserForm.value.message;\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n postData.listSpareParts = receivedListSparePartsResult;\n console.log(\"sotospa pd:\", postData);\n this.dataSharingService.setShowSmallLoader(true);\n let notesText = \"Quote: quoteNo\";\n for (let i = 0; i < receivedListSparePartsResult.length; i++){\n notesText = notesText + \"

Description: \" + receivedListSparePartsResult[i].description + \"

Part No: \" + receivedListSparePartsResult[i].partNo + \"

\"; \n console.log(notesText);\n }\n this.productService.sendOthersToSpareParts(postData).subscribe(res => {\n if (res.Message == \"Success\") {\n this.dataSharingService.setShowSmallLoader(false);\n this.sendUserForm.reset();\n this.postFormSubmit = false;\n this.usPopupToggle = false;\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.resetSelection();\n this.addNotes.productNotes.productSerialNo = postData.listSpareParts[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n \n }\n });\n}\n \n /**\n * Name : Sandhya Misal\n * Functionality :Navigate to dashboard page\n * Code Desc :Navigate to dashboard page\n **/\n ShowDashboardPage(){\n this.route.navigate(['/product-search']);\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Navigate to product detail page\n * Code Desc :Navigate to product detail page\n **/\n ShowProductDetailPage(){\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId\n },\n };\n this.route.navigate(['/product-details'], navigationExtras);\n }\n\n downloadFile(fileName){\n //const pdfUrl = \"traceability/Rapid Opening Closure/UR01343/Installation Operation and Maintenance Manual – IOM.pdf\";\n var str = fileName.split(' ').join('^'); \n var form = document.createElement(\"form\");\n console.log(str);\n form.action = `${environment.apiUrl}/downloadFile`;\n angular.element(form).append(''); \n form.method = \"post\";\n angular.element(document.body).append(form);\n form.submit();\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Navigate to previous page\n * Code Desc :Navigate to previous page\n **/\n gotoProductDetails(){\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId,\n }\n };\n this.route.navigate(['/product-details'], navigationExtras);\n }\n openDialog(image){\n this.dialog.open(DialogContentComponent, \n {\n width:'100%',\n height:'100%',\n data: {image: image}\n });\n }\n\n transformLink(text: string): string {\n let stylizedText: string = '';\n if (text && text.length > 0) {\n for (let t of text.split(' ')) {\n if (t.length > 1 && (t.startsWith('www') || (t.startsWith('http')))){\n stylizedText += `${t} `;\n } else {\n stylizedText += t + ' ';\n }\n }\n return stylizedText;\n } else return text;\n }\n\n}\n\n@Component({\n selector: 'dialog-image',\n templateUrl: 'dialog-image.html',\n})\n\nexport class DialogContentComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData) {\n\n }\n\n closePopup(): void {\n this.dialogRef.close();\n }\n \n EncodedImageURL = this.data.image;\n \n \n \n ngOnInit(): void {\n this.EncodedImageURL;\n }\n \n}\n","\n
\n
\n
\n
\n \n
\n Dashboard - FAQ
\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n\n
\n
\n
FAQ
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

PRODUCT DETAILS

\n
\n
\n Loading...\n
\n
\n
\n
\n

{{productDetailObject.productLineId}}

\n

PRODUCT LINE

\n
\n
\n

{{productDetailObject.serialNumber}}

\n

SERIAL NO

\n
\n
\n

{{productDetailObject.cliTagNo}}

\n

CLIENT TAG NO

\n
\n
\n
\n
\n
\n

{{product.attributeValue}}

\n

{{product.attributeId.attributeName}}

\n
\n
\n
\n
\n
\n
\n CONTACT DETAILS\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject.contName1}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject.contPhone1}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject.contEmail1}}

\n \n
\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject.contName2}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject.contPhone2}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject.contEmail2}}

\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n SPARE PARTS\n
\n
\n
\n
\n
\n 0\" >\n Description \n Part No\n Price\n Currency\n MRRP\n
\n\n
\n 0\" >\n {{spareParts.description}}\n {{spareParts.partNo}}\n {{spareParts.discountPrice | numberFormatter}}\n {{spareParts.currency}}\n {{spareParts.price | numberFormatter}}\n
\n \n
\n
\n \n \n \n
\n
\n
\n \n
\n\n
\n
\n
\n
\n \n
\n
\n \n

FREQUENTLY ASKED QUESTIONS (FAQs)

\n
\n \n
\n \n \n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n\n","\n\"Close\"/\n\"FAQ","import { Component, OnInit } from '@angular/core';\nimport { DataSharingService } from '../services/data-sharing.service';\n\n@Component({\n selector: 'footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n isHeader: boolean;\n unrestrictedUser: boolean;\n\n constructor(private dataSharingService: DataSharingService) { \n if (localStorage.getItem(\"accessToken\")) {\n this.dataSharingService.setUnrestrictedUser(false);\n this.unrestrictedUser = false;\n }\n }\n\n ngOnInit(): void {\n this.dataSharingService.isHeaderVisibility.subscribe(header =>{\n this.isHeader = header; \n })\n }\n\n}\n","
\n
\n © CIRCOR INTERNATIONAL, INC. ALL RIGHTS RESERVED, 2022.\n
\n
","import { AfterViewInit, Component, OnInit } from \"@angular/core\";\nimport { DataSharingService } from \"../services/data-sharing.service\";\nimport { Router, NavigationExtras } from \"@angular/router\";\nimport {\n MatDialog,\n MatDialogRef,\n MAT_DIALOG_DATA,\n} from \"@angular/material/dialog\";\nimport { MsalService, BroadcastService } from \"@azure/msal-angular\";\nimport jwt_decode from \"jwt-decode\";\nimport { ProductService } from \"../services/product.service\";\nimport { FetchUserDetailsService } from \"../services/fetch-user-details.service\";\n\n@Component({\n selector: \"header\",\n templateUrl: \"./header.component.html\",\n styleUrls: [\"./header.component.css\"],\n})\nexport class HeaderComponent implements OnInit, AfterViewInit {\n isHeader: boolean;\n downArrow: boolean = true;\n unrestrictedUser: boolean;\n token: any;\n firstName: any;\n lastName: any;\n accessToken: any;\n email: any;\n role: string;\n name: string;\n uniqueName: string;\n delAcct: boolean = false;\n\n constructor(\n private dataSharingService: DataSharingService,\n private route: Router,\n public dialog: MatDialog,\n private authService: MsalService,\n private userDetailService: FetchUserDetailsService,\n ) {\n this.dataSharingService.setDownArrow(true);\n if (localStorage.getItem(\"accessToken\")) {\n this.dataSharingService.setUnrestrictedUser(false);\n this.unrestrictedUser = false;\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (localStorage.getItem(\"accessToken\")) {\n this.token = localStorage.getItem(\"accessToken\");\n let decodedToken = jwt_decode(this.token);\n this.firstName = decodedToken[\"given_name\"];\n this.lastName = decodedToken[\"family_name\"];\n this.name = decodedToken['name'];\n this.uniqueName = decodedToken['unique_name'].includes('#') ? decodedToken['unique_name'].split(\"#\").pop() : decodedToken['unique_name'];\n console.log(this.firstName, this.lastName);\n }\n }, 1000);\n }\n\n ngOnInit(): void {\n this.dataSharingService.isHeaderVisibility.subscribe((header) => {\n console.log(\"in constructor\", header);\n this.isHeader = header;\n if (!header) {\n this.dataSharingService.fetchUserRole.subscribe((res: string) => {\n this.role = res;\n })\n }\n });\n }\n\n logout() {\n clearInterval(this.dataSharingService.refreshTokenTimer);\n this.dialog.open(PopUpContentComponent);\n }\n\n goBack() {\n this.route.navigate(['/login'])\n }\n \n openDelAcctPopUp() {\n console.log(\"del\", this.delAcct);\n this.delAcct = true;\n }\n\n logoutMethodByDeleteAcct(): void {\n localStorage.removeItem(\"accessToken\");\n sessionStorage.clear();\n this.authService.logout();\n }\n\n delUserAcct() {\n this.dataSharingService.setLoader(true);\n this.userDetailService.deleteUserAccount(this.uniqueName).subscribe((res => {\n this.dataSharingService.setLoader(false);\n if (res.status == true) {\n this.delAcct = false;\n this.logoutMethodByDeleteAcct();\n this.route.navigate([\"/login\"]);\n }\n }))\n }\n \n}\n@Component({\n selector: \"popup-image\",\n templateUrl: \"logout-popup.html\",\n})\nexport class PopUpContentComponent {\n constructor(\n private route: Router,\n public dialogRef: MatDialogRef,\n private authService: MsalService\n ) {}\n\n closePopup(): void {\n this.dialogRef.close();\n }\n\n logoutMethod(): void {\n localStorage.removeItem(\"accessToken\");\n this.dialogRef.close();\n sessionStorage.clear();\n this.authService.logout();\n this.route.navigate([\"/login\"]);\n }\n ngOnInit(): void {}\n}\n","\n\n
\n
\n \"Circor\"/\n Smart admin\n Smart user\n
\n \n
\n\n \n\n
\n \n \n

{{uniqueName}}

\n

(Admin)

\n

(Guest User)

\n \n \n \n
\n
\n
\n\n\n
\n
\n DELETE ACCOUNT Close X\n \n Please note you won't be able to retrieve any details you've shared on CIRCOR Smartapp when you delete your account. Your Notes, Quotes/Orders and all of your messages will also be deleted.\n \n After clicking “Yes” button, your account will be deleted from the CIRCOR Smart app within a day, post review and acceptance by Smart App Admin team. \n\n Please click “Yes” to proceed with the account deletion.\n \n\n \n \n \n \n
\n
","

Are you sure you want to logout?

\n\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ProductService } from '../services/product.service';\nimport { ProductDetails } from 'src/app/models/productDetails';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { DataSharingService } from '../services/data-sharing.service';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n\n unrestrictedUserForm: FormGroup;\n loader:boolean = true;\n isMessage:boolean = false;\n isSerialNo:string;\n productDetails:ProductDetails[];\n productDetailObject= new ProductDetails();\n newProducts:any;\n\n submitted = false;\n loading = false;\n profile:any;\n isHeader:boolean=true;\n unrestrictedUser:boolean=false;\n constructor(private productService:ProductService, private route: Router, private dataSharingService:DataSharingService) {\n this.unrestrictedUserForm = new FormGroup({\n userName: new FormControl('', [Validators.required])\n });\n }\n\n ngOnInit(): void {\n this.dataSharingService.setHeader(this.isHeader);\n }\n\n submit(serialNo){\n this.productService.fetchProductDetails(serialNo).subscribe(data=>{\n this.isSerialNo = serialNo;\n this.loader=false;\n this.productDetails = data;\n this.newProducts = [];\n this.newProducts = this.productDetails.filter((data) => \n (data.serialNumber == serialNo))\n console.log(\"newProduct\",this.newProducts);\n if(Object.keys(this.newProducts).length>0){\n this.isMessage = false;\n this.unrestrictedUser = true;\n this.dataSharingService.setUnrestrictedUser(this.unrestrictedUser);\n this.productDetailObject = this.newProducts[0];\n console.log(\"productObject\",this.productDetailObject);\n let navigationExtras: NavigationExtras = {\n queryParams: {\n \"productId\": serialNo,\n // \"unrestrictedUser\":this.unrestrictedUser,\n }\n };\n this.route.navigate(['/product-details'], navigationExtras);\n }\n \n else{\n this.isMessage=true;\n }\n // });\n \n\n }),error => {\n console.log(error);\n }\n }\n\n}\n","\n
\n
\n
\n

EXCELLENCE IN FLOW

\n

CONTROL

\n \n

\n CIRCOR manufactures flow and motion control products for the
\n world’s most severe-service and mission-critical applications—from
\n valves to instrumentation, actuation to pumps, motors to regulators.\n

\n \n
\n
\n \n

Welcome...!!Search for a product to view the details

\n
\n
\n
\n
\n \n Product ID\n \n \n
\n
\n Serial number \"{{isSerialNo}}\" could not be found, please try again.\n
\n \n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router, NavigationExtras } from '@angular/router';\nimport { ProductService } from '../services/product.service';\nimport { IspareParts, ProductDetails } from 'src/app/models/productDetails';\nimport { DOCUMENT, Location } from '@angular/common';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { DataSharingService } from '../services/data-sharing.service';\ndeclare var require: any\ndeclare var angular: any;\nimport { environment } from '../../environments/environment'\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\nimport jwt_decode from \"jwt-decode\";\n\nexport class ManualDoc {\n doclocation: string;\n fileName: string;\n}\n\n@Component({\n selector: 'app-instructional-manual',\n templateUrl: './instructional-manual.component.html',\n styleUrls: ['./instructional-manual.component.css']\n})\n\nexport class InstructionalManualComponent implements OnInit {\n [x: string]: any;\n panelOpenState = false;\n public productId: string;\n productDetails: any;//ProductDetails[];\n productDetailObject = new ProductDetails();\n newProducts: any;\n prodFiles: any;\n notes: any;\n notesLength: number;\n notesFileCount: number;\n loader: boolean = true;\n angular: any;\n prodDoc: ManualDoc[] = [];\n dataSheetDoc: ManualDoc[] = [];\n dataBookDoc: ManualDoc[] = [];\n spareDoc: ManualDoc[] = [];\n weldingSheetDoc: ManualDoc[] = [];\n othersDoc: ManualDoc[] = [];\n globalDoc: String[] = [];\n globalDocument: ManualDoc[] = [];\n isMessage: boolean = false;\n isSpares: boolean = false;\n instVideo: any;\n maintVideo: any;\n docLocation: any;\n lastSlashValue: any;\n dataSheet: any;\n dataBook: any;\n weldingSheet: any;\n otherSheet: any;\n dataSheetSlashValue: any;\n dataBookSlashValue: any;\n weldingSlashValue: any;\n otherSlashValue: any;\n docName: any;\n docSpareLocation: any;\n spareLastSlashValue: any;\n customerAccountNo: any;\n docSpareName: any;\n productFirstAttributes: string;\n unrestrictedUser: boolean = true;\n validateEmail1: boolean = false;\n validateEmail2: boolean = false;\n validateURL1: boolean = false;\n validateURL2: boolean = false;\n globalDocFileName: any;\n globalProductLineFileName: any;\n isGlobalPDFs: boolean = false;\n userAccessIndicator:any;\n productLineId:any;\n accessMessage:boolean;\n sparePartsResult: any;\n isgetSpareParts: boolean = false;\n sparePartsData: IspareParts[] = [];\n isselectAll: boolean = false;\n isCheckQuoteOrder: any;\n isOrgPrice: boolean = false;\n addNotes = {\n productNotes: {\n productSerialNo: null,\n productNotes: null,\n imageLoc: null,\n updatedBy: { operatorId: 0 },\n updatedOn: null,\n isDeleted: null,\n deletedBy: null,\n quoteText: null\n },\n productNotesFile: [{\n filepath: null,\n fileType: null,\n }]\n };\n constructor(private route: Router, private routes: ActivatedRoute,private snackBar: MatSnackBar, private productService: ProductService, private _location: Location, private dataSharingService: DataSharingService, private fetchCount:FetchUserDetailsService\n ) {\n this.routes.queryParams.subscribe((params) => {\n if (params[\"productId\"] != null) {\n this.productId = params[\"productId\"];\n sessionStorage.setItem('productId', this.productId);\n }\n });\n this._location.replaceState(this._location.path().split(\"?\")[0], \"\");\n this.dataSharingService.setHeader(false);\n this.dataSharingService.unrestrictedUserAccess.subscribe(data => this.unrestrictedUser = data);\n console.log(\"unrestrictedUser\", this.unrestrictedUser);\n if (localStorage.getItem(\"accessToken\")) {\n this.dataSharingService.setUnrestrictedUser(false);\n this.unrestrictedUser = false;\n }\n let decodedToken = jwt_decode(localStorage.getItem(\"accessToken\"));\n this.email = decodedToken['unique_name'].includes('#') ? decodedToken['unique_name'].split(\"#\").pop() : decodedToken['unique_name'];\n this.fetchCount.fetchUseryEmail(this.email).subscribe(data => {\n this.dataSharingService.setUserTypeId(data?.userTypeId?.userTypeId);\n console.log(\"uTypeid\", this.dataSharingService.getUserTypeId());\n });\n this.dataSharingService.fetchUserRole.subscribe((res: string) => {\n this.role = res;\n })\n }\n\n ngOnInit(): void {\n this.productId = this.productId ?? sessionStorage.getItem('productId');\n this.fetchPrductDetails();\n window.addEventListener(\"pageshow\", function (event) {\n var historyTraversal = event.persisted ||\n (typeof window.performance != \"undefined\" &&\n window.performance.navigation.type === 2);\n if (historyTraversal) {\n // Handle page restore.\n window.location.reload();\n }\n });\n }\n\n ngOnDestroy(): void {\n sessionStorage.removeItem('productId');\n }\n\n fetchPrductDetails() {\n if (this.productId) {\n this.productService.fetchProductDetails(this.productId).subscribe(data => {\n console.log(\"in fetchMethod\", this.productId);\n console.log(\"data\", data);\n this.loader = false;\n this.productDetails = data;\n this.newProducts = [];\n this.newProducts = this.productDetails.filter((data) => data.serialNumber == this.productId);\n console.log(\"newProduct\", this.newProducts);\n this.productDetailObject = this.newProducts[0];\n this.docLocation = this.productDetailObject.docLocation;\n this.productFirstAttributes = this.productDetailObject.prodAttributes[0].attributeValue;\n if (this.productDetailObject.contEmail1?.match(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$/)) {\n this.validateEmail1 = true;\n }\n\n if (this.productDetailObject.contEmail1?.match(/^(https:|http:|www\\.)\\S*/)) {\n this.validateURL1 = true;\n }\n if (this.productDetailObject.contEmail2?.match(/^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$/)) {\n this.validateEmail2 = true;\n }\n if (this.productDetailObject.contEmail2?.match(/^(https:|http:|www\\.)\\S*/)) {\n this.validateURL2 = true;\n }\n console.log(\"productObject\", this.productDetailObject);\n this.instVideo = this.productDetailObject.instVideo;\n this.maintVideo = this.productDetailObject.maintVideo;\n this.prodFiles = this.productDetailObject.prodFiles;\n this.userAccessIndicator = this.productDetailObject.userAccessIndicator;\n this.productLineId = this.productDetailObject.productLineId;\n this.customerAccountNo = this.productDetailObject.customerAccountNo;\n this.checkQuoteAndOrderForProd();\n console.log(this.instVideo);\n console.log(this.maintVideo);\n this.prodDoc = [];\n this.spareDoc = [];\n this.dataSheetDoc = [];\n this.globalDoc = this.productDetailObject.globalPDFs;\n\n\n for (var pfile of this.prodFiles) {\n if (pfile.docType == \"IOM\") {\n let documnt = new ManualDoc();\n documnt.doclocation = pfile.docLocation;\n var res = pfile.docLocation.split('/');\n this.lastSlashValue = res[res.length - 1];\n documnt.fileName = this.lastSlashValue.replaceAll('%20', ' ');\n // this.prodDoc = pfile.docLocation;\n this.prodDoc.push(documnt);\n //console.log(\"prodLocation:\",this.prodDoc);\n }\n }\n\n\n if (Object.keys(this.prodDoc).length > 0) {\n this.isMessage = true;\n }\n\n /* for(var doc of this.prodDoc){\n this.docLocation = doc;\n var res = this.docLocation.split('/');\n }\n if(res!=undefined){\n this.lastSlashValue = res[res.length-1];\n this.docName = this.lastSlashValue.replaceAll('%20', ' ');\n console.log(\"docName\", this.docName);\n }*/\n\n\n for (var dataSheetFile of this.prodFiles) {\n if (dataSheetFile.docType == \"Data Sheet\") {\n let documnt = new ManualDoc();\n documnt.doclocation = dataSheetFile.docLocation;\n var res = dataSheetFile.docLocation.split('/');\n this.dataSheetSlashValue = res[res.length - 1];\n documnt.fileName = this.dataSheetSlashValue.replaceAll('%20', ' ');\n // this.prodDoc = pfile.docLocation;\n this.dataSheetDoc.push(documnt);\n }\n }\n\n if (Object.keys(this.dataSheetDoc).length > 0) {\n this.dataSheet = true;\n }\n\n for (var dataBookFile of this.prodFiles) {\n if (dataBookFile.docType == \"Data Books\") {\n let document = new ManualDoc();\n document.doclocation = dataBookFile.docLocation;\n var res = dataBookFile.docLocation.split('/');\n this.dataBookSlashValue = res[res.length - 1];\n document.fileName = this.dataBookSlashValue.replaceAll('%20', '');\n this.dataBookDoc.push(document);\n }\n }\n\n if (Object.keys(this.dataBookDoc).length > 0) {\n this.dataBook = true;\n }\n\n for (var spareFile of this.prodFiles) {\n if (spareFile.docType == \"Spare Parts\") {\n let documnt = new ManualDoc();\n documnt.doclocation = spareFile.docLocation;\n var res = spareFile.docLocation.split('/');\n this.spareLastSlashValue = res[res.length - 1];\n documnt.fileName = this.spareLastSlashValue.replaceAll('%20', ' ');\n // this.prodDoc = pfile.docLocation;\n this.spareDoc.push(documnt);\n }\n }\n\n if (Object.keys(this.spareDoc).length > 0) {\n this.isSpares = true;\n }\n for (var weldingFile of this.prodFiles) {\n if (weldingFile.docType == \"Welding\") {\n let document = new ManualDoc();\n document.doclocation = weldingFile.docLocation;\n var res = weldingFile.docLocation.split('/');\n this.weldingSlashValue = res[res.length - 1];\n document.fileName = this.weldingSlashValue.replaceAll('%20', ' ');\n this.weldingSheetDoc.push(document);\n }\n }\n\n if (Object.keys(this.weldingSheetDoc).length > 0) {\n this.weldingSheet = true;\n }\n\n for (var othersFile of this.prodFiles) {\n if (othersFile.docType == null) {\n let document = new ManualDoc();\n document.doclocation = othersFile.docLocation;\n var res = othersFile.docLocation.split('/');\n this.otherSlashValue = res[res.length - 1];\n document.fileName = this.otherSlashValue.replaceAll('%20', ' ');\n this.othersDoc.push(document);\n }\n }\n\n if (Object.keys(this.othersDoc).length > 0) {\n this.otherSheet = true;\n }\n\n for (var gFile of this.globalDoc) {\n console.log(\"inside global doc for loop\");\n let dir = gFile;\n let re = /%20/gi;\n this.globalDocFileName = dir.replace(re, ' ');\n this.globalProductLineFileName = this.productDetailObject.productLineId + '/' + this.globalDocFileName;\n let documnt = new ManualDoc();\n documnt.doclocation = this.globalProductLineFileName;\n documnt.fileName = this.globalDocFileName;\n this.globalDocument.push(documnt);\n }\n if (Object.keys(this.globalDocument).length > 0) {\n this.isGlobalPDFs = true;\n }\n\n }), error => {\n console.log(error);\n }\n this.dataSharingService.fetchNotes.subscribe((data) => {\n if (data == true) {\n this.fetchProductNotes();\n }\n });\n this.fetchProductNotes();\n this.fetchSpareParts(this.productId);\n }\n }\n\n fetchSpareParts(productId: any) {\n this.productService.fetchSpareParts(productId).subscribe((res) => {\n console.log(\"sparts\", res);\n this.sparePartsResult = res;\n if (res?.some(r => r.price > 0)) {\n this.isOrgPrice = true;\n }\n if (res.length > 0 ) {\n this.isgetSpareParts = true;\n }\n });\n }\n\n fetchProductNotes() {\n this.productService\n .fetchProductNotes(this.productId)\n .subscribe((notes) => {\n this.notes = notes;\n this.convertNotes();\n console.log(\"notes:\", this.notes);\n this.notesLength = Object.keys(this.notes).length;\n console.log(\"notes length:\", Object.keys(this.notes).length);\n // console.log(\"productNotesFile length:\",Object.keys(this.notes.productNotesFile).length);\n for (var notesFile of this.notes) {\n this.notesFileCount = Object.keys(\n notesFile.productNotesFile\n ).length;\n }\n }),\n (error) => {\n console.log(error);\n };\n }\n isUserType() {\n console.log(\"uType\", this.dataSharingService.getUserTypeId());\n return this.dataSharingService.getUserTypeId();\n }\n\n checkQuoteAndOrderForProd() {\n this.productService.checkQuoteandOrder(this.productLineId).subscribe((res) => {\n this.isCheckQuoteOrder = res;\n console.log(\"quoteorder\", this.isCheckQuoteOrder);\n });\n}\n\nCheckBoxVisibleForQuoteOrder() {\n return (this.isCheckQuoteOrder && (this.isCheckQuoteOrder.quoteAdmin || this.isCheckQuoteOrder.orderAdmin));\n}\n\nselectAll(isSelectAll) {\n console.log(\"spresult\", this.sparePartsResult, isSelectAll);\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = isSelectAll;\n return sp;\n });\n}\ncheckForAllSelect() {\n let selectedSP = this.sparePartsResult.filter((sp: any) => {\n return sp.checked === true;\n });\n if (selectedSP.length === this.sparePartsResult.length) {\n this.isselectAll = true;\n } else if (selectedSP.length > 0) {\n this.isselectAll = false;\n }\n}\nresetSelection() {\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = false;\n return sp;\n });\n this.isselectAll = false;\n}\n\nconvertNotes() {\n let quoteNo = 0;\n let orderNo = 0;\n for (let i = 0; i < this.notes.length; i++){\n let note = this.notes[i];\n let noteText = note.productNotes.productNotes;\n if (noteText.startsWith(\"Quote: quoteNo\")) {\n noteText = noteText.replace(\"quoteNo\", (quoteNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n quoteNo = quoteNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n } else if (noteText.startsWith(\"Order: orderNo\")) {\n noteText = noteText.replace(\"orderNo\", (orderNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n orderNo = orderNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n }\n }\n}\n\nsparePartsQuotesAndOrder(quoteOrOrder: string) {\n this.dataSharingService.setLoader(true);\n let postData = this.sparePartsResult.filter((sp: any) => sp.checked);\n console.log(postData);\n let notesText = \"\";\n if (quoteOrOrder === \"quote\") {\n notesText = \"Quote: quoteNo\";\n } else if (quoteOrOrder === \"order\") {\n notesText = \"Order: orderNo\";\n }\n for (let i = 0; i < postData.length; i++){\n notesText = notesText + \"

Description: \" + postData[i].description + \"

Part No: \" + postData[i].partNo + \"

\"; \n console.log(notesText);\n }\n \n if (postData.length > 0 && quoteOrOrder === \"quote\") {\n this.productService.sendSPQuotes(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n\n }\n },\n (err) => {\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else if (postData.length > 0 && quoteOrOrder === \"order\") {\n this.productService.sendSPOrder(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n },\n (err) => {\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n });\n }\n}\n \ncloseFormPopup() {\n this.postFormSubmit = !this.postFormSubmit;\n this.sendUserForm.reset();\n this.resetSelection();\n}\n\nsendOthers() {\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n if (receivedListSparePartsResult.length > 0) {\n this.postFormSubmit = true;\n this.usPopupToggle = true;\n } else {\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n }); \n }\n}\n\nsendOthersToSpareParts() {\n let postData: any = {};\n let emailIds: any = [];\n emailIds.push(this.sendUserForm.value.emailIds);\n postData.emailIds = emailIds;\n\n // let emailIds: any = this.sendUserForm.value.emailIds.split(\",\");\n // postData.emailIds = emailIds; \n postData.message = this.sendUserForm.value.message;\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n postData.listSpareParts = receivedListSparePartsResult;\n console.log(\"sotospa pd:\", postData);\n this.dataSharingService.setShowSmallLoader(true);\n let notesText = \"Quote: quoteNo\";\n for (let i = 0; i < receivedListSparePartsResult.length; i++){\n notesText = notesText + \"

Description: \" + receivedListSparePartsResult[i].description + \"

Part No: \" + receivedListSparePartsResult[i].partNo + \"

\"; \n console.log(notesText);\n }\n this.productService.sendOthersToSpareParts(postData).subscribe(res => {\n if (res.Message == \"Success\") {\n this.dataSharingService.setShowSmallLoader(false);\n this.sendUserForm.reset();\n this.postFormSubmit = false;\n this.usPopupToggle = false;\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.resetSelection();\n this.addNotes.productNotes.productSerialNo = postData.listSpareParts[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n \n }\n });\n}\n\n gotoProductDetails() {\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId,\n }\n };\n this.route.navigate(['/product-details'], navigationExtras);\n }\n\n ShowDashboardPage() {\n this.route.navigate(['/product-search']);\n }\n\n ShowFAQPage() {\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId\n },\n };\n\n this.route.navigate(['/faq'], navigationExtras);\n }\n\n ShowProductDetailPage() {\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId\n }\n };\n this.route.navigate(['/product-details'], navigationExtras);\n }\n\n downloadFile(fileName) {\n //const pdfUrl = \"traceability/Rapid Opening Closure/UR01343/Installation Operation and Maintenance Manual – IOM.pdf\";\n var str = fileName.split(' ').join('^');\n var form = document.createElement(\"form\");\n console.log(str);\n // form.action = \"https://test-traceability-service.azurewebsites.net/downloadFile\";\n form.action = `${environment.apiUrl}/downloadFile`;\n angular.element(form).append('');\n // console.log(form.get(\"fileName\"));\n // form.setAttribute(\"fileName\",pdfUrl); \n form.method = \"post\";\n angular.element(document.body).append(form);\n form.submit();\n /* this.faqService.downloadFile(pdfUrl).subscribe(data=>{\n // if(this.success=='Y'){\n this.downloadData(data);\n });*/\n\n }\n\n downloadGlobalPDF(docLocation) {\n var str = docLocation.split(' ').join('^');\n var form = document.createElement(\"form\");\n console.log(str);\n form.action = `${environment.apiUrl}/downloadGlobalPDF`;\n angular.element(form).append('');\n form.method = \"post\";\n angular.element(document.body).append(form);\n form.submit();\n }\n\n openLink(link: string) {\n let url: string = '';\n if (!/^http[s]?:\\/\\//.test(link)) {\n url += 'http://';\n }\n url += link;\n window.open(url, \"_blank\");\n }\n\n grantAccessRequest(){\n this.accessMessage = true;\n this.productService.grantAccess(this.productLineId, this.customerAccountNo, this.productId).subscribe(data=>{\n this.accessMessage = true;\n this.snackBar.open('Access request sent to Admin.','', {\n duration: 3000,})\n });\n }\n\n showGrantAccessButton(){\n if(this.userAccessIndicator == 0 ){\n return false;\n }\n else if(this.userAccessIndicator == 1){\n return true;\n }\n }\n\n}\n","
\n
\n
\n \n
\n
\n Dashboard - Documents and Links\n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
Documents and Links
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

PRODUCT DETAILS

\n
\n
\n Loading...\n
\n
\n
\n
\n

{{productDetailObject.productLineId}}

\n

PRODUCT LINE

\n
\n
\n

{{productDetailObject.serialNumber}}

\n

SERIAL NO

\n
\n
\n

{{productDetailObject.cliTagNo}}

\n

CLIENT TAG NO

\n
\n
\n
\n
\n
\n

{{product.attributeValue}}

\n

{{product.attributeId.attributeName}}

\n
\n
\n
\n
\n
\n
\n CONTACT DETAILS\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject.contName1}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject.contPhone1}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject.contEmail1}}

\n \n Find a Local CIRCOR Representative\n

{{productDetailObject.contEmail1}}

\n
\n
\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject.contName2}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject.contPhone2}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject.contEmail2}}

\n \n Find a Local CIRCOR Representative\n

{{productDetailObject.contEmail2}}

\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n SPARE PARTS\n
\n
\n
\n
\n
\n 0\" >\n Description \n Part No\n Price\n Currency\n MRRP\n
\n\n
\n 0\" >\n {{spareParts.description}}\n {{spareParts.partNo}}\n {{spareParts.discountPrice | numberFormatter}}\n {{spareParts.currency}}\n {{spareParts.price | numberFormatter}}\n
\n \n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n\n
\n\n
\n
\n
\n\n
\n
\n
\n \n

Documents and Links

\n
\n \n
\n
\n
0\">\n
\n
\n
\n

INSTRUCTION VIDEOS

\n {{instVideo}}\n
\n\n
\n
\n
\n
0\">\n
\n
\n
\n \n

MAINTENANCE VIDEOS

\n {{maintVideo}}\n
\n\n
\n
\n
\n
\n
\n
\n
\n

INSTALLATION OPERATING MANUAL

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

DATA SHEET

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

DATA BOOK

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

WELDING

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n

SPARES PARTS

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n

GLOBAL DOCUMENTS

\n
\n
\n \n {{pdf.fileName}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n ","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { MsalService, BroadcastService } from '@azure/msal-angular';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { FetchUserDetailsService } from 'src/app/services/fetch-user-details.service';\nimport { OAuthSettings } from '../../oauth';\nimport jwt_decode from \"jwt-decode\";\nimport { GlobalService } from '../app.service';\nimport { EMPTY } from 'rxjs';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n\n submitted = false;\n loading = false;\n loginForm: FormGroup;\n subscription:any;\n outhresponse:any;\n profile:any;\n isHeader:boolean=true;\n message: boolean = false;\n firstName: any;\n lastName: any;\n token: any;\n userTypeId: any;\n emptyErrMessage: boolean = false;\n headers = new HttpHeaders({'X-Skip-Auth':''});\n \n constructor(private router: Router, private http: HttpClient, private dataSharingService:DataSharingService, private authService: MsalService,\n private broadcastService: BroadcastService,private fetchCount:FetchUserDetailsService) {\n this.loginForm = new FormGroup({\n userName: new FormControl('', [Validators.required])\n });\n }\n\n \n ngOnInit(): void {\n console.log(\"headerValue\",this.isHeader);\n this.dataSharingService.setHeader(this.isHeader);\n /*this.broadcastService.subscribe(\"msal:loginSuccess\", payload => {\n // do something here\n \n });*/\n this.authService.handleRedirectCallback((authError, response) => {\n if (authError) {\n console.error('Redirect Error: ', authError.errorMessage);\n return;\n }\n this.authService.acquireTokenPopup(OAuthSettings).then((tokenResponse) => {\n console.log(tokenResponse.accessToken);\n this.setAccessToken(tokenResponse.accessToken);\n this.dataSharingService.fetchUserRoleFromServer().subscribe();\n this.router.navigate(['/product-search']);\n}).catch(function (error) {\n console.log(error);\n});\n});\n \n }\n setAccessToken(accessToken){\n const now = new Date();\n const item = {\n value: accessToken,\n expiry: now.getTime() + 500000,\n }\n localStorage.setItem(\"accessToken\", JSON.stringify(item));\n }\n\n onSubmit() {\n this.submitted = true; \n if (this.loginForm.get('userName').value.trim().length === 0) {\n this.emptyErrMessage = true;\n this.message = false;\n }\n if (this.loginForm.valid) {\n let email = this.loginForm.get(\"userName\").value;\n this.fetchCount.fetchLoginByEmail(email).subscribe(data =>{\n console.log(\"userData\", data);\n this.dataSharingService.refreshAccessToken();\n const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\n \n this.authService.loginRedirect( {\n extraScopesToConsent: [\"user.read\", \"openid\", \"profile\"]\n });\n \n\n }, (err) => {\n this.emptyErrMessage = false;\n this.message=true;\n })\n \n }\n this.loading = true;\n }\n\n get f(){\n return this.loginForm.controls;\n }\n\n goToRegister() {\n this.router.navigate(['/register-form']);\n }\n \n\n// login() {\n// const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;\n\n// if (isIE) {\n// this.authService.loginRedirect({\n// extraScopesToConsent: [\"user.read\", \"openid\", \"profile\"]\n// });\n// } else {\n// this.authService.loginPopup({\n// extraScopesToConsent: [\"user.read\", \"openid\", \"profile\"]\n// });\n// }\n// }\n\n// logout() {\n// this.authService.logout();\n// }\n\n// getProfile() {\n// const graphMeEndpoint = \"https://graph.microsoft.com/v1.0/me\";\n// this.http.get(graphMeEndpoint).toPromise()\n// .then(profile => {\n// this.profile = profile;\n// });\n// }\n\n\n\n \n \n}\n","\n
\n \n
\n\n
\n
\n
\n CIRCORSmart\n
\n \n
\n
\n
\n LOGIN\n
\n
\n \n Your login failed, due to one of these reasons. User not - Found / Approved / Active\n \n \n Email address is required\n \n
\n
\n \n Email ID\n \n \n
\n
\n
\n
\n
\n\n
\n
Don't have an account? Register Now!
\n \n
\n
\n
\n \n
\n\n
\n

GET SMARTAPP FOR MOBILE USERS

\n

Discover the difference having immediate access to critical information and product tracking can have on your operation and its uptime.

\n
\n \n \n \n \n \n \n \n \n
\n
\n\n \n
\n \n

The app designed to make your job easier. \n

\n

CIRCOR is known for its difference-making solutions and the CIRCORSmart app is no exception. CIRCORSmart’s constant access to critical information paired with the reliability of CIRCOR’s products keep downtime to an absolute minimum.\n

\n
\n\n
\n\n
\n \n
\n \n
\n\n \n\n\n","export class ProductDetails {\n serialNumber: string;\n productLineId: string;\n assemblyPartNo: string;\n cliTagNo: string;\n qrCodeId: string;\n docLocation: string;\n instVideo:string;\n maintVideo:string;\n contName1: string;\n customerAccountNo:any;\n contEmail1: string;\n contPhone1: string;\n contName2: string;\n contEmail2: string;\n contPhone2:string;\n updatedOn:string;\n prodAttributes:prodAttributes[];\n prodFiles:prodFiles[];\n updatedBy:any\n globalPDFs:any[];\n userAccessIndicator:any;\n}\n\nexport class prodAttributes{\n id:number;\n attributeId:attributeId;\n attributeValue:string\n}\n\nexport class attributeId{\n id: number;\n prodLine: string;\n attributeName: string;\n}\nexport class prodFiles{\n docType:string;\n docLocation:string;\n id:number;\n}\n\nexport interface IspareParts{\n currency: string\n description: string\n id: number\n partNo: number\n price: number\n productLineId: string\n productSerialNum: string\n requestCycle: number\n checked: boolean\n discountPrice: number\n}\n\nexport interface IsendOthers{\n emailIds: string[],\n message: string,\n listSpareParts: IspareParts[];\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'highlight'\n})\nexport class HighlightPipe implements PipeTransform {\n\n /**\n * Name: Sandhya Misal\n * Funstinality: Entered keyword will be highlighted.\n * Code Disc: Entered keyword will be highlighted in question and answer section.\n **/\n transform(text: any, search:any): any {\n var srchTxt = search+'';\n if(srchTxt.length > 2){\n return search ? text.replace(new RegExp(search, 'gi'), `${search}`) : text;\n } else {\n return text;\n } \n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n@Pipe({name: 'numberFormatter'})\nexport class NumberFormatterPipe implements PipeTransform {\n transform(value: number): number | string {\n return value == 0.00 ? '-' : value;\n }\n}","import { Component, OnInit, Inject, OnDestroy } from \"@angular/core\";\nimport { ProductService } from \"src/app/services/product.service\";\nimport { Router, ActivatedRoute, NavigationExtras } from \"@angular/router\";\nimport { IsendOthers, IspareParts, ProductDetails } from \"src/app/models/productDetails\";\nimport { DataSharingService } from \"src/app/services/data-sharing.service\";\nimport { Location } from \"@angular/common\";\nimport {\n MatDialog,\n MatDialogRef,\n MAT_DIALOG_DATA,\n} from \"@angular/material/dialog\";\nimport { AddNoteComponent } from \"src/app/add-note/add-note.component\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { environment } from \"../../../environments/environment\";\nimport jwt_decode from \"jwt-decode\";\nimport { FetchUserDetailsService } from \"src/app/services/fetch-user-details.service\";\nimport { MsalService } from \"@azure/msal-angular\";\n// import { OneSignal } from \"onesignal-ngx\";\nimport { Validators, FormBuilder } from \"@angular/forms\";\n\ndeclare var angular: any;\nexport interface DialogData {\n image: string;\n productId: number;\n notes: any;\n productLine: any;\n}\n@Component({\n selector: \"app-product-details\",\n templateUrl: \"./product-details.component.html\",\n styleUrls: [\"./product-details.component.css\"],\n})\nexport class ProductDetailsComponent implements OnInit, OnDestroy {\n\n sendUserForm = this.formBuilder.group({\n emailIds: ['', Validators.required],\n message: ['', Validators.required]\n });\n\n\n [x: string]: any;\n public productId: string;\n public qrcodeId: string;\n public uoId: any;\n unrestrictedUser: boolean = true;\n productDetails: ProductDetails[];\n productDetailObject = new ProductDetails();\n newProducts: any;\n loader: boolean = true;\n isProductNotes: boolean = false;\n isOrgPrice: boolean = false;\n searchword: any;\n notes: any;\n productFirstAttributes: string;\n specificNotesDetails: any;\n notesLength: number;\n notesFileCount: number;\n notesCount: number;\n isNotes: boolean = false;\n nextNote: any;\n accessToken: any;\n message: string;\n validateEmail1: boolean = false;\n validateEmail2: boolean = false;\n validateURL1: boolean = false;\n validateURL2: boolean = false;\n firstSubscribeBtn: boolean = false;\n subscribeBtn: boolean = false;\n unsubscribeBtn: boolean = false;\n notesCountActualValue;\n isgetSpareParts: boolean = false;\n sparePartsResult: any;\n sparePartsData: IspareParts[] = [];\n isselectAll: boolean = false;\n productLineId: any;\n descSPData: any;\n userOperatorId: any;\n productSubscriptionData: any;\n productSerialNum = '';\n subscribedData: any;\n prodSubscribed: any;\n osTagText;\n osTagClass;\n prodSubscribtionId: boolean;\n subscriptionData: any;\n getProdSubscriptionId: boolean;\n prodSubData: any;\n postFormSubmit: boolean = false;\n receivedListSparePartsResult: any;\n statusMessage: any;\n usPopupToggle: boolean = false;\n prodSubsId: any;\n \n addNotes = {\n productNotes: {\n productSerialNo: null,\n productNotes: null,\n imageLoc: null,\n updatedBy: { operatorId: 0 },\n updatedOn: null,\n isDeleted: null,\n deletedBy: null,\n quoteText: null\n },\n productNotesFile: [{\n filepath: null,\n fileType: null,\n }]\n };\n \n //prod\n AZURE_BLOB_END_POINT =\n \"https://prodcircorsmartsa.blob.core.windows.net/traceability/\";\n QUESTION_MARK = \"?\";\n AZURE_BLOB_SAS_KEY =\n \"sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2025-12-31T22:31:05Z&st=2021-01-05T14:31:05Z&spr=https&sig=yGEgOLDyUbQLAYoOqPp%2FOsfdiWZFHho57UQ0QdLkxFA%3D\";\n //test\n // AZURE_BLOB_END_POINT = 'https://circortesttraceabilitysa.blob.core.windows.net/traceability/'\n // QUESTION_MARK = '?'\n // AZURE_BLOB_SAS_KEY = 'sv=2019-12-12&ss=b&srt=sco&sp=rwdlacx&se=2021-05-31T13:02:14Z&st=2020-11-06T05:02:14Z&spr=https&sig=VpbVv3y0ct%2Bm9jmRz%2FKTPsZ52OpujKieBGhQSdg3rJg%3D'\n\n // showProductDetails = new ProductDetails();\n\n\n constructor(\n private productService: ProductService,\n private authService: MsalService,\n private route: Router,\n private routes: ActivatedRoute,\n public dataSharingService: DataSharingService,\n private _location: Location,\n public dialog: MatDialog,\n private snackBar: MatSnackBar,\n private fetchCount: FetchUserDetailsService,\n private formBuilder: FormBuilder,\n // private os: OneSignal\n ) {\n this.routes.queryParams.subscribe((params) => {\n if (params[\"productId\"] != null || params[\"uoId\"] != null) {\n this.productId = params[\"productId\"];\n this.uoId = params[\"uoId\"];\n sessionStorage.setItem('productId', this.productId);\n sessionStorage.setItem('uoId', this.uoId);\n }\n if(params[\"qrcode\"] != null) {\n this.qrcodeId = params[\"qrcode\"];\n sessionStorage.setItem('qrcodeId', this.qrcodeId);\n }\n });\n\n this._location.replaceState(this._location.path().split(\"?\")[0], \"\");\n this.dataSharingService.setHeader(false);\n\n \n if (localStorage.getItem(\"accessToken\")) {\n this.dataSharingService.setUnrestrictedUser(false);\n this.unrestrictedUser = false;\n let decodedToken = jwt_decode(localStorage.getItem(\"accessToken\"));\n // live#circorsmartapp@outlook.com\n this.email = decodedToken['unique_name'].includes('#') ? decodedToken['unique_name'].split(\"#\").pop() : decodedToken['unique_name'];\n console.log(\"upn\", this.email, decodedToken['unique_name']);\n } else {\n this.route.navigate(['/login']);\n }\n\n this.fetchCount.fetchUseryEmail(this.email).subscribe(data => {\n this.dataSharingService.setUserTypeId(data?.userTypeId?.userTypeId);\n this.userOperatorId = data.operatorId;\n this.currency = data.currency;\n console.log(\"uTypeid\", this.dataSharingService.getUserTypeId());\n });\n\n this.dataSharingService.fetchUserRole.subscribe((res: string) => {\n this.role = res;\n })\n\n /* ----- usd factor feature start-------- */\n // this.productService.fetchProductDetails(this.productId).subscribe((data) => {\n // this.fetchpdData = data[0].productLineId;\n // this.productService.getAllProductLine().subscribe((res: any) => {\n // this.getAllPline = res;\n // this.plcurrency = this.getAllPline.find(pl => pl.productLine === this.fetchpdData);\n // this.plusdcurrency = this.plcurrency.usdfactor\n // })\n // })\n\n /* ----- usd factor feature end -------- */\n\n console.log(\"unrestrictedUser\", this.unrestrictedUser);\n\n }\n get form() { return this.sendUserForm.controls; }\n\n getNotesUpdatedUserOperatorId(notesOperatorId) {\n return this.userOperatorId === notesOperatorId;\n }\n \n\n /* ----- future reference not needed start -------- */\n // getWithExpiry() {\n // const itemStr = localStorage.getItem(\"accessToken\");\n // if (!itemStr) {\n // return null;\n // }\n // const item = JSON.parse(itemStr);\n // const now = new Date();\n // if (now.getTime() > item.expiry) {\n // localStorage.removeItem(\"accessToken\");\n // this.authService\n // .acquireTokenPopup(OAuthSettings)\n // .then((tokenResponse) => {\n // console.log(tokenResponse.accessToken);\n // this.setAccessToken(tokenResponse.accessToken);\n // return tokenResponse.accessToken;\n // })\n // .catch(function (error) {\n // console.log(error);\n // this.route.navigate([\"/login\"]);\n // });\n // }\n // return item.value;\n // }\n\n // setAccessToken(accessToken) {\n // const now = new Date();\n // const item = {\n // value: accessToken,\n // expiry: now.getTime() + 500000,\n // };\n // localStorage.setItem(\"accessToken\", JSON.stringify(item));\n // }\n \n /* ----- future reference not needed end -------- */\n \n\n ngOnInit(): void {\n this.productId = this.productId ?? sessionStorage.getItem('productId');\n this.qrcodeId = this.qrcodeId ?? sessionStorage.getItem('qrcodeId');\n this.uoId = this.uoId ?? sessionStorage.getItem('uoId');\n // this.accessToken = this.getWithExpiry(); \n\n /* ----- usd factor feature start -------- */\n // this.productService.fetchProductDetails(this.productId).subscribe((data) => {\n // this.fetchpdData = data[0].productLineId;\n // this.productService.getAllProductLine().subscribe((res: any) => {\n // this.getAllPline = res;\n // this.plcurrency = this.getAllPline.find(pl => pl.productLine === this.fetchpdData);\n // this.plusdcurrency = this.plcurrency.usdfactor\n // })\n // })\n /* ----- usd factor feature end-------- */\n\n\n if (this.qrcodeId) {\n this.qrCodeCheck();\n }\n \n console.log(\"uo\", this.uoId);\n\n // this.prodSubscribtionId = this.getProductSubscription(this.uoId, this.productId);\n // if (!this.prodSubscribtionId) {\n // this.subscribeBtn = false;\n // this.unsubscribeBtn = false;\n // this.firstSubscribeBtn = true;\n // } else {\n // this.getProductSubscription(this.uoId, this.productId);\n // } \n this.fetchPrductDetails();\n // this.getProductSubscriptionImethod();\n window.addEventListener(\"pageshow\", function (event) {\n var historyTraversal =\n event.persisted ||\n (typeof window.performance != \"undefined\" &&\n window.performance.navigation.type === 2);\n if (historyTraversal) {\n // Handle page restore.\n window.location.reload();\n }\n });\n\n // if (localStorage.getItem(\"accessToken\") != null && localStorage.getItem(\"accessToken\") != undefined) {\n // this.route.navigate(['/login']);\n // }\n }\n ngOnDestroy(): void {\n sessionStorage.removeItem('productId');\n sessionStorage.removeItem('qrcodeId');\n }\n\n // getProductSubscription(userId, serialNo) {\n // this.productService.getProductSubscription(userId, serialNo).subscribe(res => {\n // this.dataSharingService.setSubscribtionId(res.data.data.subscriptionId);\n // console.log(\"psress:\", res);\n // this.productSubscriptionData = res?.data; \n // this.subscribedData = res.data.data.subscribed;\n\n // if (this.subscribedData == true) {\n // this.firstSubscribeBtn = false;\n // this.subscribeBtn = false;\n // this.unsubscribeBtn = true;\n // } else {\n // this.unsubscribeBtn = false;\n // this.firstSubscribeBtn = false;\n // this.subscribeBtn = true;\n // }\n \n // if (res.data) {\n // this.prodSubscribed = res.data.data.subscribed; \n // } \n // return true;\n // })\n // return false;\n // }\n\n sendOSTag(tag: string) {\n this.os.sendTag(\"serialNo\", tag);\n let postData = {\n \"serialNo\" : this.productId,\n \"subscribed\": true\n };\n this.productService.saveProductSubscription(this.uoId, postData).subscribe();\n this.subscribeBtn = false;\n this.firstSubscribeBtn = false;\n this.unsubscribeBtn = true;\n }\n\n // getProductSubscriptionImethod() {\n // return new Promise((resolve, reject) => {\n // this.productService.getProductSubscription(this.uoId, this.productId).subscribe(res => {\n // if (res.data) {\n // console.log(\"getProdsub\", res);\n // resolve(res.data.data) \n // } else {\n // reject(\"cannot get subscription id\");\n // }\n // })\n // });\n // }\n\n // getProductSubscriptionImethod1() {\n // this.productService.getProductSubscription(this.uoId, this.productId).subscribe(res => {\n // if (res.data) {\n // console.log(\"getProdsub\", res);\n // this.prodSubsId = {...res.data.data};\n // } \n // })\n // }\n\n // async updateOSTag(tag: string) {\n // this.os.sendTag(\"serialNo\", tag);\n // this.prodSubData = await this.getProductSubscriptionImethod();\n // let postData = {\n // \"subscriptionId\": this.prodSubData?.subscriptionId,\n // \"userOperatorId\": this.prodSubData?.userOperatorId,\n // \"productSerialNumber\": this.prodSubData?.productSerialNumber,\n // \"subscribed\": true\n // };\n // this.productService.updateProductSubscription(postData).subscribe();\n // this.subscribeBtn = false;\n // this.firstSubscribeBtn = false;\n // this.unsubscribeBtn = true;\n // }\n\n // async deleteOSTag() {\n // this.os.deleteTag(\"serialNo\");\n // this.prodSubData = await this.getProductSubscriptionImethod();\n // console.log(\"subscriptionData - subid\", this.prodSubData, this.prodSubData?.subscriptionId, this.prodSubData?.userOperatorId);\n \n // let postData = {\n // \"subscriptionId\": this.prodSubData?.subscriptionId,\n // \"userOperatorId\": this.prodSubData?.userOperatorId,\n // \"productSerialNumber\": this.prodSubData?.productSerialNumber,\n // \"subscribed\": false\n // };\n // this.productService.updateProductSubscription(postData).subscribe();\n // this.unsubscribeBtn = false;\n // this.firstSubscribeBtn = false;\n // this.subscribeBtn = true;\n // }\n\n fetchPrductDetails() {\n if (this.productId) {\n console.log(\"in fetchMethod\", this.productId);\n this.productService\n .fetchProductDetails(this.productId)\n .subscribe((data) => {\n this.loader = false;\n this.productDetails = data;\n this.newProducts = [];\n this.newProducts = this.productDetails.filter((data) => data.serialNumber == this.productId);\n console.log(\"newProduct\", this.newProducts);\n this.productDetailObject = this.newProducts[0];\n this.productFirstAttributes = this.productDetailObject.prodAttributes[0].attributeValue;\n this.productLineId = this.productDetailObject.productLineId;\n this.docLocation = this.productDetailObject.docLocation;\n this.checkQuoteAndOrderForProd();\n\n if (\n this.productDetailObject.contEmail1.match(\n /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$/\n )\n ) {\n this.validateEmail1 = true;\n }\n\n if (\n this.productDetailObject.contEmail1.match(\n /^(https:|http:|www\\.)\\S*/\n )\n ) {\n this.validateURL1 = true;\n }\n if (\n this.productDetailObject.contEmail2?.match(\n /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$/\n )\n ) {\n this.validateEmail2 = true;\n }\n if (\n this.productDetailObject.contEmail2?.match(\n /^(https:|http:|www\\.)\\S*/\n )\n ) {\n this.validateURL2 = true;\n }\n \n }),\n (error) => {\n console.log(error);\n };\n this.dataSharingService.fetchNotes.subscribe((data) => {\n if (data == true) {\n this.fetchProductNotes();\n }\n });\n this.fetchProductNotes();\n this.fetchSpareParts(this.productId);\n }\n // this.qrCodeCheck();\n }\n\n qrCodeCheck() {\n if (this.qrcodeId != null && this.qrcodeId != undefined) {\n console.log(\"in fetchMethod\", this.qrcodeId);\n this.productService\n .fetchqrCodeDetails(this.qrcodeId)\n .subscribe((data) => {\n this.loader = false;\n this.productDetails = data;\n this.newProducts = [];\n //var tempQr=\"https://www.circor.com/services/TAGS/\"+this.qrcodeId;\n this.newProducts = data;\n // this.productDetails.filter((data) =>\n //data.qrCodeId == tempQr);\n console.log(\"newProduct\", this.newProducts);\n this.productDetailObject = this.newProducts[0];\n this.productId = this.productDetailObject.serialNumber;\n this.productLineId = this.productDetailObject.productLineId;\n console.log(\"productObject\", this.productDetailObject);\n this.checkQuoteAndOrderForProd();\n this.dataSharingService.fetchNotes.subscribe((data) => {\n if (data == true) {\n this.fetchProductNotes();\n }\n });\n this.fetchProductNotes();\n this.fetchSpareParts(this.productId);\n }),\n (error) => {\n console.log(error);\n };\n }\n }\n\n fetchSpareParts(productId: any) {\n this.productService.fetchSpareParts(productId).subscribe((res) => {\n console.log(\"sparts\", res);\n this.sparePartsResult = res;\n if (res?.some(r => r.price > 0)) {\n this.isOrgPrice = true;\n }\n if (res.length > 0 ) {\n this.isgetSpareParts = true;\n }\n });\n }\n\n fetchProductNotes() {\n this.productService\n .fetchProductNotes(this.productId)\n .subscribe((notes) => {\n this.notes = notes;\n this.convertNotes();\n console.log(\"notes:\", this.notes);\n this.notesLength = Object.keys(this.notes).length;\n console.log(\"notes length:\", Object.keys(this.notes).length);\n // console.log(\"productNotesFile length:\",Object.keys(this.notes.productNotesFile).length);\n for (var notesFile of this.notes) {\n this.notesFileCount = Object.keys(\n notesFile.productNotesFile\n ).length;\n }\n }),\n (error) => {\n console.log(error);\n };\n }\n\n isUserType() {\n console.log(\"uType\", this.dataSharingService.getUserTypeId());\n return this.dataSharingService.getUserTypeId();\n }\n \n checkQuoteAndOrderForProd() {\n this.productService.checkQuoteandOrder(this.productLineId).subscribe((res) => {\n this.isCheckQuoteOrder = res;\n console.log(\"quoteorder\", this.isCheckQuoteOrder);\n });\n }\n\n CheckBoxVisibleForQuoteOrder() {\n return (this.isCheckQuoteOrder && (this.isCheckQuoteOrder.quoteAdmin || this.isCheckQuoteOrder.orderAdmin));\n }\n\n selectAll(selectAll) {\n console.log(\"spresult\", this.sparePartsResult, selectAll);\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = selectAll;\n return sp;\n });\n }\n // checkForAllSelect() {\n // let selectedSP = this.sparePartsResult.filter((sp: any) => {\n // return sp.checked === true;\n // });\n // if (selectedSP.length === this.sparePartsResult.length) {\n // this.isselectAll = true;\n // } else if (selectedSP.length > 0) {\n // this.isselectAll = false;\n // }\n // }\n\n checkForAllSelect() {\n \n let valveSelectedItem = this.sparePartsResult.filter((sp: any) => {\n return sp.description == \"REPLACEMENT VALVE\" && sp.checked === true;\n });\n \n let valveSelectedNextItems = this.sparePartsResult.filter((sp: any) => {\n return sp.description == \"3.1 CERTIFICATES FOR VALVE\" || sp.description == \"MATERIAL SURCHARGE FOR VALVE\";\n });\n\n // let valveSelectedNextItems1 = this.sparePartsResult.forEach((sp: any) => {\n // return sp.description == \"3.1 CERTIFICATES FOR VALVE\" && sp.description == \"MATERIAL SURCHARGE FOR VALVE\";\n // });\n\n // if (valveSelectedNextItems1.length > 0) {\n // console.log(\"sdfsa\");\n // }\n\n if (valveSelectedItem.length > 0 && this.productLineId == \"ARV\") {\n valveSelectedNextItems.forEach(element => {\n element.checked = true;\n });\n \n } else {\n valveSelectedNextItems.forEach(element => {\n element.checked = false;\n });\n }\n \n let selectedSP = this.sparePartsResult.filter((sp: any) => {\n return sp.checked === true;\n });\n\n if (selectedSP.length === this.sparePartsResult.length) {\n this.isselectAll = true;\n } else if (selectedSP.length > 0) {\n this.isselectAll = false;\n }\n }\n\n checkForDisable(description) {\n let selectedSPValve = this.sparePartsResult.filter((sp: any) => {\n return sp.description == \"REPLACEMENT VALVE\" && sp.checked === true;\n });\n if ((selectedSPValve.length > 0 && this.productLineId == \"ARV\") && (description == \"3.1 CERTIFICATES FOR VALVE\" || description == \"MATERIAL SURCHARGE FOR VALVE\")) {\n return true;\n } else {\n return false;\n }\n }\n\n resetSelection() {\n this.sparePartsResult = this.sparePartsResult.map((sp: any) => {\n sp.checked = false;\n return sp;\n });\n this.isselectAll = false;\n }\n\n convertNotes() {\n let quoteNo = 0;\n let orderNo = 0;\n for (let i = 0; i < this.notes.length; i++){\n let note = this.notes[i];\n let noteText = note.productNotes.productNotes;\n if (noteText.startsWith(\"Quote: quoteNo\")) {\n noteText = noteText.replace(\"quoteNo\", (quoteNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n quoteNo = quoteNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n } else if (noteText.startsWith(\"Order: orderNo\")) {\n noteText = noteText.replace(\"orderNo\", (orderNo + 1) + \"\");\n noteText = \"
\" + noteText + \"
\";\n orderNo = orderNo + 1;\n this.notes[i].productNotes.productNotes = noteText;\n }\n }\n }\n\n sparePartsQuotesAndOrder(quoteOrOrder: string) {\n this.dataSharingService.setLoader(true);\n let postData = this.sparePartsResult.filter((sp: any) => sp.checked);\n console.log(postData);\n let notesText = \"\";\n if (quoteOrOrder === \"quote\") {\n notesText = \"Quote: quoteNo\";\n } else if (quoteOrOrder === \"order\") {\n notesText = \"Order: orderNo\";\n }\n for (let i = 0; i < postData.length; i++){\n notesText = notesText + \"

Description: \" + postData[i].description + \"

Part No: \" + postData[i].partNo + \"

\"; \n console.log(notesText);\n }\n \n if (postData.length > 0 && quoteOrOrder === \"quote\") {\n // this.productService.sendSPQuotes(postData, this.productFirstAttributes).subscribe(\n this.productService.sendSPQuotes(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n \n }\n },\n (err) => {\n this.snackBar.open(\"Quote Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else if (postData.length > 0 && quoteOrOrder === \"order\") {\n this.productService.sendSPOrder(postData).subscribe(\n (res) => {\n console.log(res, \"resss\");\n this.resetSelection();\n if (res.Message === \"Success\") {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.addNotes.productNotes.productSerialNo = postData[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n console.log('this.addNotes.productNotes.productNotes', this.addNotes.productNotes.productNotes);\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n console.log('myDate:', this.myDate);\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n },\n (err) => {\n this.snackBar.open(\"Order Email not sent\", \"\", {\n duration: 2500,\n });\n }\n );\n } else {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n });\n }\n }\n\n closeFormPopup() {\n this.postFormSubmit = !this.postFormSubmit;\n this.sendUserForm.reset();\n this.resetSelection();\n }\n\n sendOthers() {\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n if (receivedListSparePartsResult.length > 0) {\n this.postFormSubmit = true;\n this.usPopupToggle = true;\n } else {\n this.snackBar.open(\"Please select at least one checkbox\", \"\", {\n duration: 2500,\n }); \n }\n }\n\n sendOthersToSpareParts() {\n let postData: any = {};\n let emailIds: any = [];\n emailIds.push(this.sendUserForm.value.emailIds);\n postData.emailIds = emailIds;\n\n // let emailIds: any = this.sendUserForm.value.emailIds.split(\",\");\n // postData.emailIds = emailIds; \n postData.message = this.sendUserForm.value.message;\n let receivedListSparePartsResult = this.sparePartsResult?.filter((sp: any) => sp.checked);\n postData.listSpareParts = receivedListSparePartsResult;\n console.log(\"sotospa pd:\", postData);\n this.dataSharingService.setShowSmallLoader(true);\n let notesText = \"Quote: quoteNo\";\n for (let i = 0; i < receivedListSparePartsResult.length; i++){\n notesText = notesText + \"

Description: \" + receivedListSparePartsResult[i].description + \"

Part No: \" + receivedListSparePartsResult[i].partNo + \"

\"; \n console.log(notesText);\n }\n this.productService.sendOthersToSpareParts(postData).subscribe(res => {\n if (res.Message == \"Success\") {\n this.dataSharingService.setShowSmallLoader(false);\n this.sendUserForm.reset();\n this.postFormSubmit = false;\n this.usPopupToggle = false;\n this.snackBar.open(res.Result, \"\", {\n duration: 2500,\n });\n this.resetSelection();\n this.addNotes.productNotes.productSerialNo = postData.listSpareParts[0].productSerialNum;\n this.addNotes.productNotes.productNotes = notesText;\n this.addNotes.productNotes.updatedBy.operatorId = 2;\n this.addNotes.productNotes.updatedOn = new Date();\n this.addNotes.productNotes.imageLoc = '';\n this.addNotes.productNotes.isDeleted = 0;\n this.addNotes.productNotes.deletedBy = null;\n this.addNotes.productNotesFile = [];\n \n this.productService.addProductNotes(this.addNotes).subscribe(data => {\n console.log(\"NoteData:\", data)\n this.fetchProductNotes();\n });\n \n }\n });\n }\n\n\n //Open Partner Link\n openLink(link: string) {\n let url: string = \"\";\n if (!/^http[s]?:\\/\\//.test(link)) {\n url += \"http://\";\n }\n\n url += link;\n window.open(url, \"_blank\");\n }\n\n showProductDetails() { \n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId,\n },\n };\n this.route.navigate([\"/product-details\"], navigationExtras);\n }\n\n //redirect to product faq page\n ShowFAQPage() {\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId,\n },\n };\n\n this.route.navigate([\"/faq\"], navigationExtras);\n }\n //redirect to instructional page\n ShowInstructionalManualPage() {\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: this.productId,\n },\n };\n this.route.navigate([\"/instructional-manual\"], navigationExtras);\n }\n\n //redirect to dashboard page\n ShowDashboardPage() {\n this.route.navigate([\"/product-search\"]);\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Show product Notes in details\n * Code Desc :Show product Notes in details with username, notes images and attachments\n **/\n showProductNotes(productNotesId, i) {\n this.notesCountActualValue = i;\n this.notesCount = i + 1;\n console.log(\"notesCount\", this.notesCount);\n this.isProductNotes = true;\n console.log(\"productNotesId\", productNotesId);\n this.isNotes = false;\n // for(var i=0; i<= Object.keys(this.notes).length;i++){\n // this.notes[i]\n // }\n // console.log(\"specificNotesDetails\", this.notes[5]);\n this.specificNotesDetails = this.notes.filter(\n (data) => data.productNotes.productNotesId == productNotesId\n );\n\n for (let notesFile of this.specificNotesDetails[0].productNotesFile) {\n if (\n notesFile.fileName == null ||\n notesFile.fileName == undefined ||\n notesFile.fileName == \"\"\n ) {\n var res = notesFile.filepath.split(\"/\");\n\n var lastSlashValue = res[res.length - 1];\n notesFile.fileName = lastSlashValue.replaceAll(\"%20\", \" \");\n\n if (\n notesFile.fileType === \"image/jpeg\" ||\n notesFile.fileType === \"image/png\"\n ) {\n notesFile.filepath =\n this.AZURE_BLOB_END_POINT +\n notesFile.filepath +\n this.QUESTION_MARK +\n this.AZURE_BLOB_SAS_KEY;\n }\n }\n }\n console.log(\"this.specificNotesDetails\", this.specificNotesDetails);\n // console.log(\"this.specificNotesDetails\", this.specificNotesDetails);\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Go to the next note\n * Code Desc :Go to the next note\n **/\n nextNotes() {\n console.log(\"notesCountActualValue\", this.notesCountActualValue);\n console.log(\"notesCount\", this.notesCount);\n console.log(\"Notes:\", this.notes);\n this.isProductNotes = true;\n this.notesCountActualValue = this.notesCountActualValue + 1;\n this.notesCount = this.notesCount + 1;\n console.log(\"notesCount\", this.notesCount);\n this.isNotes = true;\n this.nextNote = this.notes[this.notesCountActualValue];\n console.log(\"nn:\", this.nextNote);\n \n for (let notesFile of this.nextNote.productNotesFile) {\n if (\n notesFile.fileName == null ||\n notesFile.fileName == undefined ||\n notesFile.fileName == \"\"\n ) {\n var res = notesFile.filepath.split(\"/\");\n\n var lastSlashValue = res[res.length - 1];\n notesFile.fileName = lastSlashValue.replaceAll(\"%20\", \" \");\n if (\n notesFile.fileType === \"image/jpeg\" ||\n notesFile.fileType === \"image/png\"\n ) {\n notesFile.filepath =\n this.AZURE_BLOB_END_POINT +\n notesFile.filepath +\n this.QUESTION_MARK +\n this.AZURE_BLOB_SAS_KEY;\n }\n }\n }\n }\n /**\n * Name : Sandhya Misal\n * Functionality :Go to the previous note\n * Code Desc :Go to the previous note\n **/\n previousNotes() {\n console.log(\"notesCountActualValue\", this.notesCountActualValue);\n console.log(\"notesCount\", this.notesCount);\n console.log(\"Notes:\", this.notes);\n this.isProductNotes = true;\n this.notesCountActualValue = this.notesCountActualValue - 1;\n this.notesCount = this.notesCount - 1;\n console.log(\"notesCount\", this.notesCount);\n this.isNotes = true;\n this.nextNote = this.notes[this.notesCountActualValue];\n console.log(\"pn:\", this.nextNote);\n\n for (let notesFile of this.nextNote.productNotesFile) {\n if (\n notesFile.fileName == null ||\n notesFile.fileName == undefined ||\n notesFile.fileName == \"\"\n ) {\n var res = notesFile.filepath.split(\"/\");\n var lastSlashValue = res[res.length - 1];\n notesFile.fileName = lastSlashValue.replaceAll(\"%20\", \" \");\n if (\n notesFile.fileType === \"image/jpeg\" ||\n notesFile.fileType === \"image/png\"\n ) {\n notesFile.filepath =\n this.AZURE_BLOB_END_POINT +\n notesFile.filepath +\n this.QUESTION_MARK +\n this.AZURE_BLOB_SAS_KEY;\n }\n }\n }\n }\n /**\n * Name : Sandhya Misal\n * Functionality :Go to previous page\n * Code Desc :Go to previous page\n **/\n gotoPreviousPage() {\n this.isProductNotes = false;\n this.isNotes = false;\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Download image/attachment\n * Code Desc :Download image/attachment\n **/\n downloadFile(fileName) {\n //const pdfUrl = \"traceability/Rapid Opening Closure/UR01343/Installation Operation and Maintenance Manual – IOM.pdf\";\n var str = fileName.split(\" \").join(\"^\");\n var form = document.createElement(\"form\");\n console.log(str);\n // form.action = \"https://test-traceability-service.azurewebsites.net/downloadFile\";\n form.action = `${environment.apiUrl}/downloadFile`;\n angular\n .element(form)\n .append(',\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n private productService: ProductService,\n private snackBar: MatSnackBar,\n private dataSharingService: DataSharingService\n ) {}\n\n closePopup(): void {\n this.dialogRef.close();\n }\n /**\n * Name : Sandhya Misal\n * Functionality :Calling delete notes api\n * Code Desc :It will delete perticular notes\n **/\n deleteNotes() {\n this.deleteNote = this.data.notes.filter(\n (data) => data.productNotes.productNotesId == this.data.productId\n );\n console.log(\"this.deleteNotes\", this.deleteNote);\n this.deleteSpecificNote.productNotesId =\n this.deleteNote[0].productNotes.productNotesId;\n this.deleteSpecificNote.productSerialNo =\n this.deleteNote[0].productNotes.productSerialNo;\n this.deleteSpecificNote.deletedBy =\n this.deleteNote[0].productNotes.updatedBy.operatorId;\n console.log(\"this.deleteSpecificNote\", this.deleteSpecificNote);\n this.productService\n .deleteProductNotes(this.deleteSpecificNote)\n .subscribe((data) => {\n console.log(\"data\", data);\n if (data.Message == \"Success\") {\n this.snackBar.open(\"The note has been deleted successfully\", \"\", {\n duration: 3500,\n });\n this.dataSharingService.setNotes(true);\n // this.productService.fetchProductNotes(this.productId).subscribe(notes => {\n // this.notes = notes;\n // console.log(\"notes:\",this.notes);\n // this.notesLength = Object.keys(this.notes).length;\n // console.log(\"notes length:\",Object.keys(this.notes).length);\n // // console.log(\"productNotesFile length:\",Object.keys(this.notes.productNotesFile).length);\n // for ( var notesFile of this.notes){\n // this.notesFileCount = Object.keys(notesFile.productNotesFile).length;\n // }\n\n // }),error => {\n // console.log(error);\n // }\n } else {\n this.snackBar.open(\"error in deleting notes\", \"\", {\n duration: 3500,\n });\n }\n }),\n (error) => {\n console.log(error);\n };\n this.dialogRef.close();\n }\n\n ngOnInit(): void {}\n}\n","
\n\n
\n
\n \n
\n
Dashboard - PRODUCT DETAILS\n
\n
\n
\n \n
\n
\n \n
\n
\n \"APP\n
\n
\n \"Play\n
\n
\n
\n
\n
\n
\n
PRODUCT DETAILS\n
\n
\n
\n \n
\n
\n \n
\n
\n \"APP\n
\n
\n \"Play\n
\n
\n
\n
\n
\n\n \n\n \n
\n
\n
\n \n
\n
\n

PRODUCT DETAILS

\n \n
\n
\n
\n Loading...\n
\n
\n
\n
\n

{{productDetailObject?.productLineId}}

\n

PRODUCT LINE

\n
\n
\n

{{productDetailObject?.serialNumber}}

\n

SERIAL NO

\n
\n
\n

{{productDetailObject?.cliTagNo}}

\n

CLIENT TAG NO

\n
\n
\n
\n
\n
\n

{{product.attributeValue}}

\n

{{product.attributeId.attributeName}}

\n
\n \n
\n \n
\n
\n
\n
\n CONTACT DETAILS\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject?.contName1}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject?.contPhone1}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject?.contEmail1}}

\n \n Find a Local CIRCOR Representative\n

{{productDetailObject?.contEmail1}}

\n
\n
\n
\n
\n
\n
\n Contact Name :\n
\n
\n

{{productDetailObject?.contName2}}

\n
\n
\n
\n
\n Phone Number :\n
\n
\n

{{productDetailObject?.contPhone2}}

\n
\n
\n
\n
\n Email Address/Link:\n
\n
\n

{{productDetailObject?.contEmail2}}

\n \n Find a Local CIRCOR Representative\n

{{productDetailObject?.contEmail2}}

\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n SPARE PARTS\n
\n
\n
\n
\n
\n 0\" >\n \n \n Description \n Part No\n \n Price(€)\n Price($)\n \n \n MRRP(€)\n MRRP($)\n \n
\n\n
\n 0\" >\n \n \n \n \n \n \n {{spareParts.discountPrice | numberFormatter}}\n {{spareParts.discountPrice | numberFormatter}}\n \n\n \n \n {{spareParts.price | numberFormatter}}\n {{spareParts.price | numberFormatter }}\n \n
\n\n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n\n
\n
\n\n \n
\n
\n
\n
\n \n

PRODUCT NOTES ({{notesLength}})

\n
\n
\n
\n \n
\n
\n
\n {{notesCount}} 9\" class =\"countClassGreaterThanNine\"> {{notesCount}}/ {{notesLength}} \n \n \n \n
\n
\n
\n
\n
\n
\n

User ID: {{note.productNotes.updatedBy.operatorId}}

\n

{{note.productNotes.updatedBy.firstName}} {{note.productNotes.updatedBy.lastName}}

\n\n

{{note.productNotes.updatedOn | date:'dd MMM yyyy'}}

\n\n
\n
\n \n 0\" class=\"imageAllocation\" src=\"../../../assets/attachment.png\">\n 0\" class=\"badgeStyle\" matBadge=\"{{note.productNotesFile.length}}\" matBadgeOverlap=\"false\" (click)=\"showProductNotes(note.productNotes.productNotesId, i)\"> \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n

User ID: {{specificNotesDetails[0].productNotes.updatedBy.operatorId}}


\n

{{specificNotesDetails[0].productNotes.updatedBy.firstName}} {{specificNotesDetails[0].productNotes.updatedBy.lastName}}


\n

{{specificNotesDetails[0].productNotes.updatedOn | date: 'dd MMM yyyy'}}

\n
\n \n
\n

\n
=1\" class=\"f-m-r\">PHOTO / ATTACHMENT UPLOADS
\n
\n
\n
\n
\n
{{notesFile.fileName}}

\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n

User ID: {{nextNote.productNotes.updatedBy.operatorId}}


\n

{{nextNote.productNotes.updatedBy.firstName}} {{nextNote.productNotes.updatedBy.lastName}}


\n

{{nextNote.productNotes.updatedOn | date: 'dd MMM yyyy'}}

\n
\n
\n

\n
=1\" class=\"f-m-r\">PHOTO / ATTACHMENT UPLOADS
\n
\n
\n \n

\n
{{notesFile.fileName}}

\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n\n
\n \n Close X\n
\n
\n
\n \n \n
Email id is required
\n
\n
\n \n \n
Message is required
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
","\"Close\"/\n\"FAQ","

Are you sure you want to delete?

\n\n","import { AfterViewInit, Component, OnInit, ViewChild } from \"@angular/core\";\nimport { FormArray, FormBuilder, FormControl, FormControlName, FormGroup, Validators } from '@angular/forms';\n\nimport { Router, NavigationExtras } from \"@angular/router\";\nimport { ProductService } from \"src/app/services/product.service\";\nimport { ProductDetails } from \"../../models/productDetails\";\nimport { UserDetails, UserStatusInfo } from \"../../models/userDetails\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { MsalService, BroadcastService } from \"@azure/msal-angular\";\nimport { ChangeEventArgs } from \"@syncfusion/ej2-dropdowns\";\nimport {\n GridComponent,\n RowSelectEventArgs,\n FilterType,\n QueryCellInfoEventArgs,\n} from \"@syncfusion/ej2-angular-grids\";\nimport { FetchUserDetailsService } from \"src/app/services/fetch-user-details.service\";\nimport { DataSharingService } from \"src/app/services/data-sharing.service\";\nimport { FileUploadService } from \"src/app/services/file-upload.service\";\nimport jwt_decode from \"jwt-decode\";\nimport { Internationalization } from '@syncfusion/ej2-base'; \n// import { OneSignal } from \"onesignal-ngx\";\n\n@Component({\n selector: \"app-product-search\",\n templateUrl: \"./product-search.component.html\",\n styleUrls: [\"./product-search.component.css\"],\n})\nexport class ProductSearchComponent implements OnInit, AfterViewInit {\n\n userStatusForm = this.formBuilder.group({\n message: ['', Validators.required]\n })\n\n messageProductSpecific: boolean;\n pending: number;\n approved: number;\n rejected: number;\n revoked: number;\n blocked: number;\n total: number;\n userRows: any;\n row: string;\n isSelected: boolean = false;\n loader: boolean;\n loading: boolean;\n isButton: boolean = false;\n isRevoke: boolean = false;\n isBlocked: boolean = false;\n isVisible: boolean = false;\n isMessage: boolean;\n productDetails: ProductDetails[];\n message: boolean;\n messageFAQ: boolean;\n success: string = \"Y\";\n searchProductForm: FormGroup;\n productSId: any;\n result: string;\n subscription: any;\n accessToken: any;\n public data: any[];\n updatedOn: any;\n public ddldata: Object[];\n public pageSettings: Object;\n public filter: Object;\n public ddlfields: Object = { text: \"type\", value: \"Id\" };\n public productLines: string[];\n public formatoptions: Object;\n public toolbar: Object[];\n @ViewChild(\"grid\") public grid: GridComponent;\n public item: Object = {};\n // selectRow:Object;\n public selectRow: Object[] = [];\n newProducts: any;\n userData: UserDetails[] = [];\n productDetail: any;\n token: any;\n firstName: any;\n lastName: any;\n btnChange: any;\n email: any;\n name: string;\n uniqueName: string;\n role: string;\n postFormSubmit: boolean = false;\n userStatusObject: any;\n subscribeMsg: boolean = false;\n userstatusPopup: boolean = false;\n currentSelectRecords: any[];\n userEmailsSelected: string;\n currentUserStatus: string;\n userOperatorId: any;\n public intl: Internationalization = new Internationalization();\n public dateFormatter: Function = this.intl.getDateFormat({ type: 'datetime', format: \"M/d/y hh:mm a\"});\n constructor(\n private route: Router,\n private fileUploadService: FileUploadService,\n private productService: ProductService,\n private fetchCount: FetchUserDetailsService,\n public dataSharingService: DataSharingService,\n private snackBar: MatSnackBar,\n private formBuilder: FormBuilder,\n // private os: OneSignal\n ) {\n this.dataSharingService.setHeader(false);\n this.searchProductForm = new FormGroup({\n productId: new FormControl(\"\"),\n });\n this.dataSharingService.fetchUserRole.subscribe((res: string) => {\n this.role = res;\n });\n // this.os.init({\n // appId: \"ac86d4e1-6fc3-48af-b563-03af188db39f\",\n // });\n\n\n }\n\n /**\n * Name : Sandhya Misal\n * Functionality :Enter product Id/Serial No and display the Corresponding search data\n * Code Desc :Calling fetchProductDetails backend api by providing user entered product id and fetching the\n * Corresponding search data\n **/\n \n\n get form() { return this.userStatusForm.controls; }\n\n\n wildCardSearch() {\n this.loader = true;\n console.log(this.loader);\n this.productSId = this.searchProductForm.get(\"productId\").value;\n console.log(\"productSId\", this.productSId);\n this.listProductDetails();\n // const itemStr = localStorage.getItem(\"accessToken\");\n // if (!itemStr) {\n // this.listProductDetails();\n // } else {\n // const item = JSON.parse(itemStr);\n // const now = new Date();\n // if (now.getTime() > item.expiry) {\n // localStorage.removeItem(\"accessToken\");\n // this.authService\n // .acquireTokenPopup(OAuthSettings)\n // .then((tokenResponse) => {\n // console.log(tokenResponse.accessToken);\n // this.setAccessToken(tokenResponse.accessToken);\n // this.listProductDetails();\n // });\n // } else {\n // this.listProductDetails();\n // }\n // }\n }\n\n configureUploadButton(productSpecific, prodline, doc) {\n if (this.btnChange === \"FAQ\") {\n this.uploadFilesProduct(productSpecific, prodline, doc);\n } else {\n this.fileUploadSpareParts(productSpecific, prodline, doc);\n }\n }\n\n listProductDetails() {\n this.productService\n .listProductDetails(this.productSId)\n .subscribe((data) => {\n console.log(\"data\", data);\n if (data) {\n this.loader = false;\n }\n this.productDetails = data;\n this.newProducts = [];\n console.log(this.productDetails);\n for (var obj of this.productDetails)\n this.newProducts.push(obj.serialNumber);\n console.log(this.newProducts);\n }),\n (error) => {\n console.log(error);\n };\n }\n\n // callFetchProductDetails() {\n // this.productService.fetchProductDetails(this.productSId).subscribe(data => {\n // console.log(\"data\", data);\n // if (data) {\n // this.loader = false;\n // }\n // this.productDetails = data;\n // this.newProducts = [];\n // console.log(this.productDetails);\n // for (var obj of this.productDetails)\n // this.newProducts.push(obj.serialNumber);\n // console.log(this.newProducts);\n // }), error => {\n // console.log(error);\n // }\n // }\n\n /**\n * Name : Sandhya Misal\n * Functionality : Upload files\n * Code Desc : Upload files\n **/\n uploadFiles(file) {\n console.log(\"file\", file);\n let fileExtension = file._files[0].name;\n if (fileExtension.endsWith(\".xlsx\")) {\n this.message = true;\n console.log(this.message);\n this.productService.isUploadProgress(fileExtension).subscribe(\n (data) => {\n this.fileUploadService.fileUpload(file).subscribe((data) => {\n console.log(this.message);\n });\n this.snackBar.open(\n \"File upload is in process. You will receive email notification on the status\",\n \"\",\n {\n duration: 3000,\n }\n );\n },\n (err) => {\n this.snackBar.open(\n \"Existing file is already in process.please upoad file after the notification\",\n \"\",\n {\n duration: 3000,\n }\n );\n }\n );\n } else {\n this.snackBar.open(\"Invalid file format\", \"\", {\n duration: 3000,\n });\n }\n }\n\n clearErrorMessage() {\n this.messageProductSpecific = undefined;\n this.message = undefined;\n }\n\n uploadFilesProduct(file, prodLine: string, datacategory: string) {\n console.log(\"file\", file);\n let fileExtension = file._files[0].name;\n if (fileExtension.endsWith(\".xml\")) {\n this.fileUploadService\n .fileUploadProduct(file, prodLine, datacategory)\n .subscribe(\n (data) => {\n // if(this.success=='Y'){\n this.snackBar.open(\n \"FAQ uploaded successfully. You will receive email notification on the status\",\n \"\",\n {\n duration: 3000,\n // panelClass: 'green-snackbar'\n }\n );\n console.log(this.messageProductSpecific);\n },\n (err) => {\n console.log(err);\n }\n );\n } else {\n this.snackBar.open(\"Invalid file format\", \"\", {\n duration: 3000,\n // panelClass: 'green-snackbar'\n });\n }\n }\n\n fileUploadSpareParts(file, prodLine: string, datacategory: string) {\n console.log(\"file\", file, prodLine, datacategory);\n let fileExtension = file._files[0].name;\n if (fileExtension.endsWith(\".csv\")) {\n this.fileUploadService\n .fileUploadSpareParts(file, prodLine, datacategory)\n .subscribe(\n (data) => {\n // if(this.success=='Y'){\n this.snackBar.open(\n \"Spare parts uploaded successfully\",\n \"\",\n {\n duration: 3000,\n // panelClass: 'green-snackbar'\n }\n );\n console.log(this.messageProductSpecific);\n },\n (err) => {\n console.log(err);\n }\n );\n } else {\n this.snackBar.open(\"Invalid file format\", \"\", {\n duration: 3000,\n // panelClass: 'green-snackbar'\n });\n }\n }\n\n goToRegisterPage() {\n this.route.navigate([\"/register\"]);\n }\n ngAfterViewInit(){\n var pendingBar = document.getElementById(\"pendingBar\");\n var rejectedBar = document.getElementById(\"rejectedBar\");\n var approvedBar = document.getElementById(\"approvedBar\");\n var revokedBar = document.getElementById(\"revokedBar\");\n var blockedBar = document.getElementById(\"blockedBar\");\n this.fetchCount.getStatusCount().subscribe(\n (count) => {\n this.pending = count.Pending;\n this.approved = count.Approved;\n this.rejected = count.Rejected;\n this.blocked = count.Blocked;\n this.revoked = count.Revoked;\n this.total = count.Total;\n pendingBar.style.width = count.PendingPercentage + \"%\";\n rejectedBar.style.width = count.RejectedPercentage + \"%\";\n approvedBar.style.width = count.ApprovedPercentage + \"%\";\n revokedBar.style.width = count.RevokedPercentage + \"%\";\n blockedBar.style.width = count.BlockedPercentage + \"%\";\n },\n (err) => {\n console.log(err);\n }\n );\n\n this.dataSharingService.gridValue.subscribe((data) => {\n if (data == true) {\n this.fetchCount.getStatusCount().subscribe(\n (count) => {\n this.pending = count.Pending;\n this.approved = count.Approved;\n this.rejected = count.Rejected;\n this.revoked = count.Revoked;\n this.blocked = count.Blocked;\n this.total = count.Total;\n pendingBar.style.width = count.PendingPercentage + \"%\";\n rejectedBar.style.width = count.RejectedPercentage + \"%\";\n approvedBar.style.width = count.ApprovedPercentage + \"%\";\n revokedBar.style.width = count.RevokedPercentage + \"%\";\n blockedBar.style.width = count.BlockedPercentage + \"%\";\n },\n (err) => {\n console.log(err);\n }\n );\n }\n });\n }\n\n ngOnInit(): void {\n this.loading = true;\n console.log(\"Access Token-->\"+localStorage.getItem('msal.idtoken'));\n // this.accessToken = this.getWithExpiry();\n const localStorageAccessToken = localStorage.getItem(\"accessToken\");\n if(localStorageAccessToken){\n let decodedToken = jwt_decode(localStorageAccessToken);\n this.firstName = decodedToken['given_name'];\n this.lastName = decodedToken['family_name'];\n this.name = decodedToken['name'];\n this.email = decodedToken['unique_name'].includes('#') ? decodedToken['unique_name'].split(\"#\").pop() : decodedToken['unique_name'];\n console.log(this.firstName, this.lastName);\n }else{\n this.route.navigate(['/login']);\n }\n \n this.fetchCount.fetchUseryEmail(this.email).subscribe(data => {\n this.userOperatorId = data.operatorId;\n });\n \n this.productService.fetchProductLines().subscribe((data) => {\n this.productLines = data;\n });\n \n this.fetchCount.fetchOperatorByStatus(\"Pending\").subscribe(\n (data) => {\n this.loading = false;\n this.data = data;\n \n },\n (err) => {\n console.log(err);\n }\n );\n\n this.dataSharingService.gridValue.subscribe((data) => {\n console.log(\"booleanValue:\", data);\n if (data == true) this.grid.refresh();\n });\n\n this.filter = { type: \"CheckBox\" };\n this.toolbar = [\"Search\"];\n\n this.filter = { type: \"CheckBox\" };\n }\n\n public valueAccess = (field: string, data: object, column: object) => { \n let value = new Date (data[field]); \n return this.dateFormatter(value);\n }\n \n public onChange(e: ChangeEventArgs): void {\n this.grid.filterSettings.type = e.value;\n this.grid.clearFiltering();\n }\n\n showProductDetails(serialNumber) {\n console.log(\"serial no\", serialNumber);\n let navigationExtras: NavigationExtras = {\n queryParams: {\n productId: serialNumber,\n uoId: this.userOperatorId\n },\n queryParamsHandling: \"merge\"\n };\n this.route.navigate([\"/product-details\"], navigationExtras);\n }\n\n getPendingStatus() {\n this.fetchCount.fetchOperatorByStatus(\"Pending\").subscribe(\n (data) => {\n console.log(data);\n this.data = data;\n this.isButton = false;\n this.isRevoke = false;\n this.isBlocked = false;\n this.isVisible = false;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n getRejectedStatus() {\n this.fetchCount.fetchOperatorByStatus(\"Rejected\").subscribe(\n (data) => {\n console.log(data);\n this.data = data;\n this.isButton = false;\n this.isRevoke = false;\n this.isBlocked = false;\n this.isVisible = true;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n getBlockedStatus() {\n this.fetchCount.fetchOperatorByStatus(\"Blocked\").subscribe(\n (data) => {\n console.log(data);\n this.data = data;\n this.isButton = false;\n this.isRevoke = false;\n this.isVisible = false;\n this.isBlocked = true;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n getApprovedStatus() {\n this.fetchCount.fetchOperatorByStatus(\"Approved\").subscribe(\n (data) => {\n console.log(data);\n this.data = data;\n this.isButton = false;\n this.isRevoke = true;\n this.isBlocked = false;\n this.isVisible = false;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n getRevokeStatus() {\n this.fetchCount.fetchOperatorByStatus(\"Revoked\").subscribe(\n (data) => {\n console.log(data);\n this.data = data;\n this.isButton = false;\n this.isRevoke = false;\n this.isVisible = true;\n this.isBlocked = false;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n getTotal() {\n this.fetchCount.fetchUserDetails().subscribe(\n (user) => {\n this.data = user;\n this.isButton = true;\n this.isRevoke = false;\n this.isVisible = false;\n this.isBlocked = false;\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n userApproval() {\n const selectedrecords: object = this.grid.getSelectedRecords();\n console.log(\"records:\", selectedrecords);\n if (Object.keys(selectedrecords).length >= 1) {\n this.userRows = [];\n for (let i = 0; i < Object.keys(selectedrecords).length; i++) {\n if (selectedrecords[i].approvalStatus == \"Approved\") {\n // this.isMessage=true;\n this.snackBar.open(\n \"Please select only pending and blocked registrations to approve\",\n \"\",\n {\n duration: 3000,\n // panelClass: 'green-snackbar'\n }\n );\n } else {\n // this.isMessage=false;\n this.userRows.push(selectedrecords[i]);\n }\n }\n let userStatusObject: any = {};\n let userStatusInfo: UserStatusInfo[] = [];\n for (let i = 0; i < this.userRows.length; i++){\n let userStatusData: any = {};\n userStatusData.operatorId = this.userRows[i].operatorId;\n userStatusData.firstName = this.userRows[i].firstName;\n userStatusData.lastName = this.userRows[i].lastName;\n userStatusData.email = this.userRows[i].email;\n userStatusData.brand = this.userRows[i].brand;\n userStatusData.approvalStatus = \"Approved\";\n userStatusInfo.push(userStatusData);\n }\n userStatusObject.userInfo = userStatusInfo;\n userStatusObject.message = null;\n this.dataSharingService.setLoader(true);\n this.fetchCount.getStatusApproved(userStatusObject).subscribe(\n (data) => {\n console.log(\"calling approval method\", data);\n // this.row = data.Message;\n if (data.status == true) {\n this.dataSharingService.setLoader(false);\n this.snackBar.open(\n \"Registration has been approved for selected rows\",\n \"\",\n {\n duration: 3000,\n // panelClass: 'green-snackbar'\n }\n );\n const selectedOperatorIds = this.userRows.map(u => u.operatorId);\n this.data = this.data.filter(d => !selectedOperatorIds.includes(d.operatorId));\n this.grid.refresh();\n this.dataSharingService.setGrid(true);\n }\n },\n (err) => {\n console.log(err);\n }\n );\n } else {\n this.snackBar.open(\n \"Please select atleast one record to perform this action\",\n \"\",\n {\n duration: 3000,\n // panelClass: 'green-snackbar'\n }\n );\n }\n }\n\n changeUserStatus(status: string) {\n this.currentUserStatus = status;\n this.currentSelectRecords = this.grid.getSelectedRecords();\n console.log(\"inUserStatusAction:\", this.currentSelectRecords);\n if (this.currentSelectRecords?.length >= 1) {\n this.userRows = [];\n const currentStatus = this.currentSelectRecords[0].approvalStatus;\n if (!this.currentSelectRecords.every(r => r.approvalStatus === currentStatus) ){\n this.snackBar.open(\"Please select records of same status\", \"\",\n {\n duration: 3000,\n });\n return;\n }\n for (let i = 0; i < this.currentSelectRecords.length; i++) {\n console.log(\"Actual sending rows\", this.currentSelectRecords[i]);\n \n if (this.currentSelectRecords[i].approvalStatus == \"Blocked\" && status === \"block\") {\n this.snackBar.open(\"Please select pending, approved, rejected registrations to block\", \"\",\n {\n duration: 3000,\n });\n }\n else if (this.currentSelectRecords[i].approvalStatus != \"Pending\" && this.currentSelectRecords[i].approvalStatus != \"Blocked\" && status === \"reject\") {\n this.snackBar.open(\"Please select only pending and blocked registrations to reject\", \"\",\n {\n duration: 3000,\n });\n } else if (this.currentSelectRecords[i].approvalStatus != \"Approved\" && this.currentSelectRecords[i].approvalStatus != \"Blocked\" && status === \"revoke\") {\n this.snackBar.open(\"Please select only approved and blocked registrations to revoke\", \"\",\n {\n duration: 3000,\n });\n } else {\n console.log(this.currentSelectRecords[i]);\n this.userRows.push(this.currentSelectRecords[i]);\n this.subscribeMsg = false;\n this.postFormSubmit = true; \n this.userEmailsSelected = this.userRows.map(u => u.email).join(', ');\n this.userstatusPopup = true\n }\n }\n } else {\n this.snackBar.open(\"Please select atleast one record to perform this action\", \"\",\n {\n duration: 3000,\n });\n }\n }\n\n setUserStatus() {\n let userStatusObject: any = {};\n let userStatusInfo: UserStatusInfo[] = [];\n for (let i = 0; i < this.userRows.length; i++){\n let userStatusData: any = {};\n userStatusData.operatorId = this.userRows[i].operatorId;\n userStatusData.firstName = this.userRows[i].firstName;\n userStatusData.lastName = this.userRows[i].lastName;\n userStatusData.email = this.userRows[i].email;\n userStatusData.brand = this.userRows[i].brand;\n userStatusInfo.push(userStatusData);\n }\n userStatusObject.userInfo = userStatusInfo;\n userStatusObject.message = this.userStatusForm.value.message;\n for (let i = 0; i < Object.keys(userStatusObject.userInfo).length; i++) {\n if (this.currentUserStatus === \"block\") {\n userStatusObject.userInfo[i].approvalStatus = \"Blocked\";\n } else if (this.currentUserStatus === \"reject\") {\n userStatusObject.userInfo[i].approvalStatus = \"Rejected\";\n } else {\n userStatusObject.userInfo[i].approvalStatus = \"Revoked\";\n }\n }\n this.dataSharingService.setShowSmallLoader(true);\n this.fetchCount.getStatusApproved(userStatusObject).subscribe(\n (data) => {\n // this.row = data.message;\n if (data.status == true) {\n this.dataSharingService.setShowSmallLoader(false);\n this.userstatusPopup = false;\n this.postFormSubmit = true;\n this.subscribeMsg = true;\n const selectedOperatorIds = this.userRows.map(u => u.operatorId);\n this.data = this.data.filter(d => !selectedOperatorIds.includes(d.operatorId));\n this.grid.refresh();\n this.dataSharingService.setGrid(true);\n }\n this.userRows = [];\n userStatusObject.message = '';\n },\n (err) => {\n console.log(err);\n }\n );\n }\n \n\n setUserStatusWithoutMail() {\n let userStatusObject: any = {};\n let userStatusInfo: UserStatusInfo[] = [];\n for (let i = 0; i < this.userRows.length; i++){\n let userStatusData: any = {};\n userStatusData.operatorId = this.userRows[i].operatorId;\n userStatusData.firstName = this.userRows[i].firstName;\n userStatusData.lastName = this.userRows[i].lastName;\n userStatusData.email = this.userRows[i].email;\n userStatusData.brand = this.userRows[i].brand;\n userStatusInfo.push(userStatusData);\n }\n userStatusObject.userInfo = userStatusInfo;\n userStatusObject.message = this.userStatusForm.value.message;\n for (let i = 0; i < Object.keys(userStatusObject.userInfo).length; i++) {\n if (this.currentUserStatus === \"block\") {\n userStatusObject.userInfo[i].approvalStatus = \"Blocked\";\n } else if (this.currentUserStatus === \"reject\") {\n userStatusObject.userInfo[i].approvalStatus = \"Rejected\";\n } else {\n userStatusObject.userInfo[i].approvalStatus = \"Revoked\";\n }\n }\n this.dataSharingService.setShowSmallLoader(true);\n this.fetchCount.getStatusWithoutMail(userStatusObject).subscribe(\n (data) => {\n // this.row = data.message;\n if (data.status == true) {\n this.dataSharingService.setShowSmallLoader(false);\n this.userstatusPopup = false;\n this.postFormSubmit = true;\n this.subscribeMsg = true;\n const selectedOperatorIds = this.userRows.map(u => u.operatorId);\n this.data = this.data.filter(d => !selectedOperatorIds.includes(d.operatorId));\n this.grid.refresh();\n this.dataSharingService.setGrid(true);\n }\n this.userRows = [];\n userStatusObject.message = '';\n },\n (err) => {\n console.log(err);\n }\n );\n }\n\n closePopup() {\n this.postFormSubmit = !this.postFormSubmit;\n this.userStatusForm.reset();\n }\n\n rowSelected(args: RowSelectEventArgs) {\n const selectedrecords: object = this.grid.getSelectedRecords();\n console.log(\"selected Records in row selected method:\", selectedrecords);\n }\n}\n","\n
\n Welcome {{lastName}}, {{firstName}}!\n
\n\n
\n Welcome {{name}}!\n
\n
\n
\n
\n
\n
\n

LATEST UPDATES

\n
\n \n Spare parts feature has been implemented in Product details page, Listed the spare parts details based on the Product serial number and they can raise the Quote or Order for the selected items through respective buttons. \n
\n\n
\n\n
\n \n \n CIRCORSMART\n Mobile Apps Available\n \n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n
\n
\n
\n \n
{{pending}}
\n
PENDING
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
{{rejected}}
\n
REJECTED
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
{{approved}}
\n
APPROVED
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
{{revoked}}
\n
REVOKED
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
{{blocked}}
\n
BLOCKED
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
{{total}}
\n
TOTAL USER
\n
\n
\n
\n
\n
\n
\n\n \n\n
\n\n\n
\n
\n
\n
User Registration Details
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{data.approvalStatus}} \n \n
\n
{{data.approvalStatus}}\n \n
\n
{{data.approvalStatus}}\n \n
\n
{{data.approvalStatus}}\n \n
\n\n
{{data.approvalStatus}}\n   \n \n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n Loading...\n
\n
\n \n
\n
\n
\n
\n
\n
\n

Search and View Product Details

\n
\n
\n \n \n \n \n
\n
SEARCH RESULTS
\n
\n
\n Loading...\n
\n
\n
\n {{products}}\n \"notes\"\n
\n \n
\n
\n
\n\n \n
\n
\n

Upload Maintenance Details

\n \n \n \n \n \n
\n \n \n Invalid file format\n
\n\n \n \n \n
\n \n \n Product Line\n \n \n {{ productLine }}\n \n \n \n \n Data Category\n \n FAQ\n Spare Parts\n \n \n\n \n \n \n
\n \n \n Invalid file format\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n Close X\n
\n
\n
\n \n \n
\n
\n \n \n
Message is required
\n
\n
\n
\n Access has been {{currentUserStatus}}ed for selected users\n
\n \n \n \n \n \n \n \n
\n
\n
\n\n
\n \n\n\n ","import { Component, OnInit } from '@angular/core';\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { FormArray, FormBuilder, FormControl, FormControlName, FormGroup, Validators } from '@angular/forms';\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-register-form',\n templateUrl: './register-form.component.html',\n styleUrls: ['./register-form.component.css']\n})\nexport class RegisterFormComponent implements OnInit {\n unrestrictedUser: boolean = true;\n selectBrand: object;\n brandArr: object;\n registeredUserValue: any;\n isError: boolean = false;\n postFormSubmit: boolean = false;\n registeredEmail: string;\n registerAccountHolder: boolean = false;\n reActivateErr: boolean = false;\n emailAcctStatus: string;\n\n countries: any;\n addregisterForm = this.formBuilder.group({\n firstName: ['', Validators.required],\n lastName: ['', Validators.required],\n email: ['', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$\")]],\n mobileNo: ['', Validators.required],\n brand: ['', Validators.required],\n orgName: ['', Validators.required],\n country: ['', Validators.required],\n location: [''],\n department: [''],\n });\n\n constructor(public dataSharingService: DataSharingService, private formBuilder: FormBuilder, private userService: FetchUserDetailsService, private snackBar: MatSnackBar, private router: Router) { \n }\n\n ngOnInit(): void {\n \n this.dataSharingService.setHeader(true);\n this.fetchBrandDetails();\n this.userService.getCountries().subscribe((res) => {\n this.countries = res.sort((a, b) => a.name.common > b.name.common ? 1 : -1);\n });\n\n }\n\n onSubmit() {\n this.registeredEmail = this.addregisterForm.controls['email'].value;\n this.registeredUserValue = this.addregisterForm.value;\n this.registeredUserValue.approvalStatus = \"Pending\";\n this.registeredUserValue.userTypeId = 1;\n this.registeredUserValue.accessLevel = 50;\n this.registeredUserValue.role = ['User']; \n this.registeredUserValue.approvedOn = new Date();\n this.registeredUserValue.status = \"Active\"\n this.registeredUserValue.regionalManager = \"\";\n this.registeredUserValue.currency = \"EUR\"\n this.dataSharingService.setLoader(true);\n this.userService.addUserOnBehalf(this.registeredUserValue).subscribe((res) => {\n this.dataSharingService.setLoader(false);\n this.addregisterForm.reset();\n this.isError = res.message;\n this.registerAccountHolder = false;\n this.postFormSubmit = true;\n },\n (err) => {\n this.dataSharingService.setLoader(false);\n this.registerAccountHolder = false;\n this.isError = err.error.message;\n this.postFormSubmit = true;\n console.log(err);\n\n if (err.status == 302 && err.error.message == \"An Inactive user already exists with same email\") {\n this.postFormSubmit = false;\n this.registerAccountHolder = true;\n }\n // this.snackBar.open(err.error.details[0],'', {\n // duration: 3000,\n // })\n })\n }\n\n get registerForm() { return this.addregisterForm.controls };\n\n\n fetchBrandDetails(){\n this.userService.fetchBrandDetails().subscribe(data => {\n this.selectBrand = data.filter(a => a);\n this.brandArr = Object.keys(this.selectBrand).map(key => ({ id: key, value: this.selectBrand[key] }));\n }, err =>{\n console.log(err);\n })\n }\n\n goBack() {\n this.router.navigate(['/login'])\n }\n\n useraccountreactivate() {\n this.dataSharingService.setLoader(true);\n this.userService.userAcctReactivate(this.emailAcctStatus).subscribe(res => {\n this.dataSharingService.setLoader(false);\n this.emailAcctStatus = '';\n this.addregisterForm.reset();\n this.registerAccountHolder = false;\n this.postFormSubmit = true;\n this.isError = res.message;\n })\n }\n\n}\n","\n
\n
\n \"Circor\"/\n
\n
\n\n
\n
\n
\n

Create An Account

\n
\n
\n
\n \n \n
First Name is required
\n
\n
\n
\n
\n \n \n
Last Name is required
\n
\n
\n\n
\n
\n \n \n
Email is required
\n
Email address is invalid
\n
\n
\n\n
\n
\n
\n
\n \n \n
\n Mobile No is required \n
\n
\n
\n\n
\n
\n \n \n
\n Brand is required \n
\n
\n
\n\n
\n
\n \n \n
\n companyName is required \n
\n
\n
\n
\n
\n
\n
\n \n \n\n
\n Country is required \n
\n
\n
\n\n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n \n
\n\n
\n \n \n
\n
\n \n \n
\n Your Email id has been registered already but account status is Inactive, if you need to re-activate the same account, please input the below detail and click on send.
We will check and active your CIRCOR Smartapp account within 3 days
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n
\n\n
\n \n
\n\n
\n\n
\n
\n X\n {{isError}}\n {{isError}}\n \n \n
\n
\n\n
\n\n
\n
\n © CIRCOR INTERNATIONAL, INC. ALL RIGHTS RESERVED, 2020.\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, Validators, FormBuilder, FormControl } from '@angular/forms';\n//import { Router } from '@angular/router';\nimport { Router } from '@angular/router';\nimport {DataManager} from '@syncfusion/ej2-data';\nimport { GridComponent, RowSelectEventArgs, FilterType, EditSettingsModel, selectVirtualRow, Column, IRow, rowSelected, SaveEventArgs, ToolbarItems, CommandModel, CommandClickEventArgs, click, CommandButtonOptions,IEditCell} from '@syncfusion/ej2-angular-grids';\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\nimport { UserDetails } from '../models/userDetails';\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { ViewChild } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { DropDownList, Fields } from '@syncfusion/ej2-angular-dropdowns';\nimport { query } from '@angular/animations';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.css']\n})\nexport class RegisterComponent implements OnInit {\n\n registerForm: FormGroup;\n loading = false;\n submitted = false;\n public data: Object[];\n dynamicUserRows:UserDetails[]=[];\n addedUser:UserDetails;\n removedUser:UserDetails;\n public filter: Object;\n //public toolbar: Object[];\n public toolbar: ToolbarItems[];\n loader:boolean;\n userRows:UserDetails[]=[];\n public operatorEditData: object;\n row:string;\n isSelected:boolean=false;\n @ViewChild('grid')\n public grid: GridComponent;\n public editSettings: EditSettingsModel;\n public commands: CommandModel[];\n selectBrand:any;\n brandArr:any;\n newArr:String[]=[];\n public brandParam:IEditCell;\n public elem: HTMLElement; \n public Obj:DropDownList;\n\n \n\n constructor(private formBuilder: FormBuilder, private route: Router, private userOnBehalfService:FetchUserDetailsService, \n private dataSharingService:DataSharingService, private snackBar: MatSnackBar) { \n     this.registerForm= new FormGroup({\n    firstName:new FormControl('', [Validators.required]),\n email:new FormControl('', [Validators.required,\n Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-z0-9.-]+\\\\.[a-z]{2,4}$\")]),\n mobileNo:new FormControl('', [\n // Validators.pattern(\"^((\\\\+91-?)|0)?[0-9]{10}$\")]),\n Validators.pattern(\"^[0-9]*$\"),\n Validators.minLength(1), Validators.maxLength(100)]),\n location: new FormControl(),\n jobTitle: new FormControl(),\n department:new FormControl(),\n orgName: new FormControl('',[Validators.required]),\n lastName:new FormControl('', [Validators.required]), \n brand: new FormControl('',[Validators.required])\n\n });\n }\n\n ngOnInit() {\n this.loader=false;\n this.filter = { type: \"CheckBox\" };\n this.toolbar = ['Search','Edit', 'Delete'];\n this.data = this.dynamicUserRows;\n this.editSettings = { showConfirmDialog: true, showDeleteConfirmDialog: true, \n allowEditing: true,allowEditOnDblClick:false, allowDeleting: true, mode: 'Normal'};\n this.commands = [{ type: 'Edit', buttonOption: { cssClass: 'e-flat', iconCss: 'e-edit e-icons' } },\n { type: 'Delete', buttonOption: { cssClass: 'e-flat', iconCss: 'e-delete e-icons', click:()=>this.deleteUserOnBehalf(this.dynamicUserRows)}},\n { type: 'Save', buttonOption: { cssClass: 'e-flat', iconCss: 'e-update e-icons' } },\n { type: 'Cancel', buttonOption: { cssClass: 'e-flat', iconCss: 'e-cancel-icon e-icons' } }];\n this.fetchBrandDetails();\n this.dataParams();\n \n }\n\n get f() { return this.registerForm.controls; }\n\n onSubmit() {\n this.submitted = true;\n this.loader=false\n if (this.registerForm.invalid) {\n return;\n }\n \n this.addedUser = this.registerForm.value;\n this.dynamicUserRows.push(this.addedUser); \n \n this.grid.refresh(); \n this.registerForm.reset();\n }\n\n addUserOnBehalf(){\n\n console.log(\"Inside add User on Behalf\");\n this.submitted = true;\n this.loader=false\n if (this.registerForm.invalid) {\n return;\n }\n \n this.addedUser = this.registerForm.value;\n this.addedUser.approvalStatus =\"Approved\";\n //this.addedUser.operatorId=11;\n console.log(this.addedUser);\n this.userOnBehalfService.addUserOnBehalf(this.addedUser).subscribe(data =>{\n console.log(data);\n console.log(data.saved_data);\n //this.data=data;\n this.addedUser=data.saved_data;\n console.log(this.addedUser);\n this.dynamicUserRows.push(this.addedUser); \n this.snackBar.open('User has been successfully registered','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n this.submitted = false;\n this.grid.refresh(); \n this.registerForm.reset();\n }, (err) => {\n console.log(err);\n this.snackBar.open(err.error.details[0],'', {\n duration: 3000,\n })\n })\n }\n\n onReset() {\n this.submitted = false;\n this.registerForm.reset();\n }\n \n ShowDashboardPage(){\n this.route.navigate(['/product-search']);\n }\n\n rowSelected(args: RowSelectEventArgs) { // Get the selected row indexes.\n const selectedrecords: object = this.grid.getSelectedRecords();\n console.log(\"selected Records in row selected method:\",selectedrecords);\n }\n\n editUserOnBehalf(dynamicUserRows){\n const selectedrecords: object = this.grid.getSelectedRecords();\n console.log(\"records:\",selectedrecords);\n if(Object.keys(selectedrecords).length>=1){\n this.userRows = []; \n for (let i = 0; i < Object.keys(selectedrecords).length; i++) {\n selectedrecords[i].userBrand[0].userBrand=selectedrecords[i].brand;\n this.userRows.push(selectedrecords[i]);\n }\n \n this.userOnBehalfService.updateUserOnBehalf(this.userRows).subscribe(data=>\n {\n console.log(\"calling update method\",data);\n this.row = data.Message;\n if(this.row=='Success'){\n this.snackBar.open('Data has been updated','', {\n duration: 3000,\n })\n this.dataSharingService.setGrid(true);\n }\n }, (err) => {\n console.log(err);\n })\n }\n else{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n })\n }\n }\n\n deleteUserOnBehalf(dynamicUserRows){\n\n console.log(\"Inside delete User on Behalf\");\n this.submitted = true;\n this.loader=false;\n const selectedrecords: object = this.grid.getSelectedRecords();\n console.log(\"selectedrecords\",selectedrecords);\n \n if(Object.keys(selectedrecords).length==1){\n this.removedUser = selectedrecords[0];\n console.log(\"removedUser\",this.removedUser);\n \n this.userOnBehalfService.deleteUserOnBehalf(selectedrecords[0]).subscribe(data =>{\n console.log(data);\n if(this.row=='Success'){\n this.snackBar.open('Data has been deleted','', {\n duration: 3000,\n })\n // this.dataSharingService.setGrid(true);\n }\n }, (err) => {\n console.log(err);\n })\n }else{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n })\n }\n }\n\n validateNumber(event) {\n const keyCode = event.keyCode;\n\n const excludedKeys = [8, 37, 39, 46];\n\n if (!((keyCode >= 48 && keyCode <= 57) ||\n (keyCode >= 96 && keyCode <= 105) ||\n (excludedKeys.includes(keyCode)))) {\n event.preventDefault();\n }\n }\n \n fetchBrandDetails(){\n this.userOnBehalfService.fetchBrandDetails().subscribe(data => {\n this.selectBrand = data.filter(a => a);\n this.brandArr = Object.keys(this.selectBrand).map(key =>({ id:key ,value: this.selectBrand[key]}));\n console.log(this.brandArr);\n this.newArr=this.brandArr.map(a => a.value);\n console.log(this.newArr);\n }, err =>{\n console.log(err);\n })\n }\n \n dataParams(){\n this.brandParam={\n create:() =>{\n this.elem=document.createElement('input');\n return this.elem;\n },\n read:() =>{\n return this.Obj.text;\n },\n destroy:() =>{\n this.Obj.destroy();\n },\n write:() => {\n this.Obj=new DropDownList({\n dataSource:new DataManager(this.brandArr),\n fields:{text:'value', value:'value'},\n\n });\n this.Obj.appendTo(this.elem);\n }\n };\n }\n\n}\n","
DASHBOARD > REGISTER ON USER’S BEHALF\n
\n \n\n\n REGISTER ON USER’S BEHALF

\n
\n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n
First Name is required
\n
\n \n\n \n
\n
Last Name is required
\n
\n \n\n \n
\n
Email is required
\n
\n
\n \n Please provide a valid email address\n
\n \n\n \n \n
\n Mobile Number is required\n Please provide a valid 10 digit mobile Number\n
\n \n\n \n\n \n\n \n\n \n
\n
Company is required
\n
\n \n \n \n \n
\n
Brand is required
\n
\n \n \n \n \n
\n \n
\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n
\n \n
\n\n ","import { THIS_EXPR } from '@angular/compiler/src/output/output_ast';\nimport { Injectable } from '@angular/core';\nimport { MsalService } from '@azure/msal-angular';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { OAuthSettings } from 'src/oauth';\nimport { ProductService } from './product.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataSharingService {\n private userTypeId: number;\n month: String[];\n year: string[];\n country: string[];\n refreshTokenTimer: any;\n\n private showSmallLoader = false;\n private _subscriberId = \"\";\n\n constructor(private productService: ProductService, private authService: MsalService) { \n this.month = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC'];\n this.year = ['2022', '2023', '2024', '2025', '2026'];\n this.country = ['Germany', 'USA', 'India', 'Great Britain']\n }\n fetchUserRoleFromServer() {\n return this.productService.getRole().pipe(map((data) => {\n if (!data) {\n return '';\n }\n let role = data.find((element: string) => element === 'Admin');\n if (!role) {\n role = data.find((element: string) => element === 'User');\n } \n this.userRole.next(role);\n return role;\n }),\n catchError((error) => {\n return of('');\n })\n )\n }\n\n refreshAccessToken() {\n this.refreshTokenTimer = setInterval(() => {\n this.authService.acquireTokenSilent(OAuthSettings).then((tokenResponse) => {\n console.log(tokenResponse.accessToken);\n this.setAccessToken(tokenResponse.accessToken);\n }).catch((error) => {\n console.log(error);\n clearInterval(this.refreshTokenTimer);\n });\n }, 400000);\n }\n\n setAccessToken(accessToken){\n const now = new Date();\n const item = {\n value: accessToken,\n expiry: now.getTime() + 500000,\n }\n localStorage.setItem(\"accessToken\", JSON.stringify(item));\n }\n setShowSmallLoader(value: any) {\n this.showSmallLoader = value;\n }\n\n getShowSmallLoader() {\n return this.showSmallLoader;\n }\n\n userRole = new BehaviorSubject(null);\n fetchUserRole = this.userRole.asObservable().pipe(tap((value)=> {if(!value){this.fetchUserRoleFromServer().subscribe()} }));\n\n private loader = new BehaviorSubject(false);\n fetchLoader = this.loader.asObservable();\n\n private pendingArray = new BehaviorSubject(null);\n fetchPendingArray = this.pendingArray.asObservable();\n\n private grid = new BehaviorSubject(null);\n gridValue = this.grid.asObservable();\n\n private faq = new BehaviorSubject(null);\n faqs = this.faq.asObservable();\n\n private headerVisibility = new BehaviorSubject(true);\n isHeaderVisibility = this.headerVisibility.asObservable();\n\n private unrestrictedUser = new BehaviorSubject(null);\n unrestrictedUserAccess = this.unrestrictedUser.asObservable();\n\n private notes = new BehaviorSubject(null);\n fetchNotes = this.notes.asObservable();\n\n private downArrow = new BehaviorSubject(true);\n isDownArrow = this.downArrow.asObservable();\n\n\n fetchPendingData(data) {\n this.pendingArray.next(data);\n }\n\n setGrid(value) {\n this.grid.next(value);\n }\n\n setFaq(value) {\n this.faq.next(value);\n }\n\n setHeader(value) {\n this.headerVisibility.next(value);\n }\n\n setDownArrow(value) {\n this.downArrow.next(value);\n }\n\n setUnrestrictedUser(value) {\n this.unrestrictedUser.next(value);\n }\n setNotes(value) {\n this.notes.next(value);\n }\n\n getLoader() {\n return this.fetchLoader;\n }\n\n setLoader(value: any) {\n this.loader.next(value);\n }\n\n setUserTypeId(value: any) {\n this.userTypeId = value;\n }\n\n getUserTypeId() {\n return this.userTypeId;\n }\n\n getSubscribtionId() {\n return this._subscriberId;\n }\n setSubscribtionId(value: any) {\n this._subscriberId = value;\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport {faqData} from '../mock-data/faqData'\nimport {faq} from '../models/faq';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport{ environment} from '../../environments/environment'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FaqService {\n\n constructor(private http: HttpClient) { }\n\n // getFaq():Observable{\n // return of(faqData);\n // }\n\n getFaq(status):Observable{\n return this.http.post(`${environment.apiUrl}productLine/getFaq`,status)\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable} from 'rxjs';\nimport { UserDetails} from '../models/userDetails'\nimport{ environment} from '../../environments/environment'\nimport { MsalService, BroadcastService } from '@azure/msal-angular';\nimport { Router, NavigationExtras } from '@angular/router';\nimport { map, tap } from 'rxjs/operators';\n@Injectable({\n providedIn: 'root'\n})\nexport class FetchUserDetailsService {\n accessToken: any;\n result: any;\n headers = new HttpHeaders({'X-Skip-Auth':''});\n constructor(private http: HttpClient,private authService: MsalService,private broadcastService: BroadcastService) { \n }\n\n fetchBrandDetails(options?: any): Observable{\n const withAuth = options?.withAuth;\n return this.http.get(`${environment.apiUrl}productLine/brands`,{headers:withAuth ? null : this.headers});\n }\n\n fetchUserDetails():Observable{ \n return this.http.get(`${environment.apiUrl}register/getAllOperator`);\n }\n\n getStatusCount():Observable{\n return this.http.get(`${environment.apiUrl}register/getStatusCount`)\n }\n\n getStatusApproved(userData:any):Observable{\n return this.http.put(`${environment.apiUrl}user-status`, userData);\n }\n \n getStatusWithoutMail(userData:any):Observable{\n return this.http.put(`${environment.apiUrl}user-status-withoutmail`, userData);\n}\n\n// getStatusUA(userData:any):Observable{\n// return this.http.put(`${environment.apiUrl}register/updateApprovelStatus`, userData);\n// }\n \n fetchOperatorByStatus(status):Observable{\n return this.http.post(`${environment.apiUrl}register/fetchOperatorByStatus`,status)\n }\n addUserOnBehalf(userData: UserDetails, options?: any): Observable{\n const withAuth = options?.withAuth;\n return this.http.post(`${environment.apiUrl}register/addUserOnBehalf`, userData, { headers: withAuth ? null : this.headers });\n}\n\nupdateUserOnBehalf(userData:UserDetails[]):Observable{\n return this.http.post(`${environment.apiUrl}register/updateUserOnBehalf`,userData);\n}\n\ndeleteUserOnBehalf(userData:UserDetails):Observable{\n return this.http.post(`${environment.apiUrl}register/deleteUserOnBehalf`,userData);\n}\nfetchUseryEmail(email): Observable{\nreturn this.http.post(`${environment.apiUrl}register/fetchUserByEmail`, email ,{headers:this.headers});\n}\n \nfetchLoginByEmail(email): Observable{\n return this.http.post(`${environment.apiUrl}/register/fetchloginbyemail`, email, {headers:this.headers});\n} \n\nupdateUser(userData: UserDetails): Observable{\n return this.http.put(`${environment.apiUrl}updateUser`, userData);\n}\n\ndeleteUserAccount(emailId: string): Observable {\n return this.http.put(`${environment.apiUrl}users/${emailId}/`, null);\n}\n\nuserAcctReactivate(email: string): Observable {\n return this.http.post(`${environment.apiUrl}useraccountreactivate`, email, {headers:this.headers});\n}\n \n getCountries(): Observable {\n console.log(\"enter the detail\");\n \n return this.http.get(`${environment.apiUrlCty}/all`, {headers: this.headers}).pipe(\n tap((result) => console.log(\"result\", result)),\n map((result) => (this.result = result))\n );\n}\n \n}\n","import { HttpClient, HttpHeaders} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { MsalService, BroadcastService } from '@azure/msal-angular';\nimport { Router, NavigationExtras } from '@angular/router';\nimport{ environment} from '../../environments/environment'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FileUploadService {\n accessToken:any;\n constructor(private route: Router,private _http: HttpClient,private authService: MsalService,private broadcastService: BroadcastService) { }\n\n private _fileUpload: string;\n\nfileUpload(fileList:any){\n this._fileUpload=`${environment.apiUrl}fileup/fileUploadTag`;\n let formData: FormData = new FormData();\n console.log(\"came here too\"+this._fileUpload);\n let file: File =fileList._files[0];\n formData.append(\"multiple\", file);\n return this._http.post(this._fileUpload, formData);\n }\n fileUploadProduct(fileList:any,prodLine:string,dataCategory:string){\n this._fileUpload=`${environment.apiUrl}fileup/fileUpload`;\n let formData: FormData = new FormData();\n console.log(\"came here too\"+this._fileUpload);\n let file: File =fileList._files[0];\n formData.append(\"multiple\", file);\n formData.append(\"productLine\", prodLine);\n formData.append(\"documentCategory\", dataCategory);\n return this._http.post(this._fileUpload, formData);\n }\n \n fileUploadSpareParts(fileList:any,prodLine:string,dataCategory:string) {\n this._fileUpload=`${environment.apiUrl}fileUploadSpareParts`;\n let formData: FormData = new FormData();\n console.log(\"came here too\"+this._fileUpload);\n let file: File =fileList._files[0];\n formData.append(\"file\", file);\n formData.append(\"productLine\", prodLine);\n formData.append(\"documentCategory\", dataCategory);\n return this._http.post(this._fileUpload, formData);\n }\n\n fileUploadForNotes(fileList:any,prodLine:string,productSerialNo:string):Observable{​​​​​\n this._fileUpload=`${environment.apiUrl}notes/notesFileUpload`;\n let formData: FormData = new FormData();\n console.log(\"came here too\"+this._fileUpload);\n for (let i=0; i < fileList._files.length; i++){\n formData.append(\"notesFiles\", fileList._files[i]);\n }\n formData.append(\"productLineDetails\", prodLine);\n formData.append(\"productSerialNo\", productSerialNo);\n\n return this._http.post(this._fileUpload, formData);\n }​​​​​\n\n sprefDocUpload(fileList:any, productLine:string):Observable{​​​​​\n this._fileUpload=`${environment.apiUrl}uploadsprefdocs`;\n let formData: FormData = new FormData();\n for (let i=0; i < fileList._files.length; i++){\n formData.append(\"files\", fileList._files[i]);\n }\n formData.append(\"productLine\", productLine);\n return this._http.post(this._fileUpload, formData);\n }​​​​​\n\n\n\n}\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { from, Observable, of } from \"rxjs\";\nimport { IsendOthers, IspareParts, ProductDetails } from \"../models/productDetails\";\nimport { environment } from \"../../environments/environment\";\nimport { MsalService, BroadcastService } from \"@azure/msal-angular\";\nimport { Router, NavigationExtras } from \"@angular/router\";\nimport { catchError, map, mergeMap } from \"rxjs/operators\";\n@Injectable({\n providedIn: \"root\",\n})\nexport class ProductService {\n accessToken: any;\n constructor(\n private route: Router,\n private http: HttpClient,\n private authService: MsalService,\n private broadcastService: BroadcastService\n ) {}\n // setAccessToken(accessToken) {\n // const now = new Date();\n // const item = {\n // value: accessToken,\n // expiry: now.getTime() + 500000,\n // };\n // localStorage.setItem(\"accessToken\", JSON.stringify(item));\n // }\n\n // getWithExpiry(): Observable {\n // const itemStr = localStorage.getItem(\"accessToken\");\n // if (!itemStr) {\n // this.route.navigate([\"/login\"]);\n // return of('');\n // }\n\n // const item = JSON.parse(itemStr);\n // const now = new Date();\n // if (now.getTime() > item.expiry) {\n // localStorage.removeItem(\"accessToken\");\n // //try {\n // return from(this.authService.acquireTokenPopup(OAuthSettings)).pipe(map((tokenResponse) => {\n // console.log(tokenResponse.accessToken);\n // this.setAccessToken(tokenResponse.accessToken);\n // return tokenResponse.accessToken;\n // }), catchError((error) => {\n // console.log(error);\n // this.route.navigate([\"/login\"]);\n // return of('');\n // }))\n \n // // then(tokenResponse => {\n\n // // console.log(tokenResponse.accessToken);\n // // this.setAccessToken(tokenResponse.accessToken);\n // // return tokenResponse.accessToken;\n // // }).catch((error) => {\n // // console.log(error);\n // // this.route.navigate([\"/login\"]);\n // // }));\n // //}\n // // } catch(error) {\n // // console.log(error);\n // // this.route.navigate([\"/login\"]);\n // // }\n // // this.authService\n // // .acquireTokenPopup(OAuthSettings)\n // // .then((tokenResponse) => {\n // // console.log(tokenResponse.accessToken);\n // // this.setAccessToken(tokenResponse.accessToken);\n // // return tokenResponse.accessToken;\n // // })\n // // .catch(function (error) {\n // // console.log(error);\n // // this.route.navigate([\"/login\"]);\n // // });\n // }\n // return of(item.value);\n // }\n \n isUploadProgress(fileExtension): Observable {\n return this.http.post(`${environment.apiUrl}/product/isUploadProgress`, fileExtension);\n }\n fetchProductLines(): Observable {\n return this.http.get(`${environment.apiUrl}productLine/listPipeLines`);\n }\n getProductLines(): Observable{\n return this.http.get(`${environment.apiUrl}listProductLines`)\n }\n\n getProductSubscription(userId, serialNo): Observable{\n return this.http.get(`${environment.apiUrl}product/${userId}/subscriptions?serialNo=${serialNo}`)\n }\n\n saveProductSubscription(userId, postData): Observable{\n return this.http.post(`${environment.apiUrl}product/${userId}/subscriptions`, postData);\n }\n\n updateProductSubscription(postData): Observable{\n return this.http.put(`${environment.apiUrl}product/subscriptions`, postData);\n }\n\n fetchProductDetails(serialNo): Observable {\n // return this.getWithExpiry().pipe(mergeMap((token) => {\n // if (token) {\n // token = \"Bearer \" + token;\n // const body = JSON.stringify(serialNo);\n // const headers = new HttpHeaders({ Authorization: token });\n return this.http.post(`${environment.apiUrl}product/fetchProductDetails`, serialNo);\n // }\n // }))\n // const itemStr = localStorage.getItem(\"accessToken\");\n // if (!itemStr) {\n // const body = JSON.stringify(serialNo);\n // return this.http.post(`${environment.apiUrl}product/fetchProductDetails`, serialNo);\n // } else {\n // const item = JSON.parse(itemStr);\n // const now = new Date();\n // if (now.getTime() > item.expiry) {\n // localStorage.removeItem(\"accessToken\");\n // this.authService\n // .acquireTokenPopup(OAuthSettings)\n // .then((tokenResponse) => {\n // console.log(tokenResponse.accessToken);\n // this.setAccessToken(tokenResponse.accessToken);\n // let token = \"Bearer \" + tokenResponse.accessToken;\n // const body = JSON.stringify(serialNo);\n // const headers = new HttpHeaders({ Authorization: token });\n // return this.http.post(`${environment.apiUrl}product/fetchProductDetails`, serialNo, { headers: headers }\n // );\n // })\n // .catch(function (error) {\n // console.log(error);\n // this.route.navigate([\"/login\"]);\n // });\n // } else {\n // let token = \"Bearer \" + item.value;\n // const body = JSON.stringify(serialNo);\n // const headers = new HttpHeaders({ Authorization: token });\n // return this.http.post(\n // `${environment.apiUrl}product/fetchProductDetails`,\n // serialNo,\n // { headers: headers }\n // );\n // }\n // }\n }\n\n listProductDetails(serialNo): Observable {\n return this.http.post(`${environment.apiUrl}listProductDetails`, serialNo);\n }\n\n\n fetchqrCodeDetails(qrCodeId): Observable {\n return this.http.post(`${environment.apiUrl}product/fetchProductDetailsbyQR`, qrCodeId);\n }\n\n fetchProductNotes(serialNo): Observable {\n const body = JSON.stringify(serialNo);\n return this.http.post(`${environment.apiUrl}notes/getProductNotes`, serialNo);\n }\n\n fetchSpareParts(serialNo): Observable {\n return this.http.get(`${environment.apiUrl}getspareparts?serialNo=${serialNo}`);\n }\n \n getRole(): Observable {\n // return this.getWithExpiry().pipe(mergeMap((token) => {\n // token = \"Bearer \" + token;\n // const headers = new HttpHeaders({ Authorization: token });\n return this.http.get(`${environment.apiUrl}getUserRole`);\n // }))\n }\n\n // sendSPQuotes(sparePartsQuote: IspareParts, productFirstAttributes: string): Observable {\n // return this.http.post(`${environment.apiUrl}sendquote`, {spareParts: sparePartsQuote, productFirstAttribute: productFirstAttributes});\n\n\n sendSPQuotes(sparePartsQuote: IspareParts): Observable {\n return this.http.post(`${environment.apiUrl}sendquote`, sparePartsQuote);\n }\n\n sendSPOrder(sparePartsOrder: IspareParts): Observable {\n return this.http.post(`${environment.apiUrl}sendorder`, sparePartsOrder)\n }\n\n addProductNotes(objectData): Observable {\n return this.http.post(`${environment.apiUrl}notes/addProductNotes`, objectData);\n }\n\n deleteProductNotes(deleteNote): Observable {\n return this.http.post(`${environment.apiUrl}product/deleteProductNotes`, deleteNote);\n }\n\n grantAccess(prodlineId: string, customerAccountNo: string, serialNo: string): Observable {\n let formData: FormData = new FormData();\n formData.append(\"productLineId\", prodlineId);\n formData.append(\"customerAccountNo\", customerAccountNo);\n formData.append(\"serialNo\", serialNo);\n return this.http.post(`${environment.apiUrl}product/grantAccessRequest`, formData);\n }\n\n checkQuoteandOrder(productLineName: string): Observable {\n return this.http.get(`${environment.apiUrl}checkQuoteandOrder/${productLineName}`);\n }\n\n searchByProductLine(productLine: string, year: any, month: any, searchType: string): Observable {\n const url = month ? `${environment.apiUrl}productquoteorder?productLineId=${productLine}&month=${month}&year=${year}&searchType=${searchType}` : `${environment.apiUrl}productquoteorder?productLineId=${productLine}&year=${year}&searchType=${searchType}`;\n return this.http.get(url);\n }\n\n searchBySerialNo(serialNo, month: any, year: any, searchType: string): Observable {\n const url = month ? `${environment.apiUrl}productquoteorder?serialNo=${serialNo}&month=${month}&year=${year}&searchType=${searchType}` : `${environment.apiUrl}productquoteorder?serialNo=${serialNo}&year=${year}&searchType=${searchType}`;\n return this.http.get(url);\n }\n \n getTextFieldData(): Observable {\n return this.http.get(`${environment.apiUrl}emailtemplates`)\n }\n\n updateTextFieldData(productLine: string, postData: any): Observable {\n return this.http.put(`${environment.apiUrl}emailtemplates/${productLine}`, postData);\n }\n\n productSplitDetailsByProductLine(productLine: string, year: any, month: any, searchType: string, quoteOrOrder: string, currency: string): Observable {\n const url = month ? `${environment.apiUrl}productquoteorders/productline?productLineId=${productLine}&month=${month}&year=${year}&searchType=${searchType}"eOrOrder=${quoteOrOrder}¤cy=${currency}` : `${environment.apiUrl}productquoteorders/productline?productLineId=${productLine}&year=${year}&searchType=${searchType}"eOrOrder=${quoteOrOrder}¤cy=${currency}`\n return this.http.get(url);\n }\n\n productSplitDetailsBySerialNo(serialNo, month: any, year: any, searchType: string, quoteOrOrder: string, currency: string): Observable {\n const url = month ? `${environment.apiUrl}productquoteorders/serialno?serialNo=${serialNo}&month=${month}&year=${year}&searchType=${searchType}"eOrOrder=${quoteOrOrder}¤cy=${currency}` : `${environment.apiUrl}productquoteorders/serialno?serialNo=${serialNo}&year=${year}&searchType=${searchType}"eOrOrder=${quoteOrOrder}¤cy=${currency}`;\n return this.http.get(url);\n }\n\n getAllProductLine():Observable {\n return this.http.get(`${environment.apiUrl}productlines`);\n }\n\n addProductLine(plData: any): Observable{\n return this.http.post(`${environment.apiUrl}productlines`, plData);\n }\n\n updateProductLine(productLineId: number, plData: any): Observable{\n return this.http.put(`${environment.apiUrl}productlines/${productLineId}`, plData);\n }\n\n getAuditLogsData(pageNo: number, pageSize: number): Observable {\n return this.http.get(`${environment.apiUrl}auditlogs?page=${pageNo}&size=${pageSize}`)\n }\n\n getSparePartRefDocs(productLine: string): Observable {\n return this.http.get (`${environment.apiUrl}getSparePartRefDocs?productLine=${productLine}`)\n }\n\n deleteSparePartRefDocs(productLine: string, fileName: string): Observable {\n console.log(\"fn1\", fileName);\n return this.http.delete(`${environment.apiUrl}deleteSparePartRefDocs?productLine=${productLine}&fileName=${fileName}`);\n }\n\n sendOthersToSpareParts(postData: IsendOthers): Observable {\n return this.http.post(`${environment.apiUrl}sendothers`, postData);\n }\n\n getExchangeRateData(): Observable {\n return this.http.get(`${environment.apiUrl}exchangerate`)\n }\n\n updateExchangeRateData(productLine: string, postData: any): Observable {\n return this.http.put(`${environment.apiUrl}exchangerate/${productLine}`, postData);\n }\n\n}\n","import { Location } from \"@angular/common\";\nimport { Directive, HostListener } from \"@angular/core\";\n\n@Directive({\n selector: '[goBack]'\n})\n\nexport class BackButtonDirective {\n constructor(private location: Location) { }\n \n @HostListener('click')\n onClick() {\n this.location.back();\n }\n}","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { MsalService } from \"@azure/msal-angular\";\nimport { EMPTY, from, Observable, of, throwError } from \"rxjs\";\nimport { catchError, concatMap, map } from \"rxjs/operators\";\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(private route: Router) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n if (request.headers.has('X-Skip-Auth')) {\n const headers = request.headers.delete('X-Skip-Auth');\n return next.handle(request.clone({ headers }));\n }\n const itemStr = localStorage.getItem(\"accessToken\");\n if (!itemStr) {\n this.route.navigate([\"/login\"]);\n return EMPTY;\n }\n const item = JSON.parse(itemStr);\n request = request.clone({\n setHeaders: {\n authorization: `Bearer ${item.value}`\n }\n });\n return next.handle(request).pipe(\n catchError((error) => {\n if (error.status === 401 || error.status === 403) {\n // Token expired, redirect to login page\n this.route.navigate(['/login']);\n }\n return throwError(error);\n })\n );\n }\n\n}\n\n","import { NgModule } from '@angular/core';\nimport { BackButtonDirective } from './directives/go-back-directive';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport { InfiniteScrollModule } from \"ngx-infinite-scroll\";\n\n\n@NgModule({\n declarations: [BackButtonDirective],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n MatSlideToggleModule,\n InfiniteScrollModule\n ],\n exports: [\n BackButtonDirective,\n FormsModule,\n ReactiveFormsModule,\n MatSlideToggleModule,\n InfiniteScrollModule\n ]\n})\nexport class SharedModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\n\n@Component({\n selector: 'app-user-profile',\n templateUrl: './user-profile.component.html',\n styleUrls: ['./user-profile.component.css']\n})\nexport class UserProfileComponent implements OnInit {\n userdetails:boolean = false;\n public emailValue: string;\n userData: any;\n constructor( private route: Router ) {\n }\n\n ngOnInit(): void {\n }\n ShowDashboardPage(){\n this.route.navigate(['/product-search']);\n }\n}\n","import { Component,ViewChild, OnInit } from '@angular/core';\nimport { ChangeEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { GridComponent, FilterService, FilterType, RowSelectEventArgs, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\nimport {MatSnackBar} from '@angular/material/snack-bar';\nimport { FetchUserDetailsService } from '../services/fetch-user-details.service';\nimport { UserDetails} from '../models/userDetails'\nimport { DataSharingService } from '../services/data-sharing.service';\nimport { Tooltip } from '@syncfusion/ej2-angular-popups';\n\n@Component({\n selector: 'app-user-registration-details',\n templateUrl: './user-registration-details.component.html',\n styleUrls: ['./user-registration-details.component.css'],\n providers: [FilterService]\n})\nexport class UserRegistrationDetailsComponent implements OnInit {\n public data: Object[];\n public ddldata: Object[];\n public pageSettings: Object;\n public filter: Object;\n public ddlfields: Object = { text: 'type', value: 'Id' };\n public formatoptions: Object;\n public toolbar: Object[];\n @ViewChild('grid')\n public grid: GridComponent;\n public item: Object = {}; \n // selectRow:Object;\n public selectRow:Object[]=[];\n newProducts:any;\n userData:UserDetails[]=[];\n message:string;\n userRows:UserDetails[]=[];\n\n constructor(private snackBar: MatSnackBar, private userDetails:FetchUserDetailsService, private dataSharingService:DataSharingService) { }\n\n ngOnInit(): void {\n // this.data = userData;\n this.userDetails.fetchUserDetails().subscribe(user=>{\n this.data=user;\n }, (err) => {\n console.log(err);\n })\n\n this.dataSharingService.fetchPendingArray.subscribe(pendingArray =>{\n console.log(\"CLicked on pending array\",pendingArray);\n this.data=pendingArray;\n }\n );\n\n this.dataSharingService.gridValue.subscribe(data=>{\n console.log(\"booleanValue:\",data);\n if(data==true)\n this.grid.refresh();\n })\n \n this.pageSettings = { pageCount: 5 };\n this.filter = { type: \"CheckBox\" };\n this.toolbar = ['Search'];\n }\n\n public onChange(e: ChangeEventArgs): void {\n this.grid.filterSettings.type = e.value;\n this.grid.clearFiltering();\n}\n\n\nrowSelected(args: RowSelectEventArgs) {\n const selectedrowindex: number[] = this.grid.getSelectedRowIndexes(); // Get the selected row indexes.\n const selectedrecords: object[] = this.grid.getSelectedRecords();\n}\n\nuserApprove(data){\n\nconst selectedrecords: object = this.grid.getSelectedRecords();// Get the selected records.\n\nconsole.log(\"selectedRows:\",selectedrecords);\n\nif(Object.keys(selectedrecords).length==1 && selectedrecords[0].operatorId==data.operatorId){\n\n selectedrecords[0].approvalStatus=\"Approved\";\n console.log(\"Changed Status\",selectedrecords[0].approvalStatus);\n\nthis.userData.push(selectedrecords[0]);\nconsole.log(\"UserData\",this.userData);\n\nconsole.log(\"admin:\",selectedrecords[0].adminId.firstName);\n this.userDetails.getStatusApproved(this.userData).subscribe(data=>\n {\nconsole.log(\"Apidata\",data);\n this.message = data.Message;\n if(this.message=='Success'){\n // this.grid.refresh();\n this.snackBar.open('Registration has been approved','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n this.dataSharingService.setGrid(true);\n }\n }, (err) => {\n console.log(err);\n })\n}\nelse{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n }\n}\n\nuserReject(data){\n const selectedrecords: object = this.grid.getSelectedRecords();\n\nconsole.log(\"selectedRows:\",selectedrecords);\n\nif(Object.keys(selectedrecords).length==1 && selectedrecords[0].operatorId==data.operatorId){\n\n selectedrecords[0].approvalStatus=\"Rejected\";\n console.log(\"Changed Status\",selectedrecords[0].approvalStatus);\n\nthis.userData.push(selectedrecords[0]);\nconsole.log(\"UserData\",this.userData);\n\nconsole.log(\"admin:\",selectedrecords[0].adminId.firstName);\n this.userDetails.getStatusApproved(this.userData).subscribe(data=>\n {\nconsole.log(\"Apidata\",data);\n this.message = data.Message;\n if(this.message=='Success'){\n this.grid.refresh();\n this.snackBar.open('Registration has been Rejected','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n this.dataSharingService.setGrid(true);\n }\n }, (err) => {\n console.log(err);\n })\n}\nelse{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n }\n}\n\nuserRevoke(data){\n const selectedrecords: object = this.grid.getSelectedRecords();\n\nconsole.log(\"selectedRows:\",selectedrecords);\n\nif(Object.keys(selectedrecords).length==1 && selectedrecords[0].operatorId==data.operatorId){\n\n selectedrecords[0].approvalStatus=\"Revoked\";\n console.log(\"Changed Status\",selectedrecords[0].approvalStatus);\n\nthis.userData.push(selectedrecords[0]);\nconsole.log(\"UserData\",this.userData);\n\nconsole.log(\"admin:\",selectedrecords[0].adminId.firstName);\n this.userDetails.getStatusApproved(this.userData).subscribe(data=>\n {\nconsole.log(\"Apidata\",data);\n this.message = data.Message;\n if(this.message=='Success'){\n this.grid.refresh();\n this.snackBar.open('Access has been revoked','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n this.dataSharingService.setGrid(true);\n }\n }, (err) => {\n console.log(err);\n })\n}\nelse{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n }\n\nconsole.log(\"selectedRows:\",selectedrecords);\nconsole.log(Object.keys(selectedrecords).length);\nif(Object.keys(selectedrecords).length>=1 && selectedrecords[0].userID==data.userID){\n}\nelse{\n this.snackBar.open('Row should be selected','', {\n duration: 3000,\n // panelClass: 'green-snackbar'\n })\n }\n}\n\nclick(): void { \n console.log(this.item); //Get the checkbox values here... \n}\n\n}\n","
\n
\n \n \n \n \n \n \n \n \n \n \n \n
{{data.approvalStatus}} \n   \n   \n
\n
{{data.approvalStatus}}\n \n
\n
\n {{data.approvalStatus}}\n
\n
\n {{data.approvalStatus}}\n
\n
\n
\n
\n
\n
\n \n ","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n // apiUrl: 'http://localhost:8080/',\n // apiUrl: 'https://dev-traceability-service.azurewebsites.net',\n // apiUrl:'https://test-traceability-service.azurewebsites.net/',\n apiUrl: 'https://circorsmart-service.azurewebsites.net/',\n apiUrlCty: 'https://restcountries.com/v3.1'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","export const OAuthSettings = {\n// clientId: '0e307113-75d1-43dd-acd8-bc5ec55a0af4', // This is your client ID\n// authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n// redirectUri: 'https://dev-traceability.azurewebsites.net/auth',// This is your redirect URI\n// clientId: '0e307113-75d1-43dd-acd8-bc5ec55a0af4', // This is your client ID\n// authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n// redirectUri: 'https://test-traceability.azurewebsites.net/auth',// This is your redirect URI\n clientId: '73866854-7051-487d-bcdd-9398fd283385', // This is your client ID\n authority: 'https://login.microsoftonline.com/5f681148-fa85-420d-8673-08b4e9c4266f/', // This is your tenant ID\n redirectUri: 'https://circorsmart.azurewebsites.net/auth',// This is your redirect URI\n scopes: [\n \n 'user.read',\n 'openid',\n 'profile',\n ]\n };"]}