{ "version": 3, "sources": ["src/app/site/error/connection-error-modal/connection-error-modal.component.ts", "src/app/site/error/connection-error-modal/connection-error-modal.component.html", "src/app/service/error/application-error-handler.ts", "src/app/site/error/error-modal/error-modal.component.ts", "src/app/site/error/error-modal/error-modal.component.html", "src/app/service/error/error.service.ts", "src/app/service/request/auth-request.service.ts", "src/app/service/authorisation/authorisation.service.ts"], "sourcesContent": ["import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-connection-error-modal',\r\n templateUrl: './connection-error-modal.component.html',\r\n styleUrls: ['./connection-error-modal.component.scss']\r\n})\r\nexport class ConnectionErrorModalComponent {\r\n\r\n constructor(private dialogRef: MatDialogRef) { }\r\n\r\n public close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n", "\r\n
\r\n
\r\n

You have gone into offline mode

\r\n

Don't worry, you can still continue your exam as normal

\r\n
    \r\n
  • \r\n Don't try and refresh the page.\r\n
  • \r\n
  • \r\n Continue answering questions, your exam time continues. \r\n
  • \r\n
  • \r\n At the end of your exam, you will be asked to upload your final answers.\r\n
  • \r\n
\r\n

If you reconnect to the internet during the exam, we will save the answers for you automatically, you don't have to do anything.

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n", "import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ApplicationError } from '../../model/error';\r\n\r\nexport enum ErrorCode {\r\n\tNone = 0,\r\n\tUnknown = 1,\r\n\tServerUnavailable = 2,\r\n\tServerTimeout = 3,\r\n\tInvalidAccessToken = 10000,\r\n\tExamHasEnded,\r\n\tPreviousExamPresentOnDevice,\r\n\tExamNotStarted,\r\n\tCandidateExamNotStarted,\r\n\tMismatchingExamCandidateQuestion,\r\n\tMismatchingExamCandidateQuestionAnswer,\r\n\tInvalidExamState,\r\n\tUploadInvalidChecksum,\r\n\tUploadIncorrectPin,\r\n\tUploadInvalidPin,\r\n\tCandidateNotReady,\r\n\tExamNotAvailable,\r\n\tCandidateExamEnded,\r\n\tAssetFail,\r\n\tExamPaused\r\n}\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class ApplicationErrorHandler {\r\n\r\n\tconstructor(private router: Router) { }\r\n\r\n\tprivate readonly errors: ApplicationError[] = [{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Server Error',\r\n\t\terrorCode: ErrorCode.None,\r\n\t\tactionText: 'Troubleshoot',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('troubleshoot');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Unknown Error',\r\n\t\terrorCode: ErrorCode.Unknown,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Server Unavailable',\r\n\t\terrorCode: ErrorCode.ServerUnavailable,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Server Timeout',\r\n\t\terrorCode: ErrorCode.ServerTimeout,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'Invalid or missing Access Token',\r\n\t\tfriendlyName: 'It looks like you aren\\'t logged in. Please log in.',\r\n\t\terrorCode: ErrorCode.InvalidAccessToken,\r\n\t\tactionText: 'Ok',\r\n\t\taction: () => {\r\n\t\t\tsessionStorage.removeItem('AccessToken');\r\n\t\t\tthis.router.navigateByUrl('login');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Exam has ended',\r\n\t\terrorCode: ErrorCode.ExamHasEnded,\r\n\t\tactionText: 'Need to upload?',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('upload');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Unknown Error',\r\n\t\terrorCode: ErrorCode.PreviousExamPresentOnDevice,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t},\r\n\t{\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Exam not started',\r\n\t\terrorCode: ErrorCode.ExamNotStarted,\r\n\t\tactionText: 'Go To Exam Start',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('exam/start');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Candidate exam not started',\r\n\t\terrorCode: ErrorCode.CandidateExamNotStarted,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Unknown Error',\r\n\t\terrorCode: ErrorCode.MismatchingExamCandidateQuestion,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Unknown Error',\r\n\t\terrorCode: ErrorCode.MismatchingExamCandidateQuestionAnswer,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Invalid exam state, please contact Highfield',\r\n\t\terrorCode: ErrorCode.InvalidExamState,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Invalid Checksum',\r\n\t\terrorCode: ErrorCode.UploadInvalidChecksum,\r\n\t\tactionText: \"Go to Upload\",\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('upload');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Unable to find candidate',\r\n\t\terrorCode: ErrorCode.UploadInvalidPin,\r\n\t\tactionText: \"Go to Upload\",\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('upload');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The error code is either invalid or nonexistant',\r\n\t\tfriendlyName: 'Incorrect PIN',\r\n\t\terrorCode: ErrorCode.UploadIncorrectPin,\r\n\t\tactionText: \"Go to Upload\",\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('upload');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'Exam Candidate not set to ready',\r\n\t\tfriendlyName: 'Please let your invigilator know that you are ready to start the exam',\r\n\t\terrorCode: ErrorCode.CandidateNotReady,\r\n\t\tactionText: \"\",\r\n\t\taction: () => {},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'Exam Not Available',\r\n\t\tfriendlyName: 'Your exam is not available',\r\n\t\terrorCode: ErrorCode.ExamNotAvailable,\r\n\t\tactionText: 'Exit',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'Candidate exam has been ended',\r\n\t\tfriendlyName: 'This exam has been ended, and can no longer accept uploaded answers',\r\n\t\terrorCode: ErrorCode.CandidateExamEnded,\r\n\t\tactionText: 'Exit',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'They can\\'t fetch the assets. Something is funky with their internet. ',\r\n\t\tfriendlyName: 'Unable to load exam assets, please contact Highfield.',\r\n\t\terrorCode: ErrorCode.AssetFail,\r\n\t\tactionText: 'Troubleshoot',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('troubleshoot');\r\n\t\t},\r\n\t\ttriggerActionImmediately: false\r\n\t}, {\r\n\t\ttechnicalName: 'The exam has been paused, however they did not get the message.',\r\n\t\tfriendlyName: 'Your exam has been paused.',\r\n\t\terrorCode: ErrorCode.ExamPaused,\r\n\t\tactionText: 'Continue',\r\n\t\taction: () => {\r\n\t\t\tthis.router.navigateByUrl('exam/paused');\r\n\t\t},\r\n\t\ttriggerActionImmediately: true\r\n\t\t}];\r\n\r\n\tpublic getErrorByErrorIdentifier(errorCode: number): ApplicationError {\r\n\t\tconst error = this.errors.find(x => x.errorCode === errorCode);\r\n\t\treturn error || this.errors[0];\r\n\t}\r\n}\r\n", "import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ApplicationError } from '../../../model/error';\r\nimport { ErrorDialogData } from '../../../model/error-dialog-data';\r\nimport { ApplicationErrorHandler } from '../../../service/error/application-error-handler';\r\n\r\n@Component({\r\n selector: 'app-error-modal',\r\n templateUrl: './error-modal.component.html',\r\n styleUrls: ['./error-modal.component.scss']\r\n})\r\nexport class ErrorModalComponent implements OnInit {\r\n public error!: ApplicationError;\r\n public id!: string;\r\n public technicalDetailsPanelOpen: boolean = false;\r\n public tooltipText: string = 'Copy me!';\r\n\r\n private defaultError: ApplicationError = {\r\n technicalName: 'The error code is either invalid or nonexistant, which I guess is the same thing here',\r\n friendlyName: 'Unknown Error',\r\n errorCode: 0,\r\n actionText: \"\",\r\n action: () => {},\r\n triggerActionImmediately: false\r\n };\r\n\r\n constructor(private applicationErrorHandler: ApplicationErrorHandler, private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) private data: ErrorDialogData) { }\r\n\r\n\tngOnInit(): void {\r\n this.id = this.data.sentryId!;\r\n let errorCode: number = 0;\r\n try {\r\n errorCode = Number(this.data.errorCode);\r\n } catch {\r\n errorCode = 0;\r\n }\r\n\r\n this.error = this.applicationErrorHandler.getErrorByErrorIdentifier(errorCode) || this.defaultError;\r\n }\r\n\r\n public triggerErrorAction(): void {\r\n if (this.error.action) {\r\n this.error.action();\r\n }\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n public toggleTechnicalDetailsPane(): void {\r\n this.technicalDetailsPanelOpen = !this.technicalDetailsPanelOpen;\r\n }\r\n\r\n public copy(e: Event): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n navigator.clipboard.writeText(this.id).then(() => {\r\n this.setTooltipTextSuccess();\r\n }).catch(() => {\r\n this.setTooltipTextFailure();\r\n });\r\n }\r\n\r\n public setTooltipTextDefault(): void {\r\n setTimeout(() => {\r\n this.tooltipText = 'Copy me!';\r\n }, 50);\r\n }\r\n\r\n public setTooltipTextSuccess(): void {\r\n this.tooltipText = 'Successfully copied!';\r\n }\r\n\r\n public setTooltipTextFailure(): void {\r\n this.tooltipText = 'Unable to copy!';\r\n }\r\n}\r\n", "\r\n
\r\n
\r\n
\r\n
\r\n error\r\n

{{ error.friendlyName }}

\r\n @if (error.action && error.actionText) {\r\n \r\n }\r\n @if (id) {\r\n \r\n \r\n \r\n Technical Details\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n", "import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { ApplicationError } from '../../model/error';\r\nimport { ErrorDialogData } from '../../model/error-dialog-data';\r\nimport { ConnectionErrorModalComponent } from '../../site/error/connection-error-modal/connection-error-modal.component';\r\nimport { ErrorModalComponent } from '../../site/error/error-modal/error-modal.component';\r\nimport { ApplicationErrorHandler } from './application-error-handler';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n constructor(private router: Router,\r\n private applicationErrorHandler: ApplicationErrorHandler,\r\n private dialog: MatDialog) { }\r\n\r\n\r\n\tpublic goToErrorPage(errorCode: number, sentryId?: string): void {\r\n\t this.router.navigate([`/error/${errorCode}`], { queryParams: { id: sentryId } });\r\n\r\n }\r\n\r\n\tpublic showErrorModal(errorCode: number, sentryId?: string): MatDialogRef | null {\r\n\r\n if (this.triggerErrorActionImmediately(errorCode)) {\r\n this.errorSilently(errorCode);\r\n return null;\r\n }\r\n\r\n const dialogData: ErrorDialogData = {\r\n errorCode,\r\n sentryId\r\n };\r\n\r\n return this.dialog.open(ErrorModalComponent, {\r\n width: '30rem',\r\n data: dialogData,\r\n\t\t\t\tpanelClass: ['mbg', 'fd']\r\n });\r\n }\r\n\r\n public errorSilently(errorCode: number): void {\r\n const error = this.getError(errorCode);\r\n if (error.action) {\r\n error.action();\r\n }\r\n }\r\n\r\n public showConnectionErrorModal(): void {\r\n const dialogRef = this.dialog.open(ConnectionErrorModalComponent, {\r\n width: '40rem',\r\n panelClass: ['mbg', 'fd']\r\n });\r\n }\r\n\r\n\tprivate getError(errorCode: number): ApplicationError {\r\n return this.applicationErrorHandler.getErrorByErrorIdentifier(errorCode);\r\n }\r\n\r\n private triggerErrorActionImmediately(errorCode: number): boolean {\r\n const error = this.getError(errorCode);\r\n\r\n return error.triggerActionImmediately;\r\n }\r\n}\r\n", "import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { APIResponse } from '../../model/request/APIResponse';\r\nimport { ErrorCode } from '../error/application-error-handler';\r\nimport { ErrorService } from '../error/error.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthRequestService {\r\n\r\n constructor(private http: HttpClient,\r\n @Inject('servicesBaseUrl') private servicesBaseUrl: string,\r\n private errorService: ErrorService) {\r\n this.processResponse = this.processResponse.bind(this);\r\n }\r\n\r\n public get(url: string): Observable> {\r\n return this.http.get>(`${this.servicesBaseUrl}/api/${url}`)\r\n .pipe(map(this.processResponse));\r\n }\r\n\r\n public post(url: string, body: any): Observable> {\r\n return this.http.post>(`${this.servicesBaseUrl}/api/${url}`, body)\r\n .pipe(map(this.processResponse));\r\n }\r\n\r\n public put(url: string, body: any): Observable> {\r\n return this.http.put>(`${this.servicesBaseUrl}/api/${url}`, body)\r\n .pipe(map(this.processResponse));\r\n }\r\n\r\n public delete(url: string): Observable> {\r\n return this.http.delete>(`${this.servicesBaseUrl}/api/${url}`)\r\n .pipe(map(this.processResponse));\r\n }\r\n\r\n private processResponse(response: APIResponse): APIResponse {\r\n if (response.responseCode !== 200) {\r\n this.errorService.goToErrorPage(response.responseCode, response.responseData as unknown as string);\r\n\r\n if (response.responseData) {\r\n\t\t\t\tthrow response.responseData as unknown as string;\r\n\t\t\t}\r\n }\r\n\r\n return response;\r\n }\r\n}\r\n", "import { HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { APIResponse } from '../../model/request/APIResponse';\r\nimport { LoginResponseDto } from '../../model/request/LoginResponseDto';\r\nimport { AuthRequestService } from '../request/auth-request.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthorisationService {\r\n\r\n constructor(private authRequestService: AuthRequestService) { }\r\n\r\n public setAccessToken(accessToken: string): void {\r\n\t sessionStorage.setItem('AccessToken', accessToken);\r\n }\r\n\r\n public getAccessToken(): string {\r\n\t return sessionStorage.getItem('AccessToken')!;\r\n }\r\n\r\n public clearAccessToken(): void {\r\n\t sessionStorage.removeItem('AccessToken');\r\n }\r\n\r\n public getAuthHeader(): HttpHeaders {\r\n const accessToken: string = this.getAccessToken();\r\n\r\n if (!(!!accessToken)) { return new HttpHeaders(); }\r\n\r\n let headers: HttpHeaders = new HttpHeaders();\r\n headers = headers.append('Authorization', accessToken);\r\n headers = headers.append('timeout', '30000');\r\n\r\n return headers;\r\n }\r\n\r\n\tpublic attemptPinLogin(pin: string): Observable> {\r\n\t\treturn this.authRequestService.post('auth/candidate/pin', { pin });\r\n\t}\r\n\tpublic attemptCredentialLogin(firstName: string, surname: string, dob: Date,): Observable> {\r\n\t\treturn this.authRequestService.post('auth/candidate/credentials', { firstName: firstName, surname: surname, dateOfBirth: dob });\r\n\t}\r\n}\r\n"], "mappings": "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", "names": ["ConnectionErrorModalComponent", "constructor", "dialogRef", "close", "\u0275\u0275directiveInject", "MatDialogRef", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "_ConnectionErrorModalComponent", "ErrorCode", "ApplicationErrorHandler", "constructor", "router", "errors", "technicalName", "friendlyName", "errorCode", "None", "actionText", "action", "navigateByUrl", "triggerActionImmediately", "Unknown", "ServerUnavailable", "ServerTimeout", "InvalidAccessToken", "sessionStorage", "removeItem", "ExamHasEnded", "PreviousExamPresentOnDevice", "ExamNotStarted", "CandidateExamNotStarted", "MismatchingExamCandidateQuestion", "MismatchingExamCandidateQuestionAnswer", "InvalidExamState", "UploadInvalidChecksum", "UploadInvalidPin", "UploadIncorrectPin", "CandidateNotReady", "ExamNotAvailable", "CandidateExamEnded", "AssetFail", "ExamPaused", "getErrorByErrorIdentifier", "find", "x", "\u0275\u0275inject", "Router", "factory", "\u0275fac", "providedIn", "_ApplicationErrorHandler", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r3", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "triggerErrorAction", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "ctx_r0", "error", "actionText", "_r6", "ctx_r5", "technicalDetailsPanelOpen", "ctx_r7", "ctx_r8", "toggleTechnicalDetailsPane", "\u0275\u0275element", "$event", "ctx_r9", "copy", "ctx_r10", "setTooltipTextDefault", "ctx_r1", "\u0275\u0275property", "id", "\u0275\u0275sanitizeHtml", "tooltipText", "ErrorModalComponent", "constructor", "applicationErrorHandler", "dialogRef", "data", "defaultError", "technicalName", "friendlyName", "errorCode", "action", "triggerActionImmediately", "ngOnInit", "sentryId", "Number", "getErrorByErrorIdentifier", "close", "e", "stopPropagation", "preventDefault", "navigator", "clipboard", "writeText", "then", "setTooltipTextSuccess", "catch", "setTooltipTextFailure", "setTimeout", "\u0275\u0275directiveInject", "ApplicationErrorHandler", "MatDialogRef", "MAT_DIALOG_DATA", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "ErrorModalComponent_Conditional_9_Template", "ErrorModalComponent_Conditional_10_Template", "\u0275\u0275conditional", "_ErrorModalComponent", "ErrorService", "constructor", "router", "applicationErrorHandler", "dialog", "goToErrorPage", "errorCode", "sentryId", "navigate", "queryParams", "id", "showErrorModal", "triggerErrorActionImmediately", "errorSilently", "dialogData", "open", "ErrorModalComponent", "width", "data", "panelClass", "error", "getError", "action", "showConnectionErrorModal", "dialogRef", "ConnectionErrorModalComponent", "getErrorByErrorIdentifier", "triggerActionImmediately", "\u0275\u0275inject", "Router", "ApplicationErrorHandler", "MatDialog", "factory", "\u0275fac", "providedIn", "_ErrorService", "AuthRequestService", "constructor", "http", "servicesBaseUrl", "errorService", "processResponse", "bind", "get", "url", "pipe", "map", "post", "body", "put", "delete", "response", "responseCode", "goToErrorPage", "responseData", "\u0275\u0275inject", "HttpClient", "ErrorService", "factory", "\u0275fac", "providedIn", "_AuthRequestService", "AuthorisationService", "constructor", "authRequestService", "setAccessToken", "accessToken", "sessionStorage", "setItem", "getAccessToken", "getItem", "clearAccessToken", "removeItem", "getAuthHeader", "HttpHeaders", "headers", "append", "attemptPinLogin", "pin", "post", "attemptCredentialLogin", "firstName", "surname", "dob", "dateOfBirth", "\u0275\u0275inject", "AuthRequestService", "factory", "\u0275fac", "providedIn", "_AuthorisationService"] }