\r\n\t
\r\n\t\t
\r\n
\r\n
{{ closeResult }} \r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{error}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n","import { FormGroup } from '@angular/forms';\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function ConfirmedValidator(controlName: string, matchingControlName: string){\r\n return (formGroup: FormGroup) => {\r\n const control = formGroup.controls[controlName];\r\n const matchingControl = formGroup.controls[matchingControlName];\r\n if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {\r\n return;\r\n }\r\n if (control.value !== matchingControl.value) {\r\n matchingControl.setErrors({ confirmedValidator: true });\r\n } else {\r\n matchingControl.setErrors(null);\r\n }\r\n };\r\n}\r\n","import { ToastrService } from 'ngx-toastr';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\nimport {ConfirmedValidator} from '@app/auth/sign-up/confirmed.validator';\r\nimport { Standard } from '@app/new-application/standard.model';\r\nimport { NewApplicationService } from '@app/new-application/new-application.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-sign-up',\r\n templateUrl: './sign-up.component.html',\r\n styleUrls: ['./sign-up.component.scss']\r\n})\r\nexport class SignUpComponent implements OnInit {\r\n signupForm: FormGroup;\r\n categoryList:Standard;\r\n loading = false;\r\n submitted = false;\r\n error = '';\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthService,\r\n private formBuilder: FormBuilder,\r\n public alertService: ToastrService,\r\n private newApplicationService: NewApplicationService,\r\n ) {\r\n // this.getCategories()\r\n }\r\n\r\n ngOnInit(): void {\r\n this.signupForm = this.formBuilder.group({\r\n companyName: ['', Validators.required],\r\n companyNo: ['', Validators.required],\r\n companyEmail: ['', [Validators.required, Validators.email ]],\r\n businessDescription: ['', Validators.required],\r\n physicalLocation: ['', Validators.required],\r\n companyTelephoneNo: ['', [ Validators.required, Validators.maxLength(13), Validators.minLength(10)]],\r\n password: ['', [Validators.required, Validators.minLength(8)]],\r\n passwordRepeat: ['']\r\n },\r\n {\r\n validator: ConfirmedValidator('password', 'passwordRepeat') }\r\n );\r\n }\r\n get f() { return this.signupForm.controls; }\r\n // On Signup link click\r\n signup() {\r\n const formValues = this.signupForm.value;\r\n this.loading = true;\r\n this.authService.signup(formValues)\r\n .subscribe({next :(user) =>{\r\n if(user.responseCode){\r\n this.alertService.success(user.responseDescription);\r\n this.router.navigate([this.authService.getInitialPathForRole(user.role)]);\r\n\r\n }else{\r\n this.error = user.responseDescription;\r\n this.loading = false;\r\n // this.alertService.error(user.responseDescription);\r\n }\r\n\r\n },\r\n error: error =>{\r\n this.error = error.error.responseDescription ?? \"Try again later\";\r\n this.loading = false;\r\n }\r\n\r\n });\r\n}\r\n\r\n}\r\n","\t\r\n\t
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Error! {{error|json}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\n\r\n@Component({\r\n selector: 'app-signin-with-header-footer',\r\n templateUrl: './signin-with-header-footer.component.html',\r\n styleUrls: ['./signin-with-header-footer.component.scss']\r\n})\r\nexport class SigninWithHeaderFooterComponent implements OnInit {\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) { }\r\n\r\n // On Forgotpassword link click\r\n onForgotpassword() {\r\n this.router.navigate(['forgot-password'], { relativeTo: this.route.parent });\r\n }\r\n\r\n // On Signup link click\r\n onSignup() {\r\n this.router.navigate(['signup-with-header-footer'], { relativeTo: this.route.parent });\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n\t\r\n\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
Sign in \r\n\t\t\t\t\t\t\t\t\t\t
Don't have an account yet? Sign up here \r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
OR SIGN IN WITH EMAIL \r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\t\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\n\r\n@Component({\r\n selector: 'app-signup-with-header-footer',\r\n templateUrl: './signup-with-header-footer.component.html',\r\n styleUrls: ['./signup-with-header-footer.component.scss']\r\n})\r\nexport class SignupWithHeaderFooterComponent implements OnInit {\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) { }\r\n\r\n // On Signup link click\r\n onSignIn() {\r\n this.router.navigate(['signin-with-header-footer'], { relativeTo: this.route.parent });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n\t\r\n\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
Sign Up \r\n\t\t\t\t\t\t\t\t\t\t
Already have an account? Sign in here \r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
OR SIGN UP WITH EMAIL \r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t
\r\n\t\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-awarded-expression-of-intrest',\r\n templateUrl: './awarded-expression-of-intrest.component.html',\r\n styleUrls: ['./awarded-expression-of-intrest.component.scss']\r\n})\r\nexport class AwardedExpressionOfIntrestComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\t
Awarded Expressions of Interest(EOI)
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tAwarded Expressions of Interest(EOI) \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
No Awarded Expressions of Interest(EOI)
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-awarded-request-for-proposal',\r\n templateUrl: './awarded-request-for-proposal.component.html',\r\n styleUrls: ['./awarded-request-for-proposal.component.scss']\r\n})\r\nexport class AwardedRequestForProposalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
awarded-request-for-proposal works!
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-awarded-request-for-quatation',\r\n templateUrl: './awarded-request-for-quatation.component.html',\r\n styleUrls: ['./awarded-request-for-quatation.component.scss']\r\n})\r\nexport class AwardedRequestForQuatationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\t
Awarded Request for quotation
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tAwarded for quotation \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
No Awarded request for quotation
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-content-layout',\r\n templateUrl: './content-layout.component.html',\r\n styleUrls: ['./content-layout.component.scss']\r\n})\r\n\r\nexport class ContentLayoutComponent {\r\n\r\n}","
","import { Component, OnInit } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { SidebarService } from '../../shared/sidebar/sidebar.service'\r\n\r\n@Component({\r\n selector: 'app-full-layout',\r\n templateUrl: './full-layout.component.html',\r\n styleUrls: ['./full-layout.component.scss']\r\n})\r\n\r\nexport class FullLayoutComponent implements OnInit {\r\n\r\n constructor(public sidebarservice: SidebarService,\r\n private router: Router) { }\r\n \r\n toggleSidebar() {\r\n this.sidebarservice.setSidebarState(!this.sidebarservice.getSidebarState());\r\n }\r\n \r\n getSideBarState() {\r\n return this.sidebarservice.getSidebarState();\r\n }\r\n\r\n hideSidebar() {\r\n this.sidebarservice.setSidebarState(true);\r\n }\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe((evt) => {\r\n if (!(evt instanceof NavigationEnd)) {\r\n return;\r\n }\r\n window.scrollTo(0, 0)\r\n });\r\n }\r\n\r\n}","
\r\n\t
\r\n\t
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n \r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t
\r\n
\r\n\r\n","import { Managers } from './managers.model';\r\nimport { Directors } from './directors.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\nimport { GeneralInformation } from './general-information.model';\r\nimport { Branches } from './branches.model';\r\nimport { Bank } from './bank.model';\r\nimport { Client } from './client.model';\r\nimport { Litigation } from './litigation.model';\r\nimport { UploadedDocument } from './uploaded-document.model';\r\nimport { Documents } from './documents.model';\r\nimport { Standard } from './standard.model';\r\nimport { ShareHolder } from './share-holder.model';\r\nimport { Category } from './category.model';\r\n\r\n\r\nconst api_url = config.apiUrl;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NewApplicationService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n //Bussiness General Information\r\n createGeneralformation(generalInformationBody): Observable
{\r\n\r\n return this.httpClient.post(api_url+'/Profile', generalInformationBody);\r\n\r\n }\r\n getGeneralInformation(applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/Profile/GetProfileById/'+applicationNo);\r\n\r\n }\r\n // Bussiness Directors\r\n createDirector(directorDetailsBody): Observable{\r\n return this.httpClient.post(api_url+'/SupplierDirector', directorDetailsBody);\r\n\r\n }\r\n\r\n getAllDirectors(applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierDirector/'+applicationNo);\r\n }\r\n\r\n updateDirector(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierDirector/'+ lineNo +'/'+applicationNo);\r\n }\r\n deleteDirector(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierDirector/Delete/'+ lineNo +'/'+applicationNo);\r\n }\r\n getNationality(): Observable{\r\n return this.httpClient.get(api_url+'/HelperFunctions/GetNationalities');\r\n }\r\n // Category\r\n createCategories(categoryBody): Observable{\r\n return this.httpClient.post(api_url+'/SupplierCategory', categoryBody);\r\n }\r\n getSupplierCategory(): Observable{\r\n return this.httpClient.get(api_url+'/HelperFunctions/GetSupplierCategories');\r\n }\r\n getSupplierBusinessType(): Observable{\r\n return this.httpClient.get(api_url+'/HelperFunctions/GetBusinessTypes');\r\n }\r\n getSuppliersByApplicationNo(applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierCategory/'+ applicationNo);\r\n }\r\n updateCategory(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierCategory/'+ lineNo +'/'+applicationNo);\r\n }\r\n deleteCategory(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierCategory/Delete/'+ lineNo +'/'+applicationNo);\r\n }\r\n // Bussiness client details\r\n createClientDetails(clientDetailsBody): Observable{\r\n return this.httpClient.post(api_url+'/Client', clientDetailsBody);\r\n }\r\n getAllClients(applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/Client/'+applicationNo);\r\n }\r\n\r\n updateClient(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/Client/'+ lineNo +'/'+applicationNo);\r\n }\r\n deleteClient(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/Client/Delete/'+ lineNo +'/'+applicationNo);\r\n }\r\n //Document Apis\r\n uploadDocument(fileUploadInfo): Observable{\r\n\r\n return this.httpClient.post(api_url+ '/FileManager', fileUploadInfo);\r\n\r\n }\r\n uploadSupplierDocument(suplierFileUploadInfo): Observable{\r\n\r\n return this.httpClient.post(api_url+ '/FileManager', suplierFileUploadInfo);\r\n\r\n }\r\n getDocumentTypes(): Observable{\r\n\r\n return this.httpClient.get(api_url+'/FileManager/GetDocumentTypes');\r\n\r\n }\r\n getUploadedDocuments(companyNo,documentNo): Observable{\r\n\r\n return this.httpClient.get(api_url+'/FileManager/GetUploadedDocuments/'+companyNo +'/'+documentNo);\r\n\r\n }\r\n deleteDocument(lineNo,documentNo): Observable{\r\n\r\n return this.httpClient.get(api_url+'/FileManager/Delete/'+lineNo+'/'+documentNo);\r\n\r\n }\r\n\r\n //Litigation details\r\n uploadLitigationDocument(litigationFile): Observable{\r\n\r\n return this.httpClient.post(api_url+ '/FileManager', litigationFile);\r\n\r\n }\r\n\r\n createLitigationHistory(litigationBody): Observable{\r\n return this.httpClient.post(api_url+'/SupplierLitigationHistory', litigationBody);\r\n }\r\n getAllLitigationHistory(applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierLitigationHistory/'+applicationNo);\r\n }\r\n updateLiticationHistory(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierLitigationHistory/'+ lineNo +'/'+applicationNo);\r\n }\r\n deleteLitigationHistory(lineNo,applicationNo): Observable{\r\n return this.httpClient.get(api_url+'/SupplierLitigationHistory/Delete/'+ lineNo +'/'+applicationNo);\r\n }\r\n\r\n getLitigationDocumentTypes(): Observable{\r\n\r\n return this.httpClient.get(api_url+'/SupplierLitigationHistory/GetLitigationDocumentTypes');\r\n\r\n }\r\n submitApplication(applicationBoy): Observable{\r\n return this.httpClient.post(api_url+'/SubmitApplication', applicationBoy);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-open-awarded-restricted-tender',\r\n templateUrl: './open-awarded-restricted-tender.component.html',\r\n styleUrls: ['./open-awarded-restricted-tender.component.scss']\r\n})\r\nexport class OpenAwardedRestrictedTenderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","open-awarded-restricted-tender works!
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { Subject } from 'rxjs';\r\nimport { OpenAwardedTender } from './open-awarded-tender.model';\r\nimport { OpenAwardedTenderService } from './open-awarded-tender.service';\r\n\r\n@Component({\r\n selector: 'app-open-awarded-tender',\r\n templateUrl: './open-awarded-tender.component.html',\r\n styleUrls: ['./open-awarded-tender.component.scss']\r\n})\r\nexport class OpenAwardedTenderComponent implements OnInit, OnDestroy {\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n};\r\ndtTrigger: Subject = new Subject();\r\n\r\n openTenderList: OpenAwardedTender;\r\n companyNo: string;\r\n constructor(private openAwardedTenderService: OpenAwardedTenderService, public authService: AuthService) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.openAwardedTenderService.getOpenAwardedTender(this.companyNo).subscribe(data => {\r\n this.openTenderList = data;\r\n this.dtTrigger.next();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n
Awarded Tenders
\r\n
\r\n
\r\n \r\n \r\n \r\n Awarded Tenders \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Tender No \r\n Proc Method \r\n Submission Method \r\n Tender Fee \r\n Publish Date \r\n Closing date \r\n Opening venue \r\n Addendum \r\n Status \r\n View \r\n \r\n \r\n \r\n \r\n {{openTender.no}} \r\n {{openTender.procurementMethod}} \r\n {{openTender.category}} \r\n {{openTender.tenderFee}} \r\n {{openTender.publishedDate}} \r\n {{openTender.closeDate}} \r\n {{openTender.openingVenue}} \r\n {{openTender.addendum}} \r\n {{openTender.tenderStatus}} \r\n \r\n Attachment \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { OpenAwardedTender } from '@app/open-awarded-tender/open-awarded-tender.model';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OpenAwardedTenderService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getOpenAwardedTender(companyNo): Observable{\r\n return this.httpClient.get(api_url +'/Tenders/GetAwardedTenders/'+companyNo)\r\n\r\n }\r\n}\r\n","import { OpenAwardedRestrictedTenderModule } from './../open-awarded-restricted-tender/open-awarded-restricted-tender.module';\r\nimport { OpenSubmittedRestrictedTenderService } from './open-submitted-restricted-tender.service';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { OpenSubmittedRestrictedTender } from './OpenSubmittedRestrictedTender';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-open-submitted-restricted-tender',\r\n templateUrl: './open-submitted-restricted-tender.component.html',\r\n styleUrls: ['./open-submitted-restricted-tender.component.scss']\r\n})\r\nexport class OpenSubmittedRestrictedTenderComponent implements OnInit,OnDestroy{\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n};;\r\n dtTrigger: Subject = new Subject();\r\n\r\n restrictedTEnderList: OpenSubmittedRestrictedTender;\r\n companyNo: string;\r\n constructor(private openRestrictedServices: OpenSubmittedRestrictedTenderService,\r\n public authService: AuthService) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.openRestrictedServices.getOpenSubmittedRestricrtedTender(this.companyNo).subscribe(data => {\r\n this.restrictedTEnderList = data;\r\n this.dtTrigger.next();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n}\r\n"," \r\n \r\n
Submitted Restricted Tenders
\r\n
\r\n
\r\n \r\n \r\n \r\n Submitted Restricted Tenders \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Tender No \r\n Proc Method \r\n Submisssion Method \r\n Tender Fee \r\n Publish Date \r\n Closing date \r\n Opening venue \r\n PE \r\n Addendum \r\n Status \r\n \r\n \r\n \r\n \r\n {{submittedTender.no}} \r\n {{submittedTender.procurementMethod}} \r\n {{submittedTender.category}} \r\n {{submittedTender.tenderFee}} \r\n {{submittedTender.publishedDate}} \r\n {{submittedTender.closeDate}} \r\n {{submittedTender.openingVenue}} \r\n {{submittedTender.procumentExecutive}} \r\n {{submittedTender.addendum}} \r\n {{submittedTender.tenderStatus}} \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { OpenSubmittedRestrictedTender } from './OpenSubmittedRestrictedTender';\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OpenSubmittedRestrictedTenderService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n getOpenSubmittedRestricrtedTender(companyNo): Observable{\r\n return this.httpClient.get(api_url +'/Tenders/GetSubmittedTenders/'+companyNo)\r\n\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { Subject } from 'rxjs';\r\nimport { OpenSubmittedTender } from './open-submitted-tender.model';\r\nimport { OpenSubmittedTenderService } from './open-submitted-tender.service';\r\n\r\n@Component({\r\n selector: 'app-open-submitted-tender',\r\n templateUrl: './open-submitted-tender.component.html',\r\n styleUrls: ['./open-submitted-tender.component.scss']\r\n})\r\nexport class OpenSubmittedTenderComponent implements OnInit, OnDestroy {\r\n companyNo: string;\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n};\r\n\r\ndtTrigger: Subject = new Subject();\r\n\r\n\r\n submittedList: OpenSubmittedTender;\r\n constructor(private activeSubmittedTenderService: OpenSubmittedTenderService, public authService: AuthService,) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeSubmittedTenderService.getSubmittedTender(this.companyNo).subscribe(data => {\r\n this.submittedList = data;\r\n this.dtTrigger.next();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n\r\n}\r\n","\r\n\r\n\t
Open Submitted Tenders
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tSubmitted Tenders \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Tender No \r\n Proc Method \r\n Submission Method \r\n Tender Fee \r\n Publish Date \r\n Closing date \r\n Opening venue \r\n Addendum \r\n View \r\n \r\n \r\n \r\n \r\n {{submittedTender.no}} \r\n {{submittedTender.procurementMethod}} \r\n {{submittedTender.category}} \r\n {{submittedTender.tenderFee}} \r\n {{submittedTender.publishedDate}} \r\n {{submittedTender.closeDate}} \r\n {{submittedTender.openingVenue}} \r\n {{submittedTender.addendum}} \r\n \r\n Attachment \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\nimport { OpenSubmittedTender } from './open-submitted-tender.model';\r\n\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OpenSubmittedTenderService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n getSubmittedTender(companyNo): Observable{\r\n return this.httpClient.get(api_url +'/Tenders/GetSubmittedTenders/'+ companyNo)\r\n\r\n }\r\n}\r\n","import { AuthService } from './../auth/services/auth.service';\r\nimport { RestrictedTenders } from './restricted-tenders.model';\r\nimport { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { RestrictedTendersService } from './restricted-tenders.service';\r\nimport { Subject } from 'rxjs/internal/Subject';\r\nimport { ModalDismissReasons, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-restricted-tenders',\r\n templateUrl: './restricted-tenders.component.html',\r\n styleUrls: ['./restricted-tenders.component.scss']\r\n})\r\nexport class RestrictedTendersComponent implements OnInit, OnDestroy {\r\n\r\n restrictedTenderLists: RestrictedTenders;\r\n restrictedTenderRowList: RestrictedTenders;\r\n closeModal: string;\r\n tenderNo: string;\r\n companyNo: string;\r\n\r\n\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n};\r\n dtTrigger: Subject = new Subject();\r\n\r\n\r\n constructor(public restrictedTenders: RestrictedTendersService,\r\n private modalService: NgbModal,\r\n private authService: AuthService\r\n ) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string)\r\n }\r\n\r\n triggerModal(content, tenderNo) {\r\n this.tenderNo = tenderNo;\r\n this.getRestrictedTenderByTenderNo$();\r\n this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'}).result.then((res) => {\r\n this.closeModal = `Closed with: ${res}`;\r\n }, (res) => {\r\n this.closeModal = `Dismissed ${this.getDismissReason(res)}`;\r\n });\r\n }\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return 'by pressing ESC';\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return 'by clicking on a backdrop';\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.restrictedTenders.getOpenRestictedTender(this.companyNo).subscribe(data=>{\r\n this.restrictedTenderLists = data;\r\n this.dtTrigger.next();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n getRestrictedTenderByTenderNo$(){\r\n this.restrictedTenders.getRestrictedTenderByTenderNo(this.tenderNo).subscribe(data=>{\r\n this.restrictedTenderRowList = data;\r\n })\r\n }\r\n\r\n\r\n}\r\n"," \r\n\r\n\t
Restricted Tenders
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tActive Restricted Tenders \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Tender No \r\n Name \r\n \r\n Submisssion Method \r\n Tender Fee \r\n \r\n Closing date \r\n \r\n PE \r\n Addendum \r\n View \r\n Attachment \r\n Action \r\n \r\n \r\n \r\n \r\n {{tender.no}} \r\n {{tender.description}} \r\n \r\n {{tender.category}} \r\n {{tender.tenderFee}} \r\n \r\n {{tender.closeDate}} \r\n \r\n {{tender.procumentExecutive}} \r\n {{tender.addendum}} \r\n \r\n View \r\n \r\n \r\n Attachment \r\n \r\n \r\n Apply \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n Tender No: \r\n {{restrictedTenderRowList?.no}} \r\n \r\n \r\n Proc Method: \r\n {{restrictedTenderRowList?.procurementMethod}} \r\n \r\n \r\n Category: \r\n {{restrictedTenderRowList?.category}} \r\n \r\n \r\n Tender Fee: \r\n {{restrictedTenderRowList?.tenderFee}} \r\n \r\n \r\n publis Date: \r\n {{restrictedTenderRowList?.publishedDate}} \r\n \r\n \r\n Closed Date: \r\n {{restrictedTenderRowList?.closeDate}} \r\n \r\n \r\n Proc executive: \r\n {{restrictedTenderRowList?.procumentExecutive}} \r\n \r\n \r\n Addedum: \r\n {{restrictedTenderRowList?.addendum}} \r\n \r\n \r\n Tender Venue: \r\n {{restrictedTenderRowList?.openingVenue}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Standard } from '@app/new-application/standard.model';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\nimport { Files } from './files';\r\nimport { RestrictedTenders } from './restricted-tenders.model';\r\nimport { UploadedDocument } from './uploaded-document.model';\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RestrictedTendersService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n createNewTender(restrictedTenderBody): Observable{\r\n\r\n return this.httpClient.post(api_url+'/TenderApplication', restrictedTenderBody);\r\n\r\n }\r\n\r\n getOpenRestictedTender(companyNo): Observable{\r\n return this.httpClient.get(api_url +'/Tenders/GetRestrictedTenders/' + companyNo)\r\n\r\n }\r\n getRestrictedTenderByTenderNo(tenderNo): Observable{\r\n return this.httpClient.get(api_url +'/Tenders/GetRestrictedTenderById/'+tenderNo)\r\n }\r\n getOpenRestrictedTenderDocument(): Observable{\r\n return this.httpClient.get(api_url+'/TenderApplication/GetDocumentTypes');\r\n }\r\n\r\n uploadOpenRestrictedTenderDocument(fileUploadInfo): Observable{\r\n return this.httpClient.post(api_url+'/TenderApplication/UploadTenderDocument', fileUploadInfo);\r\n }\r\n getUploadedTenderDocument(applicationNo): Observable{\r\n return this.httpClient.get(api_url +'/FileManager/GetUploadedDocuments/'+applicationNo)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CacheService {\r\n\r\n prunables: Prunable[] = [];\r\n\r\n registerPrunable(prunable: Prunable) {\r\n this.prunables.push(prunable);\r\n }\r\n\r\n pruneAll() {\r\n this.prunables.forEach(p => p.pruneCache());\r\n }\r\n\r\n}\r\n\r\nexport interface Prunable {\r\n pruneCache(): void;\r\n}\r\n","interface Config {\r\n [key: string]: string;\r\n auth: 'session' | 'token';\r\n}\r\n\r\n// Session auth needs to use the same origin anyway\r\nexport const config: Config = {\r\n // apiUrl:'http://api1.tenders.pu.ac.ke/api',\r\n apiUrl:'http://eprocurementapi.tenders.pu.ac.ke/api',\r\n // apiUrl:' http://microservices.sysre.co.ke:4046/api',\r\n auth: 'token'\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { config } from './config';\r\n//import { AlertService } from './alert/alert.service';\r\n\r\n@Injectable()\r\nexport class HttpErrorInterceptor implements HttpInterceptor {\r\n\r\n constructor(\r\n //public alertService: AlertService\r\n ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (!this.isErrorMessageSuppressed(error)) {\r\n this.showErrorMessage(error);\r\n }\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n private isErrorMessageSuppressed (error: HttpErrorResponse) {\r\n return this.isQueryForLoggedUser(error);\r\n // this.isOtpRequired(error);\r\n }\r\n\r\n // when Node backend is not running, then logged user query fails; let's not show the error\r\n private isQueryForLoggedUser(error: HttpErrorResponse) {\r\n return error.url.endsWith(`${config.authApiUrl}/PersonalInformation`);\r\n }\r\n\r\n // private isOtpRequired(error: HttpErrorResponse) {\r\n // return error.error.msg === 'OTP_REQUIRED';\r\n // }\r\n\r\n private showErrorMessage(error: HttpErrorResponse) {\r\n // this.snackBar.openFromComponent(SnackBarComponent, {\r\n // duration: 3000,\r\n // });\r\n let data = error.error ?? 'Unknown error'\r\n\r\n //this.alertService.error(data)\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\n\r\nexport class FooterComponent implements OnInit{\r\n\r\n ngOnInit() {\r\n /* Back To Top */\r\n\r\n $(document).ready(function(){ \r\n $(window).on(\"scroll\", function(){ \r\n if ($(this).scrollTop() > 300) { \r\n $('.back-to-top').fadeIn(); \r\n } else { \r\n $('.back-to-top').fadeOut(); \r\n } \r\n }); \r\n\r\n $('.back-to-top').on(\"click\", function(){ \r\n $(\"html, body\").animate({ scrollTop: 0 }, 600); \r\n return false; \r\n }); \r\n });\t \r\n \r\n }\r\n\t\r\n \r\n}\r\n","\r\n\t \r\n\r\n\r\n\r\n\r\n","import { Component , OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { SidebarService } from '../sidebar/sidebar.service';\r\nimport { Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-navbar',\r\n templateUrl: './navbar.component.html',\r\n styleUrls: ['./navbar.component.scss']\r\n})\r\n\r\nexport class NavbarComponent implements OnInit{\r\n public companyEmail$: Observable;\r\n public companyName$: Observable;\r\n\r\n constructor(\r\n public sidebarservice: SidebarService,\r\n public authService: AuthService,\r\n private router: Router\r\n ) {\r\n this.companyEmail$ = this.authService.getUsername$();\r\n this.companyName$ = this.authService.getFirstName$();\r\n }\r\n\r\n toggleSidebar() {\r\n this.sidebarservice.setSidebarState(!this.sidebarservice.getSidebarState());\r\n }\r\n\r\n getSideBarState() {\r\n return this.sidebarservice.getSidebarState();\r\n }\r\n\r\n hideSidebar() {\r\n this.sidebarservice.setSidebarState(true);\r\n }\r\n logout() {\r\n this.authService.logout()\r\n .subscribe(() => {\r\n this.router.navigate([this.authService.LOGIN_PATH]);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n /* Search Bar */\r\n $(document).ready(function () {\r\n $(\".mobile-search-icon\").on(\"click\", function () {\r\n $(\".search-bar\").addClass(\"full-search-bar\")\r\n }),\r\n $(\".search-close\").on(\"click\", function () {\r\n $(\".search-bar\").removeClass(\"full-search-bar\")\r\n })\r\n });\r\n\r\n }\r\n}\r\n","\r\n\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t \r\n\t
\r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\r\nimport { CacheService } from './cache.service';\r\nimport { FooterComponent } from \"./footer/footer.component\";\r\nimport { NavbarComponent } from \"./navbar/navbar.component\";\r\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\r\n//import { AlertComponent } from './alert/alert.component';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { HttpErrorInterceptor } from './error.interceptor';\r\nimport { ForRolesDirective } from '@app/auth/directives/for-roles.directive';\r\nimport { AuthModule } from '@app/auth/auth.module';\r\n// import { SectorsComponent } from './sectors/sectors.component';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule,\r\n CommonModule,\r\n AuthModule,\r\n NgbModule,\r\n PerfectScrollbarModule\r\n ],\r\n exports: [\r\n CommonModule,\r\n ForRolesDirective,\r\n FooterComponent,\r\n NavbarComponent,\r\n SidebarComponent,\r\n NgbModule,\r\n // AlertComponent\r\n ],\r\n declarations: [\r\n FooterComponent,\r\n NavbarComponent,\r\n SidebarComponent,\r\n // AlertComponent\r\n ],\r\n providers: [\r\n CacheService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpErrorInterceptor,\r\n multi: true\r\n }\r\n ],\r\n})\r\nexport class SharedModule { }\r\n","import { RouteInfo } from './sidebar.metadata';\r\n\r\n//Sidebar menu Routes and data\r\nexport const ACTIVE_USER_ROUTES: RouteInfo[] = [\r\n\r\n {\r\n path: '/dashboard/member-dashboard', title: 'HOME', icon: 'lni lni-dashboard', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [\r\n ]\r\n },\r\n {\r\n path: '', title: 'MEMBERSHIP', icon: 'bx bx-user-circle', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/profile', title: 'My Profile', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/member-list', title: 'All Members', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/products', title: 'Products/Services', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/map-view', title: 'Members MapView', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/issue-handling', title: 'HelpDesk', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/member-withdrawal', title: 'Withdrawals', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'KAM CONSULTING', icon: 'lni lni-consulting', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/events', title: 'Events', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/events/trainings', title: 'Trainings', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/events/seminars', title: 'Seminars', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/events/workshops', title: 'Workshops', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/technical-assesments', title: 'Technical Assesments', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'PRAU SERVICES', icon: 'lni lni-service', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: 'javascript:;', title: 'PRAU-TAXATION', icon: 'bx bx-right-arrow-alt', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n\r\n { path: '/budget-proposals', title: 'Budget Proposals', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/drs-applications', title: 'DRS Application', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/fact-based-policy-research', title: 'Fact Based Policy Research', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n { path: 'javascript:;', title: 'PRAU-TRADE', icon: 'bx bx-right-arrow-alt', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n\r\n { path: '/agoa-visas', title: 'Agoa Visas', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/declaration-fees', title: 'Import Declaration Fee/Railway Development Levy', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/illicit-trade', title: 'Illicit Trade', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/industrial-spares', title: 'Industrial Spares', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/lmg', title: 'LMG', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/non-tariff-barriers', title: 'Non Tariff Barriers', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/trade-regimes', title: 'Trade Regimes', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/work-permits', title: 'Work Permits', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/dependant-passes', title: 'Dependant Passes', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/special-passes', title: 'Special Passes', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n { path: 'javascript:;', title: 'PRAU-LEGAL', icon: 'bx bx-right-arrow-alt', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n\r\n { path: '/case', title: 'Cases', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/bills', title: 'Bills', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/regulations-audit-tracker', title: 'Regulatory Audit Tracker', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/gazette-notice', title: 'Gazette Notice', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n\r\n {\r\n path: '', title: 'Application', icon: 'bx bx-category', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/application/email-app', title: 'Email', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/application/chat-box', title: 'Chat Box', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/application/file-manager', title: 'File Manager', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/application/contatcs', title: 'Contatcs', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/application/invoice', title: 'Invoice', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/application/calendar', title: 'Calendar', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n { path: '/widgets', title: 'Widgets', icon: 'bx bx-cookie', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: []},\r\n {\r\n path: '', title: 'eCommerce', icon: 'bx bx-cart', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/ecommerce/products', title: 'Products', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/ecommerce/products-details', title: 'Products Details', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/ecommerce/add-new-products', title: 'Add New Products', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/ecommerce/orders', title: 'Orders', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Components', icon: 'bx bx-bookmark-heart', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/components/alerts', title: 'RegulationsAuditTracker', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/badge', title: 'Badge', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/buttons', title: 'Buttons', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/cards', title: 'Cards', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/carousel', title: 'Carousel', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/acordians', title: 'Accordion', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/list-groups', title: 'List Groups', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/media-objects', title: 'Media Objects', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/modals', title: 'Modals', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/navs', title: 'Navs', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/navbar', title: 'Navbar', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/pagination', title: 'Pagination', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/progress-bar', title: 'Progress Bars', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/spinners', title: 'Spinners', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/components/avtars-chips', title: 'Avatrs & Chips', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Content', icon: 'bx bx-repeat', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/content/grid-system', title: 'Grid System', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/content/typography', title: 'Typography', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/content/text-utilities', title: 'Text Utilities', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Icons', icon: 'bx bx-donate-blood', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/icons/line-icons', title: 'Line Icons', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/icons/boxicons', title: 'Boxicons', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Form', icon: 'bx bx-message-square-edit', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/form/form-elements', title: 'Form Elements', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/input-groups', title: 'Input Groups', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/form-layouts', title: 'Forms Layouts', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/form-validation', title: 'Form Validation', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/form-wizard', title: 'Form Wizard', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/text-editor', title: 'Text Editor', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/file-upload', title: 'File Upload', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/form/select2', title: 'Select2', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '/table/table', title: 'Table', icon: 'bx bx-grid-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: []\r\n },\r\n {\r\n path: '', title: 'Authentication', icon: 'bx bx-lock', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n\r\n { path: '/auth/sign-in', title: 'Sign In', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/sign-up', title: 'Sign Up', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/signin-with-header-footer', title: 'SignIn With Header Footer', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/signup-with-header-footer', title: 'SignUp With Header Footer', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/forgot-password', title: 'Forgot Password', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/reset-password', title: 'Reset Password', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/auth/lock-screen', title: 'Lock Screen', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n\r\n ]\r\n },\r\n { path: '/user-profile', title: 'User Profile', icon: 'bx bx-user-circle', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: []},\r\n { path: '/timeline', title: 'Timeline', icon: 'bx bx-video-recording', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: []},\r\n {\r\n path: '', title: 'Errors', icon: 'bx bx-error', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/kam-angular/demo/vertical/error/error-404', title: '404 Error', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/kam-angular/demo/vertical/error/error-500', title: '500 Error', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: '/kam-angular/demo/vertical/error/coming-soon', title: 'Coming Soon', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n ]\r\n },\r\n { path: '/faq', title: 'FAQ', icon: 'bx bx-help-circle', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/pricing', title: 'Pricing', icon: 'bx bx-diamond', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/earnings', title: 'Earnings', icon: 'bx bx-dollar-circle', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/downloads', title: 'Downloads', icon: 'bx bx-download', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n {\r\n path: '', title: 'Charts', icon: 'bx bx-line-chart', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/charts/apex-chart', title: 'Apex Charts', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/charts/chartjs', title: 'ChartJs', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/charts/highcharts', title: 'Highcharts', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Maps', icon: 'bx bx-map-alt', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/maps/google-maps', title: 'Google Maps', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/maps/fullscreen', title: 'Fullscreen Map', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: 'javascript:;', title: 'Menu Levels', icon: 'bx bx-menu', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: 'javascript:;', title: 'Level 1', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: 'javascript:;', title: 'Level 1', icon: 'bx bx-right-arrow-alt', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: 'javascript:;', title: 'level 2', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: 'javascript:;', title: 'level 2', icon: 'bx bx-right-arrow-alt', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n\r\n ] },\r\n ]\r\n },\r\n { path: 'https://codervent.com/kam-angular/demo/vertical/docs/', title: 'Documentation', icon: 'bx bx-folder', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] },\r\n { path: 'https://themeforest.net/user/codewrrap/portfolio', title: 'Support', icon: 'bx bx-support', class: '', badge: '', badgeClass: '', isExternalLink: true, submenu: [] }\r\n\r\n\r\n];\r\nexport const OPEN_USER_ROUTES: RouteInfo[] = [\r\n\r\n // {\r\n // path: '/dashboard', title: 'Dashboard', icon: 'bx bx-home', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [\r\n // ]\r\n // },\r\n\r\n\r\n // { path: '/my-profile', title: 'User Profile', icon: 'bx bx-user-circle', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: []},\r\n // { path: '/newApplication', title: 'Business Profile', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n\r\n {\r\n path: '', title: 'Prequalification', icon: 'lni lni-layout', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/prequalification', title: 'Active Applications ', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/approvedApplication', title: 'Approved Applications', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/rejectedApplication', title: 'Rejected Applications', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: '/newApplication', title: 'Business Profile', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: '/application', title: 'Applications', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: '/awardedRequestForQuotation', title: 'Awarded Request For Quotation', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n // {\r\n // path: '', title: 'Tenders', icon: 'lni lni-wallet', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: [\r\n // { path: '', title: 'Open Tenders', icon: 'bx bx-plus', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: [\r\n // {\r\n // path: '/openTender', title: 'Active Tenders', icon: 'lni lni-layers', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // {\r\n // path: '/openSubmittedTender', title: 'Submitted Tenders', icon: 'lni lni-checkmark-circle', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // {\r\n // path: '/openAwardedTender', title: 'Awarded Tenders', icon: 'lni lni-checkmark', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // ] },\r\n // { path: '', title: 'Restrict Tenders', icon: 'bx bx-plus', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: [\r\n // {\r\n // path: '/restrictedTender', title: 'Active Restrict Tenders', icon: 'lni lni-layers', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // {\r\n // path: '/openSubmittedRestrictedTender', title: 'Submitted Restrict Tenders', icon: 'lni lni-checkmark-circle', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // {\r\n // path: '/openSubmittedAwardedTender', title: 'Awarded Restrict Tenders', icon: 'lni lni-checkmark', class: '', badge: '', badgeClass: '', isExternalLink: false,\r\n // submenu: []\r\n // },\r\n // ] },\r\n // { path: '/closedTender', title: 'Closed Tender', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // ]\r\n // },\r\n {\r\n path: '', title: 'Tenders', icon: 'lni lni-write', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/openTender', title: 'Active Tenders', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/openSubmittedTender', title: 'Submitted Tenders', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/openAwardedTender', title: 'Awarded Tenders', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/closedTender', title: 'Closed Tender', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n {\r\n path: '', title: 'Request for Quotation', icon: 'lni lni-write', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/activeRequestForQuotation', title: 'Active RFQs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/submittedRequestForQuotation', title: 'Submitted RFQs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: '/awardedRequestForQuotation', title: 'Awarded Request For Quotation', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n\r\n\r\n {\r\n path: '', title: 'Request for Proposal', icon: 'lni lni-telegram-original', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: '/activeReqestForProposal', title: 'Active RFPs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: '/submittedReqestForProposal', title: 'Closed RFPs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: '/awardedrequestForProposal', title: 'Awarded Request for Proposal', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n\r\n\r\n {\r\n path: '', title: 'Expression of Interest', icon: 'lni lni-hand', class: 'sub', badge: '', badgeClass: '', isExternalLink: false,\r\n submenu: [\r\n { path: 'activeExpressionOfIntrest', title: 'Active EOIs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n { path: 'submittedExpressionOfIntrest', title: 'Closed EOIs', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n // { path: 'awardedExpressionOfIntrest', title: 'Awarded Expresion of Intrest', icon: 'bx bx-play', class: '', badge: '', badgeClass: '', isExternalLink: false, submenu: [] },\r\n ]\r\n },\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ACTIVE_USER_ROUTES, OPEN_USER_ROUTES } from './sidebar-routes.config';\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationError } from '@angular/router';\r\nimport { SidebarService } from \"./sidebar.service\";\r\n\r\nimport * as $ from 'jquery';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n})\r\n\r\nexport class SidebarComponent implements OnInit {\r\n\r\n public menuItems: any[];\r\n\r\n\r\n constructor(\r\n public sidebarservice: SidebarService,\r\n private router: Router,\r\n private authService: AuthService\r\n ) {\r\n\r\n router.events.subscribe( (event: Event) => {\r\n\r\n if (event instanceof NavigationStart) {\r\n // Show loading indicator\r\n }\r\n\r\n if (event instanceof NavigationEnd && $(window).width() < 1025 && ( document.readyState == 'complete' || false ) ) {\r\n\r\n this.toggleSidebar();\r\n // Hide loading indicator\r\n\r\n }\r\n\r\n if (event instanceof NavigationError) {\r\n // Hide loading indicator\r\n\r\n // Present error to user\r\n console.log(event.error);\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n toggleSidebar() {\r\n this.sidebarservice.setSidebarState(!this.sidebarservice.getSidebarState());\r\n\r\n if ($(\".wrapper\").hasClass(\"nav-collapsed\")) {\r\n // unpin sidebar when hovered\r\n $(\".wrapper\").removeClass(\"nav-collapsed\");\r\n $(\".sidebar-wrapper\").unbind( \"hover\");\r\n } else {\r\n $(\".wrapper\").addClass(\"nav-collapsed\");\r\n $(\".sidebar-wrapper\").hover(\r\n function () {\r\n $(\".wrapper\").addClass(\"sidebar-hovered\");\r\n },\r\n function () {\r\n $(\".wrapper\").removeClass(\"sidebar-hovered\");\r\n }\r\n )\r\n\r\n }\r\n\r\n }\r\n\r\n getSideBarState() {\r\n return this.sidebarservice.getSidebarState();\r\n }\r\n\r\n hideSidebar() {\r\n this.sidebarservice.setSidebarState(true);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.authService.getUserRole$()\r\n .subscribe((role) => {\r\n if(role == 'ACTIVE'){\r\n this.menuItems = ACTIVE_USER_ROUTES.filter(menuItem => menuItem);\r\n }else{\r\n this.menuItems = OPEN_USER_ROUTES.filter(menuItem => menuItem);\r\n }\r\n });\r\n\r\n $.getScript('./assets/js/app-sidebar.js');\r\n\r\n }\r\n\r\n}\r\n"," \r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SidebarService {\r\n toggled = false;\r\n \r\n constructor() { }\r\n\r\n toggle() {\r\n this.toggled = ! this.toggled;\r\n }\r\n\r\n getSidebarState() {\r\n return this.toggled;\r\n }\r\n\r\n setSidebarState(state: boolean) {\r\n this.toggled = state;\r\n }\r\n}\r\n","import { EOI } from './../active-expression-of-intrest/eoi.model';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { SubmittedExpressionOfIntrestService } from './submitted-expression-of-intrest.service';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-submitted-expression-of-intrest',\r\n templateUrl: './submitted-expression-of-intrest.component.html',\r\n styleUrls: ['./submitted-expression-of-intrest.component.scss']\r\n})\r\nexport class SubmittedExpressionOfIntrestComponent implements OnInit {\r\n\r\n submittedEoiList: EOI;\r\n companyNo: string;\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n };\r\n dtTrigger: Subject = new Subject();\r\n\r\n constructor(public authService: AuthService, private eoiServices: SubmittedExpressionOfIntrestService) { \r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAllSubmittedEOIByCompanyNo()\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n\r\n getAllSubmittedEOIByCompanyNo(){\r\n this.eoiServices.getEoiByCompanyNo(this.companyNo).subscribe(data=>{\r\n this.submittedEoiList = data;\r\n this.dtTrigger.next();\r\n })\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\t
\r\n Submitted Expressions of Interest(EOI)
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t(EOI) \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n No \r\n Issue Date \r\n Closing Date \r\n Type \r\n Category \r\n Category Name \r\n Description \r\n Status \r\n \r\n \r\n \r\n \r\n {{submittedEOI.no}} \r\n {{submittedEOI.issueDate}} \r\n {{submittedEOI.closingDate}} \r\n {{submittedEOI.type}} \r\n {{submittedEOI.supplierCategory}} \r\n {{submittedEOI.categoryName}} \r\n {{submittedEOI.decription}} \r\n {{submittedEOI.status}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { EOI } from '@app/active-expression-of-intrest/eoi.model';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubmittedExpressionOfIntrestService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getEoiByCompanyNo(companyNo): Observable{\r\n return this.httpClient.get(api_url+ '/ExpressionOfInterest/GetSubmittedEOIs/'+ companyNo);\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { Subject } from 'rxjs';\r\nimport { SubmittedRequestForProposalService } from './submitted-request-for-proposal.service';\r\nimport { SubmittedRfqp } from './submitted-rfqp.model';\r\n\r\n@Component({\r\n selector: 'app-submitted-request-for-proposal',\r\n templateUrl: './submitted-request-for-proposal.component.html',\r\n styleUrls: ['./submitted-request-for-proposal.component.scss']\r\n})\r\nexport class SubmittedRequestForProposalComponent implements OnInit {\r\n\r\n\r\n submittedRfqpsList: SubmittedRfqp;\r\n companyNo: string;\r\n \r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n };\r\n dtTrigger: Subject = new Subject();\r\n\r\n\r\n constructor(public authService: AuthService, private rfpsServices: SubmittedRequestForProposalService) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAllRfpsByCompanyNo()\r\n } \r\n\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n\r\n\r\n getAllRfpsByCompanyNo(){\r\n this.rfpsServices.getRfpsByCompanyNo(this.companyNo).subscribe(data=>{\r\n this.submittedRfqpsList = data;\r\n this.dtTrigger.next();\r\n })\r\n }\r\n\r\n}\r\n","\r\n\t
Submitted Request for Proposal
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tSubmitted Request for Proposal \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n No \r\n Issue Date \r\n Closing Date \r\n Type \r\n Category \r\n Category Name \r\n Description \r\n Status \r\n \r\n \r\n \r\n \r\n {{submittedRfps.no}} \r\n {{submittedRfps.issueDate}} \r\n {{submittedRfps.closingDate}} \r\n {{submittedRfps.type}} \r\n {{submittedRfps.supplierCategory}} \r\n {{submittedRfps.categoryName}} \r\n {{submittedRfps.decription}} \r\n {{submittedRfps.status}} \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\nimport { SubmittedRfqp } from './submitted-rfqp.model';\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubmittedRequestForProposalService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n\r\n getRfpsByCompanyNo(companyNo): Observable{\r\n return this.httpClient.get(api_url+ '/RFPs/GetSubmittedRFPs/'+ companyNo);\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@app/auth/services/auth.service';\r\nimport { Subject } from 'rxjs';\r\nimport { SubmittedRequestForQuatationService } from './submitted-request-for-quatation.service';\r\nimport { SubmittedRfq } from './submitted-rfq.model';\r\n\r\n@Component({\r\n selector: 'app-submitted-request-for-quatation',\r\n templateUrl: './submitted-request-for-quatation.component.html',\r\n styleUrls: ['./submitted-request-for-quatation.component.scss']\r\n})\r\nexport class SubmittedRequestForQuatationComponent implements OnInit {\r\n\r\n dtOptions: DataTables.Settings = {\r\n pagingType: 'full_numbers',\r\n pageLength: 10\r\n };\r\n dtTrigger: Subject = new Subject();\r\n\r\n submittedRfqsList: SubmittedRfq;\r\n companyNo: string;\r\n\r\n constructor(private submittedRfqs: SubmittedRequestForQuatationService, public authService: AuthService,) {\r\n this.authService.getCompanyNo$().subscribe(string => this.companyNo = string);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.submittedRfqs.getSubmittedRfqs(this.companyNo).subscribe(data=>{\r\n this.submittedRfqsList = data;\r\n this.dtTrigger.next();\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.dtTrigger.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n\r\n\t
Submitted Request for Quotation (RFQ)
\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\tSubmitted for quotation \r\n\t\t\t \r\n\t\t \r\n\t
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n No \r\n Issue Date \r\n Closing Date \r\n Type \r\n Category \r\n Category Name \r\n Description \r\n Status \r\n \r\n \r\n \r\n \r\n {{submittedRfqs.no}} \r\n {{submittedRfqs.issueDate}} \r\n {{submittedRfqs.closingDate}} \r\n {{submittedRfqs.type}} \r\n {{submittedRfqs.supplierCategory}} \r\n {{submittedRfqs.categoryName}} \r\n {{submittedRfqs.decription}} \r\n {{submittedRfqs.status}} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { config } from '@app/shared/config';\r\nimport { Observable } from 'rxjs';\r\nimport { SubmittedRfq } from './submitted-rfq.model';\r\n\r\nconst api_url = config.apiUrl;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubmittedRequestForQuatationService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getSubmittedRfqs(companyNo): Observable{\r\n return this.httpClient.get(api_url+ '/RFQs/GetSubmittedRFQs/'+ companyNo);\r\n\r\n }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: true,\r\n apiUrl: ''\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}