{"version":3,"file":"main.js","mappings":"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,eAAe,CAAC,sDAAS,CAAC;KACzD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACbpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["en-US-POSIX.js","./src/app/Controls/MessageBoxResult.ts","./src/app/Controls/SurveyDialogResult.ts","./src/app/Controls/ctp-button/ctp-button.component.ts","./src/app/Controls/ctp-button/ctp-button.component.html","./src/app/Controls/ctp-dropdown-box/ctp-dropdown-box.component.ts","./src/app/Controls/ctp-dropdown-box/ctp-dropdown-box.component.html","./src/app/Controls/ctp-dropdown/ctp-dropdown.component.ts","./src/app/Controls/ctp-dropdown/ctp-dropdown.component.html","./src/app/Controls/ctp-text-dropdown/ctp-text-dropdown.component.ts","./src/app/Controls/ctp-text-dropdown/ctp-text-dropdown.component.html","./src/app/Controls/date-time/date-time.component.ts","./src/app/Controls/date-time/date-time.component.html","./src/app/Controls/prev-next/prev-next.component.ts","./src/app/Controls/prev-next/prev-next.component.html","./src/app/Controls/survey-dialog/survey-dialog.component.ts","./src/app/Controls/survey-dialog/survey-dialog.component.html","./src/app/Controls/yes-no-message-box/yes-no-message-box.component.ts","./src/app/Controls/yes-no-message-box/yes-no-message-box.component.html","./src/app/alert/alert.component.ts","./src/app/alert/alert.component.html","./src/app/alert/technical-support/technical-support.component.ts","./src/app/alert/technical-support/technical-support.component.html","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/autofocus/autofocus.directive.ts","./src/app/candidates-in-exam/candidates-in-exam.component.ts","./src/app/candidates-in-exam/candidates-in-exam.component.html","./src/app/chatnotification/chatnotification.component.ts","./src/app/chatnotification/chatnotification.component.html","./src/app/components/login/login-form/login-form.component.ts","./src/app/components/login/login-form/login-form.component.html","./src/app/components/login/login.component.ts","./src/app/components/login/login.component.html","./src/app/constants/AppConstants.ts","./src/app/exams-view/candidate-session/candidate-exam-complete/candidate-exam-complete.component.ts","./src/app/exams-view/candidate-session/candidate-exam-complete/candidate-exam-complete.component.html","./src/app/exams-view/candidate-session/candidate-session.component.ts","./src/app/exams-view/candidate-session/candidate-session.component.html","./src/app/exams-view/candidate-session/candidate-vm-restart-message/candidate-vm-restart-message.component.ts","./src/app/exams-view/candidate-session/candidate-vm-restart-message/candidate-vm-restart-message.component.html","./src/app/exams-view/candidate-session/candidate-vm/candidate-vm.component.ts","./src/app/exams-view/candidate-session/candidate-vm/candidate-vm.component.html","./src/app/exams-view/candidate-session/chat-box/chat-box.component.ts","./src/app/exams-view/candidate-session/chat-box/chat-box.component.html","./src/app/exams-view/candidate-session/session-info/session-info.component.ts","./src/app/exams-view/candidate-session/session-info/session-info.component.html","./src/app/exams-view/exams-view.component.ts","./src/app/exams-view/exams-view.component.html","./src/app/footer/footer.component.ts","./src/app/footer/footer.component.html","./src/app/guards/auth.guard.ts","./src/app/guards/start-exam.guard.ts","./src/app/header-body-separator/header-body-separator.component.ts","./src/app/header-body-separator/header-body-separator.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/injection-tokens/base-href.token.ts","./src/app/injection-tokens/base-url.token.ts","./src/app/interceptors/auth.interceptor.ts","./src/app/main-content/main-content.component.ts","./src/app/models/SystemErrorType.ts","./src/app/models/TimeZone.ts","./src/app/models/ValidationStatus.ts","./src/app/pages/exams-view-page/exams-view-page.component.ts","./src/app/pages/exams-view-page/exams-view-page.component.html","./src/app/pages/login-page/login-page.component.ts","./src/app/pages/login-page/login-page.component.html","./src/app/pages/session-management-page/session-management-page.component.ts","./src/app/pages/session-management-page/session-management-page.component.html","./src/app/pages/start-session-error/system-error.component.ts","./src/app/pages/start-session-error/system-error.component.html","./src/app/placeholder/placeholder.component.ts","./src/app/placeholder/placeholder.component.html","./src/app/services/SignalRHub.ts","./src/app/services/authentication.service.ts","./src/app/services/candidates-in-exam.service.ts","./src/app/services/configurations.service.ts","./src/app/services/date-time.service.ts","./src/app/services/email-validation.service.ts","./src/app/services/email.service.ts","./src/app/services/exam-session.service.ts","./src/app/services/exam.service.ts","./src/app/services/labmanager.service.ts","./src/app/services/language.service.ts","./src/app/services/session-info.service.ts","./src/app/services/signal-r.service.ts","./src/app/services/signal-rchat.service.ts","./src/app/services/spinner.service.ts","./src/app/services/time-zone-offset.service.ts","./src/app/services/timeout.service.ts","./src/app/services/translation.service.ts","./src/app/services/vm.service.ts","./src/app/services/window.service.ts","./src/app/session-management/dashboard/dashboard.component.ts","./src/app/session-management/dashboard/dashboard.component.html","./src/app/session-management/dashboard/helpfulresources/helpfulresources.component.ts","./src/app/session-management/dashboard/helpfulresources/helpfulresources.component.html","./src/app/session-management/dashboard/name-session/name-session.component.ts","./src/app/session-management/dashboard/name-session/name-session.component.html","./src/app/session-management/dashboard/session-table/session-table.component.ts","./src/app/session-management/dashboard/session-table/session-table.component.html","./src/app/session-management/session-details/session-details.component.ts","./src/app/session-management/session-details/session-details.component.html","./src/app/session-management/session-management.component.ts","./src/app/session-management/session-management.component.html","./src/app/spinner/spinner.component.ts","./src/app/spinner/spinner.component.html","./src/app/wizard/exam-date-time-and-region/date-selection/date-selection.component.ts","./src/app/wizard/exam-date-time-and-region/date-selection/date-selection.component.html","./src/app/wizard/exam-date-time-and-region/exam-date-time-and-region.component.ts","./src/app/wizard/exam-date-time-and-region/exam-date-time-and-region.component.html","./src/app/wizard/exam-date-time-and-region/time-selection/time-selection.component.ts","./src/app/wizard/exam-date-time-and-region/time-selection/time-selection.component.html","./src/app/wizard/exam-date-time-and-region/time-zone-selection/time-zone-selection.component.ts","./src/app/wizard/exam-date-time-and-region/time-zone-selection/time-zone-selection.component.html","./src/app/wizard/exam-input-basic-info/candidate-count/candidate-count.component.ts","./src/app/wizard/exam-input-basic-info/candidate-count/candidate-count.component.html","./src/app/wizard/exam-input-basic-info/exam-input-basic-info.component.ts","./src/app/wizard/exam-input-basic-info/exam-input-basic-info.component.html","./src/app/wizard/exam-input-basic-info/language-selection/language-selection.component.ts","./src/app/wizard/exam-input-basic-info/language-selection/language-selection.component.html","./src/app/wizard/exam-input-basic-info/test-center-selection/test-center-selection.component.ts","./src/app/wizard/exam-input-basic-info/test-center-selection/test-center-selection.component.html","./src/app/wizard/exam-selection/exam-search/exam-search.component.ts","./src/app/wizard/exam-selection/exam-search/exam-search.component.html","./src/app/wizard/exam-selection/exam-selection.component.ts","./src/app/wizard/exam-selection/exam-selection.component.html","./src/app/wizard/exam-selection/exam-table/exam-table.component.ts","./src/app/wizard/exam-selection/exam-table/exam-table.component.html","./src/app/wizard/exam-selection/language-filter/language-filter.component.ts","./src/app/wizard/exam-selection/language-filter/language-filter.component.html","./src/app/wizard/exam-selection/program-filter/program-filter.component.ts","./src/app/wizard/exam-selection/program-filter/program-filter.component.html","./src/app/wizard/session-confirmation/email-dialog/email-dialog.component.ts","./src/app/wizard/session-confirmation/email-dialog/email-dialog.component.html","./src/app/wizard/session-confirmation/session-confirmation.component.ts","./src/app/wizard/session-confirmation/session-confirmation.component.html","./src/app/wizard/wizard.component.ts","./src/app/wizard/wizard.component.html","./src/environments/environment.sandbox.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["\"use strict\";(function(global){global.ng=global.ng||{};global.ng.common=global.ng.common||{};global.ng.common.locales=global.ng.common.locales||{};const u=undefined;function plural(val){const n=val,i=Math.floor(Math.abs(val)),v=val.toString().replace(/^[^.]*\\.?/,\"\").length;if(i===1&&v===0)return 1;return 5}global.ng.common.locales[\"en-us-posix\"]=[\"en-US-POSIX\",[[\"a\",\"p\"],[\"AM\",\"PM\"],u],[[\"AM\",\"PM\"],u,u],[[\"S\",\"M\",\"T\",\"W\",\"T\",\"F\",\"S\"],[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],[\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"]],u,[[\"J\",\"F\",\"M\",\"A\",\"M\",\"J\",\"J\",\"A\",\"S\",\"O\",\"N\",\"D\"],[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]],u,[[\"B\",\"A\"],[\"BC\",\"AD\"],[\"Before Christ\",\"Anno Domini\"]],0,[6,0],[\"M/d/yy\",\"MMM d, y\",\"MMMM d, y\",\"EEEE, MMMM d, y\"],[\"h:mm a\",\"h:mm:ss a\",\"h:mm:ss a z\",\"h:mm:ss a zzzz\"],[\"{1}, {0}\",u,\"{1} 'at' {0}\",u],[\".\",\",\",\";\",\"%\",\"+\",\"-\",\"E\",\"\\xD7\",\"0/00\",\"INF\",\"NaN\",\":\"],[\"0.######\",\"0%\",\"\\xA4\\xA00.00\",\"0.000000E+000\"],\"USD\",\"$\",\"US Dollar\",{},\"ltr\",plural,[[[\"mi\",\"n\",\"in the morning\",\"in the afternoon\",\"in the evening\",\"at night\"],[\"midnight\",\"noon\",\"in the morning\",\"in the afternoon\",\"in the evening\",\"at night\"],u],[[\"midnight\",\"noon\",\"morning\",\"afternoon\",\"evening\",\"night\"],u,u],[\"00:00\",\"12:00\",[\"06:00\",\"12:00\"],[\"12:00\",\"18:00\"],[\"18:00\",\"21:00\"],[\"21:00\",\"06:00\"]]]]})(typeof globalThis!==\"undefined\"&&globalThis||typeof global!==\"undefined\"&&global||typeof window!==\"undefined\"&&window);","export enum MessageBoxResult {\r\n no = 0,\r\n yes = 1\r\n};\r\n","export enum SurveyDialogResult {\r\n EndSession = 0,\r\n TakeSurvey = 1\r\n}","import { EventEmitter, Input, Output } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ctp-button',\r\n templateUrl: './ctp-button.component.html',\r\n styleUrls: ['./ctp-button.component.scss']\r\n})\r\nexport class CtpButtonComponent implements OnInit {\r\n @Input() style = 'primary';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IListOption } from '../list-option';\r\n\r\n@Component({\r\n selector: 'ctp-dropdown-box',\r\n templateUrl: './ctp-dropdown-box.component.html',\r\n styleUrls: ['./ctp-dropdown-box.component.scss']\r\n})\r\nexport class CtpDropdownBoxComponent implements OnInit {\r\n @Input() options: IListOption[] = [];\r\n @Output() optionClick = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n handleOptionClicked(option: IListOption): void {\r\n this.optionClick.emit(option);\r\n }\r\n}\r\n","
\r\n

{{option.label}}

\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faCaretDown } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nexport interface IOption {\r\n optionNum: number,\r\n text: string\r\n}\r\n\r\n@Component({\r\n selector: 'ctp-dropdown',\r\n templateUrl: './ctp-dropdown.component.html',\r\n styleUrls: ['./ctp-dropdown.component.scss']\r\n})\r\nexport class CtpDropdownComponent implements OnInit {\r\n @Output() onOptionClick = new EventEmitter();\r\n @Input() options!: IOption[];\r\n\r\n caretDown = faCaretDown;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n optionClicked(option: number) {\r\n this.onOptionClick.emit(option)\r\n }\r\n}\r\n","
\r\n More \r\n
\r\n

{{option.text}}

\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IListOption } from '../list-option';\r\n\r\n@Component({\r\n selector: 'ctp-text-dropdown',\r\n templateUrl: './ctp-text-dropdown.component.html',\r\n styleUrls: ['./ctp-text-dropdown.component.scss']\r\n})\r\nexport class CtpTextDropdownComponent implements OnInit {\r\n @Input() options: IListOption[] = [];\r\n @Output() optionClick = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n handleOptionClicked(option: IListOption): void {\r\n this.optionClick.emit(option);\r\n }\r\n}\r\n","
\r\n

\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\n\r\n\r\n@Component({\r\n selector: 'app-date-time',\r\n templateUrl: './date-time.component.html',\r\n styleUrls: ['./date-time.component.scss']\r\n})\r\nexport class DateTimeComponent implements OnInit {\r\n infoCircle = faInfoCircle;\r\n\r\n constructor() { }\r\n\r\n dateTimeControl: FormControl = new FormControl('');\r\n\r\n get dateTimeValue(): string {\r\n return this.dateTimeControl.value;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n\r\n \r\n\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-prev-next',\r\n templateUrl: './prev-next.component.html',\r\n styleUrls: ['./prev-next.component.scss']\r\n})\r\nexport class PrevNextComponent implements OnInit {\r\n @Input() nextMessage = $localize `Next`;\r\n @Input() nextHidden = '';\r\n @Output() clickNext = new EventEmitter();\r\n @Output() clickPrevious = new EventEmitter();\r\n @Input() previousHidden='';\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n next() {\r\n this.clickNext.emit();\r\n }\r\n\r\n previous() {\r\n this.clickPrevious.emit();\r\n }\r\n\r\n hideNext() {\r\n this.nextHidden = 'hidden';\r\n }\r\n\r\n displayNext() {\r\n this.nextHidden = '';\r\n }\r\n\r\n hidePrevious(){\r\n this.previousHidden='hidden';\r\n }\r\n\r\n displayPrevious(){\r\n this.previousHidden='';\r\n }\r\n\r\n}\r\n","
\r\n Previous\r\n {{nextMessage}}\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { SurveyDialogResult } from '../SurveyDialogResult';\r\n\r\n@Component({\r\n selector: 'app-survey-dialog',\r\n templateUrl: './survey-dialog.component.html',\r\n styleUrls: ['./survey-dialog.component.scss']\r\n})\r\nexport class SurveyDialogComponent implements OnInit {\r\n\r\n constructor(private _dlgRef: MatDialogRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public handleEndSession(): void {\r\n this._dlgRef.close(SurveyDialogResult.EndSession);\r\n }\r\n\r\n public handleTakeSurvey(): void {\r\n this._dlgRef.close(SurveyDialogResult.TakeSurvey);\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n Session Complete\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n Please take a moment to complete our survey.\r\n

\r\n

\r\n \r\n Your feedback will help us to continually improve the\r\n proctoring and test taking experience.\r\n \r\n

\r\n

Thank you for using Compass Exams from Home.

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MessageBoxResult } from '../MessageBoxResult';\r\n\r\n@Component({\r\n selector: 'app-yes-no-message-box',\r\n templateUrl: './yes-no-message-box.component.html',\r\n styleUrls: ['./yes-no-message-box.component.scss']\r\n})\r\nexport class YesNoMessageBoxComponent implements OnInit {\r\n\r\n constructor(private _dlgRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public message: string) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public handleClickYes(): void {\r\n this._dlgRef.close(MessageBoxResult.yes);\r\n }\r\n\r\n public handleClickNo(): void {\r\n this._dlgRef.close(MessageBoxResult.no);\r\n }\r\n}\r\n","
\r\n
\r\n

{{message}}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Yes\r\n \r\n \r\n No\r\n \r\n
\r\n
\r\n\r\n","import {Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.scss']\r\n})\r\nexport class AlertComponent implements OnInit {\r\n @Input('message') message: string = '';\r\n @Input('state') state: string = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
\r\n

\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { AppConstants } from '../../constants/AppConstants';\r\n\r\n@Component({\r\n selector: 'app-technical-support',\r\n templateUrl: './technical-support.component.html',\r\n styleUrls: ['./technical-support.component.scss']\r\n})\r\nexport class TechnicalSupportComponent implements OnInit {\r\n @Input('showTechError') showTechError: boolean = false;\r\n\r\n supportURL: string = AppConstants.SupportURL;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","\r\n If the problem persists contact technical support.\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { StartExamGuard } from './guards/start-exam.guard';\r\nimport { ExamsViewPageComponent } from './pages/exams-view-page/exams-view-page.component';\r\nimport { LoginPageComponent } from './pages/login-page/login-page.component';\r\nimport { SessionManagementPageComponent } from './pages/session-management-page/session-management-page.component';\r\nimport { SystemErrorComponent } from './pages/start-session-error/system-error.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', component: SessionManagementPageComponent, canActivate: [AuthGuard] },\r\n { path: 'exams-view', component: ExamsViewPageComponent, canActivate: [StartExamGuard] },\r\n { path: 'login', component: LoginPageComponent },\r\n { path: 'system/error', component: SystemErrorComponent },\r\n { path: '**', redirectTo: '' }\r\n /*{ path: '', redirectTo: '/session-management', pathMatch: 'full' }*/\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { anchorScrolling: 'enabled' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, ActivationEnd, NavigationEnd, Router } from '@angular/router';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, filter, map, tap } from 'rxjs/operators';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { SpinnerService } from './services/spinner.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'OnDemand';\r\n\r\n\r\n constructor(private _authenticationService: AuthenticationService, private _route: ActivatedRoute, private _spinner: SpinnerService, private _router: Router,private titleService:Title) {\r\n this.titleService.setTitle($localize`Exams from Home`);\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { APP_INITIALIZER, LOCALE_ID, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { MainContentComponent } from './main-content/main-content.component';\r\nimport { WizardComponent } from './wizard/wizard.component';\r\nimport { ExamsViewComponent } from './exams-view/exams-view.component';\r\nimport { CtpButtonComponent } from './Controls/ctp-button/ctp-button.component';\r\nimport { CandidateCountComponent } from './wizard/exam-input-basic-info/candidate-count/candidate-count.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { LanguageSelectionComponent } from './wizard/exam-input-basic-info/language-selection/language-selection.component';\r\nimport { LanguageFilterComponent } from './wizard/exam-selection/language-filter/language-filter.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { TestCenterSelectionComponent } from './wizard/exam-input-basic-info/test-center-selection/test-center-selection.component';\r\nimport { ExamSelectionComponent } from './wizard/exam-selection/exam-selection.component';\r\nimport { CandidateVmComponent } from './exams-view/candidate-session/candidate-vm/candidate-vm.component';\r\nimport { SessionInfoComponent } from './exams-view/candidate-session/session-info/session-info.component';\r\nimport { SpinnerComponent } from './spinner/spinner.component';\r\nimport { DateTimeComponent } from './Controls/date-time/date-time.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { HeaderBodySeparatorComponent } from './header-body-separator/header-body-separator.component';\r\nimport { DashboardComponent } from './session-management/dashboard/dashboard.component';\r\nimport { SessionManagementPageComponent } from './pages/session-management-page/session-management-page.component';\r\nimport { ExamsViewPageComponent } from './pages/exams-view-page/exams-view-page.component';\r\nimport { SessionManagementComponent } from './session-management/session-management.component';\r\nimport { ExamDateTimeAndRegionComponent } from './wizard/exam-date-time-and-region/exam-date-time-and-region.component';\r\nimport { SessionConfirmationComponent } from './wizard/session-confirmation/session-confirmation.component';\r\nimport { EmailDialogComponent } from './wizard/session-confirmation/email-dialog/email-dialog.component';\r\nimport { AlertComponent } from './alert/alert.component';\r\nimport { SessionTableComponent } from './session-management/dashboard/session-table/session-table.component';\r\nimport { SessionDetailsComponent } from './session-management/session-details/session-details.component';\r\nimport { CtpDropdownComponent } from './Controls/ctp-dropdown/ctp-dropdown.component';\r\nimport { ExamInputBasicInfoComponent } from './wizard/exam-input-basic-info/exam-input-basic-info.component';\r\nimport { PrevNextComponent } from './Controls/prev-next/prev-next.component';\r\nimport { ChatnotificationComponent } from './chatnotification/chatnotification.component';\r\nimport { ChatBoxComponent } from './exams-view/candidate-session/chat-box/chat-box.component';\r\nimport { HelpfulresourcesComponent } from './session-management/dashboard/helpfulresources/helpfulresources.component';\r\nimport { NameSessionComponent } from './session-management/dashboard/name-session/name-session.component';\r\nimport { YesNoMessageBoxComponent } from './Controls/yes-no-message-box/yes-no-message-box.component';\r\nimport { ExamTableComponent } from './wizard/exam-selection/exam-table/exam-table.component';\r\nimport { ExamSearchComponent } from './wizard/exam-selection/exam-search/exam-search.component';\r\nimport {MatButtonModule} from \"@angular/material/button\";\r\nimport { ProgramFilterComponent } from './wizard/exam-selection/program-filter/program-filter.component';\r\nimport {CandidateSessionComponent} from \"./exams-view/candidate-session/candidate-session.component\";\r\nimport { TimeZoneSelectionComponent } from './wizard/exam-date-time-and-region/time-zone-selection/time-zone-selection.component';\r\nimport { DateSelectionComponent } from './wizard/exam-date-time-and-region/date-selection/date-selection.component';\r\nimport { TimeSelectionComponent } from './wizard/exam-date-time-and-region/time-selection/time-selection.component';\r\nimport { LoginPageComponent } from './pages/login-page/login-page.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { LoginFormComponent } from './components/login/login-form/login-form.component';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { EmailValidationBase, EmailValidationService } from './services/email-validation.service';\r\nimport { CtpTextDropdownComponent } from './Controls/ctp-text-dropdown/ctp-text-dropdown.component';\r\nimport { CtpDropdownBoxComponent } from './Controls/ctp-dropdown-box/ctp-dropdown-box.component';\r\nimport { PlaceholderComponent } from './placeholder/placeholder.component';\r\nimport { SystemErrorComponent } from './pages/start-session-error/system-error.component';\r\nimport { SurveyDialogComponent } from './Controls/survey-dialog/survey-dialog.component';\r\nimport { CandidateExamCompleteComponent } from './exams-view/candidate-session/candidate-exam-complete/candidate-exam-complete.component';\r\nimport { ConfigurationsService } from './services/configurations.service';\r\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\r\nimport { CandidatesInExamComponent } from './candidates-in-exam/candidates-in-exam.component';\r\nimport { TechnicalSupportComponent } from './alert/technical-support/technical-support.component';\r\nimport { AutofocusDirective } from './autofocus/autofocus.directive';\r\nimport {MatDatepickerModule} from \"@angular/material/datepicker\";\r\nimport { CandidateVmRestartMessageComponent } from './exams-view/candidate-session/candidate-vm-restart-message/candidate-vm-restart-message.component';\r\n\r\nconst configInitializer = (config: ConfigurationsService) => {\r\n return () => {\r\n return config.getConfigurationSettings();\r\n };\r\n };\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HeaderComponent,\r\n FooterComponent,\r\n MainContentComponent,\r\n WizardComponent,\r\n ExamsViewComponent,\r\n CtpButtonComponent,\r\n CandidateCountComponent,\r\n LanguageSelectionComponent,\r\n LanguageFilterComponent,\r\n TestCenterSelectionComponent,\r\n ExamSelectionComponent,\r\n CandidateSessionComponent,\r\n CandidateVmComponent,\r\n SessionInfoComponent,\r\n SpinnerComponent,\r\n DateTimeComponent,\r\n HeaderBodySeparatorComponent,\r\n DashboardComponent,\r\n SessionManagementPageComponent,\r\n ExamsViewPageComponent,\r\n SessionManagementComponent,\r\n ExamDateTimeAndRegionComponent,\r\n ChatnotificationComponent,\r\n SessionConfirmationComponent,\r\n AlertComponent,\r\n EmailDialogComponent,\r\n SessionTableComponent,\r\n SessionDetailsComponent,\r\n CtpDropdownComponent,\r\n ExamDateTimeAndRegionComponent,\r\n ExamInputBasicInfoComponent,\r\n PrevNextComponent,\r\n ChatBoxComponent,\r\n HelpfulresourcesComponent,\r\n NameSessionComponent,\r\n YesNoMessageBoxComponent,\r\n ExamTableComponent,\r\n ExamSearchComponent,\r\n ProgramFilterComponent,\r\n TimeZoneSelectionComponent,\r\n DateSelectionComponent,\r\n TimeSelectionComponent,\r\n LoginPageComponent,\r\n LoginComponent,\r\n LoginFormComponent,\r\n CtpTextDropdownComponent,\r\n CtpDropdownBoxComponent,\r\n PlaceholderComponent,\r\n SurveyDialogComponent,\r\n SystemErrorComponent,\r\n CandidateExamCompleteComponent,\r\n CandidatesInExamComponent,\r\n TechnicalSupportComponent,\r\n AutofocusDirective,\r\n CandidateVmRestartMessageComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatTooltipModule,\r\n FontAwesomeModule,\r\n MatDialogModule,\r\n MatButtonModule,\r\n MatDatepickerModule\r\n ],\r\n providers: [\r\n AuthGuard,\r\n AuthenticationService,\r\n ConfigurationsService,\r\n { provide: EmailValidationBase, useClass: EmailValidationService },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: APP_INITIALIZER,useFactory: configInitializer,multi: true,deps: [ConfigurationsService] }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAutofocus]'\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n ngAfterViewInit() {\r\n this.elementRef.nativeElement.focus();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CandidatesInExamService, ICandidate } from '../services/candidates-in-exam.service';\r\nimport { faAngleDown, faAngleUp } from '@fortawesome/pro-solid-svg-icons';\r\nimport { faSearch } from '@fortawesome/pro-light-svg-icons';\r\n\r\n\r\n@Component({\r\n selector: 'app-candidates-in-exam',\r\n templateUrl: './candidates-in-exam.component.html',\r\n styleUrls: ['./candidates-in-exam.component.scss']\r\n})\r\nexport class CandidatesInExamComponent {\r\n search = \"\";\r\n searchIcon = faSearch;\r\n angleUpIcon = faAngleUp;\r\n angleDownIcon = faAngleDown;\r\n candidatesInExamCount = 0;\r\n sessionCandidatesCount = 0;\r\n candidates: ICandidate[] = [];\r\n filteredCandidates: ICandidate[] = [];\r\n keyUp = new BehaviorSubject(\"\");\r\n showCandidatesList = false;\r\n searchPlaceHolder: string = $localize`Search`;\r\n\r\n constructor(private candidatesInExamService: CandidatesInExamService) {\r\n this.keyUp.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged()\r\n ).subscribe(\r\n searchTextValue => {\r\n this.filteredCandidates = this.candidates.filter(c => c.FirstName.toLowerCase().includes(searchTextValue.toLowerCase()) || c.LastName.toLowerCase().includes(searchTextValue.toLowerCase()))\r\n }\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.candidatesInExamService.getCandidatesCount().subscribe((candidatesCount) => {\r\n this.sessionCandidatesCount = candidatesCount;\r\n }\r\n );\r\n\r\n this.candidatesInExamService.getCandidate().subscribe((candidateSubject) => {\r\n if (this.candidates.filter(c => c.CandidateId == candidateSubject.CandidateId).length == 0) {\r\n let candidate: ICandidate = {\r\n CandidateId: candidateSubject.CandidateId,\r\n FirstName: candidateSubject.FirstName,\r\n LastName: candidateSubject.LastName,\r\n Symlink: candidateSubject.Symlink\r\n };\r\n\r\n this.candidates.push(candidate);\r\n\r\n if (this.search.trim().length == 0 || candidate.FirstName.toLowerCase().includes(this.search.toLowerCase()) || candidate.LastName.toLowerCase().includes(this.search.toLowerCase())) {\r\n this.filteredCandidates.push(candidate)\r\n }\r\n\r\n this.candidatesInExamCount = this.candidates.length;\r\n }\r\n }\r\n );\r\n }\r\n\r\n clearSearchBox() {\r\n this.search = '';\r\n this.filteredCandidates = this.candidates;\r\n }\r\n\r\n ToggleShowCandidateListValue() {\r\n this.showCandidatesList = !this.showCandidatesList;\r\n }\r\n\r\n ScrollToCandidate(symlink: string) {\r\n let id = `#sessionInfo_${symlink}`;\r\n document.querySelector(id)?.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n\r\n showClearSearchIcon() {\r\n return (this.search.trim().length > 0);\r\n }\r\n}\r\n","
\r\n Candidates in exam ({{candidatesInExamCount}} of {{sessionCandidatesCount}})\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{candidate.FirstName}} {{candidate.LastName}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n No Candidates\r\n
\r\n
\r\n","import { ViewportScroller } from '@angular/common';\r\nimport { Component, ElementRef, OnInit, AfterViewInit, Renderer2, ViewChild, Input } from '@angular/core';\r\nimport { SignalRChatService } from '../services/signal-rchat.service';\r\n\r\n@Component({\r\n selector: 'app-chatnotification',\r\n templateUrl: './chatnotification.component.html',\r\n styleUrls: ['./chatnotification.component.scss']\r\n})\r\nexport class ChatnotificationComponent implements AfterViewInit {\r\n machineName: any;\r\n userName: any;\r\n @Input() accessCode!: string;\r\n\r\n constructor(\r\n private renderer: Renderer2,\r\n private signalrChat: SignalRChatService,\r\n private viewportScroller: ViewportScroller) {\r\n }\r\n\r\n @ViewChild('notificationDropdown')\r\n notificationDropdown!: ElementRef;\r\n\r\n ngOnInit(): void {\r\n console.log(\" chatNotification ngOnInit - signalrChat is: \" + this.signalrChat);\r\n console.log(\"accesscode is: \" + this.accessCode);\r\n\r\n //Wire up SignalR\r\n this.signalrChat.initConnection();\r\n console.log(\"Wiring up login cand listener\");\r\n this.signalrChat.addReceiveLoggedInCandidateListener((symlink, displayName) => {\r\n this.AddSymlinkToNotificationList(symlink, displayName);\r\n this.notifyMessageReceived();\r\n });\r\n\r\n console.log(\"Wiring up message listener\");\r\n this.signalrChat.addReceiveMessageListener((symlink, username) => {\r\n this.AddSymlinkToNotificationList(symlink, username);\r\n this.notifyMessageReceived();\r\n });\r\n this.signalrChat.start(this.accessCode);\r\n this.signalrChat.logID();\r\n }\r\n ngAfterViewInit(): void {\r\n //chatNotification div chatnotification button and arrow button\r\n var bttnDiv = this.renderer.createElement('div');\r\n bttnDiv.id = \"notificationsDiv\";\r\n this.renderer.appendChild(this.notificationDropdown.nativeElement, bttnDiv);\r\n\r\n var drpDwn = this.renderer.createElement(\"input\");\r\n drpDwn.type = \"button\";\r\n drpDwn.id = \"notificationBarButton\";\r\n drpDwn.value = $localize`Chat Notifications`;\r\n drpDwn.addEventListener(\"click\", (e: Event) => this.getnotificationDropdown());\r\n\r\n var drpDwn2 = this.renderer.createElement(\"input\");\r\n drpDwn2.type = \"button\";\r\n drpDwn2.id = \"arrow\";\r\n var arrowStyle = document.createAttribute(\"class\");\r\n arrowStyle.value = \"arr-down\";\r\n drpDwn2.setAttributeNode(arrowStyle);\r\n drpDwn2.addEventListener(\"click\", (e: Event) => this.getnotificationDropdown());\r\n\r\n\r\n\r\n var circleDiv = document.createElement(\"span\");\r\n circleDiv.id = \"countDiv\";\r\n circleDiv.nodeValue = \"enabled\";\r\n var circleStyle = document.createAttribute(\"style\");\r\n circleStyle.value = \"height: 20px;width: 20px;background-color: #ff0000;border-radius: 50%;text-align:center; color:#fff;float:left; margin-left:5px; margin-top:5px;\";\r\n circleDiv.setAttributeNode(circleStyle);\r\n circleDiv.style.display = \"none\";\r\n this.renderer.appendChild(bttnDiv, circleDiv);\r\n this.renderer.appendChild(bttnDiv, drpDwn);\r\n this.renderer.appendChild(bttnDiv, drpDwn2);\r\n\r\n var soundImg = this.renderer.createElement(\"input\");\r\n soundImg.type = \"image\";\r\n soundImg.src = \"/images/SoundOn.svg\";\r\n soundImg.id = \"notificationSound\";\r\n soundImg.value = \"enabled\";\r\n soundImg.addEventListener(\"click\", (e: Event) => this.notificationSoundOnOff());\r\n this.renderer.appendChild(bttnDiv, soundImg);\r\n\r\n\r\n\r\n var innerDiv = this.renderer.createElement(\"div\");\r\n innerDiv.id = \"notificationDropdownList\";\r\n innerDiv.style.display = \"none;\";\r\n this.renderer.appendChild(this.notificationDropdown.nativeElement, innerDiv);\r\n\r\n\r\n\r\n }\r\n notificationSoundOnOff(): void {\r\n var img = document.getElementById(\"notificationSound\");\r\n var x = document.getElementById(\"messageReceivedNotification\");\r\n if (img.value === \"enabled\") {\r\n img.src = \"/images/SoundOff.svg\";\r\n img.value = \"disabled\";\r\n }\r\n else {\r\n img.src = \"/images/SoundOn.svg\";\r\n img.value = \"enabled\";\r\n }\r\n };\r\n getnotificationDropdown(): void {\r\n var div = document.getElementById(\"notificationDropdownList\");\r\n div.style.display === 'block' ? div.style.display = 'none' : div.style.display = 'block';\r\n this.displayNoNotifications(div);\r\n var div2 = document.getElementById(\"arrow\");\r\n div2.id = (\"arrow\");\r\n div2.className === \"arr-up\" ? div2.className = \"arr-down\" : div2.className = \"arr-up\";\r\n }\r\n AddSymlinkToNotificationList(symlink: string, userName: string): void {\r\n console.log(\"AddMachineToNotif with machine: \" + symlink + \" and user: \" + userName);\r\n var div = document.getElementById(\"notificationDropdownList\");\r\n var alertDiv = document.getElementById(\"candidate_\" + symlink);\r\n if (alertDiv == null) {\r\n var para = this.renderer.createElement(\"p\");\r\n para.className = \"notificationMachineBox\";\r\n para.id = \"candidate_\" + symlink;\r\n\r\n\r\n\r\n var img = this.renderer.createElement(\"img\");\r\n img.id = \"image_\" + symlink;\r\n img.className = \"machineNotificationImage\";\r\n img.src = \"/images/infoNotification.jpg\";\r\n this.renderer.appendChild(para, img);\r\n\r\n var close = this.renderer.createElement(\"button\");\r\n close.addEventListener(\"click\", (e: Event) => this.removeNotification(\"candidate_\" + symlink));\r\n close.textContent = 'X';\r\n this.renderer.appendChild(para, close);\r\n\r\n var a = this.renderer.createElement(\"a\");\r\n var hrefAttr = document.createAttribute(\"href\");\r\n a.setAttributeNode(hrefAttr);\r\n a.innerHTML = userName.toString();\r\n a.addEventListener(\"click\", (e: Event) => this.setNotification(symlink, 'read'));\r\n a.addEventListener(\"click\", (e: Event) => {\r\n e.preventDefault();\r\n this.navigateToFragment('sessionInfo_' + symlink);\r\n });\r\n this.renderer.appendChild(para, a);\r\n\r\n var text = this.renderer.createElement(\"text\");\r\n text.innerHTML = userName.toString();\r\n this.renderer.appendChild(para, text);\r\n this.renderer.appendChild(div, para);\r\n }\r\n else {\r\n this.setNotification(symlink, 'updated');\r\n }\r\n this.UpdateNotificationCount();\r\n };\r\n\r\n showHideNotificationList(): void {\r\n var div = document.getElementById(\"notificationDropdownList\");\r\n if (div.hidden) {\r\n div.style.display = 'block';\r\n }\r\n else {\r\n div.style.display = 'none';\r\n }\r\n\r\n };\r\n\r\n getCount(parent: any, getChildren: any): number {\r\n\r\n var relevantChildren = 0;\r\n var children = parent?.childNodes.length;\r\n for (var i = 0; i < children; i++) {\r\n if (parent?.childNodes[i].nodeType !== 3\r\n && parent?.childNodes[i].__ng_removed === undefined) { //removeChild doesn't work in realtime so we need to check if it has been marked for deletion.\r\n if (getChildren)\r\n relevantChildren += this.getCount(parent?.childNodes[i], true);\r\n relevantChildren++;\r\n }\r\n }\r\n return relevantChildren;\r\n }\r\n\r\n UpdateNotificationCount(): void {\r\n var element = document.getElementById(\"notificationDropdownList\");\r\n var count = this.getCount(element, false);\r\n var circleDiv = document.getElementById(\"countDiv\");\r\n if (count > 0) {\r\n circleDiv!.innerText = count.toString();\r\n circleDiv!.style.display = \"inline-block\";\r\n this.removeNotification(\"noNotifications\");\r\n } else {\r\n circleDiv!.style.display = \"none\";\r\n this.displayNoNotifications(element);\r\n }\r\n }\r\n\r\n displayNoNotifications(element: any): void {\r\n if (this.getCount(element, false) === 0) {\r\n var para = this.renderer.createElement(\"p\");\r\n para.className = \"notificationMachineBox\";\r\n para.id = \"noNotifications\";\r\n var text = this.renderer.createElement(\"text\");\r\n text.className = \"noNotifications\";\r\n text.innerHTML = $localize`No new notifications.`;\r\n this.renderer.appendChild(para, text);\r\n this.renderer.appendChild(element, para);\r\n }\r\n }\r\n\r\n notifyMessageReceived(): void {\r\n var img = document.getElementById(\"notificationSound\");\r\n if (img.value == \"enabled\") {\r\n var x = document.getElementById(\"messageReceivedNotification\");\r\n console.log('playing notif sound');\r\n var playSound = x.play();\r\n if (playSound !== undefined) {\r\n playSound.then(_ => {\r\n console.log(\"playing sound\");\r\n })\r\n .catch(error => {\r\n console.log('Play sound error:', error);\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n alertNotification(evt: any): void {\r\n this.AddSymlinkToNotificationList(evt.data, this.userName);\r\n };\r\n\r\n removeNotification(symlink: any): void {\r\n var notificationDiv: any = document.getElementById(symlink);\r\n if (notificationDiv != null && notificationDiv.__ng_removed === undefined) { //angular does not remove elements in realtime so we need this __ng_removed check. This is why we should've implemented chat notifications as components rather than as a straight port from the old code. /rant\r\n var innerDiv = document.getElementById(\"notificationDropdownList\");\r\n this.renderer.removeChild(innerDiv, notificationDiv);\r\n this.UpdateNotificationCount();\r\n }\r\n };\r\n\r\n setNotification(symlink: any, status: any) {\r\n var imgID = this.renderer.createElement(\"image_\" + symlink);\r\n if (status == \"read\") {\r\n imgID.src = \"/images/replyNotification.jpg\";\r\n }\r\n else if (status == \"updated\") {\r\n imgID.src = \"/images/infoNotification.jpg\";\r\n }\r\n };\r\n navigateToFragment(fragmentID: string): void {\r\n this.viewportScroller.scrollToAnchor(fragmentID);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport ILogin from '../../../models/ILogin';\r\n\r\n@Component({\r\n selector: 'app-login-form',\r\n templateUrl: './login-form.component.html',\r\n styleUrls: ['./login-form.component.scss']\r\n})\r\nexport class LoginFormComponent implements OnInit {\r\n @Input() loading = false;\r\n @Output() submit = new EventEmitter();\r\n\r\n submitted = false;\r\n\r\n loginForm = this.formBuilder.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n\r\n constructor(private formBuilder: FormBuilder) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.loginForm.controls; }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n if (this.loginForm.valid) {\r\n this.submit.emit(this.loginForm.value);\r\n }\r\n }\r\n\r\n showErrors(key: string): boolean {\r\n var control = this.loginForm.get(key);\r\n if (control) {\r\n return this.submitted && control.invalid;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
Username is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Password is required
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { first } from 'rxjs/operators';\r\n\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport ILogin from '../../models/ILogin';\r\nimport { environment } from '../../../environments/environment';\r\nimport { SpinnerService } from '../../services/spinner.service';\r\nimport { ConfigurationsService } from 'src/app/services/configurations.service';\r\nimport { HttpStatusCode } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n alertStyle = 'error';\r\n errorMsg: string = $localize `Error. Invalid username or password.`;\r\n hasError: boolean = false;\r\n forbiddenMsg: string = $localize `Error. Only CATC Administrators can login from this page. If you are a Candidate, please ask your Proctor for a Candidate Link.`;\r\n isForbidden: boolean = false;\r\n loading = false;\r\n returnUrl: string = '';\r\n returnQueryParams!: Params;\r\n recoveryUrl: string = this.configurationsService.AccountRecoveryURL;\r\n supportUrl: string = this.configurationsService.SupportUrl;\r\n candidateSupportUrl: string = this.configurationsService.CandidateSupportUrl;\r\n efhInfoUrl: string = this.configurationsService.EfhInfoUrl;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n private spinnerService: SpinnerService,\r\n private configurationsService:ConfigurationsService\r\n ) {\r\n // redirect to home if already logged in\r\n if (this.authenticationService.Jwt) {\r\n this.router.navigate(['/']);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n // get return url from route parameters or default to '/'\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n if (this.route.snapshot.queryParams.accessCode) {\r\n this.returnUrl = '/exams-view'\r\n this.returnQueryParams = this.route.snapshot.queryParams;\r\n }\r\n }\r\n\r\n onSubmit(login: ILogin) {\r\n // stop here if form is invalid\r\n if (!login.username || !login.password) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.spinnerService.show();\r\n this.authenticationService.Authenticate(login.username, login.password)\r\n .pipe(first())\r\n .subscribe(\r\n data => {\r\n this.router.navigate([this.returnUrl], {queryParams: this.returnQueryParams});\r\n this.spinnerService.hide();\r\n },\r\n error => {\r\n this.spinnerService.hide();\r\n this.hasError = true;\r\n this.loading = false;\r\n if (error.status == HttpStatusCode.Forbidden) {\r\n this.isForbidden = true;\r\n } else {\r\n this.isForbidden = false;\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n {{isForbidden ? forbiddenMsg : errorMsg}}\r\n
\r\n
\r\n
\r\n

Welcome

\r\n

Compass Exams from Home Administration

\r\n

(* indicates a required field)

\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n","export class AppConstants {\r\n public static SupportURL: string = \"https://certiport.pearsonvue.com/Support.aspx\";\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport ICandidateVm from '../../../models/ICandidateVm';\r\n\r\n@Component({\r\n selector: 'app-candidate-exam-complete',\r\n templateUrl: './candidate-exam-complete.component.html',\r\n styleUrls: ['./candidate-exam-complete.component.scss']\r\n})\r\nexport class CandidateExamCompleteComponent implements OnInit {\r\n @Input() candidateVM!: ICandidateVm;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

The candidate has completed the exam.

\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\n\r\nimport ICandidateVm from '../../models/ICandidateVm';\r\n\r\n@Component({\r\n selector: 'app-candidate-session',\r\n templateUrl: './candidate-session.component.html',\r\n styleUrls: ['./candidate-session.component.scss']\r\n})\r\nexport class CandidateSessionComponent implements OnInit {\r\n @Input() candidateVM!: ICandidateVm;\r\n @Input() accessCode: any;\r\n @Input() chatName!: string;\r\n\r\n private restartTimerInterval: NodeJS.Timeout | undefined;\r\n constructor(private authService: AuthenticationService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.authService.ProctorSource.subscribe(p => {\r\n this.chatName = `${p.FirstName} ${p.LastName}`;\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n // Persist restart timer across reloads\r\n let vmRestartTime = parseInt(sessionStorage.getItem(`vmRestartTimer_${this.candidateVM.symlink}`) ?? '-1', 10);\r\n if (!isNaN(vmRestartTime) && vmRestartTime > 0) {\r\n this.candidateVM.isRestarting = true;\r\n this.setRestartMessageTimer(vmRestartTime);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.restartTimerInterval)\r\n clearInterval(this.restartTimerInterval);\r\n }\r\n\r\n onRestartVMClick(failed: boolean) {\r\n this.candidateVM.isRestarting = !failed;\r\n if (this.restartTimerInterval)\r\n clearInterval(this.restartTimerInterval);\r\n\r\n if (!failed) {\r\n this.setRestartMessageTimer(95 * 1000);\r\n }\r\n }\r\n\r\n setRestartMessageTimer(miliseconds: number) {\r\n const intervalTime = 5 * 1000;\r\n sessionStorage.setItem(`vmRestartTimer_${this.candidateVM.symlink}`, miliseconds.toString());\r\n if (this.restartTimerInterval != null)\r\n clearInterval(this.restartTimerInterval);\r\n\r\n // Decrement restart timer storage on interval\r\n this.restartTimerInterval = setInterval(() => {\r\n let vmRestartTime = parseInt(sessionStorage.getItem(`vmRestartTimer_${this.candidateVM.symlink}`) ?? '-1', 10);\r\n // If restart timer complete\r\n if (isNaN(vmRestartTime) || vmRestartTime <= 0) {\r\n // Show vm\r\n this.candidateVM.isRestarting = false;\r\n let iframeElement = document.getElementById(`iframe_${this.candidateVM.symlink}`) as HTMLIFrameElement;\r\n iframeElement.src = iframeElement.src;\r\n // Clear restart timer\r\n sessionStorage.removeItem(`vmRestartTimer_${this.candidateVM.symlink}`);\r\n if (this.restartTimerInterval != null)\r\n clearInterval(this.restartTimerInterval);\r\n }\r\n else {\r\n // Decrement restart time\r\n sessionStorage.setItem(`vmRestartTimer_${this.candidateVM.symlink}`, (vmRestartTime - intervalTime).toString());\r\n }\r\n }, intervalTime);\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-candidate-vm-restart-message',\r\n templateUrl: './candidate-vm-restart-message.component.html',\r\n styleUrls: ['./candidate-vm-restart-message.component.scss']\r\n})\r\nexport class CandidateVmRestartMessageComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

This Candidate's VM is restarting now, this may take a few minutes.

\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport ICandidateVm from '../../../models/ICandidateVm';\r\n\r\n@Component({\r\n selector: 'app-candidate-vm',\r\n templateUrl: './candidate-vm.component.html',\r\n styleUrls: ['./candidate-vm.component.scss']\r\n})\r\nexport class CandidateVmComponent implements OnInit {\r\n @Input() candidateVM!: ICandidateVm;\r\n iframeSrcUrl: any;\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n this.iframeSrcUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.candidateVM.joinUrl);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit, SecurityContext, Input } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { ConfigurationsService } from 'src/app/services/configurations.service';\r\nimport ICandidateVm from '../../../models/ICandidateVm';\r\nimport { LOCALE_ID, Inject } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-chat-box',\r\n templateUrl: './chat-box.component.html',\r\n styleUrls: ['./chat-box.component.scss']\r\n})\r\nexport class ChatBoxComponent implements OnInit {\r\n @Input() candidateVM!: ICandidateVm;\r\n @Input() chatName!: string;\r\n\r\n chatUrl: string = `https://${this.configurationsService.ChatCName}/chatroom`;\r\n combinedChatUrl: string = \"\";\r\n safeUrl: SafeResourceUrl = \"\";\r\n\r\n constructor(public sanitizer: DomSanitizer,\r\n private configurationsService: ConfigurationsService, @Inject(LOCALE_ID) private localeId: string) {\r\n }\r\n\r\n ngOnInit(): void {\r\n var chatAppLanguagecode = this.getChatAppLanguageCode();\r\n this.combinedChatUrl = `${this.chatUrl}?symlink=${this.candidateVM.symlink}&proctor=true&name=${this.chatName}&languageCode=${chatAppLanguagecode}`;\r\n this.combinedChatUrl = this.sanitizer.sanitize(SecurityContext.URL, this.combinedChatUrl) ?? \"\";\r\n this.safeUrl = this.getChatUrl();\r\n }\r\n\r\n getChatUrl() {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.combinedChatUrl);\r\n }\r\n\r\n private getChatAppLanguageCode() {\r\n var chatAppLanguagecode = \"en\";\r\n switch (this.localeId) {\r\n case \"es-MX\"://latin american spanish\r\n chatAppLanguagecode = \"ESM\";\r\n break;\r\n case \"vi-VN\"://vietnam\r\n chatAppLanguagecode = \"VIE\";\r\n break;\r\n case \"zh-CN\"://chinese simplified\r\n chatAppLanguagecode = \"CHS\";\r\n break;\r\n case \"zh-TW\"://chinese traditonal\r\n chatAppLanguagecode = \"CHT\";\r\n break;\r\n case \"fr-FR\"://france\r\n chatAppLanguagecode = \"FRA\";\r\n break;\r\n case \"ko-KR\"://korea\r\n chatAppLanguagecode = \"KOR\";\r\n break;\r\n case \"ro-RO\"://romania\r\n chatAppLanguagecode = \"ROM\";\r\n break;\r\n case \"pt-BR\"://portuguese brazil\r\n chatAppLanguagecode = \"PTB\";\r\n break;\r\n case \"tr-TR\"://turkish\r\n chatAppLanguagecode = \"TRK\";\r\n break;\r\n case \"th-TH\"://thailand\r\n chatAppLanguagecode = \"THA\";\r\n break;\r\n case \"de-DE\"://german\r\n chatAppLanguagecode = \"DEU\";\r\n break;\r\n case \"id-ID\"://indonesia\r\n chatAppLanguagecode = \"IND\";\r\n break;\r\n case \"el-GR\"://greek\r\n chatAppLanguagecode = \"ELL\";\r\n break;\r\n default:\r\n chatAppLanguagecode = \"en\"\r\n }\r\n return chatAppLanguagecode;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport ICandidateVm from '../../../models/ICandidateVm';\r\nimport { IRestartVmInput } from '../../../models/IRestartVmInput';\r\nimport { SessionInfoService } from '../../../services/session-info.service';\r\nimport { YesNoMessageBoxComponent } from '../../../Controls/yes-no-message-box/yes-no-message-box.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageBoxResult } from '../../../Controls/MessageBoxResult';\r\n\r\n@Component({\r\n selector: 'app-session-info',\r\n templateUrl: './session-info.component.html',\r\n styleUrls: ['./session-info.component.scss']\r\n})\r\nexport class SessionInfoComponent implements OnInit {\r\n @Input() candidateVMInfo!: ICandidateVm;\r\n @Input() accessCode: any;\r\n @Output() onRestartVMClick = new EventEmitter();\r\n\r\n constructor(private sessionInfoService: SessionInfoService,\r\n private _dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onClickRefresh(): void {\r\n let iframeElement = document.getElementById(`iframe_${this.candidateVMInfo.symlink}`) as HTMLIFrameElement;\r\n iframeElement.src = iframeElement.src;\r\n }\r\n\r\n public onClickCopyUrl(): void {\r\n navigator.clipboard.writeText(this.candidateVMInfo.joinUrl);\r\n alert($localize`URL is copied -- TODO: Provide a move appropriate experience than an alert here.`);//TODO determine if we need JoinUrl\r\n }\r\n\r\n\r\n public onClickRestartVM() {\r\n const dlgRef = this._dialog.open(YesNoMessageBoxComponent, { height: '14rem', width: '28rem', data: $localize`Are you sure you want to restart the candidate machine?` });\r\n dlgRef.afterClosed().subscribe(result => {\r\n if (result == MessageBoxResult.yes) {\r\n let restartVmInput: IRestartVmInput = {\r\n symlink: this.candidateVMInfo.symlink,\r\n }\r\n\r\n this.onRestartVMClick.emit(false);\r\n\r\n this.sessionInfoService\r\n .restartVM(restartVmInput)\r\n .subscribe(result => {\r\n },\r\n error => {\r\n this.onRestartVMClick.emit(true);\r\n console.log(error);\r\n alert($localize`Error restarting VM`);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n {{candidateVMInfo.candidateFirstName}} {{candidateVMInfo.candidateLastName}} (ID: {{candidateVMInfo.candidateId}}) \r\n {{candidateVMInfo.symlink}} \r\n
\r\n

EXAM STATUS: In Progress

\r\n
\r\n Refresh  Restart VM\r\n\r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { LabmanagerService } from '../services/labmanager.service';\r\nimport ICandidateVm from '../models/ICandidateVm';\r\nimport { SignalRService } from '../services/signal-r.service';\r\nimport { ExamSessionService } from '../services/exam-session.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ConfigurationsService } from '../services/configurations.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SurveyDialogComponent } from '../Controls/survey-dialog/survey-dialog.component';\r\nimport { SurveyDialogResult } from '../Controls/SurveyDialogResult';\r\nimport { IFullExamSession } from '../models/IFullExamSession';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { IExamSessionSettings } from '../models/IExamSessionSettings';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\nimport { CandidatesInExamService, ICandidate } from '../services/candidates-in-exam.service';\r\n\r\n@Component({\r\n selector: 'app-exams-view',\r\n templateUrl: './exams-view.component.html',\r\n styleUrls: ['./exams-view.component.scss']\r\n})\r\nexport class ExamsViewComponent implements OnInit {\r\n accessCode: any;\r\n candidateVms: ICandidateVm[] = [];\r\n surveylink: string = '';\r\n message: string = '';\r\n hasError: boolean = false;\r\n showTechError: boolean = false;\r\n\r\n public ExamSession!: IFullExamSession;\r\n public examSessionSettings!: IExamSessionSettings;\r\n private LatestStartTime!: Date;\r\n\r\n constructor(\r\n private authenticationService: AuthenticationService,\r\n private labManagerService: LabmanagerService,\r\n private proctorHub: SignalRService,\r\n @Inject(BASE_URL) private baseUrl: string,\r\n private examSessionService: ExamSessionService,\r\n private route: ActivatedRoute,\r\n private configurations: ConfigurationsService,\r\n private _dialog: MatDialog\r\n , private candidatesInExamService: CandidatesInExamService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.subscribe(\r\n params => {\r\n this.accessCode = params['accessCode'];\r\n\r\n this.GetSurveyLink();\r\n this.GetExamSessionInfo();\r\n this.GetCandidatesVmDetailsAndLoad();\r\n }\r\n );\r\n }\r\n\r\n private GetSurveyLink() {\r\n this.configurations.getSurveyLink().subscribe(response => {\r\n this.surveylink = response;\r\n }, error => {\r\n this.displayError($localize`Survey link was uable to fetch.`);\r\n });\r\n }\r\n\r\n private GetExamSessionInfo() {\r\n\r\n this.examSessionService.getExamSessionByAccessCode(this.accessCode).subscribe(async response => {\r\n this.ExamSession = response;\r\n this.candidatesInExamService.setCandidatesCount(this.ExamSession.candidateCount);\r\n this.GetExamSessionSettings();\r\n }, error => {\r\n this.displayError($localize`Examsession info was unable to fetch.`);\r\n });\r\n }\r\n\r\n private GetExamSessionSettings() {\r\n\r\n this.authenticationService.JwtSource.subscribe(jwt => {\r\n if (jwt) {\r\n this.examSessionService.getExamSessionSettings().subscribe(sessionSettings => {\r\n this.examSessionSettings = sessionSettings;\r\n this.SetDisplaySurveyDialogTriggerTime();\r\n }, error => {\r\n this.displayError($localize`Failed to fetch Examsession Settings.`);\r\n });\r\n }\r\n }, error => {\r\n this.displayError($localize`Authentication failed to fetch Examsession Settings.`);\r\n });\r\n }\r\n\r\n private GetCandidatesVmDetailsAndLoad() {\r\n\r\n this.labManagerService.getCandidateVMs(this.accessCode).subscribe(\r\n (response) => {\r\n this.candidateVms = response.sort((c1, c2) => this.compareCandidateVms(c1, c2));\r\n\r\n this.SetCandidateInfo();\r\n this.decodeRdpUrls(this.candidateVms);\r\n this.StartProctorHubConnection();\r\n },\r\n (error) => {\r\n this.displayError($localize`We are unable to retrieve the full list of Candidates in the session. Please refresh your browser.`, true);\r\n }\r\n );\r\n }\r\n\r\n private SetCandidateInfo() {\r\n this.candidateVms.forEach(element => {\r\n let candidate: ICandidate = { CandidateId: element.candidateId, FirstName: element.candidateFirstName, LastName: element.candidateLastName, Symlink: element.symlink };\r\n this.candidatesInExamService.setCandidate(candidate);\r\n });\r\n }\r\n\r\n private decodeRdpUrls(candidateVms: ICandidateVm[]): void {\r\n for (const vm of candidateVms)\r\n vm.joinUrl = atob(vm.joinUrl);\r\n }\r\n\r\n private StartProctorHubConnection() {\r\n this.proctorHub.startConnection(this.accessCode)\r\n .then(() => {\r\n this.InitializeHubListeners();\r\n });\r\n }\r\n\r\n private InitializeHubListeners() {\r\n this.CandidateLoggedInListener();\r\n this.ExamCompleteListener();\r\n this.CandidateAutoRefreshListner();\r\n }\r\n\r\n private CandidateLoggedInListener() {\r\n this.proctorHub.addCandidateLoggedInListener((accessCode: string, symlink: string, joinUrl: string, candidateId: string, candidateFirstName: string, candidateLastName: string, assignedToCandidateTime: string) => {\r\n let isCandidateVmExists = this.candidateVms.findIndex(s => s.candidateId == candidateId);\r\n if (isCandidateVmExists === -1) {\r\n this.candidateVms.push({\r\n candidateId: candidateId,\r\n candidateFirstName: candidateFirstName,\r\n candidateLastName: candidateLastName,\r\n symlink: symlink,\r\n accessCode: accessCode,\r\n joinUrl: atob(joinUrl),\r\n assignedToCandidateTime: assignedToCandidateTime,\r\n examCompleted: false,\r\n isRestarting: false\r\n });\r\n }\r\n else {\r\n let iframeElement = document.getElementById(`iframe_${symlink}`) as HTMLIFrameElement;\r\n iframeElement.src = iframeElement.src;\r\n }\r\n this.candidateVms.sort((c1, c2) => this.compareCandidateVms(c1, c2));\r\n\r\n let candidate: ICandidate = { CandidateId: candidateId, FirstName: candidateFirstName, LastName: candidateLastName, Symlink: symlink };\r\n this.candidatesInExamService.setCandidate(candidate);\r\n });\r\n }\r\n\r\n private compareCandidateVms(c1: ICandidateVm, c2: ICandidateVm): number {\r\n return new Date(c1.assignedToCandidateTime).getTime() - new Date(c2.assignedToCandidateTime).getTime();\r\n }\r\n\r\n private ExamCompleteListener() {\r\n\r\n this.proctorHub.addCompleteExamListener((symlink: string) => {\r\n let candidateVm = this.candidateVms.find(cvm => cvm.symlink == symlink);\r\n if (candidateVm) {\r\n candidateVm.examCompleted = true;\r\n }\r\n\r\n let nowTime = this.convertToUTCTime(new Date()).getTime();\r\n\r\n if (nowTime > this.LatestStartTime.getTime()) {\r\n this.DisplaySurveyDialog();\r\n }\r\n });\r\n }\r\n\r\n private CandidateAutoRefreshListner() {\r\n\r\n this.proctorHub.addCandidateAutoRefreshListner((symlink: string) => {\r\n setTimeout(() => {\r\n let iframeElement = document.getElementById(`iframe_${symlink}`) as HTMLIFrameElement;\r\n iframeElement.src = iframeElement.src;\r\n }, 5000);\r\n });\r\n }\r\n\r\n private SetDisplaySurveyDialogTriggerTime() {\r\n this.LatestStartTime = this.getStartTimes(this.ExamSession).latestStartTime;\r\n let latestTime = this.LatestStartTime.getTime();\r\n\r\n let nowTime = this.convertToUTCTime(new Date()).getTime();\r\n if (nowTime < latestTime) {\r\n setTimeout(() => {\r\n this.DisplaySurveyDialog();\r\n }, latestTime - nowTime);\r\n }\r\n } \r\n\r\n private DisplaySurveyDialog() {\r\n if (this.surveylink != null && this.surveylink != '') {\r\n if (this.candidateVms.filter(c => c.examCompleted == false).length == 0) {\r\n const dlgRef = this._dialog.open(SurveyDialogComponent, { panelClass: 'survey-dialog', height: '25.625rem', width: '50.313rem' });\r\n\r\n dlgRef.afterClosed().subscribe(result => {\r\n if (result == SurveyDialogResult.TakeSurvey) {\r\n window.open(this.surveylink, '_blank');\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private convertToUTCTime(date: Date) {\r\n var utcDateTime = new Date(date.getTime() + date.getTimezoneOffset() * 60000);\r\n return utcDateTime;\r\n }\r\n\r\n private getStartTimes(examSession: IFullExamSession) {\r\n let examStartTime = new Date(examSession.startTime);\r\n let earliestStartTime = new Date(examStartTime);\r\n let latestStartTime = new Date(examStartTime);\r\n earliestStartTime.setMinutes(earliestStartTime.getMinutes() - this.examSessionSettings.earlyStartMinutes);\r\n latestStartTime.setMinutes(latestStartTime.getMinutes() + this.examSessionSettings.lateStartMinutes);\r\n return { earliestStartTime, latestStartTime };\r\n }\r\n\r\n private displayError(message: string, showTechError: boolean = false) {\r\n this.message = message;\r\n this.hasError = true;\r\n this.showTechError = showTechError;\r\n }\r\n}\r\n\r\n","\r\n\r\n {{message}}\r\n \r\n\r\n
\r\n

Exams from Home

\r\n\r\n
\r\n

Current Center: {{ ExamSession?.testingCenterName }} ({{ ExamSession?.testingCenterId }})

\r\n

Important Notes!

\r\n
    \r\n
  • \r\n The smaller windows display the Test Candidates' exams in progress, please do not click in or hover over them. And please keep your window at full screen while proctoring, do not resize your window!\r\n
  • \r\n
  • \r\n If the Test Candidate experiences an error, they will simply need to click on the link you provided them in order to reestablish the session. If necessary, have them reboot their computer and then try the link again.\r\n
  • \r\n
  • \r\n Chat Notification Legend\r\n
    3 Number of chat notifications
    \r\n
     New or unread chat(s)
    \r\n
     Viewed chat notification
    \r\n
  • \r\n
\r\n
\r\n\r\n
\r\n\r\n

Candidate Machines

\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n private currentYear: number = new Date().getFullYear();\r\n copyright: string = $localize `Copyright \\u00a9 1996-${(this.currentYear)} Pearson Education, Inc. or its affiliate(s). All rights reserved.`;\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
\r\n
\r\n
\r\n
\r\n Test Candidate Support\r\n \r\n \"Test\r\n \r\n
\r\n
\r\n
\r\n {{copyright}}
\r\n Terms | \r\n Privacy | \r\n Contact\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\n\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { SpinnerService } from '../services/spinner.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(private authService: AuthenticationService, private router: Router, private spinnerService: SpinnerService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n if (route.queryParams.sid) {\r\n this.authService.Logout();\r\n return this.siginWithSid(route.queryParams.sid);\r\n }\r\n\r\n if (this.authService.Jwt) {\r\n if (!this.authService.Proctor) {\r\n return this.authService.FetchProctor().pipe(\r\n map(() => { return true; }),\r\n catchError((e, caught) => {\r\n this.authService.Logout();\r\n this.router.navigate(['login']);\r\n return of(false);\r\n })\r\n )\r\n }\r\n return of(true);\r\n } else {\r\n this.router.navigate(['login']);\r\n return of(false);\r\n }\r\n }\r\n\r\n siginWithSid(sid: string): Observable {\r\n this.spinnerService.show();\r\n return this.authService.AuthenticateWithSid(sid).pipe(\r\n tap(() => this.spinnerService.hide()),\r\n map(\r\n result => {\r\n if (result && this.authService.Jwt) {\r\n this.router.navigate([''], {\r\n queryParams: { 'sid': null },\r\n queryParamsHandling: 'merge'\r\n });\r\n return true;\r\n }\r\n this.router.navigate(['login']);\r\n return false;\r\n }),\r\n catchError((err, caught) => {\r\n this.spinnerService.hide();\r\n this.router.navigate(['login']);\r\n return of(false);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, filter, flatMap, map } from 'rxjs/operators';\r\nimport { IExamSessionSettings } from '../models/IExamSessionSettings';\r\nimport { IFullExamSession } from '../models/IFullExamSession';\r\nimport { SystemErrorType } from '../models/SystemErrorType';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { ExamSessionService } from '../services/exam-session.service';\r\nimport { SpinnerService } from '../services/spinner.service';\r\nimport { AuthGuard } from './auth.guard';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class StartExamGuard implements CanActivate {\r\n\r\n /**\r\n * Key of proctor role\r\n */\r\n private proctorRoleKey = 3;\r\n /**\r\n * Access code\r\n */\r\n private accessCode: string = '';\r\n\r\n constructor(public authService: AuthenticationService, public router: Router, public spinnerService: SpinnerService, private examSessionService: ExamSessionService) {\r\n \r\n }\r\n\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n\r\n if (this.authService.Jwt && route.queryParams.accessCode) {\r\n this.accessCode = route.queryParams.accessCode;\r\n this.spinnerService.show();\r\n if (!this.authService.Proctor) {\r\n return this.authService.FetchProctor().pipe(\r\n flatMap((res) => { return this.startExam(this.accessCode); }),\r\n catchError((e, caught) => {\r\n this.authService.Logout();\r\n this.router.navigate(['login'], { queryParams: route.queryParams });\r\n return of(false);\r\n })\r\n )\r\n }\r\n return this.authService.ProctorSource.pipe(() => this.startExam(this.accessCode));\r\n } else {\r\n // Send to Login to verify and login page logic should send ba back here after.\r\n this.router.navigate(['login'], { queryParams: route.queryParams });\r\n return of(false);\r\n }\r\n }\r\n\r\n /**\r\n * Starts the exam after verifying examSessionSettings and proctor.\r\n * Routes proctor to error pages in event of error\r\n * @param accessCode A unique code for an exam session\r\n * @returns observable of true when successfully started and false otherwise\r\n */\r\n private startExam(accessCode: string): Observable {\r\n return this.examSessionService.getExamSessionSettings().pipe(\r\n // Verifies proctor and returns examSession when all conditions to start exam is met\r\n flatMap(examSessionSettings => {\r\n return this.examSessionService.getExamSessionByAccessCode(accessCode).pipe(map(examSession => {\r\n if (examSession) {\r\n this.spinnerService.hide();\r\n if (this.isWithinTime(examSession, examSessionSettings) && this.isProctorOfTestCenter(examSession?.testingCenterId)) {\r\n return examSession;\r\n }\r\n return null;\r\n } else {\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.WRONG_EXAM_CODE } });\r\n return null;\r\n }\r\n }));\r\n }),\r\n // Starts the examSession recieved from flatMap above\r\n flatMap(examSessionToStart => {\r\n if (examSessionToStart) {\r\n return this.startSessionInLabManager(examSessionToStart);\r\n }\r\n return of(false);\r\n }),\r\n catchError(error => {\r\n this.spinnerService.hide()\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.UNKNOWN } });\r\n return of(false);\r\n })\r\n );\r\n }\r\n\r\n /**\r\n *\r\n * Proctor must have proctor role and must be associated to testing center\r\n * @param testingCenterId The testingCenter of exam session\r\n * @returns True when proctor is a proctor of the testing center;\r\n */\r\n private isProctorOfTestCenter(testingCenterId: number): boolean {\r\n if (this.authService.Proctor) {\r\n var proctorCenter = this.authService.Proctor.testCenters.find(x => {\r\n return x.CustomerID === testingCenterId && x.RoleID === this.proctorRoleKey;\r\n });\r\n if (proctorCenter) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.WRONG_TEST_CENTER } });\r\n return false;\r\n }\r\n }\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.UNKNOWN } });\r\n return false;\r\n }\r\n\r\n /**\r\n * Verifies if the exam session is within the window to start exam session\r\n * Routes Proctor to the Lobby when they are early.\r\n * @param examSession\r\n * @param examSessionSettings\r\n * @returns \r\n */\r\n private isWithinTime(examSession: IFullExamSession, examSessionSettings: IExamSessionSettings): boolean {\r\n let examStartTime = new Date(examSession.startTime);\r\n let earliestStartTime = new Date(examStartTime);\r\n let latestStartTime = new Date(examStartTime);\r\n let maximumExamMinutes = new Date(examStartTime);\r\n earliestStartTime.setMinutes(earliestStartTime.getMinutes() - examSessionSettings.earlyStartMinutes);\r\n latestStartTime.setMinutes(latestStartTime.getMinutes() + examSessionSettings.lateStartMinutes);\r\n maximumExamMinutes.setMinutes(maximumExamMinutes.getMinutes() + examSessionSettings.maximumExamMinutes);\r\n\r\n let currentTime = new Date();\r\n currentTime = this.convertToUTCTime(currentTime);\r\n\r\n if (currentTime.getTime() < earliestStartTime.getTime()) {\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.TOO_EARLY_TO_START, accessCode: this.accessCode } });\r\n return false;\r\n } else if ((currentTime.getTime() > latestStartTime.getTime() && examSession.examState.toLowerCase().trim() != 'started') || (currentTime.getTime() > maximumExamMinutes.getTime())) {\r\n // TODO: What if Proctor tries to start old exam from URL?\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.EXPIRED_ACCESS_CODE, accessCode: this.accessCode } });\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the miliseconds of date to the utc miliseconds. (Timezone offset cannot be changed)\r\n * @param date The date to convert\r\n * @returns A date that has its miliseconds (date.getTime()) converted to utc\r\n */\r\n private convertToUTCTime(date: Date) {\r\n var utcDateTime = new Date(date.getTime() + date.getTimezoneOffset() * 60000);\r\n return utcDateTime;\r\n }\r\n\r\n /**\r\n * Starts the examSession in Lab Manager.\r\n * Routes proctor to System Outage page when not enough machines available or to Unknown for other errors.\r\n * @param examSession\r\n */\r\n private startSessionInLabManager(examSession: IFullExamSession): Observable {\r\n this.spinnerService.show();\r\n return this.examSessionService.startExamSession(examSession.examSessionId, examSession.testingCenterId).pipe(\r\n map(x => {\r\n this.spinnerService.hide();\r\n return true;\r\n }),\r\n catchError(error => {\r\n this.spinnerService.hide();\r\n if (error && error.status === 409 && !error.error.enoughMachines) {\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.SYSTEM_OUTAGE } });\r\n } else {\r\n this.router.navigate(['/system/error'], { queryParams: { error: SystemErrorType.UNKNOWN } });\r\n }\r\n return of(false);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnInit} from '@angular/core';\r\nimport { ExamSessionService } from '../services/exam-session.service';\r\n\r\n@Component({\r\n selector: 'app-header-body-separator',\r\n templateUrl: './header-body-separator.component.html',\r\n styleUrls: ['./header-body-separator.component.scss']\r\n})\r\nexport class HeaderBodySeparatorComponent implements OnInit {\r\n @Input() accessCode: any;\r\n \r\n constructor(private examSessionService: ExamSessionService) { }\r\n\r\n ngOnInit(): void {}\r\n\r\n}\r\n","
\r\n
\r\n
\r\n {{accessCode}}\r\n
\r\n \r\n \r\n
\r\n
\r\n","import {Component, OnInit} from '@angular/core';\r\nimport {faUser} from '@fortawesome/pro-solid-svg-icons';\r\nimport {SpinnerService} from \"../services/spinner.service\";\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { IListOption } from '../Controls/list-option';\r\nimport { Router } from '@angular/router';\r\nimport { isNull } from '@angular/compiler/src/output/output_ast';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n accessCode: string = '';\r\n proctorName: string = \"\";\r\n userSolidIcon = faUser;\r\n userOptions: IListOption[] = [\r\n { optionId: 'logout', label: $localize`Log out` }\r\n ];\r\n loggedIn: boolean = false;\r\n\r\n constructor(private authenticationService: AuthenticationService,\r\n private spinnerService: SpinnerService,\r\n private route: Router) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinnerService.show();\r\n this.authenticationService.ProctorSource.subscribe(proctor => {\r\n this.proctorName = `${proctor.FirstName} ${proctor.LastName}`\r\n this.spinnerService.hide();\r\n });\r\n this.authenticationService.JwtSource.subscribe(jwt => {\r\n this.loggedIn = !(!jwt || !jwt.trim());\r\n });\r\n }\r\n\r\n handleUserOptionClick(option: IListOption): void {\r\n if (option.optionId === 'logout')\r\n this.logout();\r\n }\r\n\r\n logout(): void {\r\n this.authenticationService.Logout();\r\n this.route.navigate(['/login']);\r\n this.proctorName = '';\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \"Certiport\"\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n

{{proctorName}}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * InjectionToken used to retrieve the base href of the webpage.\r\n */\r\nexport const BASE_HREF = new InjectionToken('BASE_HREF', {\r\n providedIn: 'root',\r\n factory: () => document.getElementsByTagName('base')[0].href\r\n});\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * InjectionToken used to retrieve the base url of the application.\r\n *\r\n * This is set to be empty so that all REST requests from the application are properly routed to the backend\r\n * without appending the locale.\r\n */\r\nexport const BASE_URL = new InjectionToken('BASE_URL', {\r\n providedIn: 'root',\r\n factory: () => '/'\r\n});\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport { AuthenticationService } from \"../services/authentication.service\";\r\nimport { SpinnerService } from \"../services/spinner.service\";\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private redirectCodes: number[] = [401, 403];\r\n\r\n constructor(private router: Router, private _authService: AuthenticationService, private _spinner: SpinnerService, ) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n if (this._authService.Jwt) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${this._authService.Jwt}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(request).pipe(\r\n tap(() => { },\r\n (err: any) => {\r\n if (err instanceof HttpErrorResponse) {\r\n if (this.redirectCodes.indexOf(err.status) === -1) {\r\n return;\r\n }\r\n this._authService.Logout();\r\n this._spinner.hide();\r\n this.router.navigate(['login']);\r\n }\r\n }));\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nexport enum MainPage {\r\n dashboard = 0,\r\n wizard = 1\r\n}\r\n\r\n@Component({\r\n selector: 'app-main-content',\r\n templateUrl: './main-content.component.html',\r\n styleUrls: ['./main-content.component.scss']\r\n})\r\nexport class MainContentComponent implements OnInit {\r\n currentPage: MainPage = MainPage.dashboard;\r\n accessCode: any;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n onSubmitWizard(accessCode: string): void {\r\n this.accessCode = accessCode;\r\n this.currentPage = MainPage.dashboard;\r\n }\r\n}\r\n","/**\r\n * Enum for different types of Start Session Errors.\r\n */\r\nexport enum SystemErrorType {\r\n /**\r\n * Represents an Unknown errorType.\r\n */\r\n UNKNOWN = 'unknown',\r\n\r\n /**\r\n * Represents receiving an incorrect exam code.\r\n */\r\n WRONG_EXAM_CODE = 'wrongExamCode',\r\n\r\n /**\r\n * Represent receiving an incorrect test center.\r\n */\r\n WRONG_TEST_CENTER = 'wrongTestCenter',\r\n\r\n /**\r\n * Represent too early to start a session\r\n */\r\n TOO_EARLY_TO_START = 'tooEarlyToStart',\r\n\r\n /**\r\n * Not enough machines for the exam session\r\n */\r\n SYSTEM_OUTAGE = 'systemOutage',\r\n\r\n\r\n /**\r\n * Expired access code\r\n */\r\n EXPIRED_ACCESS_CODE = 'expiredAccessCode',\r\n}\r\n","export enum TimeZone {\r\n ALASKA = 'Alaska',\r\n PACIFIC = 'Pacific Time (US & Canada)',\r\n MOUNTAIN = 'Mountain Time (US & Canada)',\r\n CENTRAL = 'Central Time (US & Canada)',\r\n EASTERN = 'Eastern Time (US & Canada)',\r\n BOGOTA = 'Bogota, Lima, Quito, Rio Branco',\r\n GUADALAJARA = 'Guadalajara, Mexico City, Monterrey',\r\n CARACAS = 'Caracas',\r\n CUIABA = 'Cuiaba',\r\n BUENOS_AIRES = 'City of Buenos Aires',\r\n GEORGETOWN = 'Georgetown, La Paz, Manaus, San Juan',\r\n MID_ATLANTIC = 'Mid-Atlantic - Old',\r\n AZORES = 'Azores',\r\n CABO_VERDE = 'Cabo Verde Is.',\r\n DUBLIN = 'Dublin, Edinburgh, Lisbon, London',\r\n WEST_CENTRAL_AFRICA = 'West Central Africa',\r\n CASABLANCA = 'Casablanca',\r\n SARAJEVO = 'Sarajevo, Skopje, Warsaw, Zagreb',\r\n CHISINAU = 'Chisinau',\r\n KUWAIT = 'Kuwait, Riyadh',\r\n ABU_DHABI = 'Abu Dhabi, Muscat',\r\n ISTANBUL = 'Istanbul',\r\n MOSCOW = 'Moscow, St. Petersburg',\r\n TBILISI = 'Tbilisi',\r\n BAKU = 'Baku',\r\n HAWAII = 'Hawaii',\r\n TEHRAN = 'Tehran',\r\n ISLAMABAD = 'Islamabad, Karachi',\r\n CHENNAI = 'Chennai, Kolkata, Mumbai, New Delhi',\r\n KATHMANDU = 'Kathmandu',\r\n DHAKA = 'Dhaka',\r\n YANGON = 'Yangon (Rangoon)',\r\n KUALA_LUMPUR = 'Kuala Lumpur, Singapore',\r\n BEIJING = 'Beijing, Chongqing, Hong Kong, Urumqi',\r\n SEOUL = 'Seoul',\r\n DARWIN = 'Darwin',\r\n CANBERRA = 'Canberra, Melbourne, Sydney',\r\n SOLOMON_IS = 'Solomon Is., New Caledonia',\r\n BRISBANE = 'Brisbane',\r\n ADELAIDE = 'Adelaide',\r\n FIJI = 'Fiji',\r\n AUCKLAND = 'Auckland, Wellington',\r\n NUKU_ALOFA = 'Nuku\\'alofa',\r\n KIRITIMATI_IS = 'Kiritimati Island'\r\n}\r\n","export default class ValidationStatus {\r\n IsValid: boolean = true;\r\n ErrorMessage: string = \"\";\r\n\r\n public SetValidationStatus(isValid: boolean, errorMessage: string) {\r\n this.IsValid = isValid;\r\n this.ErrorMessage = errorMessage;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-exams-view-page',\r\n templateUrl: './exams-view-page.component.html',\r\n styleUrls: ['./exams-view-page.component.scss']\r\n})\r\nexport class ExamsViewPageComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\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-login-page',\r\n templateUrl: './login-page.component.html',\r\n styleUrls: ['./login-page.component.scss']\r\n})\r\nexport class LoginPageComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\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-session-management-page',\r\n templateUrl: './session-management-page.component.html',\r\n styleUrls: ['./session-management-page.component.scss']\r\n})\r\nexport class SessionManagementPageComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SystemErrorType } from '../../models/SystemErrorType';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ExamSessionService } from '../../services/exam-session.service';\r\nimport { IExamSessionSettings } from '../../models/IExamSessionSettings';\r\nimport { AppConstants } from '../../constants/AppConstants';\r\n\r\n/**\r\n * Page for displaying any start session errors.\r\n */\r\n@Component({\r\n selector: 'app-start-session-error',\r\n templateUrl: './system-error.component.html',\r\n styleUrls: ['./system-error.component.scss']\r\n})\r\nexport class SystemErrorComponent implements OnInit {\r\n public errorType: SystemErrorType | undefined;\r\n public errorTypeEnum = SystemErrorType;\r\n public examSessionSettings!: IExamSessionSettings;\r\n accessCode = \"\";\r\n supportURL = AppConstants.SupportURL;\r\n /**\r\n * Empty constuctor.\r\n *\r\n * @param activatedRoute\r\n */\r\n public constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router, private examSessionService: ExamSessionService\r\n ) {\r\n this.examSessionService.getExamSessionSettings().subscribe(sessionSettings => {\r\n this.examSessionSettings = sessionSettings\r\n });\r\n }\r\n\r\n /**\r\n * Initializes the page.\r\n */\r\n public ngOnInit(): void {\r\n\r\n this.accessCode = this.activatedRoute.snapshot.queryParams.accessCode\r\n\r\n this.errorType = this.activatedRoute.snapshot.queryParams.error ?\r\n this.activatedRoute.snapshot.queryParams.error :\r\n SystemErrorType.UNKNOWN;\r\n }\r\n\r\n startSession() {\r\n this.router.navigate(['/exams-view'], { queryParams: { accessCode: this.accessCode } });\r\n }\r\n\r\n public returnToDashboard(): void {\r\n this.router.navigate(['/']);\r\n }\r\n}\r\n","\r\n
\r\n

Exams from Home System Error

\r\n
\r\n \r\n \r\n

Your exam session cannot be started until {{examSessionSettings.earlyStartMinutes}} minutes prior to the start time.

\r\n

Click “Start session” when you are within the start session timeframe.

\r\n Start session\r\n
\r\n \r\n

You cannot proctor this exam session at this time because you are not associated with the test center.

\r\n

Please ask your Organization Administrator for assistance.

\r\n
\r\n \r\n

Your exam session cannot start due to a technical issue.

\r\n

Please try to start your exam session again.

\r\n
\r\n \r\n

The system is currently experiencing technical difficulties.

\r\n

Please reschedule your exam session.

\r\n Return to dashboard\r\n
\r\n \r\n

The exam session (access code {{accessCode}}) has expired. Please schedule a new session.

\r\n
\r\n \r\n

Your exam session cannot start due to a technical issue.

\r\n

Please try to start your exam session again.

\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AppConstants } from '../constants/AppConstants';\r\n\r\n@Component({\r\n selector: 'app-placeholder',\r\n templateUrl: './placeholder.component.html',\r\n styleUrls: ['./placeholder.component.scss']\r\n})\r\nexport class PlaceholderComponent implements OnInit {\r\n\r\n //This component is a placeholder for strings that are not in use yet.\r\n\r\n Errors_System_outage: string = $localize`The system is currently experiencing technical difficulties. Please refresh this page over the next couple of minutes.`;\r\n\r\n Phone: string = \"1-800-555-1212\";\r\n Errors_System_outage_subtext: string = $localize`If the problem persists contact technical support at ${this.Phone}`;\r\n\r\n Errors_no_TC_dashboard: string = $localize`You cannot create an exam session at this time because you are not associated with any test center. Please ask your Organization Administrator for assistance.`;\r\n\r\n Errors_dashboard_start_system_errors: string = $localize`Our system is currently experiencing technical difficulties. Please refresh this page in several minutes. You may also contact technical support at x-xxx-xxx-xxxx.`;\r\n\r\n firstNum = 1;\r\n secondNum = 2;\r\n Candidates_in_exam: string = $localize `Candidates in exam (${this.firstNum} of ${this.secondNum})`;\r\n\r\n If_you_are_not_proctoring_this_session_info: string = $localize`If you are not proctoring this session, you will need to manually email the individual you intend to proctor this session and provide them the confirmation email.`;\r\n\r\n Exam_time_starttime_hour: string = $localize`Hour`;\r\n Exam_time_starttime_minutes: string = $localize`Minutes`;\r\n Exam_time_starttime_AM_PM: string = $localize`AM/PM`;\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","import { Injectable } from \"@angular/core\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\n\r\nexport interface ISignalRHub {\r\n initialize(url: string): void;\r\n start(): Promise;\r\n on(methodName: string, newMethod: () => void): void;\r\n invoke(methodName: string, ...args: any[]): Promise;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalRHub implements ISignalRHub {\r\n private hubConnection!: signalR.HubConnection;\r\n\r\n constructor() { }\r\n\r\n initialize(url: string): void {\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(url)\r\n .withAutomaticReconnect()\r\n .configureLogging(signalR.LogLevel.Debug)\r\n .build();\r\n }\r\n\r\n start(): Promise {\r\n return this.hubConnection.start();\r\n }\r\n\r\n on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n this.hubConnection.on(methodName, newMethod);\r\n }\r\n\r\n invoke(methodName: string, ...args: any[]): Promise {\r\n console.log(\"\");\r\n return this.hubConnection.invoke(methodName, ...args)\r\n .then(\r\n (x) => console.log(\"invoke success: \" + x), //fulfilled\r\n (x) => console.error(\"invoke rejected: \" + x) //reject\r\n )\r\n .catch(error => console.error(\"invoke catch: \" + error));\r\n }\r\n\r\n logID(): void {\r\n console.log(\"ProctorConnectionID: \" + this.hubConnection.connectionId + \" at url: \" + this.hubConnection.baseUrl + \". status: \" + this.hubConnection.state);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, filter, map, tap } from 'rxjs/operators'\r\nimport { IProctor, IProctorAuthentication } from '../models/IProctorInfo';\r\nimport { TimeoutService } from './timeout.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n private _proctorSubject = new BehaviorSubject(null as unknown as IProctor);\r\n private _jwtSubject = new BehaviorSubject('');\r\n\r\n constructor(\r\n private _httpClient: HttpClient,\r\n private _timeoutService: TimeoutService,\r\n @Inject(BASE_URL) private _baseUrl: string\r\n ) {\r\n this._timeoutService.timeoutOccurred.subscribe(() => this.Logout());\r\n }\r\n\r\n\r\n public ProctorSource: Observable = this._proctorSubject.pipe(filter(v => v != null));\r\n\r\n public JwtSource: Observable = this._jwtSubject;\r\n\r\n public get Jwt() {\r\n return localStorage.getItem('proctor_jwt');\r\n }\r\n\r\n public get Proctor() {\r\n return this._proctorSubject.getValue();\r\n }\r\n\r\n public AuthenticateWithSid(sid: string): Observable {\r\n if (sid !== null && sid !== undefined) {\r\n const url = this._baseUrl + `api/Proctor?sessionId=${sid}`;\r\n const source = this._httpClient.get(url);\r\n return source.pipe(\r\n map(\r\n pa => {\r\n this.setJwt(pa.jwt);\r\n this.setProctor(pa.proctor);\r\n return true;\r\n },\r\n () => false\r\n ),\r\n tap(() => this._timeoutService.init()),\r\n catchError(error => {\r\n this._timeoutService.stop();\r\n return throwError(error);\r\n }));\r\n }\r\n else {\r\n return of(false);\r\n }\r\n }\r\n\r\n public Authenticate(username: string, password: string): Observable {\r\n if (username && password) {\r\n const json = { username: username, password: password };\r\n const source = this._httpClient.post(this._baseUrl + 'api/Authentication/Login', json);\r\n return source.pipe(\r\n map(\r\n pa => {\r\n this.setJwt(pa.jwt);\r\n this.setProctor(pa.proctor);\r\n return true\r\n },\r\n () => false\r\n ),\r\n tap(() => this._timeoutService.init()),\r\n catchError(error => {\r\n this._timeoutService.stop();\r\n return throwError(error);\r\n }));\r\n }\r\n else {\r\n return of(false);\r\n }\r\n }\r\n\r\n public FetchProctor(): Observable {\r\n const source = this._httpClient.get(this._baseUrl + 'api/Proctor/Refresh');\r\n\r\n return source.pipe(\r\n map(\r\n (pa: IProctorAuthentication) => {\r\n this.setJwt(pa.jwt);\r\n this.setProctor(pa.proctor);\r\n return true;\r\n },\r\n () => false\r\n )\r\n )\r\n }\r\n\r\n public Logout(): void {\r\n this.clearJwt();\r\n this.clearProctor();\r\n }\r\n\r\n private setProctor(proctor: IProctor): void {\r\n this._proctorSubject.next(proctor);\r\n }\r\n\r\n private clearProctor(): void {\r\n this._proctorSubject.next(null as unknown as IProctor);\r\n }\r\n\r\n private setJwt(jwt: string): void {\r\n localStorage.setItem('proctor_jwt', jwt);\r\n this._jwtSubject.next(jwt);\r\n }\r\n\r\n private clearJwt(): void {\r\n delete localStorage['proctor_jwt'];\r\n this._jwtSubject.next('');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CandidatesInExamService {\r\n\r\n private candidatesCount = new Subject();\r\n private candidate = new Subject();\r\n\r\n setCandidatesCount(candidatesCount: number) {\r\n this.candidatesCount.next(candidatesCount);\r\n }\r\n getCandidatesCount() {\r\n return this.candidatesCount.asObservable();\r\n }\r\n\r\n setCandidate(candidate: ICandidate) {\r\n this.candidate.next(candidate);\r\n }\r\n\r\n getCandidate() {\r\n return this.candidate.asObservable();\r\n }\r\n}\r\n\r\n\r\nexport interface ICandidate {\r\n CandidateId: string;\r\n FirstName: string;\r\n LastName: string;\r\n Symlink: string;\r\n}\r\n\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { IExamSessionInfo } from '../models/IExamSessionInfo';\r\nimport { IExamSessionInput } from '../models/IExamSessionInput';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { IFullExamSession } from '../models/IFullExamSession';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { IExamSessionSettings } from \"../models/IExamSessionSettings\";\r\nimport { text } from '@fortawesome/fontawesome-svg-core';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\nimport { IServerConfiguration } from '../models/IServerConfiguration';\r\nimport { config } from 'process';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationsService {\r\n private configuration!: IServerConfiguration;\r\n\r\n constructor(\r\n private _httpClient: HttpClient,\r\n @Inject(BASE_URL) private _baseUrl: string) { }\r\n\r\n getSurveyLink(): Observable {\r\n const url = this._baseUrl + `api/ExamSessions/GetSurveyLink`;\r\n return this._httpClient.get(url, { responseType: 'text' })\r\n }\r\n getConfigurationSettings() {\r\n return this._httpClient.get(this._baseUrl + `api/ConfigurationSettings/ConfigurationData`)\r\n .pipe(\r\n map(\r\n config => {\r\n this.configuration = config;\r\n },\r\n ),\r\n catchError(error => {\r\n return throwError(error);\r\n }));\r\n }\r\n get ChatDomain() {\r\n return this.configuration.chatDomain;\r\n }\r\n get AccountRecoveryURL() {\r\n return this.configuration.accountRecoveryURL;\r\n }\r\n get SupportUrl() {\r\n return this.configuration.supportUrl;\r\n }\r\n get CandidateSupportUrl() {\r\n return this.configuration.candidateSupportUrl;\r\n }\r\n get EfhInfoUrl() {\r\n return this.configuration.efhInfoUrl;\r\n }\r\n\r\n get ChatCName() {\r\n return this.configuration.chatCName;\r\n }\r\n\r\n get OutageNotificationWindow() {\r\n return this.configuration.outageNotificationWindow;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ITimeZoneRegion } from '../models/ITimeZone';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateTimeService {\r\n\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n getTimeZone(): Observable {\r\n const url = this.baseUrl + 'api/TimeZoneRegion/GetTimeZonesAndRegion';\r\n return this.httpClient.get(url);\r\n }\r\n\r\n getCurrentDateByWindowsTimeZoneId(windowsTimeZoneId: string): Observable {\r\n return this.httpClient.get(\r\n this.baseUrl + `api/TimeZoneRegion/getCurrentDateByWindowsTimeZoneId/${windowsTimeZoneId}`);\r\n }\r\n \r\n getWindowsCurrentTimezone(browserTimezone: string): Observable {\r\n const url = this.baseUrl + `api/TimeZoneRegion/GetWindowsCurrentTimezone?browserTimezone=${browserTimezone}`;\r\n return this.httpClient.get(url, { responseType: 'text' })\r\n }\r\n \r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport abstract class EmailValidationBase {\r\n abstract isValidAddress(email: string): boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmailValidationService extends EmailValidationBase {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n isValidAddress(email: string): boolean {\r\n var reg = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return reg.test(email);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmailService {\r\n\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n sendEmail(accessCode: string, emailAddress = ''): Observable {\r\n return this.httpClient\r\n .post(this.baseUrl + `api/Email?accessCode=${accessCode}&proctorEmail=${emailAddress}`, {});\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { IExamSessionInfo } from '../models/IExamSessionInfo';\r\nimport { IExamSessionInput } from '../models/IExamSessionInput';\r\nimport { Observable } from 'rxjs';\r\nimport { IFullExamSession } from '../models/IFullExamSession';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { IExamSessionSettings } from \"../models/IExamSessionSettings\";\r\nimport { text } from '@fortawesome/fontawesome-svg-core';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExamSessionService {\r\n\r\n constructor(\r\n private _httpClient: HttpClient,\r\n @Inject(BASE_URL) private _baseUrl: string,\r\n private _authenticationService: AuthenticationService) { }\r\n\r\n createExamSessionAndGetAccessCode(examSessionInput: IExamSessionInput): Observable {\r\n return this._httpClient\r\n .post(this._baseUrl + 'api/ExamSessions', examSessionInput);\r\n }\r\n\r\n getExamSessions(): Observable {\r\n return this._httpClient\r\n .get(this._baseUrl + `api/ExamSessions/`);\r\n }\r\n\r\n getExamSessionByAccessCode(accesscode: string): Observable {\r\n return this._httpClient\r\n .get(\r\n this._baseUrl + `api/ExamSessions/session/${accesscode}`);\r\n }\r\n\r\n getExamSessionSettings(): Observable {\r\n return this._httpClient\r\n .get(this._baseUrl + 'api/ExamSessions/settings');\r\n }\r\n\r\n startExamSession(examSessionId: number, testingCenterId: number): Observable {\r\n return this._httpClient\r\n .post(this._baseUrl + `api/ExamSessions/${examSessionId}/start?testCenterId=${testingCenterId}`, {});\r\n }\r\n\r\n cancelExamSession(examSessionId: number, testingCenterId: number): Observable {\r\n return this._httpClient\r\n .delete(`${this._baseUrl}api/ExamSessions/${examSessionId}?testCenterId=${testingCenterId}`);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport IExam from '../models/IExam';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Observable } from 'rxjs';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n/**\r\n * Service for interacting with Exams.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExamService {\r\n /**\r\n * Dictionary of cached exams by language code\r\n */\r\n private cachedExams = new Map();\r\n\r\n /**\r\n * Empty constructor.\r\n *\r\n * @param httpClient used to make http calls\r\n * @param baseUrl base url for the app\r\n * @param _authenticationService used to get secure headers.\r\n */\r\n public constructor(\r\n private httpClient: HttpClient,\r\n @Inject(BASE_URL) private baseUrl: string,\r\n private _authenticationService: AuthenticationService\r\n ) { }\r\n\r\n /**\r\n * Returns EFH Supported exams.\r\n *\r\n * @param languageCode string for the language code\r\n * @returns Observable list of IExam objects.\r\n */\r\n public getEFHSupportedExams(languageCode: string): Observable {\r\n return this.httpClient.get(this.baseUrl + `api/exams?languageCode=${languageCode}`);\r\n }\r\n\r\n /**\r\n * Retrieves an Exam via the exam code and language code.\r\n *\r\n * @param examCode\r\n * @param languageCode\r\n * @returns Promise resolving to an IExam object. May be undefined.\r\n */\r\n public async getExam(examCode: string, languageCode: string): Promise {\r\n if (!this.cachedExams.has(languageCode)) {\r\n this.cachedExams.set(languageCode, await this.getEFHSupportedExams(languageCode).toPromise());\r\n }\r\n return this.cachedExams.get(languageCode)?.find((exam: IExam) => exam.ExamSeriesCode === examCode);\r\n }\r\n\r\n // Caches exams for multiple languages asynchronously\r\n public async precacheExams(languageCodes: string[]) {\r\n const uniqueLanguages = [...new Set(languageCodes)];\r\n await Promise.all(\r\n uniqueLanguages.map(async (lang) => {\r\n if (!this.cachedExams.has(lang))\r\n this.cachedExams.set(lang, await this.getEFHSupportedExams(lang).toPromise());\r\n }));\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport ICandidateVm from '../models/ICandidateVm';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\nimport IOutage from '../models/IOutage';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LabmanagerService {\r\n\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n getCandidateVMs(accessCode: string) {\r\n return this.httpClient.get(this.baseUrl + `api/Machines/?accessCode=${accessCode}`);\r\n }\r\n\r\n getNextOutage() {\r\n return this.httpClient.get(this.baseUrl + `api/Outages/Next`);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ILanguage } from '../models/ILanguage';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LanguageService {\r\n\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n getLanguages(): Observable {\r\n const url = this.baseUrl + 'api/EfhLanguage/languages';\r\n return this.httpClient.get(url);\r\n\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IReleaseVmInput } from '../models/IReleaseVmInput';\r\nimport { IRestartVmInput } from '../models/IRestartVmInput';\r\nimport { IResponseResult } from '../models/IResponseResult';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionInfoService {\r\n\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n releaseVM(releaseVmInput: IReleaseVmInput): Observable {\r\n return this.httpClient\r\n .post(\r\n this.baseUrl + 'api/SessionInfo/releaseVM',\r\n releaseVmInput);\r\n }\r\n\r\n restartVM(restartVmInput: IRestartVmInput): Observable {\r\n\r\n return this.httpClient\r\n .post(\r\n this.baseUrl + 'api/SessionInfo/restartVM',\r\n restartVmInput);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { SignalRHub } from \"./SignalRHub\";\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalRService {\r\n\r\n constructor(private _signalRHub: SignalRHub, @Inject(BASE_URL) private _baseUrl: string) { }\r\n\r\n public startConnection(accessCode: string): Promise {\r\n this._signalRHub.initialize(this._baseUrl + 'ProctorHub');\r\n return this.start(accessCode);\r\n }\r\n\r\n private start(accessCode: string): Promise {\r\n return this._signalRHub.start()\r\n .then(() => {\r\n this.subscribe(accessCode);\r\n })\r\n .catch((err: any) => console.log('SignalR connection error:' + err));\r\n }\r\n\r\n public addCandidateLoggedInListener(listener: (accessCode: string, symlink: string, joinUrl: string, candidateId: string, candidateFirstName: string, candidateLastName: string, assignedToCandidateTime: string) => void): void {\r\n this._signalRHub.on('machineAdded', (accessCode: string, symlink: string, joinUrl: string, candidateId: string, candidateFirstName: string, candidateLastName: string, assignedToCandidateTime: string) => {\r\n listener(accessCode, symlink, joinUrl, candidateId, candidateFirstName, candidateLastName, assignedToCandidateTime);\r\n })\r\n }\r\n\r\n public addCompleteExamListener(listener: (symlink: string) => void): void {\r\n this._signalRHub.on('completeExam', (symlink: string) => {\r\n listener(symlink);\r\n })\r\n }\r\n\r\n public addCandidateAutoRefreshListner(listener: (symlink: string) => void): void {\r\n this._signalRHub.on('candidateAutoRefresh', (symlink: string) => {\r\n listener(symlink);\r\n })\r\n }\r\n\r\n private subscribe(accessCode: string): Promise {\r\n return this._signalRHub.invoke(\"Subscribe\", accessCode);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SignalRHub } from './SignalRHub';\r\nimport { environment } from './../../environments/environment';\r\nimport { symlink } from 'fs';\r\nimport ICandidateVm from '../models/ICandidateVm';\r\nimport { ConfigurationsService } from './configurations.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SignalRChatService {\r\n private _signalRHub: SignalRHub = new SignalRHub();\r\n constructor(private configurationsService: ConfigurationsService) { }\r\n\r\n public initConnection(): void {\r\n console.log(\"starting chat connection at \" + this.configurationsService.ChatDomain)\r\n this._signalRHub.initialize(`https://${this.configurationsService.ChatDomain}/chat`);\r\n }\r\n\r\n public stopConnection(accessCode: string): Promise {\r\n return this._signalRHub.invoke(\"LeaveRoom\", accessCode, '\"Todo--Provide machine/candidate-specific information.\"', true);\r\n }\r\n\r\n public updateProctor(accessCode: string): Promise {\r\n return this._signalRHub.invoke(\"UpdateProctor\", accessCode);\r\n }\r\n\r\n public start(accessCode: string): Promise {\r\n return this._signalRHub.start()\r\n .then(() => {\r\n this._signalRHub.logID();\r\n this.subscribe(accessCode);\r\n })\r\n .catch((err: any) => {\r\n console.log('SignalR connection error in start:' + err);\r\n });\r\n }\r\n\r\n public addReceiveMessageListener(listener: (symlink: string, userName: string) => void): void {\r\n this._signalRHub.on('ReceiveMessage', (symlink, un) => {\r\n listener(symlink, un);\r\n });\r\n }\r\n\r\n public addReceiveLoggedInCandidateListener(listener: (symlink: string, displayName: string) => void): void {\r\n this._signalRHub.on('ReceiveLoggedInCandidate', (symlink, displayName) => {\r\n listener(symlink, displayName);\r\n });\r\n }\r\n\r\n public addRefreshProctorIFrameListener(listener: (symlink: string) => void): void {\r\n this._signalRHub.on('RefreshProctorIFrame', (symlink) => {\r\n listener(symlink);\r\n });\r\n }\r\n\r\n public logID(): void {\r\n this._signalRHub.logID();\r\n }\r\n\r\n private subscribe(accessCode: string): Promise {\r\n console.log('Updating Proctor with code: ' + accessCode);\r\n return this._signalRHub.invoke(\"UpdateProctor\", accessCode)\r\n .then(\r\n (x) => console.log(\"UpdateProctor success: \" + x), //fulfilled\r\n (x) => console.error(\"UpdateProctor rejected: \" + x) //reject\r\n )\r\n .catch(error => console.error(\"UpdateProctor error: \" + error));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nexport interface ISpinnerState {\r\n show: boolean\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpinnerService {\r\n\r\n private _spinnerSubject = new Subject();\r\n\r\n spinnerState = >this._spinnerSubject;\r\n\r\n show() {\r\n this._spinnerSubject.next({ show: true });\r\n }\r\n\r\n hide() {\r\n this._spinnerSubject.next({ show: false });\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 TimeZoneOffsetService {\r\n\r\n constructor() { }\r\n\r\n formatOffset(offset: number): string {\r\n if (offset === 0)\r\n return '';\r\n if (offset > 0)\r\n return '+' + offset.toString();\r\n return offset.toString();\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n/**\r\n * Service for dealing with Timing out the user.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeoutService {\r\n\r\n /**\r\n * Behavior subject for doing the timeout.\r\n */\r\n public readonly timeoutOccurred = new EventEmitter();\r\n\r\n /**\r\n * The browser interval that checks for whether the user should be timed out.\r\n */\r\n private interval: number = 0;\r\n\r\n /**\r\n * Key for key-value pair in local storage for when the timeout should be happen.\r\n */\r\n private static readonly TIMEOUT_KEY: string = 'OnDemand-timeoutTime';\r\n\r\n /**\r\n * Key for key-value pair in local storage for how long to wait until the timeout should happen.\r\n */\r\n private static readonly TIMEOUT_LENGTH: number = 900000;\r\n\r\n /**\r\n * Default constructer.\r\n *\r\n * @param router Angular Router object.\r\n */\r\n public constructor(\r\n private router: Router,\r\n ) { }\r\n\r\n /**\r\n * Initializes the timeout detections.\r\n */\r\n public init(): void {\r\n this.update();\r\n this.registerEventListeners();\r\n this.registerActionListening();\r\n }\r\n\r\n /**\r\n * Disables the timeout detections if they're ongoing.\r\n */\r\n public stop(): void {\r\n this.removeEventListeners();\r\n window.clearInterval(this.interval);\r\n localStorage.removeItem(TimeoutService.TIMEOUT_KEY);\r\n }\r\n\r\n /**\r\n * Does the actual timeout and navigates the user back to the login page.\r\n */\r\n public timeout(): void {\r\n this.stop();\r\n this.timeoutOccurred.emit();\r\n this.router.navigate([ '/login' ]);\r\n }\r\n\r\n /**\r\n * Compares the current time to the times in local storage. Determins whether the modal should display and whether\r\n * the timeout should occur.\r\n */\r\n private checkTimeout(): void {\r\n let now: number = Date.now();\r\n let timeoutTime: number = 0;\r\n\r\n try {\r\n timeoutTime = Number(localStorage.getItem(TimeoutService.TIMEOUT_KEY));\r\n } catch (e) {\r\n this.stop();\r\n }\r\n\r\n if (now >= timeoutTime) {\r\n this.timeout();\r\n }\r\n }\r\n\r\n /**\r\n * Registers the interval that checks against the timeout.\r\n */\r\n private registerActionListening(): void {\r\n this.interval = window.setInterval(() => {\r\n this.checkTimeout();\r\n }, 1000);\r\n }\r\n\r\n /**\r\n * Registers the timeout related event listeners for when the page is being interacted with.\r\n */\r\n private registerEventListeners(): void {\r\n addEventListener('mousemove', this.update);\r\n addEventListener('keydown', this.update);\r\n addEventListener('scroll', this.update);\r\n addEventListener('click', this.update);\r\n }\r\n\r\n /**\r\n * Removes timeout related event listeners on the page.\r\n */\r\n private removeEventListeners(): void {\r\n removeEventListener('mousemove', this.update);\r\n removeEventListener('keydown', this.update);\r\n removeEventListener('scroll', this.update);\r\n removeEventListener('click', this.update);\r\n }\r\n\r\n /**\r\n * Updates the values in local storage\r\n */\r\n private update(): void {\r\n localStorage.setItem(TimeoutService.TIMEOUT_KEY, (Date.now() + TimeoutService.TIMEOUT_LENGTH).toString());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {TimeZone} from \"../models/TimeZone\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationService {\r\n\r\n constructor() { }\r\n\r\n getTimeZone(timeZone: string){\r\n switch(timeZone) {\r\n case TimeZone.ALASKA:\r\n return $localize`Alaska`;\r\n case TimeZone.PACIFIC:\r\n return $localize`Pacific Time (US & Canada)`;\r\n case TimeZone.MOUNTAIN:\r\n return $localize`Mountain Time (US & Canada)`;\r\n case TimeZone.CENTRAL:\r\n return $localize`Central Time (US & Canada)`;\r\n case TimeZone.EASTERN:\r\n return $localize`Eastern Time (US & Canada)`;\r\n case TimeZone.BOGOTA:\r\n return $localize`Bogota, Lima, Quito, Rio Branco`;\r\n case TimeZone.GUADALAJARA:\r\n return $localize`Guadalajara, Mexico City, Monterrey`;\r\n case TimeZone.CARACAS:\r\n return $localize`Caracas`;\r\n case TimeZone.CUIABA:\r\n return $localize`Cuiaba`;\r\n case TimeZone.BUENOS_AIRES:\r\n return $localize`City of Buenos Aires`;\r\n case TimeZone.GEORGETOWN:\r\n return $localize`Georgetown, La Paz, Manaus, San Juan`;\r\n case TimeZone.MID_ATLANTIC:\r\n return $localize`Mid-Atlantic - Old`;\r\n case TimeZone.AZORES:\r\n return $localize`Azores`;\r\n case TimeZone.CABO_VERDE:\r\n return $localize`Cabo Verde Is.`;\r\n case TimeZone.DUBLIN:\r\n return $localize`Dublin, Edinburgh, Lisbon, London`;\r\n case TimeZone.WEST_CENTRAL_AFRICA:\r\n return $localize`West Central Africa`;\r\n case TimeZone.CASABLANCA:\r\n return $localize`Casablanca`;\r\n case TimeZone.SARAJEVO:\r\n return $localize`Sarajevo, Skopje, Warsaw, Zagreb`;\r\n case TimeZone.CHISINAU:\r\n return $localize`Chisinau`;\r\n case TimeZone.KUWAIT:\r\n return $localize`Kuwait, Riyadh`;\r\n case TimeZone.ABU_DHABI:\r\n return $localize`Abu Dhabi, Muscat`;\r\n case TimeZone.ISTANBUL:\r\n return $localize`Istanbul`;\r\n case TimeZone.MOSCOW:\r\n return $localize`Moscow, St. Petersburg`;\r\n case TimeZone.TBILISI:\r\n return $localize`Tbilisi`;\r\n case TimeZone.BAKU:\r\n return $localize`Baku`;\r\n case TimeZone.HAWAII:\r\n return $localize`Hawaii`;\r\n case TimeZone.TEHRAN:\r\n return $localize`Tehran`;\r\n case TimeZone.ISLAMABAD:\r\n return $localize`Islamabad, Karachi`;\r\n case TimeZone.CHENNAI:\r\n return $localize`Chennai, Kolkata, Mumbai, New Delhi`;\r\n case TimeZone.KATHMANDU:\r\n return $localize`Kathmandu`;\r\n case TimeZone.DHAKA:\r\n return $localize`Dhaka`;\r\n case TimeZone.YANGON:\r\n return $localize`Yangon (Rangoon)`;\r\n case TimeZone.KUALA_LUMPUR:\r\n return $localize`Kuala Lumpur, Singapore`;\r\n case TimeZone.BEIJING:\r\n return $localize`Beijing, Chongqing, Hong Kong, Urumqi`;\r\n case TimeZone.SEOUL:\r\n return $localize`Seoul`;\r\n case TimeZone.DARWIN:\r\n return $localize`Darwin`;\r\n case TimeZone.CANBERRA:\r\n return $localize`Canberra, Melbourne, Sydney`;\r\n case TimeZone.SOLOMON_IS:\r\n return $localize`Solomon Is., New Caledonia`;\r\n case TimeZone.BRISBANE:\r\n return $localize`Brisbane`;\r\n case TimeZone.ADELAIDE:\r\n return $localize`Adelaide`;\r\n case TimeZone.FIJI:\r\n return $localize`Fiji`;\r\n case TimeZone.AUCKLAND:\r\n return $localize`Auckland, Wellington`;\r\n case TimeZone.NUKU_ALOFA:\r\n return $localize`Nuku'alofa`;\r\n case TimeZone.KIRITIMATI_IS:\r\n return $localize`Kiritimati Island`;\r\n default:\r\n return `${timeZone}`\r\n }\r\n }\r\n}\r\n","import {Inject, Injectable} from '@angular/core';\r\nimport {HttpClient} from \"@angular/common/http\";\r\nimport {AuthenticationService} from \"./authentication.service\";\r\nimport { BASE_URL } from '../injection-tokens/base-url.token';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VmService {\r\n constructor(private httpClient: HttpClient, @Inject(BASE_URL) private baseUrl: string, private _authenticationService: AuthenticationService) { }\r\n\r\n checkStatus(accessCode: string) {\r\n const url = this.baseUrl + `api/machines/CheckStatus/?accessCode=${accessCode}`;\r\n return this.httpClient.get(url);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { BASE_HREF } from '../injection-tokens/base-href.token';\r\nimport { environment } from '../../environments/environment';\r\n\r\n/**\r\n * Service for interacting with the global window object.\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WindowService {\r\n\r\n /**\r\n * Empty constructor.\r\n *\r\n * @param baseHref\r\n */\r\n public constructor(\r\n @Inject(BASE_HREF) private baseHref: string\r\n ) { }\r\n\r\n /**\r\n * Opens a new window and appends the basehref to it if need be.\r\n *\r\n * @param url to open.\r\n * @param target window target. Defaults to _blank.\r\n */\r\n public open(url: string, target?: string): void {\r\n let updatedUrl = url;\r\n if (environment.usesLocaleInUrl) {\r\n if (updatedUrl.startsWith(\"/\")) updatedUrl = updatedUrl.replace(\"/\", \"\");\r\n updatedUrl = this.baseHref.concat(updatedUrl);\r\n }\r\n window.open(updatedUrl,target ? target : '_blank');\r\n }\r\n}\r\n","import { Component, OnInit, EventEmitter, Output, ViewChild, Input } from '@angular/core';\r\nimport { SignalRChatService } from '../../services/signal-rchat.service';\r\nimport { IFullExamSession } from \"../../models/IFullExamSession\";\r\nimport { NameSessionComponent } from './name-session/name-session.component';\r\nimport { IExamSessionInput } from '../../models/IExamSessionInput';\r\nimport { ITestCenter } from '../../models/IProctorInfo';\r\nimport { AuthenticationService } from '../../services/authentication.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n @Output() onCreateSession = new EventEmitter();\r\n @Output() onStartSession = new EventEmitter();\r\n @Output() onSendConfirmationEmail = new EventEmitter();\r\n @Output() onSessionDetails = new EventEmitter();\r\n @Output() onCancelSession = new EventEmitter();\r\n @Output() onError = new EventEmitter();\r\n @Output() onErrorResolved = new EventEmitter();\r\n @ViewChild(NameSessionComponent) nameSessionComponent = new NameSessionComponent();\r\n nameSession = {} as IExamSessionInput;\r\n testCenters!: ITestCenter[];\r\n hideCreateSession = true;\r\n private subscription!: Subscription;\r\n @Input() prvSessionName!: string;\r\n constructor(private _signalRChat: SignalRChatService, private authenticationService: AuthenticationService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.subscription = this.authenticationService.ProctorSource.subscribe(proctor => {\r\n this.hideCreateSession = false;\r\n this.testCenters = proctor.testCenters\r\n });\r\n // this._signalRChat.startConnection(\"123\")\r\n // .then(() => {\r\n // this._signalRChat.addRefreshProctorIFrameListener(machineName => {\r\n // alert(`RefreshProctorIFrame machine name: ${machineName}`);\r\n // });\r\n // });\r\n\r\n // this._signalRChat.addReceiveMessageListener((machineName, displayName) => {\r\n // alert(`ReceiveMessage machine name: ${machineName}, display name: ${displayName}`);\r\n // });\r\n\r\n // this._signalRChat.addReceiveLoggedInCandidatesListener((candidates) => {\r\n // alert(`ReceiveLoggedInCandicates: ${candidates}`);\r\n // });\r\n\r\n // this._signalRChat.addRefreshProctorIFrameListener((machineName) => {\r\n // alert(`ReceiveLoggedInCandicates: ${machineName}`);\r\n // });\r\n }\r\n validate(): boolean {\r\n return this.nameSessionComponent.isValid()\r\n }\r\n validproctor(): boolean {\r\n if (this.testCenters?.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public onClickCreateSession(): void {\r\n if (this.validproctor()) {\r\n if (this.validate()) {\r\n this.onErrorResolved.emit();\r\n this.onCreateSession.emit();\r\n this.nameSession.sessionName = this.nameSessionComponent.sessionName;\r\n }\r\n else {\r\n this.onError.emit($localize`Session name cannot be blank.`);\r\n }\r\n }\r\n else {\r\n this.onError.emit($localize`You cannot create an exam session at this time because you are not associated with any test center. Please ask your Organization Administrator for assistance.`);\r\n }\r\n }\r\n\r\n public sendConfirmationEmail($event: IFullExamSession): void {\r\n this.onSendConfirmationEmail.emit($event);\r\n }\r\n\r\n startSession($event: IFullExamSession) {\r\n this.onStartSession.emit($event);\r\n }\r\n\r\n sessionDetails($event: IFullExamSession) {\r\n this.onSessionDetails.emit($event);\r\n }\r\n\r\n cancelSession($event: string) {\r\n this.onCancelSession.emit($event);\r\n }\r\n sessionsInProgressMsg($event: string) {\r\n this.onError.emit($event);\r\n }\r\n}\r\n","
\r\n

Create or manage exam sessions

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Create Session\r\n
\r\n
\r\n \r\n
\r\n
\r\n Create Session\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Scheduled Session(s)\r\n
\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-helpfulresources',\r\n templateUrl: './helpfulresources.component.html',\r\n styleUrls: ['./helpfulresources.component.scss']\r\n})\r\nexport class HelpfulresourcesComponent 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 Helpful Resources\r\n
\r\n
\r\n User guide\r\n
\r\n FAQ's\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-name-session',\r\n templateUrl: './name-session.component.html',\r\n styleUrls: ['./name-session.component.scss']\r\n})\r\nexport class NameSessionComponent implements OnInit {\r\n @Input() sessionName: string = '';\r\n error = '';\r\n private hasError = false;\r\n constructor() {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n isValid(): boolean {\r\n this.hasError = false;\r\n if(this.sessionName === '' || this.sessionName === undefined){\r\n this.error = 'error';\r\n this.hasError = true;\r\n }\r\n return !this.hasError;\r\n }\r\n\r\n}\r\n","
\r\n

\r\n Note: The session name will not be displayed to the candidate and is only for your reference.\r\n

\r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { IFullExamSession } from '../../../models/IFullExamSession';\r\nimport { ExamSessionService } from '../../../services/exam-session.service';\r\nimport { IOption } from \"../../../Controls/ctp-dropdown/ctp-dropdown.component\";\r\nimport { AuthenticationService } from '../../../services/authentication.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { YesNoMessageBoxComponent } from '../../../Controls/yes-no-message-box/yes-no-message-box.component';\r\nimport { MessageBoxResult } from '../../../Controls/MessageBoxResult';\r\nimport { IProctor, ITestCenter } from \"../../../models/IProctorInfo\";\r\nimport { catchError } from 'rxjs/operators';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { ExamService } from \"../../../services/exam.service\";\r\nimport { SpinnerService } from 'src/app/services/spinner.service';\r\nimport { TimeZoneOffsetService } from '../../../services/time-zone-offset.service';\r\nimport { TranslationService } from \"../../../services/translation.service\";\r\n\r\n@Component({\r\n selector: 'app-session-table',\r\n templateUrl: './session-table.component.html',\r\n styleUrls: ['./session-table.component.scss']\r\n})\r\nexport class SessionTableComponent implements OnInit {\r\n @Output() onStartSessionClick = new EventEmitter();\r\n @Output() onSendConfirmationEmailClick = new EventEmitter();\r\n @Output() onSessionDetailsClick = new EventEmitter();\r\n @Output() onCancelSessionClick = new EventEmitter();\r\n @Output() onSessionsInProgressMsg = new EventEmitter();\r\n\r\n proctor: IProctor | undefined;\r\n testCenters: ITestCenter[] = [];\r\n localTime = new Date();\r\n sessionMsg: boolean = false;\r\n private proctorRoleKey = 3;\r\n\r\n public ExamSessions: IFullExamSession[] = [];\r\n public options: IOption[] = [\r\n { optionNum: 1, text: $localize`Send Confirmation Email` },\r\n { optionNum: 2, text: $localize`View Details` },\r\n { optionNum: 3, text: $localize`Cancel` }\r\n ];\r\n\r\n constructor(\r\n private _examSessionService: ExamSessionService,\r\n private _authenticationService: AuthenticationService,\r\n public _examService: ExamService,\r\n private _dialog: MatDialog,\r\n private spinnerService: SpinnerService,\r\n private _timeZoneOffsetService: TimeZoneOffsetService,\r\n public _translationService: TranslationService) { }\r\n\r\n ngOnInit(): void {\r\n this._authenticationService.ProctorSource.subscribe(x => {\r\n this.proctor = x;\r\n this.testCenters = x.testCenters;\r\n this.getSessions();\r\n });\r\n }\r\n\r\n getSessions() {\r\n this._examSessionService\r\n .getExamSessions()\r\n .subscribe(async response => {\r\n this.ExamSessions = response;\r\n var sessionsInProgress = this.ExamSessions.filter(s => s.examState.toLowerCase() == 'started');\r\n if (sessionsInProgress.length > 0) {\r\n this.onSessionsInProgressMsg.emit($localize`You have active exam session(s). Please return to your session(s).`);\r\n }\r\n this.setExamDetails();\r\n this.sessionMsg = true;\r\n }, error => {\r\n this.spinnerHide();\r\n });\r\n }\r\n\r\n private async setExamDetails() {\r\n await this._examService.precacheExams(this.ExamSessions.map(x => x.languageCode));\r\n await Promise.all(\r\n this.ExamSessions.map(async (x: IFullExamSession) => {\r\n const exam = await this._examService.getExam(x.examSeriesCode, x.languageCode);\r\n x.examName = exam ? exam.ProductName : \"\";\r\n }));\r\n }\r\n\r\n startSession(index: number) {\r\n this.onStartSessionClick.emit(this.ExamSessions[index]);\r\n }\r\n\r\n optionClicked($event: number, index: number) {\r\n switch ($event) {\r\n case 1:\r\n this.onSendConfirmationEmailClick.emit(this.ExamSessions[index]);\r\n break;\r\n case 2:\r\n this.onSessionDetailsClick.emit(this.ExamSessions[index]);\r\n break;\r\n case 3:\r\n this.handleCancelExamSessionClicked(this.ExamSessions[index]);\r\n break;\r\n }\r\n }\r\n\r\n private handleCancelExamSessionClicked(examSession: IFullExamSession) {\r\n const dlgRef = this._dialog.open(YesNoMessageBoxComponent, {\r\n height: '14rem', width: '28rem', data: $localize`Are you sure you want to cancel your exam session?`\r\n });\r\n dlgRef.afterClosed().subscribe(result => {\r\n if (result == MessageBoxResult.yes) {\r\n this._examSessionService.cancelExamSession(examSession.examSessionId, examSession.testingCenterId)\r\n .pipe(\r\n catchError(this.handleCancelError)\r\n )\r\n .subscribe((error) => {\r\n console.log('Error text: ' + error);\r\n this.getSessions();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private handleCancelError = (errorResponse: HttpErrorResponse): Observable => {\r\n if (errorResponse.status === 0) {// Client-side or network error.\r\n const error = `Unexpected error: ${errorResponse.error}`;\r\n this.onCancelSessionClick.emit(error);\r\n return throwError(error);\r\n }\r\n else {// Back end error.\r\n const error = this.composeCancelErrorText(errorResponse.error.error);\r\n this.onCancelSessionClick.emit(error);\r\n return throwError(error);\r\n }\r\n }\r\n\r\n public composeCancelErrorText(error: string): string {\r\n if (error === 'started')\r\n return CancelErrorText.Started;\r\n if (error === 'tooLate')\r\n return CancelErrorText.TooLate;\r\n if (error === 'missing')\r\n return CancelErrorText.Missing;\r\n if (error === 'noPermission')\r\n return CancelErrorText.NoPermission;\r\n return 'Unknown error.';\r\n }\r\n\r\n getTimeZoneOffsetText(examSession: IFullExamSession): string {\r\n return this._timeZoneOffsetService.formatOffset(examSession.timeZoneOffset);\r\n }\r\n\r\n canStartSession(examSession: IFullExamSession) {\r\n if (this.proctor) {\r\n var proctorCenter = this.proctor.testCenters.find(x => {\r\n return x.CustomerID === examSession.testingCenterId && x.RoleID === this.proctorRoleKey;\r\n });\r\n return !!proctorCenter;\r\n }\r\n return false;\r\n }\r\n spinnerHide() {\r\n this.spinnerService.hide();\r\n }\r\n}\r\n\r\nexport class CancelErrorText {\r\n static readonly Started: string = $localize`The session has already started and cannot be canceled.`;\r\n static readonly TooLate: string = $localize`It is past the deadline for canceling this session.`;\r\n static readonly Missing: string = $localize`The session does not exist.`;\r\n static readonly NoPermission: string = $localize`You do not have permission to cancel this session.`;\r\n}\r\n","
0\">\r\n
\r\n
\r\n
Session name
\r\n
Access code
\r\n
Exam name
\r\n
Language
\r\n
Candidates
\r\n
Start date
\r\n
Start time
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{s.sessionName}}\r\n
\r\n
\r\n {{s.accessCode}}\r\n
\r\n
\r\n {{s.examName}}\r\n
\r\n
\r\n {{s.languageName}}\r\n
\r\n
\r\n {{s.candidateCount}}\r\n
\r\n
\r\n {{s.displayStartTime | date : 'longDate'}}\r\n
\r\n
\r\n
\r\n  \r\n
\r\n {{_translationService.getTimeZone(s.timeZoneName)}}\r\n
\r\n
\r\n
\r\n
\r\n Return to Session\r\n
\r\n
\r\n Start Session\r\n
\r\n
\r\n More\r\n
\r\n
\r\n
\r\n {{spinnerHide()}}\r\n
\r\n
\r\n

There are no sessions scheduled.

\r\n {{spinnerHide()}}\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IFullExamSession } from \"../../models/IFullExamSession\";\r\nimport { ExamSessionService } from \"../../services/exam-session.service\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { ExamService } from \"../../services/exam.service\";\r\nimport IExam from \"../../models/IExam\";\r\nimport {TimeZoneOffsetService} from '../../services/time-zone-offset.service';\r\nimport {TranslationService} from \"../../services/translation.service\";\r\n\r\n@Component({\r\n selector: 'app-session-details',\r\n templateUrl: './session-details.component.html',\r\n styleUrls: ['./session-details.component.scss']\r\n})\r\nexport class SessionDetailsComponent implements OnInit {\r\n @Input() sessionInfo = {\r\n examSessionId: 0,\r\n proctorId: '',\r\n candidateCount: 0,\r\n languageCode: '',\r\n languageName: '',\r\n testingCenterId: 0,\r\n testingCenterName: '',\r\n examSeriesCode: '',\r\n examName: '',\r\n accessCode: '',\r\n startTime: new Date(),\r\n displayStartTime: new Date(),\r\n regionId: 0,\r\n regionName: '',\r\n timeZoneId: 0,\r\n timeZoneName: '',\r\n adminSymlink: '',\r\n } as IFullExamSession;\r\n @Output() previous = new EventEmitter();\r\n private exam = {} as IExam;\r\n\r\n constructor(private _examSessionService: ExamSessionService,\r\n public _authenticationService: AuthenticationService,\r\n public _examService: ExamService,\r\n private _timeZoneOffsetService: TimeZoneOffsetService,\r\n public _translationService: TranslationService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getTestCenterName();\r\n this.getExam();\r\n }\r\n\r\n getTestCenterName() {\r\n this._authenticationService.ProctorSource.subscribe(x => {\r\n this.sessionInfo.testingCenterName = x.testCenters.filter(y => y.CustomerID == this.sessionInfo.testingCenterId).map(y => y.CustomerName)[0];\r\n })\r\n }\r\n\r\n async getExam() {\r\n let exam = await this._examService.getExam(this.sessionInfo.examSeriesCode, this.sessionInfo.languageCode);\r\n if (exam) {\r\n this.exam = exam;\r\n this.sessionInfo.examName = this.exam.ProductName;\r\n this.sessionInfo.programName = this.exam.ProgramName;\r\n }\r\n }\r\n\r\n getTimeZoneOffsetText(examSession: IFullExamSession): string {\r\n return this._timeZoneOffsetService.formatOffset(examSession.timeZoneOffset);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n

Exam Session Details

\r\n\r\n
\r\n
\r\n

Session Name

\r\n

{{sessionInfo.sessionName}}

\r\n\r\n

Access Code

\r\n

{{sessionInfo.accessCode}}

\r\n\r\n

Exam Name

\r\n

{{sessionInfo.examName}}

\r\n\r\n

Language

\r\n

{{sessionInfo.languageName}}

\r\n\r\n

Number of Candidates

\r\n

{{sessionInfo.candidateCount}}

\r\n
\r\n\r\n
\r\n

Specified Date*

\r\n

{{sessionInfo.displayStartTime | date: 'longDate'}}

\r\n\r\n

Specified Time*

\r\n
\r\n
\r\n \r\n {{_translationService.getTimeZone(sessionInfo.timeZoneName)}}\r\n
\r\n
\r\n\r\n

Program Name

\r\n

{{sessionInfo.programName}}

\r\n\r\n

Test Center

\r\n

{{sessionInfo.testingCenterName}}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Inject, LOCALE_ID, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { SpinnerService } from '../services/spinner.service';\r\nimport { WizardPage } from \"../wizard/wizard.component\";\r\nimport { SessionDetailsComponent } from \"./session-details/session-details.component\";\r\nimport { ExamSessionService } from \"../services/exam-session.service\";\r\nimport { IFullExamSession } from \"../models/IFullExamSession\";\r\nimport { DashboardComponent } from \"./dashboard/dashboard.component\";\r\nimport { SignalRChatService } from \"../services/signal-rchat.service\";\r\nimport { IExamSessionSettings } from \"../models/IExamSessionSettings\";\r\nimport { AuthenticationService } from \"../services/authentication.service\";\r\nimport { VmService } from \"../services/vm.service\";\r\nimport { DateTimeService } from \"../services/date-time.service\";\r\nimport { ExamService } from \"../services/exam.service\";\r\nimport { EmailService } from '../services/email.service';\r\nimport { WindowService } from '../services/window.service';\r\nimport { AppConstants } from '../constants/AppConstants';\r\nimport { LabmanagerService } from '../services/labmanager.service';\r\nimport { ConfigurationsService } from '../services/configurations.service';\r\nimport { Observable } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { ConsoleLogger } from '@microsoft/signalr/dist/esm/Utils';\r\n\r\nexport enum MainPage {\r\n dashboard = 0,\r\n wizard = 1,\r\n details = 2\r\n}\r\n\r\n@Component({\r\n selector: 'app-session-management',\r\n templateUrl: './session-management.component.html',\r\n styleUrls: ['./session-management.component.scss']\r\n})\r\nexport class SessionManagementComponent implements OnInit {\r\n @ViewChild(DashboardComponent) dashboardComponent = new DashboardComponent(this.signalRChatService, this.authenticationService);\r\n\r\n currentPage: MainPage = MainPage.dashboard;\r\n accessCode: any;\r\n sid!: string;\r\n hasError: boolean = false;\r\n alertStyle = 'error';\r\n showAlert = false;\r\n showOutage = false;\r\n outageMessage: string = '';\r\n message: string = '';\r\n wizardPage = 0;\r\n public examSessionInfo!: IFullExamSession;\r\n private authTokenSubscription!: Subscription;\r\n private examSessionSettings!: IExamSessionSettings;\r\n private sessionSettingsSubscription!: Subscription;\r\n private labMngrNextOutageSubscription!: Subscription;\r\n private vmServiceStatusSubscription!: Subscription;\r\n private authProctorSrcSubscription!: Subscription;\r\n private emailSrvcSendSubscription!: Subscription;\r\n sessionName = '';\r\n showTechError: boolean = false;\r\n outageStart?: Date;\r\n outageEnd?: Date;\r\n locale: string;\r\n prvSessionName: string = '';\r\n\r\n constructor(private route: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private spinnerService: SpinnerService,\r\n private authenticationService: AuthenticationService,\r\n private examSessionService: ExamSessionService,\r\n private signalRChatService: SignalRChatService,\r\n private vmService: VmService,\r\n private timeZoneRegionService: DateTimeService,\r\n private examService: ExamService,\r\n private emailService: EmailService,\r\n private windowService: WindowService,\r\n private labManagerService: LabmanagerService,\r\n private configurationsService: ConfigurationsService,\r\n @Inject(LOCALE_ID) locale: string\r\n ) {\r\n this.locale = locale;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.spinnerService.show();\r\n this.authTokenSubscription = this.authenticationService.JwtSource.subscribe(jwt => {\r\n if (jwt) {\r\n this.sessionSettingsSubscription = this.examSessionService.getExamSessionSettings().subscribe(sessionSettings => {\r\n this.examSessionSettings = sessionSettings;\r\n }, error => {\r\n console.log(`Failed to fetch Examsession Settings.`);\r\n });\r\n }\r\n }, error => {\r\n console.log(`Authentication failed to fetch Examsession Settings.`);\r\n });\r\n \r\n //Check LabManager for outages in the next week\r\n this.labMngrNextOutageSubscription = this.labManagerService.getNextOutage().subscribe(outage => {\r\n if (outage) {\r\n var showBeforeDate = new Date();\r\n showBeforeDate.setDate(showBeforeDate.getUTCDate() + this.configurationsService.OutageNotificationWindow);\r\n var parsedStart = new Date(Date.parse(outage.outageStartTime));\r\n\r\n if (parsedStart <= showBeforeDate) {\r\n this.outageStart = parsedStart;\r\n var parsedEnd = new Date(Date.parse(outage.outageEndTime));\r\n this.outageEnd = parsedEnd;\r\n this.showOutage = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onSubmitWizard(accessCode: string): void {\r\n this.accessCode = accessCode;\r\n this.currentPage = MainPage.dashboard;\r\n }\r\n\r\n getPrvSessionName(prvSName: string) {\r\n this.prvSessionName = prvSName;\r\n }\r\n createSession(): void {\r\n this.sessionName = this.dashboardComponent.nameSessionComponent.sessionName;\r\n this.wizardPage = WizardPage.first;\r\n this.currentPage = MainPage.wizard;\r\n this.showAlert = false;\r\n }\r\n\r\n startSession($event: IFullExamSession) {\r\n let currentTime = new Date();\r\n currentTime = this.convertToUTCTime(currentTime);\r\n\r\n this.vmServiceStatusSubscription = this.vmService.checkStatus($event.accessCode).subscribe(x => {\r\n if (x) {\r\n let startTimes = this.getStartTimes($event);\r\n\r\n if (currentTime.getTime() < startTimes.earliestStartTime.getTime()) {\r\n this.postError($localize`Your exam session cannot be started until ${this.examSessionSettings.earlyStartMinutes} minutes prior to the start time.`);\r\n } else if (currentTime.getTime() > startTimes.latestStartTime.getTime() && $event.examState.toLowerCase() != 'started') {\r\n this.postError($localize`Your exam session cannot be started more than ${this.examSessionSettings.lateStartMinutes} minutes after the start time.`);\r\n } else {\r\n this.hasError = false;\r\n this.startSessionInLabManager($event);\r\n }\r\n } else {\r\n this.postError($localize`We are experiencing systems issues and are unable to start your session. Please refresh the page and try again.`, true);\r\n }\r\n });\r\n }\r\n\r\n sendConfirmationEmail($event: IFullExamSession) {\r\n this.showAlert = false;\r\n this.authProctorSrcSubscription = this.authenticationService.ProctorSource.subscribe(proctor => {\r\n this.spinnerService.show();\r\n this.emailSrvcSendSubscription = this.emailService.sendEmail($event.accessCode).subscribe(_ => {\r\n this.spinnerService.hide();\r\n this.postSuccess($localize`Email successfully sent. Follow the instructions in the email before starting the exam.`);\r\n },\r\n error => {\r\n this.postError($localize`The system failed to send the email. You can try again.`, false);\r\n });\r\n });\r\n }\r\n\r\n sessionDetails($event: IFullExamSession) {\r\n this.currentPage = MainPage.details;\r\n this.examSessionInfo = $event;\r\n this.showAlert = false;\r\n }\r\n\r\n cancelSession($event: string) {\r\n if ($event)\r\n this.postError($event);\r\n }\r\n\r\n returnToDashboard() {\r\n this.currentPage = MainPage.dashboard;\r\n }\r\n\r\n private convertToUTCTime(date: Date) {\r\n var utcDateTime = new Date(date.getTime() + date.getTimezoneOffset() * 60000);\r\n return utcDateTime;\r\n }\r\n\r\n private getStartTimes($event: IFullExamSession) {\r\n let examStartTime = new Date($event.startTime);\r\n let earliestStartTime = new Date(examStartTime);\r\n let latestStartTime = new Date(examStartTime);\r\n earliestStartTime.setMinutes(earliestStartTime.getMinutes() - this.examSessionSettings.earlyStartMinutes);\r\n latestStartTime.setMinutes(latestStartTime.getMinutes() + this.examSessionSettings.lateStartMinutes);\r\n return { earliestStartTime, latestStartTime };\r\n }\r\n\r\n startSessionInLabManager($event: IFullExamSession) {\r\n this.windowService.open('/exams-view?accessCode=' + $event.accessCode);\r\n }\r\n\r\n postError(message: string, showTechError = false) {\r\n this.showAlert = true;\r\n this.alertStyle = 'error';\r\n this.message = message;\r\n this.showTechError = showTechError;\r\n }\r\n\r\n postSuccess(message: string) {\r\n this.showAlert = true;\r\n this.alertStyle = 'success';\r\n this.message = message;\r\n this.showTechError = false;\r\n }\r\n\r\n hasSubscriptions() {\r\n return (\r\n this.sessionSettingsSubscription ||\r\n this.authTokenSubscription ||\r\n this.labMngrNextOutageSubscription ||\r\n this.vmServiceStatusSubscription ||\r\n this.authProctorSrcSubscription ||\r\n this.emailSrvcSendSubscription\r\n );\r\n }\r\n\r\n clearSubscriptions() {\r\n if (this.sessionSettingsSubscription) {\r\n this.sessionSettingsSubscription.unsubscribe();\r\n }\r\n\r\n if (this.authTokenSubscription) {\r\n this.authTokenSubscription.unsubscribe();\r\n }\r\n\r\n if (this.labMngrNextOutageSubscription) {\r\n this.labMngrNextOutageSubscription.unsubscribe();\r\n }\r\n\r\n if (this.vmServiceStatusSubscription) {\r\n this.vmServiceStatusSubscription.unsubscribe();\r\n }\r\n\r\n if (this.authProctorSrcSubscription) {\r\n this.authProctorSrcSubscription.unsubscribe();\r\n }\r\n\r\n if (this.emailSrvcSendSubscription) {\r\n this.emailSrvcSendSubscription.unsubscribe();\r\n }\r\n\r\n }\r\n ngOnDestroy(): void {\r\n if (this.hasSubscriptions()) {\r\n this.clearSubscriptions();\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n A scheduled system maintenance outage is scheduled from {{outageStart+'Z' | date:'MMMM d, y h:mm a':'':locale}} to {{outageEnd+'Z' | date:'MMMM d, y h:mm a OOO':'':locale}}\r\n \r\n \r\n {{message}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ISpinnerState, SpinnerService } from '../services/spinner.service';\r\n\r\n@Component({\r\n selector: 'app-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss']\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\r\n visible = false;\r\n spinnerStateChanged!: Subscription;\r\n\r\n constructor(private _spinnerService: SpinnerService) { }\r\n\r\n ngOnInit() {\r\n this.spinnerStateChanged = this._spinnerService.spinnerState\r\n .subscribe((state: ISpinnerState) => this.visible = state.show);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.spinnerStateChanged.unsubscribe();\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { faInfoCircle } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, Validators } from \"@angular/forms\";\r\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from \"@angular/material-moment-adapter\";\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\n\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'LL',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'app-date-selection',\r\n templateUrl: './date-selection.component.html',\r\n styleUrls: ['./date-selection.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateSelectionComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DateSelectionComponent),\r\n multi: true\r\n },\r\n {\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n ]\r\n})\r\nexport class DateSelectionComponent implements OnInit, ControlValueAccessor, Validator {\r\n @Input() date: Date | string = \"\";\r\n infoCircle = faInfoCircle;\r\n error = '';\r\n private calendarOpened = false;\r\n public dateForm!: FormGroup;\r\n @Input() calenderStartDate: Date | undefined;\r\n @Output() valid: boolean = true;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.dateForm = new FormGroup({\r\n date: new FormControl(this.date ? new Date(this.date) : \"\", [Validators.required]),\r\n });\r\n }\r\n\r\n isValid() {\r\n this.valid = this.calendarOpened && this.dateForm.valid;\r\n if (this.dateForm.valid) {\r\n this.error = '';\r\n return true;\r\n }\r\n this.error = 'error';\r\n return false;\r\n }\r\n\r\n textBlur() {\r\n //Ugly code alert! When isValid() returns false, an error shows at top of screen.\r\n //We want to check isValid() when the textInput loses focus, but not if we're shifting focus to the calendar toggle.\r\n //This code executes, waits 100ms, then markOpened() gets called, which prevents isValid from being called, which prevents the error from showing.\r\n (async () => {\r\n await new Promise(resolve => setTimeout(resolve, 300));\r\n if (!this.calendarOpened) {\r\n this.isValid();\r\n }\r\n })();\r\n }\r\n\r\n markOpened() {\r\n this.calendarOpened = true;\r\n }\r\n\r\n onTouched: () => void = () => { };\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n this.valid = this.dateForm.pristine || this.dateForm.valid;\r\n return this.dateForm.valid ? null : { invalidForm: { valid: false, message: $localize`Date selection is invalid` } };\r\n }\r\n writeValue(val: any): void {\r\n val && this.dateForm.setValue(val, { emitEvent: false });\r\n }\r\n registerOnChange(fn: any): void {\r\n this.dateForm.valueChanges.subscribe(fn);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n Choose a date\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DateTimeService } from '../../services/date-time.service';\r\nimport { TimeZoneSelectionComponent } from \"./time-zone-selection/time-zone-selection.component\";\r\nimport { DateSelectionComponent } from \"./date-selection/date-selection.component\";\r\nimport { TimeSelectionComponent } from \"./time-selection/time-selection.component\";\r\nimport { IExamSessionInput } from \"../../models/IExamSessionInput\";\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { takeUntil, takeWhile, tap } from 'rxjs/operators';\r\nimport { TranslationService } from \"../../services/translation.service\";\r\n\r\n@Component({\r\n selector: 'app-exam-date-time-and-region',\r\n templateUrl: './exam-date-time-and-region.component.html',\r\n styleUrls: ['./exam-date-time-and-region.component.scss']\r\n})\r\nexport class ExamDateTimeAndRegionComponent implements OnInit {\r\n isNextButtonHidden = true;\r\n errorMsg = $localize`One or more errors have been found in the field(s) indicated below. All errors must be corrected.`;\r\n\r\n @Output() formCompleted = new EventEmitter();\r\n\r\n @Input() submissionError: string = '';\r\n\r\n @Output() nextClick = new EventEmitter();\r\n @Input() existingInformation!: IExamSessionInput;\r\n @ViewChild(TimeZoneSelectionComponent) timeZoneSelectionComponent = new TimeZoneSelectionComponent(this._translationService, this.timeZoneRegionService);\r\n @ViewChild(DateSelectionComponent) dateSelectionComponent = new DateSelectionComponent();\r\n @ViewChild(TimeSelectionComponent) timeSelectionComponent = new TimeSelectionComponent();\r\n @Input() calenderStartDate: Date | undefined;\r\n @Input() windowsCurrentTimeZoneId:string='';\r\n\r\n public examDateTimeRegionForm = new FormGroup({\r\n timeZoneSelection: new FormControl(\"\"),\r\n dateSelection: new FormControl(\"\"),\r\n timeSelection: new FormControl(\"\")\r\n });\r\n get hasError(): boolean {\r\n if (!this.dateSelectionComponent || !this.timeSelectionComponent || !this.timeZoneSelectionComponent) {\r\n return false;\r\n }\r\n return !(this.dateSelectionComponent.valid &&\r\n this.timeSelectionComponent.valid &&\r\n this.timeZoneSelectionComponent.valid);\r\n }\r\n\r\n\r\n constructor(private timeZoneRegionService: DateTimeService,\r\n private _translationService: TranslationService) { }\r\n\r\n ngOnInit(): void {\r\n this.getTimeZonesAndRegions();\r\n this.initFormChangesSubscription();\r\n }\r\n\r\n getTimeZonesAndRegions() {\r\n this.timeZoneRegionService.getTimeZone().subscribe((data: any) => {\r\n\r\n if (data != null) {\r\n this.timeZoneSelectionComponent.timeZones = data.timeZones;\r\n\r\n var currentTimezoneId = data.timeZones.find((a: any) => a.windowsTimeZoneId == this.windowsCurrentTimeZoneId)?.timeZoneId as string\r\n if (!this.existingInformation.timeZoneId && currentTimezoneId != undefined) {\r\n this.timeZoneSelectionComponent.timeZoneForm.controls['timeZoneId'].setValue(currentTimezoneId);\r\n }\r\n\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Subscribes only when existingInformation is not yet completed\r\n * Subscribes to changes of form until form is completed.\r\n */\r\n initFormChangesSubscription(): void {\r\n if (this.existingInformation.regionId && this.existingInformation.examDateTime && this.existingInformation.time && this.existingInformation.timeZoneId) {\r\n this.formCompleted.emit();\r\n this.isNextButtonHidden = false;\r\n } else {\r\n this.examDateTimeRegionForm.valueChanges\r\n .pipe(\r\n takeWhile(() => this.isNextButtonHidden),\r\n tap((values) => {\r\n if (values.timeZoneSelection)\r\n this.existingInformation.timeZoneId = values?.timeZoneSelection?.timeZoneId;\r\n\r\n if (values.dateSelection)\r\n this.existingInformation.examDateTime = values?.dateSelection?.date?.toString() ?? \"\";\r\n\r\n if (values.timeSelection)\r\n this.existingInformation.time = values?.timeSelection?.time ?? \"\";\r\n }))\r\n .subscribe((values) => {\r\n if (values.timeZoneSelection && values.dateSelection && values.timeSelection) {\r\n this.formCompleted.emit();\r\n this.isNextButtonHidden = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n validate(): boolean {\r\n return !this.hasError;\r\n }\r\n\r\n setCalenderStartDate(startDate: Date) {\r\n this.calenderStartDate = startDate;\r\n }\r\n}\r\n","
\r\n {{errorMsg}}\r\n {{submissionError}}\r\n

Select date and time

\r\n\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output} from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, Validators } from '@angular/forms';\r\nimport {faInfoCircle} from \"@fortawesome/pro-solid-svg-icons\";\r\n\r\n@Component({\r\n selector: 'app-time-selection',\r\n templateUrl: './time-selection.component.html',\r\n styleUrls: ['./time-selection.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimeSelectionComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => TimeSelectionComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TimeSelectionComponent implements OnInit, Validator, ControlValueAccessor {\r\n @Input() time = '';\r\n @Output() valid: boolean = true;\r\n infoCircle = faInfoCircle;\r\n error = '';\r\n public timeForm!: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.timeForm = new FormGroup({\r\n time: new FormControl(this.time, [Validators.required])\r\n })\r\n }\r\n\r\n isValid() {\r\n this.valid = this.timeForm.valid;\r\n if (this.timeForm.valid) {\r\n this.error = '';\r\n return true;\r\n }\r\n this.error = 'error';\r\n return false;\r\n }\r\n\r\n onTouched: () => void = () => { };\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return this.timeForm.valid ? null : {\r\n invalidForm: {valid: false, message: $localize`time selection is invalid` } };\r\n }\r\n writeValue(val: any): void {\r\n val && this.timeForm.setValue(val, { emitEvent: false });\r\n }\r\n registerOnChange(fn: any): void {\r\n this.timeForm.valueChanges.subscribe(fn);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n Select Time\r\n \r\n \r\n
\r\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output} from '@angular/core';\r\nimport {faInfoCircle} from \"@fortawesome/pro-solid-svg-icons\";\r\nimport {AbstractControl, ControlValueAccessor, FormControl, FormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator, Validators} from \"@angular/forms\";\r\nimport {ITimeZone} from \"../../../models/ITimeZone\";\r\nimport {TranslationService} from \"../../../services/translation.service\";\r\nimport { DateTimeService } from '../../../services/date-time.service';\r\n\r\n@Component({\r\n selector: 'app-time-zone-selection',\r\n templateUrl: './time-zone-selection.component.html',\r\n styleUrls: ['./time-zone-selection.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimeZoneSelectionComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => TimeZoneSelectionComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TimeZoneSelectionComponent implements OnInit, Validator, ControlValueAccessor {\r\n @Input() timeZoneId = -1;\r\n timeZones: ITimeZone[] = [];\r\n infoCircle = faInfoCircle;\r\n error = '';\r\n public timeZoneForm!: FormGroup;\r\n @Output() calenderStartDate = new EventEmitter();\r\n @Output() valid: boolean = true;\r\n\r\n constructor(public _translationService: TranslationService, private _timeZoneRegionService: DateTimeService) { }\r\n\r\n ngOnInit(): void {\r\n this.timeZoneForm = new FormGroup({\r\n timeZoneId: new FormControl(this.timeZoneId, [Validators.required, Validators.min(1)])\r\n });\r\n this.calenderStartDate.emit(new Date());\r\n this.timeZoneForm.controls['timeZoneId'].valueChanges.subscribe(zoneId => {\r\n this.timeZoneId=zoneId;\r\n this.onTimeZoneSelection(zoneId);\r\n });\r\n }\r\n \r\n isValid() {\r\n this.valid = this.timeZoneForm.untouched || this.timeZoneForm.valid;\r\n if (this.valid) {\r\n this.error = '';\r\n return true;\r\n }\r\n this.error = 'error';\r\n return false;\r\n\r\n }\r\n\r\n onTouched: () => void = () => { };\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return this.timeZoneForm.valid ? null : {\r\n invalidForm: { valid: false, message: $localize`timezone selection is invalid` }\r\n };\r\n }\r\n writeValue(val: any): void {\r\n val && this.timeZoneForm.setValue(val, { emitEvent: false });\r\n }\r\n registerOnChange(fn: any): void {\r\n this.timeZoneForm.valueChanges.subscribe(fn);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n onTimeZoneSelection(selectedtimeZoneId: number) {\r\n this.isValid();\r\n let selectWinTimeZoneId = this.timeZones.find(a => a.timeZoneId == selectedtimeZoneId)?.windowsTimeZoneId as string;\r\n this._timeZoneRegionService.getCurrentDateByWindowsTimeZoneId(selectWinTimeZoneId).subscribe((data: any) => {\r\n\r\n if (data != null) {\r\n this.calenderStartDate.emit(data);\r\n }\r\n });\r\n } \r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n \r\n Select One\r\n \r\n \r\n {{_translationService.getTimeZone(timeZone.displayName)}}\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport ValidationStatus from '../../../models/ValidationStatus';\r\n\r\nimport { ExamSessionService } from '../../../services/exam-session.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-count',\r\n templateUrl: './candidate-count.component.html',\r\n styleUrls: ['./candidate-count.component.scss']\r\n})\r\nexport class CandidateCountComponent implements OnInit {\r\n public readonly minValue: number = 1;\r\n\r\n @Input() public candidateCount = this.minValue;\r\n @Output() validate = new EventEmitter();\r\n\r\n public infoCircle = faInfoCircle;\r\n public maxValue: number = 50;\r\n hasError = false;\r\n\r\n public constructor(private examSessionService: ExamSessionService) { }\r\n\r\n public ngOnInit(): void {\r\n this.examSessionService.getExamSessionSettings().subscribe(x => {\r\n this.maxValue = x.maximumCandidateCount;\r\n });\r\n }\r\n\r\n /**\r\n * Checks to see if the input is in a valid state\r\n *\r\n * @returns ValidationStatus.\r\n */\r\n public ValidateCandidateCount(): ValidationStatus {\r\n let validationStatus = new ValidationStatus();\r\n this.hasError = false;\r\n\r\n if (this.candidateCount < this.minValue || this.candidateCount > this.maxValue) {\r\n validationStatus.SetValidationStatus(false,\r\n $localize`Number of Candidates is invalid, Enter a number from ${this.minValue} to ${this.maxValue}.`);\r\n this.hasError = true;\r\n }\r\n\r\n return validationStatus;\r\n }\r\n\r\n /**\r\n * Highlights the text in the input field on focus so that it's easier to change.\r\n *\r\n * @param event. The focus event.\r\n */\r\n public highlightInput(event: Event) {\r\n try {\r\n (event.target).select();\r\n } catch (e) { }\r\n }\r\n\r\n async validateInline() {\r\n await new Promise(f => setTimeout(f, 100));\r\n this.validate.emit();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ITestCenter } from \"../../models/IProctorInfo\";\r\nimport { SpinnerService } from \"../../services/spinner.service\";\r\nimport { LanguageService } from \"../../services/language.service\";\r\nimport { TestCenterSelectionComponent } from \"./test-center-selection/test-center-selection.component\";\r\nimport { LanguageSelectionComponent } from \"./language-selection/language-selection.component\";\r\nimport { CandidateCountComponent } from \"./candidate-count/candidate-count.component\";\r\nimport { IExamSessionInput } from \"../../models/IExamSessionInput\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { ExamSessionService } from '../../services/exam-session.service';\r\nimport ValidationStatus from \"../../models/ValidationStatus\";\r\nimport { ILanguage } from '../../models/ILanguage';\r\nimport { error } from 'console';\r\n\r\n@Component({\r\n selector: 'app-exam-input-basic-info',\r\n templateUrl: './exam-input-basic-info.component.html',\r\n styleUrls: ['./exam-input-basic-info.component.scss']\r\n})\r\nexport class ExamInputBasicInfoComponent implements OnInit {\r\n message = '';\r\n alertHidden = '';\r\n hasError = false;\r\n errorMsg = $localize`Error. Please contact admin`;\r\n oneOrMoreErrorMessage = $localize`One or more errors have been found in the field(s) indicated below. All errors must be corrected.`;\r\n testCenters!: ITestCenter[];\r\n proctorChatNameIsValid = false;\r\n testCenterSelectionIsValid = false;\r\n languageSelectionIsValid = false;\r\n candidateCountIsValid = false;\r\n LanguageListError = $localize`The system failed to retrieve the language list`;\r\n languages: ILanguage[] = [];\r\n @Output() nextClick = new EventEmitter();\r\n @Input() existingInformation!: IExamSessionInput;\r\n @ViewChild(TestCenterSelectionComponent) testCenterSelectionComponent = new TestCenterSelectionComponent(this.authenticationService);\r\n @ViewChild(LanguageSelectionComponent) languageSelectionComponent = new LanguageSelectionComponent(this.languageService);\r\n @ViewChild(CandidateCountComponent) candidateCountComponent = new CandidateCountComponent(this.examSessionService);\r\n private validTestCenter = true;\r\n private validCandidateCount = { IsValid: true, ErrorMessage: '' } as ValidationStatus;\r\n private validLanguage = true;\r\n\r\n constructor(private spinnerService: SpinnerService,\r\n private authenticationService: AuthenticationService,\r\n private languageService: LanguageService,\r\n private examSessionService: ExamSessionService) {\r\n }\r\n ngOnInit(): void {\r\n this.languageService.getLanguages().subscribe((data: any) => {\r\n\r\n if (data != null) {\r\n this.languages = data.languages;\r\n } \r\n },\r\n error => {\r\n this.errorMsg = this.LanguageListError\r\n this.hasError = true;\r\n });\r\n }\r\n\r\n validate(): boolean {\r\n this.validateTestCenter();\r\n this.validateLanguage();\r\n this.validateCandidateCount();\r\n\r\n return this.validTestCenter && this.validLanguage && this.validCandidateCount.IsValid;\r\n }\r\n\r\n public validateTestCenter() {\r\n this.validTestCenter = this.testCenterSelectionComponent.isValid();\r\n this.postError();\r\n\r\n\r\n }\r\n\r\n public validateLanguage() {\r\n this.validLanguage =this.languageSelectionComponent.isValid();\r\n this.postError();\r\n }\r\n\r\n public validateCandidateCount() {\r\n this.validCandidateCount = this.candidateCountComponent.ValidateCandidateCount();\r\n this.postError();\r\n }\r\n\r\n private postError() {\r\n let errorMessage = '';\r\n this.hasError = false;\r\n\r\n if (!this.validTestCenter || !this.validLanguage) {\r\n errorMessage += this.oneOrMoreErrorMessage + ' ';\r\n }\r\n if (!this.validCandidateCount.IsValid) {\r\n errorMessage += this.validCandidateCount.ErrorMessage;\r\n } \r\n\r\n if (errorMessage !== '') {\r\n this.hasError = true;\r\n this.errorMsg = errorMessage;\r\n }\r\n }\r\n}\r\n","
\r\n {{errorMsg}}\r\n

Create Exam Session

\r\n\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FormControl} from '@angular/forms';\r\nimport {ILanguage} from '../../../models/ILanguage';\r\nimport {LanguageService} from '../../../services/language.service';\r\nimport {faInfoCircle} from '@fortawesome/pro-solid-svg-icons';\r\nimport { error } from '@angular/compiler/src/util';\r\n\r\ninterface Language {\r\n code: string;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-language-selection',\r\n templateUrl: './language-selection.component.html',\r\n styleUrls: ['./language-selection.component.scss']\r\n})\r\nexport class LanguageSelectionComponent implements OnInit {\r\n @Input() languageCode = ''\r\n @Output() validate = new EventEmitter();\r\n @Output() onLanguageChange = new EventEmitter();\r\n errorMessage:string=''\r\n\r\n @Input() languages: ILanguage[] = [];\r\n selectControl: FormControl = new FormControl('');\r\n infoCircle = faInfoCircle;\r\n hasError = false;\r\n private firstFocus = true;\r\n\r\n constructor(private languageService: LanguageService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n selectionChange(languageCode: string) {\r\n this.onLanguageChange.emit(languageCode);\r\n }\r\n\r\n isValid() {\r\n if (this.languageCode === '' ) {\r\n this.hasError = true;\r\n return false;\r\n }\r\n this.hasError = false;\r\n return true;\r\n }\r\n\r\n async validateInline() {\r\n await new Promise(f => setTimeout(f, 100));\r\n if (!this.firstFocus) {\r\n this.validate.emit();\r\n }\r\n this.firstFocus = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n Select one\r\n \r\n \r\n {{lang.languageName}}\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport { ITestCenter } from '../../../models/IProctorInfo';\r\nimport { faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\nimport {AuthenticationService} from \"../../../services/authentication.service\";\r\n\r\n@Component({\r\n selector: 'app-test-center-selection',\r\n templateUrl: './test-center-selection.component.html',\r\n styleUrls: ['./test-center-selection.component.scss']\r\n})\r\nexport class TestCenterSelectionComponent implements OnInit {\r\n @Input() testCenterId = '';\r\n @Output() validate = new EventEmitter();\r\n testCenters: ITestCenter[];\r\n infoCircle = faInfoCircle;\r\n hasError = false;\r\n private firstFocus = true;\r\n\r\n constructor(private authenticationService: AuthenticationService) {\r\n this.testCenters = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.authenticationService.ProctorSource.subscribe(proctor => {\r\n this.testCenters = [... new Map(proctor.testCenters.map(item => [item['CustomerID'], item])).values()];\r\n });\r\n }\r\n\r\n isValid() : boolean {\r\n if(this.testCenterId === ''){\r\n this.hasError = true;\r\n return false;\r\n }\r\n this.hasError = false;\r\n return true;\r\n }\r\n\r\n async validateInline() {\r\n await new Promise(f => setTimeout(f, 100));\r\n if (!this.firstFocus) {\r\n this.validate.emit();\r\n }\r\n this.firstFocus = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n Select one\r\n \r\n \r\n {{tc.CustomerName}}\r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-exam-search',\r\n templateUrl: './exam-search.component.html',\r\n styleUrls: ['./exam-search.component.scss']\r\n})\r\nexport class ExamSearchComponent implements OnInit {\r\n @Output() examSearch = new EventEmitter();\r\n searchValue = '';\r\n placeHolder = $localize`Search`;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n search() {\r\n this.examSearch.emit(this.searchValue)\r\n }\r\n\r\n clearSearch() {\r\n this.searchValue = '';\r\n this.search();\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\r\nimport {ExamService} from \"../../services/exam.service\";\r\nimport {SpinnerService} from \"../../services/spinner.service\";\r\nimport {ExamTableComponent} from \"./exam-table/exam-table.component\";\r\nimport {ExamSearchComponent} from \"./exam-search/exam-search.component\";\r\nimport IExam from \"../../models/IExam\";\r\nimport {ProgramFilterComponent} from \"./program-filter/program-filter.component\";\r\nimport {IProgram} from \"../../../../../../ProctorApp2.Logic/Models/i.program\";\r\n\r\n@Component({\r\n selector: 'app-exam-selection',\r\n templateUrl: './exam-selection.component.html',\r\n styleUrls: ['./exam-selection.component.scss']\r\n})\r\nexport class ExamSelectionComponent implements OnInit {\r\n @ViewChild(ExamTableComponent) examTableComponent = new ExamTableComponent();\r\n @ViewChild(ExamSearchComponent) examSearchComponent = new ExamSearchComponent();\r\n @ViewChild(ProgramFilterComponent) programFilterComponent = new ProgramFilterComponent();\r\n @Input() languageCode = '';\r\n @Input() examId = '';\r\n @Output() selectExam = new EventEmitter();\r\n @Output() selectLanguage = new EventEmitter();\r\n search = '';\r\n programId = 0;\r\n exams: IExam[] = [];\r\n private programs: IProgram[] = [];\r\n alertHidden: string = 'hidden';\r\n message: string = '';\r\n status: string = '';\r\n\r\n constructor(private examService: ExamService, private spinnerService: SpinnerService) { }\r\n\r\n ngOnInit(): void {\r\n this.populateEFHExams(this.languageCode);\r\n }\r\n\r\n onSelectExam(selectedExam: IExam) {\r\n this.selectExam.emit(selectedExam);\r\n }\r\n\r\n onExamSearch(searchValue: string) {\r\n this.search = searchValue;\r\n this.searchExams();\r\n }\r\n\r\n changeLanguage(languageCode: string) {\r\n this.selectLanguage.emit(languageCode);\r\n this.populateEFHExams(languageCode);\r\n }\r\n\r\n changeProgram(programId: number){\r\n this.programId = programId;\r\n this.searchExams();\r\n }\r\n\r\n searchExams() {\r\n this.examTableComponent.searchResults = this.exams;\r\n if(this.search != ''){\r\n this.examTableComponent.searchResults = this.examTableComponent.searchResults.filter(x => x.ProductName.toLowerCase().includes(this.search.toLowerCase()));\r\n }\r\n if(this.programId != 0){\r\n this.examTableComponent.searchResults = this.examTableComponent.searchResults.filter(x => x.ProgramID == this.programId);\r\n }\r\n this.populateProgramFilter();\r\n }\r\n\r\n populateEFHExams(languageCode: string) {\r\n this.spinnerService.show();\r\n this.examService.getEFHSupportedExams(languageCode)\r\n .subscribe(x => {\r\n this.exams = x;\r\n this.searchExams();\r\n this.spinnerService.hide();\r\n if (x == null || x.length === 0) {\r\n this.GetEfhExamsError();\r\n }\r\n }, error => {\r\n this.GetEfhExamsError();\r\n this.spinnerService.hide();\r\n });\r\n }\r\n\r\n populateProgramFilter() {\r\n this.programs = [];\r\n\r\n this.exams.filter(exam => {\r\n let program = {\r\n programId: exam.ProgramID,\r\n programName: exam.ProgramName\r\n } as IProgram;\r\n\r\n if (!this.isProgramInList(program)) {\r\n this.programs.push(program);\r\n }\r\n });\r\n this.programs.sort((p, q) => p.programName.localeCompare(q.programName));\r\n\r\n this.programFilterComponent.programs = this.programs;\r\n }\r\n\r\n isProgramInList(newProgram: IProgram) {\r\n let programIsPresent = false;\r\n\r\n this.programs.forEach(program => {\r\n if (program.programId === newProgram.programId) {\r\n programIsPresent = true;\r\n }\r\n });\r\n return programIsPresent;\r\n }\r\n\r\n private GetEfhExamsError() {\r\n this.message = $localize`The system failed to provide the list of supported exams.`;\r\n this.status = 'error';\r\n this.alertHidden = '';\r\n }\r\n}\r\n","
\r\n \r\n {{message}}\r\n \r\n

Select Exam

\r\n

Please ensure your License is activated and your inventory is sufficient for this exam session.

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport IExam from \"../../../models/IExam\";\r\nimport {FormControl} from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'app-exam-table',\r\n templateUrl: './exam-table.component.html',\r\n styleUrls: ['./exam-table.component.scss']\r\n})\r\nexport class ExamTableComponent implements OnInit {\r\n @Input() languageCode = '';\r\n @Input() examId = '';\r\n @Output() selectExam = new EventEmitter();\r\n\r\n exams: IExam[] = [];\r\n searchResults: IExam[] = [];\r\n\r\n selectControl: FormControl = new FormControl('');\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n examSelected(examSeriesCode: string) {\r\n this.selectExam.emit(examSeriesCode);\r\n }\r\n}\r\n","
\r\n

Program Name

\r\n

Exam Name

\r\n
\r\n
\r\n
\r\n

{{exam.ProgramName}}

\r\n

{{exam.ProductName}}

\r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {ILanguage} from '../../../models/ILanguage';\r\nimport {LanguageService} from '../../../services/language.service';\r\n\r\n@Component({\r\n selector: 'app-language-filter',\r\n templateUrl: './language-filter.component.html',\r\n styleUrls: ['./language-filter.component.scss']\r\n})\r\nexport class LanguageFilterComponent implements OnInit {\r\n @Input() languageCode = '';\r\n @Output() onChangeLanguage = new EventEmitter();\r\n languages: ILanguage[] = [];\r\n error = '';\r\n\r\n constructor(private languageService: LanguageService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getLanguages();\r\n }\r\n\r\n getLanguages() {\r\n this.languageService.getLanguages().subscribe((data: any) => {\r\n\r\n if (data != null) {\r\n this.languages = data.languages;\r\n }\r\n });\r\n }\r\n\r\n selectionChange(languageCode: string) {\r\n this.onChangeLanguage.emit(languageCode);\r\n }\r\n}\r\n","
\r\n \r\n \r\n Select one\r\n \r\n \r\n {{lang.languageName}}\r\n \r\n \r\n \r\n
\r\n","import {Component, EventEmitter, Output} from '@angular/core';\r\nimport {IProgram} from \"../../../../../../../ProctorApp2.Logic/Models/i.program\";\r\n\r\n@Component({\r\n selector: 'app-program-filter',\r\n templateUrl: './program-filter.component.html',\r\n styleUrls: ['./program-filter.component.scss']\r\n})\r\nexport class ProgramFilterComponent {\r\n filteredProgramId = 0;\r\n @Output() onChangeProgram = new EventEmitter();\r\n programs: IProgram[] = [];\r\n error: string = '';\r\n\r\n constructor() { }\r\n\r\n selectionChange() {\r\n this.onChangeProgram.emit(this.filteredProgramId);\r\n }\r\n}\r\n","
\r\n \r\n \r\n Select one\r\n \r\n Show All\r\n \r\n {{program.programName}}\r\n \r\n \r\n \r\n
\r\n","import { Component, Inject, Optional, Output } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\nimport { faTimes } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { EmailValidationBase } from \"../../../services/email-validation.service\";\r\nimport { DialogData } from \"../session-confirmation.component\";\r\n\r\n@Component({\r\n selector: 'email-dialog',\r\n templateUrl: 'email-dialog.component.html',\r\n styleUrls: ['./email-dialog.component.scss']\r\n})\r\nexport class EmailDialogComponent {\r\n local_data: { email: string; emailConfirm: string; };\r\n email: string = '';\r\n timesIcon = faTimes;\r\n showEmailReqValidation = false;\r\n showCnfEmailReqValidation = false;\r\n showEmailMatchValidation = false;\r\n closeDialogBox = false;\r\n\r\n constructor(@Optional() public dialogRef: MatDialogRef, @Optional() @Inject(MAT_DIALOG_DATA) public data: DialogData, public emailValidator: EmailValidationBase) {\r\n this.email = data.email;\r\n this.local_data = { email: '', emailConfirm: '' };\r\n }\r\n\r\n submit() {\r\n this.emailOnBlur();\r\n this.cnfEmailOnBlur();\r\n\r\n if (!this.showEmailReqValidation && !this.showCnfEmailReqValidation && !this.showEmailMatchValidation) {\r\n this.dialogRef.close({ data: this.local_data });\r\n }\r\n }\r\n\r\n emailOnBlur() {\r\n if (!this.closeDialogBox) {\r\n this.showEmailReqValidation = !this.emailValidator.isValidAddress(this.local_data.email);\r\n this.checkEmailMismatch();\r\n }\r\n }\r\n\r\n cnfEmailOnBlur() {\r\n if (!this.closeDialogBox) {\r\n this.showCnfEmailReqValidation = !this.emailValidator.isValidAddress(this.local_data.emailConfirm);\r\n this.checkEmailMismatch();\r\n }\r\n }\r\n\r\n checkEmailMismatch() {\r\n this.showEmailMatchValidation = false\r\n\r\n if (this.local_data.email.trim().length > 0 && this.local_data.emailConfirm.trim().length > 0 && this.local_data.email != this.local_data.emailConfirm) {\r\n this.showEmailMatchValidation = true;\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.closeDialogBox = true;\r\n this.dialogRef.close({ data: { email: '', emailConfirm: '' } });\r\n }\r\n}\r\n","
\r\n
\r\n

Edit Email Address (This session only)

\r\n
\r\n

Close

\r\n \r\n
\r\n
\r\n
\r\n

Current Email Address

\r\n

{{email}}

\r\n\r\n
\r\n

\r\n \r\n
\r\n \r\n Email must be valid.\r\n
\r\n
\r\n\r\n
\r\n

\r\n \r\n
\r\n \r\n Email must be valid.\r\n
\r\n
\r\n \r\n Emails must match.\r\n
\r\n
\r\n\r\n
\r\n
\r\n Cancel\r\n Submit\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { EmailDialogComponent } from \"./email-dialog/email-dialog.component\";\r\nimport { EmailService } from \"../../services/email.service\";\r\nimport IEmailInfo from \"../../models/IEmailInfo\";\r\nimport { AuthenticationService } from \"../../services/authentication.service\";\r\nimport { IExamSessionInput } from \"../../models/IExamSessionInput\";\r\nimport { environment } from '../../../environments/environment';\r\nimport { IProctor, ITestCenter } from '../../models/IProctorInfo';\r\nimport { ExamSessionService } from \"../../services/exam-session.service\";\r\nimport { SpinnerService } from '../../services/spinner.service';\r\nimport { AppConstants } from '../../constants/AppConstants';\r\n\r\n\r\nexport interface DialogData {\r\n email: string,\r\n emailConfirm: string\r\n}\r\n\r\n@Component({\r\n selector: 'app-session-confirmation',\r\n templateUrl: './session-confirmation.component.html',\r\n styleUrls: ['./session-confirmation.component.scss']\r\n})\r\nexport class SessionConfirmationComponent implements OnInit {\r\n @Input() sessionInfo!: IExamSessionInput;\r\n @Input() accessCode = '';\r\n @Output() emailSent = new EventEmitter();\r\n @Output() onSubmit = new EventEmitter();\r\n\r\n alertHidden: string = 'hidden';\r\n sendButtonHidden: string = '';\r\n resendButtonHidden: string = 'hidden';\r\n message: string = '';\r\n status: string = '';\r\n\r\n proctor = {} as IProctor;\r\n proctorEmail: string = $localize`email@email.com`;\r\n emailConfirm: string = '';\r\n showTechError: boolean = false;\r\n\r\n private proctorRole = 3;\r\n private allowedRoles = [76, 23];\r\n\r\n constructor(public dialog: MatDialog,\r\n private authenticationService: AuthenticationService,\r\n private route: ActivatedRoute,\r\n private emailService: EmailService,\r\n private spinnerService: SpinnerService,\r\n private examSessionService: ExamSessionService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.alertHidden = 'hidden';\r\n this.route.queryParams.subscribe(params => {\r\n console.log(params);\r\n this.authenticationService.ProctorSource.subscribe(proctor => {\r\n this.proctorEmail = proctor.Email;\r\n this.proctor = proctor;\r\n this.nonProctorEmail();\r\n });\r\n });\r\n }\r\n\r\n sendEmail() {\r\n this.spinnerService.show();\r\n this.hideAlert();\r\n if (this.proctorEmail != this.sessionInfo.proctorEmail) {\r\n this.emailService.sendEmail(this.accessCode, this.proctorEmail).subscribe(_ => {\r\n this.EmailSent();\r\n this.sessionInfo.proctorEmail = this.proctorEmail;\r\n },\r\n error => {\r\n this.EmailFailure();\r\n });\r\n } else {\r\n this.emailService.sendEmail(this.accessCode).subscribe(data => {\r\n this.EmailSent();\r\n },\r\n error => {\r\n this.EmailFailure();\r\n });\r\n }\r\n }\r\n\r\n private EmailSent() {\r\n this.spinnerService.hide();\r\n this.emailSent.emit();\r\n this.postSuccess($localize`Email successfully sent to ${this.proctorEmail}. Follow the instructions in the email before starting the exam.`);\r\n this.sendButtonHidden = 'hidden';\r\n this.resendButtonHidden = '';\r\n }\r\n\r\n private EmailFailure() {\r\n this.spinnerService.hide();\r\n this.postError($localize`The system failed to send the email. You can try again here or at the dashboard.`, false);\r\n this.emailSent.emit();\r\n this.sendButtonHidden = 'hidden';\r\n this.resendButtonHidden = '';\r\n}\r\n\r\n async updateEmail() {\r\n const dialogRef = this.dialog.open(EmailDialogComponent, {\r\n data: { email: this.proctorEmail, emailConfirm: this.emailConfirm }\r\n });\r\n await dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result.data == null) {\r\n this.postError($localize`Something went wrong...`, true);\r\n } else if (result.data.email != '') {\r\n this.postSuccess($localize`You have successfully updated your email address.`);\r\n this.proctorEmail = result.data.email;\r\n } else {\r\n this.hideAlert();\r\n }\r\n });\r\n }\r\n\r\n postSuccess(message: string) {\r\n this.message = message;\r\n this.status = 'success';\r\n this.alertHidden = '';\r\n this.showTechError = false;\r\n }\r\n\r\n postError(message: string, showTechError: boolean = false) {\r\n this.message = message;\r\n this.status = 'error';\r\n this.alertHidden = '';\r\n this.showTechError = showTechError;\r\n }\r\n\r\n hideAlert() {\r\n this.alertHidden = 'hidden';\r\n }\r\n\r\n nonProctorEmail(): void {\r\n if (this.proctor) {\r\n let proctorCenter = this.proctor.testCenters.filter(x => x.CustomerID === this.sessionInfo.testCenterId && x.RoleID !== this.proctorRole);\r\n if (proctorCenter && proctorCenter.some(x => this.allowedRoles.includes(x.RoleID))) {\r\n this.postError($localize`Please send confirmation email to Proctor.`);\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n {{message}}\r\n \r\n \r\n

Exam session created

\r\n
\r\n
\r\n
\r\n

1. Receive exam session emails

\r\n
\r\n
\r\n

You will be sent two detailed emails to:
{{proctorEmail}} edit

\r\n
\r\n
\r\n

You will receive two emails:

\r\n
    \r\n
  • Proctor confirmation email
  • \r\n
  • Candidate exam access email
  • \r\n
      \r\n
    • Forward this email to your candidates
    • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Send confirmation emails\r\n Resend confirmation emails\r\n
\r\n
\r\n
\r\n
\r\n

2. Review confirmation emails

\r\n
\r\n

Proctor exam access email includes:

\r\n
    \r\n
  • A link for you to access your exam session as the proctor
  • \r\n
  • Instructions to forward the email to your candidates
  • \r\n
\r\n
\r\n
\r\n

Candidate exam access email includes:

\r\n
    \r\n
  • A link for candidates to download and launch the secure browser or Chromebook app
  • \r\n
  • The access code needed for candidates to access the exam session
  • \r\n
\r\n
\r\n
\r\n
\r\n

3. Start exam session

\r\n
\r\n
    \r\n
  • You may start the exam session 5 minutes prior to the start time
  • \r\n
  • Candidate(s) may join as soon as you have started the session
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Inject, Input, LOCALE_ID, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IExamSessionInput } from \"../models/IExamSessionInput\";\r\nimport { ExamInputBasicInfoComponent } from \"./exam-input-basic-info/exam-input-basic-info.component\";\r\nimport { ExamSelectionComponent } from \"./exam-selection/exam-selection.component\";\r\nimport { ExamDateTimeAndRegionComponent } from \"./exam-date-time-and-region/exam-date-time-and-region.component\";\r\nimport { ExamSessionService } from \"../services/exam-session.service\";\r\nimport { SpinnerService } from \"../services/spinner.service\";\r\nimport { LanguageService } from \"../services/language.service\";\r\nimport { ExamService } from \"../services/exam.service\";\r\nimport { DateTimeService } from \"../services/date-time.service\";\r\nimport { PrevNextComponent } from \"../Controls/prev-next/prev-next.component\";\r\nimport { AuthenticationService } from \"../services/authentication.service\";\r\nimport {DatePipe, formatDate} from '@angular/common';\r\nimport { ITestCenter } from '../models/IProctorInfo';\r\nimport {TranslationService} from \"../services/translation.service\";\r\nimport IExam from '../models/IExam';\r\n\r\nexport enum WizardPage {\r\n BasicInput = 0,\r\n ExamSelection = 1,\r\n ExamTime = 2,\r\n Confirmation = 3,\r\n\r\n first = BasicInput,\r\n last = Confirmation\r\n}\r\n\r\n@Component({\r\n selector: 'app-wizard',\r\n templateUrl: './wizard.component.html',\r\n styleUrls: ['./wizard.component.scss']\r\n})\r\nexport class WizardComponent implements OnInit {\r\n @Input() currentPage = WizardPage.first;\r\n @Input() sessionName = '';\r\n @Output() submitWizard = new EventEmitter();\r\n @Output() prvSessionName=new EventEmitter();\r\n\r\n @ViewChild(ExamInputBasicInfoComponent) examInputBasicInfoComponent = new ExamInputBasicInfoComponent(this.spinnerService, this.authenticationService, this.languageService, this.examSessionService);\r\n @ViewChild(ExamSelectionComponent) examSelectionComponent = new ExamSelectionComponent(this.examService, this.spinnerService);\r\n @ViewChild(ExamDateTimeAndRegionComponent) examDateTimeAndRegionComponent = new ExamDateTimeAndRegionComponent(this.timeZoneRegionService, this._translationService);\r\n @ViewChild(PrevNextComponent) prevNextComponent = new PrevNextComponent();\r\n\r\n basicInputNextButtonText: string = $localize`Next`;\r\n timeDateAndRegionNextButtonText: string = $localize`Submit`;\r\n confirmationNextButtonText: string = $localize`Return to dashboard`;\r\n accessCode: string = '';\r\n accessUrl: string = '';\r\n submissionError: string = '';\r\n testCenters: ITestCenter[];\r\n inSubmission = false;\r\n windowsCurrentTimeZoneId: string = '';\r\n\r\n sessionInfo = {\r\n sessionName: '',\r\n proctorId: 0,\r\n proctorChatName: '',\r\n language: '',\r\n testCenterId: 0,\r\n testCenterCertiportId: '',\r\n testCenterName: '',\r\n examId: '',\r\n candidateCount: 1,\r\n examDateTime: '',\r\n regionId: 0,\r\n timeZoneId: 0,\r\n time: '',\r\n proctorEmail: '',\r\n accessCode: '',\r\n directToITS: false,\r\n examProductID: 0,\r\n labManagerProgramID: 0\r\n } as IExamSessionInput;\r\n\r\n constructor(private examSessionService: ExamSessionService,\r\n private spinnerService: SpinnerService,\r\n private authenticationService: AuthenticationService,\r\n private languageService: LanguageService,\r\n private examService: ExamService,\r\n private timeZoneRegionService: DateTimeService,\r\n private _translationService: TranslationService,\r\n @Inject(LOCALE_ID) private locale: string) {\r\n this.testCenters = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this.authenticationService.ProctorSource.subscribe(x => {\r\n this.sessionInfo.proctorEmail = x.Email;\r\n this.testCenters = [... new Map(x.testCenters.map(item => [item['CustomerID'], item])).values()];\r\n });\r\n this.sessionInfo.sessionName = this.sessionName;\r\n this.getWindowsCurrentTimezone();\r\n }\r\n\r\n getWindowsCurrentTimezone() {\r\n var browserTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n this.timeZoneRegionService.getWindowsCurrentTimezone(browserTimezone).subscribe(result => {\r\n this.windowsCurrentTimeZoneId = result;\r\n });\r\n }\r\n\r\n getSafeText(text: any): string {\r\n if (typeof text === 'string')\r\n return text;\r\n return '';\r\n }\r\n\r\n getNextText() {\r\n switch (this.currentPage) {\r\n case WizardPage.BasicInput:\r\n return this.basicInputNextButtonText;\r\n case WizardPage.ExamSelection:\r\n return this.basicInputNextButtonText;\r\n case WizardPage.ExamTime:\r\n return this.timeDateAndRegionNextButtonText;\r\n case WizardPage.Confirmation:\r\n return this.confirmationNextButtonText;\r\n }\r\n }\r\n\r\n public onClickPrevious(): void {\r\n if (this.currentPage === WizardPage.ExamSelection) {\r\n this.prevNextComponent.displayNext();\r\n }\r\n\r\n if (this.currentPage === WizardPage.ExamTime || this.currentPage === WizardPage.Confirmation) {\r\n this.prevNextComponent.hideNext();\r\n }\r\n\r\n if (this.currentPage > WizardPage.first) {\r\n this.currentPage--;\r\n } else {\r\n this.submitWizard.emit();\r\n this.prvSessionName.emit(this.sessionInfo.sessionName);\r\n }\r\n\r\n }\r\n\r\n public onClickNext(): void {\r\n if (this.currentPage === WizardPage.BasicInput && this.examInputBasicInfoComponent.validate()) {\r\n const testCenterId = this.examInputBasicInfoComponent.testCenterSelectionComponent.testCenterId;\r\n const testCenter: ITestCenter | undefined = this.getTestCenter(Number.parseInt(testCenterId));\r\n\r\n if (testCenter) {\r\n this.sessionInfo.language = this.getSafeText(this.examInputBasicInfoComponent.languageSelectionComponent.languageCode);\r\n this.sessionInfo.testCenterId = testCenter.CustomerID;\r\n this.sessionInfo.testCenterCertiportId = testCenter.CertiportID;\r\n this.sessionInfo.testCenterName = testCenter.CustomerName;\r\n this.sessionInfo.candidateCount = this.examInputBasicInfoComponent.candidateCountComponent.candidateCount;\r\n this.sessionInfo.sessionName = this.examInputBasicInfoComponent.existingInformation.sessionName;\r\n this.prevNextComponent.hideNext();\r\n this.currentPage++;\r\n }\r\n } else if (this.currentPage === WizardPage.ExamTime && this.examDateTimeAndRegionComponent.validate()) {\r\n if (!this.inSubmission) {\r\n this.inSubmission = true;\r\n this.transferForm();\r\n this.spinnerService.show();\r\n this.prevNextComponent.hideNext();\r\n this.examSessionService\r\n .createExamSessionAndGetAccessCode(this.sessionInfo)\r\n .subscribe(data => {\r\n this.spinnerService.hide();\r\n this.sessionInfo.accessCode = data.accessCode;\r\n this.sessionInfo.directToITS = data.isDirectToITS;\r\n this.currentPage++;\r\n this.prevNextComponent.hideNext();\r\n this.prevNextComponent.hidePrevious();\r\n },\r\n error => {\r\n this.spinnerService.hide();\r\n this.prevNextComponent.displayNext();\r\n this.reportError(error.status, error.error)\r\n this.inSubmission = false;\r\n }\r\n );\r\n }\r\n } else if (this.currentPage === WizardPage.Confirmation) {\r\n this.submitWizard.emit();\r\n this.prvSessionName.emit('');\r\n }\r\n }\r\n\r\n getTestCenter(testCenterId: number): ITestCenter | undefined {\r\n return this.testCenters.find(tc => tc.CustomerID == testCenterId);\r\n }\r\n\r\n reportError(status: number, detail: any): void {\r\n\r\n if (status == 400) {\r\n this.submissionError = $localize`Exams must be scheduled at least ${detail} minutes in advance.`;\r\n }\r\n else {\r\n const outageStart: string = formatDate(detail.outageStartTime+'Z', 'short', this.locale);\r\n const outageEnd: string = formatDate(detail.outageEndTime+'Z', 'short', this.locale);\r\n\r\n this.submissionError = $localize`A system outage is scheduled between ${outageStart} and ${outageEnd}. Please select a different time.`;\r\n }\r\n }\r\n\r\n\r\n\r\n onEmailSent() {\r\n this.prevNextComponent.displayNext();\r\n }\r\n\r\n onSelectExam(examSeriesCode: string) {\r\n this.sessionInfo.examId = examSeriesCode;\r\n let exam : IExam | undefined = this.examSelectionComponent.exams.find((exam) => exam.ExamSeriesCode == examSeriesCode);\r\n if (exam)\r\n {\r\n this.sessionInfo.examProductID = exam.ExamProductID;\r\n this.sessionInfo.labManagerProgramID = exam.LabManagerProgramID;\r\n if (exam.DirectToITS)\r\n {\r\n this.sessionInfo.directToITS = exam.DirectToITS;\r\n } else\r\n {\r\n this.sessionInfo.directToITS = false;\r\n }\r\n }\r\n\r\n this.currentPage++;\r\n\r\n if (this.sessionInfo.examDateTime && this.sessionInfo.time && this.sessionInfo.timeZoneId) {\r\n this.prevNextComponent.displayNext();\r\n }\r\n }\r\n\r\n onSelectLanguage(languageCode: string) {\r\n this.sessionInfo.language = languageCode;\r\n }\r\n\r\n onFormCompleted() {\r\n this.prevNextComponent.displayNext();\r\n this.transferForm();\r\n }\r\n\r\n transferForm() {\r\n if (this.examDateTimeAndRegionComponent) {\r\n const datepipe: DatePipe = new DatePipe('en-US')\r\n this.sessionInfo.examDateTime = datepipe.transform(this.examDateTimeAndRegionComponent.dateSelectionComponent.dateForm.value.date, 'dd-MMM-yyyy');\r\n this.sessionInfo.time = this.examDateTimeAndRegionComponent.timeSelectionComponent.timeForm.value.time;\r\n this.sessionInfo.timeZoneId = this.examDateTimeAndRegionComponent.timeZoneSelectionComponent.timeZoneForm.value.timeZoneId;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n","export const environment = {\r\n production: false,\r\n usesLocaleInUrl: true,\r\n};\r\n","import { enableProdMode, StaticProvider } 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\nconst providers: StaticProvider[] = [];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 8685,\n\t\"./af.js\": 8685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 2614,\n\t\"./ar-kw.js\": 2614,\n\t\"./ar-ly\": 8630,\n\t\"./ar-ly.js\": 8630,\n\t\"./ar-ma\": 8674,\n\t\"./ar-ma.js\": 8674,\n\t\"./ar-sa\": 9032,\n\t\"./ar-sa.js\": 9032,\n\t\"./ar-tn\": 1506,\n\t\"./ar-tn.js\": 1506,\n\t\"./ar.js\": 254,\n\t\"./az\": 3052,\n\t\"./az.js\": 3052,\n\t\"./be\": 150,\n\t\"./be.js\": 150,\n\t\"./bg\": 3069,\n\t\"./bg.js\": 3069,\n\t\"./bm\": 3466,\n\t\"./bm.js\": 3466,\n\t\"./bn\": 8516,\n\t\"./bn-bd\": 557,\n\t\"./bn-bd.js\": 557,\n\t\"./bn.js\": 8516,\n\t\"./bo\": 6273,\n\t\"./bo.js\": 6273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 9815,\n\t\"./bs.js\": 9815,\n\t\"./ca\": 3331,\n\t\"./ca.js\": 3331,\n\t\"./cs\": 1320,\n\t\"./cs.js\": 1320,\n\t\"./cv\": 2219,\n\t\"./cv.js\": 2219,\n\t\"./cy\": 8266,\n\t\"./cy.js\": 8266,\n\t\"./da\": 6427,\n\t\"./da.js\": 6427,\n\t\"./de\": 7435,\n\t\"./de-at\": 2871,\n\t\"./de-at.js\": 2871,\n\t\"./de-ch\": 2994,\n\t\"./de-ch.js\": 2994,\n\t\"./de.js\": 7435,\n\t\"./dv\": 2357,\n\t\"./dv.js\": 2357,\n\t\"./el\": 5649,\n\t\"./el.js\": 5649,\n\t\"./en-au\": 9961,\n\t\"./en-au.js\": 9961,\n\t\"./en-ca\": 9878,\n\t\"./en-ca.js\": 9878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 864,\n\t\"./en-ie.js\": 864,\n\t\"./en-il\": 1579,\n\t\"./en-il.js\": 1579,\n\t\"./en-in\": 940,\n\t\"./en-in.js\": 940,\n\t\"./en-nz\": 6181,\n\t\"./en-nz.js\": 6181,\n\t\"./en-sg\": 4301,\n\t\"./en-sg.js\": 4301,\n\t\"./eo\": 5291,\n\t\"./eo.js\": 5291,\n\t\"./es\": 4529,\n\t\"./es-do\": 3764,\n\t\"./es-do.js\": 3764,\n\t\"./es-mx\": 2584,\n\t\"./es-mx.js\": 2584,\n\t\"./es-us\": 3425,\n\t\"./es-us.js\": 3425,\n\t\"./es.js\": 4529,\n\t\"./et\": 5203,\n\t\"./et.js\": 5203,\n\t\"./eu\": 678,\n\t\"./eu.js\": 678,\n\t\"./fa\": 3483,\n\t\"./fa.js\": 3483,\n\t\"./fi\": 6262,\n\t\"./fi.js\": 6262,\n\t\"./fil\": 2521,\n\t\"./fil.js\": 2521,\n\t\"./fo\": 4555,\n\t\"./fo.js\": 4555,\n\t\"./fr\": 3131,\n\t\"./fr-ca\": 8239,\n\t\"./fr-ca.js\": 8239,\n\t\"./fr-ch\": 1702,\n\t\"./fr-ch.js\": 1702,\n\t\"./fr.js\": 3131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 3821,\n\t\"./ga.js\": 3821,\n\t\"./gd\": 1753,\n\t\"./gd.js\": 1753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 2762,\n\t\"./gom-deva.js\": 2762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 2809,\n\t\"./gu.js\": 2809,\n\t\"./he\": 5402,\n\t\"./he.js\": 5402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 410,\n\t\"./hr.js\": 410,\n\t\"./hu\": 8210,\n\t\"./hu.js\": 8210,\n\t\"./hy-am\": 8999,\n\t\"./hy-am.js\": 8999,\n\t\"./id\": 1334,\n\t\"./id.js\": 1334,\n\t\"./is\": 6959,\n\t\"./is.js\": 6959,\n\t\"./it\": 4864,\n\t\"./it-ch\": 1124,\n\t\"./it-ch.js\": 1124,\n\t\"./it.js\": 4864,\n\t\"./ja\": 6141,\n\t\"./ja.js\": 6141,\n\t\"./jv\": 9187,\n\t\"./jv.js\": 9187,\n\t\"./ka\": 2136,\n\t\"./ka.js\": 2136,\n\t\"./kk\": 4332,\n\t\"./kk.js\": 4332,\n\t\"./km\": 8607,\n\t\"./km.js\": 8607,\n\t\"./kn\": 4305,\n\t\"./kn.js\": 4305,\n\t\"./ko\": 234,\n\t\"./ko.js\": 234,\n\t\"./ku\": 6003,\n\t\"./ku.js\": 6003,\n\t\"./ky\": 5061,\n\t\"./ky.js\": 5061,\n\t\"./lb\": 2786,\n\t\"./lb.js\": 2786,\n\t\"./lo\": 6183,\n\t\"./lo.js\": 6183,\n\t\"./lt\": 29,\n\t\"./lt.js\": 29,\n\t\"./lv\": 4169,\n\t\"./lv.js\": 4169,\n\t\"./me\": 8577,\n\t\"./me.js\": 8577,\n\t\"./mi\": 8177,\n\t\"./mi.js\": 8177,\n\t\"./mk\": 337,\n\t\"./mk.js\": 337,\n\t\"./ml\": 5260,\n\t\"./ml.js\": 5260,\n\t\"./mn\": 2325,\n\t\"./mn.js\": 2325,\n\t\"./mr\": 4695,\n\t\"./mr.js\": 4695,\n\t\"./ms\": 5334,\n\t\"./ms-my\": 7151,\n\t\"./ms-my.js\": 7151,\n\t\"./ms.js\": 5334,\n\t\"./mt\": 3570,\n\t\"./mt.js\": 3570,\n\t\"./my\": 7963,\n\t\"./my.js\": 7963,\n\t\"./nb\": 8028,\n\t\"./nb.js\": 8028,\n\t\"./ne\": 6638,\n\t\"./ne.js\": 6638,\n\t\"./nl\": 302,\n\t\"./nl-be\": 6782,\n\t\"./nl-be.js\": 6782,\n\t\"./nl.js\": 302,\n\t\"./nn\": 3501,\n\t\"./nn.js\": 3501,\n\t\"./oc-lnc\": 563,\n\t\"./oc-lnc.js\": 563,\n\t\"./pa-in\": 869,\n\t\"./pa-in.js\": 869,\n\t\"./pl\": 5302,\n\t\"./pl.js\": 5302,\n\t\"./pt\": 9687,\n\t\"./pt-br\": 4884,\n\t\"./pt-br.js\": 4884,\n\t\"./pt.js\": 9687,\n\t\"./ro\": 9107,\n\t\"./ro.js\": 9107,\n\t\"./ru\": 3627,\n\t\"./ru.js\": 3627,\n\t\"./sd\": 355,\n\t\"./sd.js\": 355,\n\t\"./se\": 3427,\n\t\"./se.js\": 3427,\n\t\"./si\": 1848,\n\t\"./si.js\": 1848,\n\t\"./sk\": 4590,\n\t\"./sk.js\": 4590,\n\t\"./sl\": 184,\n\t\"./sl.js\": 184,\n\t\"./sq\": 6361,\n\t\"./sq.js\": 6361,\n\t\"./sr\": 8965,\n\t\"./sr-cyrl\": 1287,\n\t\"./sr-cyrl.js\": 1287,\n\t\"./sr.js\": 8965,\n\t\"./ss\": 5456,\n\t\"./ss.js\": 5456,\n\t\"./sv\": 451,\n\t\"./sv.js\": 451,\n\t\"./sw\": 7558,\n\t\"./sw.js\": 7558,\n\t\"./ta\": 2702,\n\t\"./ta.js\": 2702,\n\t\"./te\": 3693,\n\t\"./te.js\": 3693,\n\t\"./tet\": 1243,\n\t\"./tet.js\": 1243,\n\t\"./tg\": 2500,\n\t\"./tg.js\": 2500,\n\t\"./th\": 5768,\n\t\"./th.js\": 5768,\n\t\"./tk\": 7761,\n\t\"./tk.js\": 7761,\n\t\"./tl-ph\": 5780,\n\t\"./tl-ph.js\": 5780,\n\t\"./tlh\": 9590,\n\t\"./tlh.js\": 9590,\n\t\"./tr\": 3807,\n\t\"./tr.js\": 3807,\n\t\"./tzl\": 3857,\n\t\"./tzl.js\": 3857,\n\t\"./tzm\": 654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 654,\n\t\"./ug-cn\": 845,\n\t\"./ug-cn.js\": 845,\n\t\"./uk\": 9232,\n\t\"./uk.js\": 9232,\n\t\"./ur\": 7052,\n\t\"./ur.js\": 7052,\n\t\"./uz\": 7967,\n\t\"./uz-latn\": 2233,\n\t\"./uz-latn.js\": 2233,\n\t\"./uz.js\": 7967,\n\t\"./vi\": 8615,\n\t\"./vi.js\": 8615,\n\t\"./x-pseudo\": 2320,\n\t\"./x-pseudo.js\": 2320,\n\t\"./yo\": 1313,\n\t\"./yo.js\": 1313,\n\t\"./zh-cn\": 4490,\n\t\"./zh-cn.js\": 4490,\n\t\"./zh-hk\": 5910,\n\t\"./zh-hk.js\": 5910,\n\t\"./zh-mo\": 8262,\n\t\"./zh-mo.js\": 8262,\n\t\"./zh-tw\": 4223,\n\t\"./zh-tw.js\": 4223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"names":["SurveyDialogComponent","SurveyDialogResult","BASE_URL","i0","ctx_r1","ExamsViewComponent","constructor","authenticationService","labManagerService","proctorHub","baseUrl","examSessionService","route","configurations","_dialog","candidatesInExamService","ngOnInit","queryParams","subscribe","params","accessCode","GetSurveyLink","GetExamSessionInfo","GetCandidatesVmDetailsAndLoad","getSurveyLink","response","surveylink","error","displayError","$localize","getExamSessionByAccessCode","ExamSession","setCandidatesCount","candidateCount","GetExamSessionSettings","JwtSource","jwt","getExamSessionSettings","sessionSettings","examSessionSettings","SetDisplaySurveyDialogTriggerTime","getCandidateVMs","candidateVms","sort","c1","c2","compareCandidateVms","SetCandidateInfo","decodeRdpUrls","StartProctorHubConnection","forEach","element","candidate","CandidateId","candidateId","FirstName","candidateFirstName","LastName","candidateLastName","Symlink","symlink","setCandidate","vm","joinUrl","atob","startConnection","then","InitializeHubListeners","CandidateLoggedInListener","ExamCompleteListener","CandidateAutoRefreshListner","addCandidateLoggedInListener","assignedToCandidateTime","isCandidateVmExists","findIndex","s","push","examCompleted","isRestarting","iframeElement","document","getElementById","src","Date","getTime","addCompleteExamListener","candidateVm","find","cvm","nowTime","convertToUTCTime","LatestStartTime","DisplaySurveyDialog","addCandidateAutoRefreshListner","setTimeout","getStartTimes","latestStartTime","latestTime","filter","c","length","dlgRef","open","panelClass","height","width","afterClosed","result","TakeSurvey","window","date","utcDateTime","getTimezoneOffset","examSession","examStartTime","startTime","earliestStartTime","setMinutes","getMinutes","earlyStartMinutes","lateStartMinutes","message","showTechError","hasError","selectors","decls","vars","consts","ctx","ExamService","httpClient","_authenticationService","Map","getEFHSupportedExams","languageCode","get","getExam","examCode","cachedExams","has","set","toPromise","_a","exam","ExamSeriesCode","precacheExams","languageCodes","uniqueLanguages","Set","Promise","all","map","lang","factory","providedIn","EventEmitter","YesNoMessageBoxComponent","MessageBoxResult","catchError","throwError","ctx_r8","ctx_r13","ctx_r17","SessionTableComponent","_examSessionService","_examService","spinnerService","_timeZoneOffsetService","_translationService","optionNum","text","errorResponse","status","onCancelSessionClick","emit","composeCancelErrorText","ProctorSource","x","proctor","testCenters","getSessions","getExamSessions","ExamSessions","sessionsInProgress","examState","toLowerCase","onSessionsInProgressMsg","setExamDetails","sessionMsg","spinnerHide","examSeriesCode","examName","ProductName","startSession","index","onStartSessionClick","optionClicked","$event","onSendConfirmationEmailClick","onSessionDetailsClick","handleCancelExamSessionClicked","data","yes","cancelExamSession","examSessionId","testingCenterId","pipe","handleCancelError","console","log","CancelErrorText","Started","TooLate","Missing","NoPermission","getTimeZoneOffsetText","formatOffset","timeZoneOffset","canStartSession","proctorCenter","CustomerID","RoleID","proctorRoleKey","hide","outputs","SessionDetailsComponent","proctorId","languageName","testingCenterName","displayStartTime","regionId","regionName","timeZoneId","timeZoneName","adminSymlink","getTestCenterName","sessionInfo","y","CustomerName","programName","ProgramName","inputs","previous","forwardRef","faInfoCircle","FormControl","FormGroup","NG_VALIDATORS","NG_VALUE_ACCESSOR","Validators","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MomentDateAdapter","DateAdapter","MAT_DATE_FORMATS","MAT_DATE_LOCALE","MY_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","DateSelectionComponent","dateForm","required","isValid","valid","calendarOpened","textBlur","resolve","markOpened","validate","control","pristine","invalidForm","writeValue","val","setValue","emitEvent","registerOnChange","fn","valueChanges","registerOnTouched","onTouched","calenderStartDate","features","provide","useExisting","multi","useClass","deps","useValue","ValidationStatus","CandidateCountComponent","minValue","maxValue","maximumCandidateCount","ValidateCandidateCount","validationStatus","SetValidationStatus","highlightInput","event","target","select","e","validateInline","f","LanguageSelectionComponent","languageService","selectionChange","onLanguageChange","firstFocus","languages","TestCenterSelectionComponent","item","values","testCenterId","EmailDialogComponent","SessionConfirmationComponent","dialog","emailService","alertHidden","proctorEmail","Email","nonProctorEmail","sendEmail","show","hideAlert","_","EmailSent","EmailFailure","emailSent","postSuccess","sendButtonHidden","resendButtonHidden","postError","updateEmail","dialogRef","email","emailConfirm","proctorRole","some","allowedRoles","includes","onSubmit"],"sourceRoot":"webpack:///"}