{"version":3,"sources":["assets/img/report_pic.png","assets/img/logo.png","assets/img/illustration_questionnaire.svg","common/webapicall.ts","common/auth.config.ts","stores/debug.panel.store.tsx","stores/user.store.tsx","stores/app.context.store.ts","public/report-page/types/report.chart.types.ts","stores/questionnaire.store.ts","stores/training.content.store.ts","utils/date.utils.ts","stores/report.page.store.ts","login/login.tsx","stores/layout.store.ts","stores/app.store.ts","common/app.store.consumer.tsx","common/top.header.tsx","common/blank.tsx","common/not.found.tsx","common/validation.tsx","common/guard.tsx","user-dropdown/user.dropdown.tsx","common/action.button.tsx","stores/site.map.ts","public/debug-panel/debug.panel.tsx","public/questionnaire/questionnaire-debug/question.debug.details.tsx","public/questionnaire/question.item.tsx","public/questionnaire/question.list.tsx","progress-bar/progress.bar.tsx","public/questionnaire-autofill/questionnaire.autofill.randomize.panel.tsx","public/questionnaire-autofill/questionnaire.autofill.dictate.dropdown.tsx","public/questionnaire-autofill/questionnaire.autofill.dictate.panel.tsx","public/questionnaire-autofill/questionnaire.autofill.panel.tsx","loading-overlay/loading.overlay.tsx","sanitize-html/sanitize.html.tsx","public/questionnaire/questionnaire.header.tsx","public/questionnaire/questionnaire.tsx","home/home.tsx","public/report-page/components/report.details.tsx","public/report-page/components/pdf.download.tsx","public/report-page/components/report.summary.tsx","public/report-page/components/report.selector.dropdown.tsx","public/report-page/components/report.chart.selector.tsx","public/report-page/components/report.chart.spiderweb.tsx","public/report-page/components/report.chart.bar.tsx","public/report-page/components/report.selector.and.charts.panel.tsx","public/training-content/training.content.card.tsx","public/training-content/training.content.list.tsx","public/training-content/training.content.see.more.tsx","public/training-content/training.content.filters.tsx","public/training-content/training.content.tsx","public/report-page/components/report.debug.panel.tsx","public/report-page/components/report.nonmember.call.to.action.panel.tsx","public/report-page/components/retake.assessment.button.tsx","public/report-page/report.page.tsx","common/constants.ts","common/with.questionnaire.type.tsx","generic-wrapper/generic.wrapper.tsx","utils/resources.utils.ts","CIH/components/cih.header.tsx","CIH/components/cih.footer.tsx","public/report-page-v2/components/pdf.download.tsx","public/report-page-v2/components/feedback.panel.tsx","public/report-page-v2/components/report.chart.spiderweb.tsx","public/report-page-v2/components/report.summary.tsx","public/report-page-v2/components/report.debug.panel.tsx","public/report-page-v2/components/retake.assessment.button.tsx","public/report-page-v2/components/report.collapsable.section.tsx","public/report-page-v2/components/report.taxonomy.description.tsx","public/report-page-v2/components/report.selector.dropdown.tsx","public/report-page-v2/report.page.tsx","common/top.level.routes.tsx","common/modal.tsx","common/outdated.client.tsx","common/error.component.tsx","common/mainframe.tsx","fontawesome-library/fontawesome.library.ts","App.tsx","serviceWorker.ts","index.tsx"],"names":["module","exports","AuthorizableActions","UserMemberStatus","AuthConfigImpl","appStore","token","refreshToken","url","init","a","window","fetch","catch","r","res","status","headers","get","this","userStore","ClientBase","configuration","options","apiVersion","setAdditionalOptions","response","processor","Promise","resolve","reject","then","mapDatesToMoment","isWebApiErrorResponse","body","statusCode","stack","obj","Array","item","key","hasOwnProperty","test","moment","ContextClient","baseUrl","http","jsonParseReviver","undefined","url_","replace","options_","JSON","stringify","method","transformOptions","transformedOptions_","_response","transformResult","processGetContext","_headers","forEach","v","k","text","_responseText","parse","throwException","DebugPanelClient","processGenerateTestPdf","contentDisposition","fileNameMatch","exec","fileName","length","blob","data","result400","LayoutClient","processGetSiteLayout","LookupClient","processGetPublicConfiguration","processGetAllUsers","processGetApiVersion","QuestionnaireClient","questionnaireType","encodeURIComponent","processGetQuestionnaire","processSubmitQuestionnaire","QuestionnaireAnswerClient","answerSheetId","processGetUserAnswerSheetDetails","processGetUserAnswerSheets","aSheetId","Error","processGenerateUserPdfReport","processGetExportDownloadUrl","ReportClient","processSendClientException","processGetMembersReport","TrainingContentRecommendationsClient","taxonomyId","mediaTypeId","showAll","pageNumber","pageSize","processGetTrainingContentRecommendations","processGetTrainingContentFilters","UserClient","email","redirectUrl","pendingAnswerSheetId","processLoginByEmail","processRefreshToken","result403","processGetInfo","userId","processWipeOut","result404","processLogAuditTrail","processGetToken","processLogout","SwaggerException","message","result","isSwaggerException","DebugPanelOperation","UserStore","apiClient","configurationProvider","screenName","userClient","logAuditTrail","location","href","loginByEmail","getAuthToken","Cookies","setAuthToken","getInfo","userInfo","isLoggedIn","userName","firstName","lastName","memberStatus","hasSubmittedQuestionnaire","showUserDropdown","lookupClient","getAllUsers","users","successful","tokenResponse","isLoginVisible","hash","getLoginRedirectUrl","canChangeUser","getToken","updateTokens","loginUrl","logout","reload","isOpenIdLoginEnabled","getOpenIdRedirectUrl","openIdLoginUrl","queryParams","queryString","URLSearchParams","toString","openIdLogoutUrl","openIdLogout","Member","observable","NonMember","computed","action","AppContextStore","contextClient","getContext","contextResponse","handleContextResponse","contextModel","ChartTypes","DebugPanelStore","setLoading","GenerateTestPdf","debugPanelClient","generateTestPdf","fileContent","operation","isLoading","debugPanelVisible","QuestionnaireStore","questionnaireClient","getQuestionnaire","runInAction","isQuestionnaireLoading","questionnaire","isQuestionnaireSubmitLoading","isEveryQuestionAnswered","answers","questions","map","q","questionId","questionVariantId","answer","submitQuestionnaire","qId","find","question","Math","random","filter","every","TrainingContentStore","trainingContentClient","getTrainingContentFilters","filters","currentPage","isTrainingContentsLoading","getTrainingContentRecommendations","selectedTaxonomy","selectedMediaType","trainings","trainingContents","hasNext","hasNextPage","isSeeMoreLoading","nextPage","clearTrainingContents","getInitialTrainingContents","mediaType","DateTimeSeparator","LoginState","ReportPageStore","questionnaireAnswerSheetDetailsItem","selectedAnswerSheetId","questionnaireAnswerClient","getUserAnswerSheets","userQuestionnaireAnswerSheets","sort","b","answerSheetCreated","newestAnswerSheetId","getUserQuestionnaireAnswerDetails","setSelectedAnswerSheetId","isAnswerSheetDetailsLoading","questionnaireAnswerSheetDetails","getUserAnswerSheetDetails","chartType","reportChartType","pdfDownload","downloadLink","setTimeout","getExportDownloadUrl","fileSize","exportPdfRefreshIntervalInSec","answerSheet","date","format","results","taxonomySequentialId","score","BarChart","LayoutStore","layoutClient","getSiteLayout","siteLayout","isLayoutLoaded","__html","headerHtmlEncode","atob","footerHtmlEncode","styleURL","scriptUrl","scriptPluginsURL","value","areScriptsAdded","AppStore","authConfig","contextStore","debugPanelStore","questionnaireStore","reportPageStore","trainingContentStore","layoutStore","newToken","reportClient","loadApiVersion","subscribeEventHandlers","initTokens","loadPublicConfiguration","addUsageTrackingScripts","loadContext","setupCrosstab","getPublicConfiguration","config","reason","sendClientException","getApiVersion","hotjarId","hotjar","initialize","googleAnalyticsId","ReactGA","pageview","pathname","search","googleTagManagerId","tagManagerArgs","gtmId","TagManager","outDatedClient","errorVisible","errorMessage","addEventListener","ev","error","indexOf","reportError","onunhandledrejection","reportUnhandledRejection","tokenToCheck","crosstab","origin","assign","getLoginUrl","showErrorDetails","console","log","useAppStore","Component","ObserverComponent","observer","props","React","AppContext","TopHeader","className","style","backgroundImage","heroImage","MainBlank","NotFound","ValidatableForm","focusedElements","onFocus","e","fieldName","target","dataset","some","fe","push","onBlur","shouldValidateOnBlur","setState","validate","onSubmit","preventDefault","Object","keys","model","validationResult","isValid","onValidationErrorOnSubmit","onKeyup","s","errorMessages","state","schema","validateSync","abortEarly","elements","inner","i","path","validateOnBlur","currentValidationResult","children","onKeyUp","ValidationMessage","ValidatableInput","val","mappedProps","onChange","onChanged","type","checked","GuardResult","emailModel","Yup","required","LoginWithoutRouter","isSuccessfulVisible","getRedirectUrl","isSuccessful","hasLoginAttempted","scrollTo","onEmailChanged","onEmailFocused","hideInitialState","onClickLoginWithSSO","sendToOpenIdLogin","sessionStorage","getItem","match","params","decodeURIComponent","isLoginPageEnabled","loginSuccessfulMsg","ico","src","logoCih","alt","id","name","placeholder","transform","icon","onClick","Login","withRouter","UserDropdown","onUserSelected","changeUser","defaultValue","u","fullName","ActionButton","store","disabled","buttonProps","SiteMapRoutes","ProfessionalProfileRoutes","Questionnaire","Report","ReportV2","DebugPanelWithoutWrapper","sendToOpenIdLogout","history","generateTestPfd","getGeneratedPdfFile","csvURL","URL","createObjectURL","tempLink","document","createElement","setAttribute","click","isEnabled","isDebugPanelEnabled","isVisible","content","toggleTestingPanel","cursor","Logout","includes","textAlign","width","margin","PublicDebugPanel","QuestionDebugDetails","debugDetails","taxonomyName","correctAnswer","weight","QuestionItem","handleAnswerChange","getActiveButtonClass","negate","baseClass","isDebugEnabled","questionNumber","QuestionList","ProgressBar","max","answered","htmlFor","QuestionnaireAutoFillRandomizePanel","randomizeAndSubmitQuestionnaire","randomizeAnswers","AutoFillDictateSelect","onOptionSelected","selectedOption","defaultOption","selectOptions","selectOption","title","numberOfCorrectAnswers","numberOfQuestions","option","QuestionnaireAutoFillDictatePanel","dictateQuestionnaire","currentSelectedOptions","selectedOptions","questionList","dictateAndSubmitQuestionnaire","storeSelectedOption","previousState","taxonomies","countTaxonomiesAndQuestions","taxonomyIndex","findIndex","taxonomy","QuestionnaireAutofillPanel","LoadingOverlay","color","position","visible","shadingColor","showIndicator","shading","showPane","SanitizeHTML","html","dangerouslySetInnerHTML","dirty","sanitizeHtml","defaultOptions","sanitize","allowedTags","allowedAttributes","img","selfClosing","enforceHtmlBoundary","disallowedTagsMode","QuestionnaireHeader","nonMemberHeaderTextParagraphFirst","isMember","to","Illustration","setItem","setHasSubmittedQuestionnaire","redirectTo","clearQuestionnaire","instructions","questionsCount","answeredCount","Home","Allowed","RedirectToLogin","Guard","redirect","checkUser","startsWith","substr","RedirectToHome","guard","WrappedComponent","RenderedComponent","ReportDetails","taxonomyTexts","tt","separatedText","split","classNames","toLowerCase","st","scoreBand","PdfDownload","spin","ReportSelectorDropdown","dataSource","answerSheetsSelectOptions","displayExpr","valueExpr","stylingMode","onValueChanged","selectedItem","selectedOptionId","ReportChartSelector","setReportChartType","SpiderWebChart","ReportChartSpiderWeb","isPdf","taxonomyOrderedAnswerSheetDetails","arg","hoverMode","size","indentFromAxis","family","firstPointOnStartAngle","discreteAxisDivisionMode","valueField","enabled","customizeTooltip","pointInfo","round","visualRange","tickInterval","height","ReportChartBar","amountToMax","rotated","argumentField","barWidth","inverted","seriesName","ReportSelectorAndChartPanel","TrainingContentCard","trainingContent","rel","thumbnailUrl","ingress","TrainingContentList","t","TrainingContentSeeMore","loadMore","TrainingContentFilters","onTaxonomyFilterChanged","mediaTypes","onMediaTypeFilterChanged","showAllValue","onClickShowAll","toJS","showClearButton","TrainingContent","getMoreTrainingContent","getNextPageOfTrainingContents","toggleShowAll","onChangeTaxonomy","onChangeMediaType","of","ReportDebugPanel","debugPanelInfo","dp","correctAnswersCount","allAnswersCount","toFixed","paragraphOrder","NonMemberCallToActionPanel","RetakeAssessmentButton","ReportPage","isLoadingAnswerSheetDetails","getUserQuestionnaireAnswerSheets","getNewestUserQuestionnaireAnswerDetails","isPdfSearchParam","removeItem","numberOfAnswerSheets","my","at","WithQuestionnaireType","childElements","Children","child","cloneElement","GenericWrapper","addScript","onload","appendChild","addScripts","urls","CIHHeader","divRef","createRef","useEffect","setAreScriptsAdded","current","CIHHeaderMarkup","ref","CIHFooter","CIHFooterMarkup","FeedbackPanel","feedbackEmail","ReportCollapsableSection","isOpen","onToggle","scorePercent","ReportTaxonomyDescription","ReportPageV2","toggleAllTaxonomies","openChartTaxonomies","Set","getToggleAllText","toggleChartTaxonomy","has","delete","add","taxonomyOrderedAnswerByScore","answerSheetDetails","ProtectedPageWithoutRouter","initialized","_prevComponent","handleUrlChange","prevProps","component","nextProps","prevState","ProtectedPage","renderProtectedElement","isAdminPage","renderPublicElement","getLoginComponent","initialState","Routes","exact","render","Default","SessionExpired","AccessLinkExpired","ForcedLogout","AccessLinkNotFound","AccessDenied","Backdrop","show","classes","modalClicked","Modal","opacity","ModalRenderer","isShow","toggleModal","ReactDOM","OutDatedClientModal","reloadCallback","getOutDatedClientModalLayout","OutdatedClient","refresh","ErrorModal","logoutAndRestartCallback","getErrorModalLayout","rows","MainFrame","fallback","Provider","library","faFile","faMinusLight","faPlusLight","faPodcast","faVideo","faUserSolid","faAlignLeftSolid","faArrowDownSolid","faArrowRightSolid","faBullseyeSolid","faCheckCircleSolid","faPlusCircleSolid","faTimesSolid","faTimesCircleSolid","faSyncSolid","App","refreshTitle","cssUrl","link","getElementsByTagName","addNavigationCss","getElementById","Boolean","hostname","app","start","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.63016b0f.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/report_pic.630a35fb.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/illustration_questionnaire.a2a99085.svg\";","/* tslint:disable */\r\n/* eslint-disable */\r\n//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.11.3.0 (NJsonSchema v10.4.4.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n// ReSharper disable InconsistentNaming\r\n\r\nimport * as moment from \"moment\";\r\nexport abstract class ClientBase {\r\n constructor(protected configuration: AuthConfig) {}\r\n\r\n protected async transformOptions(options: RequestInit): Promise {\r\n if (this.configuration.token) {\r\n options.headers[\"Authorization\"] = `Bearer ${this.configuration.token}`;\r\n }\r\n\r\n options.headers[\"pragma\"] = \"no-cache\";\r\n options.headers[\"cache-control\"] = \"no-cache\";\r\n options.headers[\"X-Api-Version\"] = (window).apiVersion;\r\n if (this.configuration.setAdditionalOptions) {\r\n this.configuration.setAdditionalOptions(options);\r\n }\r\n\r\n return options;\r\n }\r\n\r\n protected async transformResult(url: string, response: Response, processor: (response: Response) => Promise): Promise {\r\n let res = await new Promise((resolve, reject) => {\r\n processor(response)\r\n .then((r) => {\r\n this.mapDatesToMoment(r);\r\n resolve(r);\r\n })\r\n .catch(async (r) => {\r\n let res: WebApiErrorResponse = {\r\n isWebApiErrorResponse: true,\r\n url: url,\r\n body: r.response,\r\n statusCode: response.status,\r\n stack: r.stack,\r\n headers: response.headers,\r\n };\r\n\r\n reject(res);\r\n });\r\n });\r\n\r\n return res;\r\n }\r\n\r\n protected mapDatesToMoment(obj: any) {\r\n if (!obj) {\r\n return;\r\n }\r\n\r\n if (obj instanceof Array) {\r\n for (let item of obj) {\r\n this.mapDatesToMoment(item);\r\n }\r\n }\r\n\r\n if (typeof obj === \"object\") {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (\r\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/.test(\r\n obj[key],\r\n )\r\n ) {\r\n obj[key] = moment(obj[key]);\r\n } else {\r\n this.mapDatesToMoment(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (\r\n typeof obj === \"string\" &&\r\n /(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))/.test(\r\n obj,\r\n )\r\n ) {\r\n obj = moment(obj);\r\n }\r\n }\r\n}\r\n\r\nexport interface IContextClient {\r\n /**\r\n * Returns info about the logged in user.\r\n * @param body (optional) \r\n * @return Success\r\n */\r\n getContext(body?: ContextRequestModel | null | undefined): Promise;\r\n}\r\n\r\nexport class ContextClient extends ClientBase implements IContextClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Returns info about the logged in user.\r\n * @param body (optional) \r\n * @return Success\r\n */\r\n getContext(body?: ContextRequestModel | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/context/get-context\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetContext(_response));\r\n });\r\n }\r\n\r\n protected processGetContext(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IDebugPanelClient {\r\n /**\r\n * Generate test pdf.\r\n * @return Success\r\n */\r\n generateTestPdf(): Promise;\r\n}\r\n\r\nexport class DebugPanelClient extends ClientBase implements IDebugPanelClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Generate test pdf.\r\n * @return Success\r\n */\r\n generateTestPdf(): Promise {\r\n let url_ = this.baseUrl + \"/api/DebugPanel/generate-test-pdf\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGenerateTestPdf(_response));\r\n });\r\n }\r\n\r\n protected processGenerateTestPdf(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200 || status === 206) {\r\n const contentDisposition = response.headers ? response.headers.get(\"content-disposition\") : undefined;\r\n const fileNameMatch = contentDisposition ? /filename=\"?([^\"]*?)\"?(;|$)/g.exec(contentDisposition) : undefined;\r\n const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;\r\n return response.blob().then(blob => { return { fileName: fileName, data: blob, status: status, headers: _headers }; });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IEmailClient {\r\n /**\r\n * Sends out emails that were created in the request with the given context id.\r\n * @return Success\r\n */\r\n sendBatch(batchId: string): Promise;\r\n}\r\n\r\nexport class EmailClient extends ClientBase implements IEmailClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Sends out emails that were created in the request with the given context id.\r\n * @return Success\r\n */\r\n sendBatch(batchId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/Email/send-batch?\";\r\n if (batchId === undefined || batchId === null)\r\n throw new Error(\"The parameter 'batchId' must be defined and cannot be null.\");\r\n else\r\n url_ += \"batchId=\" + encodeURIComponent(\"\" + batchId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processSendBatch(_response));\r\n });\r\n }\r\n\r\n protected processSendBatch(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : <{ [key: string]: string[]; }>JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ILayoutClient {\r\n /**\r\n * Get the header and the footer of the site.\r\n * @return Success\r\n */\r\n getSiteLayout(): Promise;\r\n}\r\n\r\nexport class LayoutClient extends ClientBase implements ILayoutClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Get the header and the footer of the site.\r\n * @return Success\r\n */\r\n getSiteLayout(): Promise {\r\n let url_ = this.baseUrl + \"/api/Layout/SiteLayout\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetSiteLayout(_response));\r\n });\r\n }\r\n\r\n protected processGetSiteLayout(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ILookupClient {\r\n /**\r\n * Gets all the lookups that are required for the client-side app.\r\n * @return Success\r\n */\r\n getPublicConfiguration(): Promise;\r\n /**\r\n * Gets all users for debug user dropdown menu.\r\n * @return Success\r\n */\r\n getAllUsers(): Promise;\r\n /**\r\n * Gets the current API version\r\n * @return Success\r\n */\r\n getApiVersion(): Promise;\r\n}\r\n\r\nexport class LookupClient extends ClientBase implements ILookupClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Gets all the lookups that are required for the client-side app.\r\n * @return Success\r\n */\r\n getPublicConfiguration(): Promise {\r\n let url_ = this.baseUrl + \"/api/lookup/public-configuration\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetPublicConfiguration(_response));\r\n });\r\n }\r\n\r\n protected processGetPublicConfiguration(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Gets all users for debug user dropdown menu.\r\n * @return Success\r\n */\r\n getAllUsers(): Promise {\r\n let url_ = this.baseUrl + \"/api/lookup/all-users\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetAllUsers(_response));\r\n });\r\n }\r\n\r\n protected processGetAllUsers(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Gets the current API version\r\n * @return Success\r\n */\r\n getApiVersion(): Promise {\r\n let url_ = this.baseUrl + \"/api/lookup/api-version\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetApiVersion(_response));\r\n });\r\n }\r\n\r\n protected processGetApiVersion(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IQuestionnaireClient {\r\n /**\r\n * Get questionnaire.\r\n * @param questionnaireType (optional) \r\n * @return Success\r\n */\r\n getQuestionnaire(questionnaireType?: string | null | undefined): Promise;\r\n /**\r\n * Submit questionnaire.\r\n * @param questionnaireType (optional) \r\n * @param body (optional) \r\n * @return Success\r\n */\r\n submitQuestionnaire(questionnaireType?: string | null | undefined, body?: QuestionAnswer[] | null | undefined): Promise;\r\n}\r\n\r\nexport class QuestionnaireClient extends ClientBase implements IQuestionnaireClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Get questionnaire.\r\n * @param questionnaireType (optional) \r\n * @return Success\r\n */\r\n getQuestionnaire(questionnaireType?: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire?\";\r\n if (questionnaireType !== undefined && questionnaireType !== null)\r\n url_ += \"QuestionnaireType=\" + encodeURIComponent(\"\" + questionnaireType) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetQuestionnaire(_response));\r\n });\r\n }\r\n\r\n protected processGetQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Submit questionnaire.\r\n * @param questionnaireType (optional) \r\n * @param body (optional) \r\n * @return Success\r\n */\r\n submitQuestionnaire(questionnaireType?: string | null | undefined, body?: QuestionAnswer[] | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/Questionnaire?\";\r\n if (questionnaireType !== undefined && questionnaireType !== null)\r\n url_ += \"QuestionnaireType=\" + encodeURIComponent(\"\" + questionnaireType) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processSubmitQuestionnaire(_response));\r\n });\r\n }\r\n\r\n protected processSubmitQuestionnaire(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IQuestionnaireAnswerClient {\r\n /**\r\n * Get the details of a user's questionary answers.\r\n * @param answerSheetId (optional) \r\n * @return Success\r\n */\r\n getUserAnswerSheetDetails(answerSheetId?: string | null | undefined): Promise;\r\n /**\r\n * Get user's questionnaire answer history.\r\n * @return Success\r\n */\r\n getUserAnswerSheets(): Promise;\r\n /**\r\n * Generate user's report in pdf and save to S3.\r\n * @param body (optional) \r\n * @return Success\r\n */\r\n generateUserPdfReport(aSheetId: string, body?: GeneratePdfResourceParameters | null | undefined): Promise;\r\n /**\r\n * Get answer sheet's pdf export download url.\r\n * @return Success\r\n */\r\n getExportDownloadUrl(aSheetId: string): Promise;\r\n}\r\n\r\nexport class QuestionnaireAnswerClient extends ClientBase implements IQuestionnaireAnswerClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Get the details of a user's questionary answers.\r\n * @param answerSheetId (optional) \r\n * @return Success\r\n */\r\n getUserAnswerSheetDetails(answerSheetId?: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/QuestionnaireAnswer/UserAnswerSheetDetails?\";\r\n if (answerSheetId !== undefined && answerSheetId !== null)\r\n url_ += \"answerSheetId=\" + encodeURIComponent(\"\" + answerSheetId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetUserAnswerSheetDetails(_response));\r\n });\r\n }\r\n\r\n protected processGetUserAnswerSheetDetails(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Get user's questionnaire answer history.\r\n * @return Success\r\n */\r\n getUserAnswerSheets(): Promise {\r\n let url_ = this.baseUrl + \"/api/QuestionnaireAnswer/UserAnswerSheets\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetUserAnswerSheets(_response));\r\n });\r\n }\r\n\r\n protected processGetUserAnswerSheets(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Generate user's report in pdf and save to S3.\r\n * @param body (optional) \r\n * @return Success\r\n */\r\n generateUserPdfReport(aSheetId: string, body?: GeneratePdfResourceParameters | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/QuestionnaireAnswer/generate-export/{aSheetId}\";\r\n if (aSheetId === undefined || aSheetId === null)\r\n throw new Error(\"The parameter 'aSheetId' must be defined.\");\r\n url_ = url_.replace(\"{aSheetId}\", encodeURIComponent(\"\" + aSheetId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGenerateUserPdfReport(_response));\r\n });\r\n }\r\n\r\n protected processGenerateUserPdfReport(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 204) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Get answer sheet's pdf export download url.\r\n * @return Success\r\n */\r\n getExportDownloadUrl(aSheetId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/QuestionnaireAnswer/get-download-url/{aSheetId}\";\r\n if (aSheetId === undefined || aSheetId === null)\r\n throw new Error(\"The parameter 'aSheetId' must be defined.\");\r\n url_ = url_.replace(\"{aSheetId}\", encodeURIComponent(\"\" + aSheetId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetExportDownloadUrl(_response));\r\n });\r\n }\r\n\r\n protected processGetExportDownloadUrl(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IReportClient {\r\n /**\r\n * Reports an error happened in the client.\r\n * @return Success\r\n */\r\n sendClientException(body: ClientExceptionModel): Promise;\r\n /**\r\n * Creates report and sends to the configured email address\r\n * @return Success\r\n */\r\n getMembersReport(): Promise;\r\n}\r\n\r\nexport class ReportClient extends ClientBase implements IReportClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Reports an error happened in the client.\r\n * @return Success\r\n */\r\n sendClientException(body: ClientExceptionModel): Promise {\r\n let url_ = this.baseUrl + \"/api/Report/client-exception\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processSendClientException(_response));\r\n });\r\n }\r\n\r\n protected processSendClientException(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : <{ [key: string]: string[]; }>JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Creates report and sends to the configured email address\r\n * @return Success\r\n */\r\n getMembersReport(): Promise {\r\n let url_ = this.baseUrl + \"/api/Report/members-report\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetMembersReport(_response));\r\n });\r\n }\r\n\r\n protected processGetMembersReport(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface ITrainingContentRecommendationsClient {\r\n /**\r\n * Get the recommended training contents.\r\n * @param questionnaireType (optional) \r\n * @param taxonomyId (optional) \r\n * @param mediaTypeId (optional) \r\n * @param showAll (optional) \r\n * @param pageNumber (optional) \r\n * @param pageSize (optional) \r\n * @return Success\r\n */\r\n getTrainingContentRecommendations(questionnaireType?: string | null | undefined, taxonomyId?: string | null | undefined, mediaTypeId?: string | null | undefined, showAll?: boolean | null | undefined, pageNumber?: number | null | undefined, pageSize?: number | null | undefined): Promise;\r\n /**\r\n * Get training content filter values.\r\n * @return Success\r\n */\r\n getTrainingContentFilters(): Promise;\r\n}\r\n\r\nexport class TrainingContentRecommendationsClient extends ClientBase implements ITrainingContentRecommendationsClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Get the recommended training contents.\r\n * @param questionnaireType (optional) \r\n * @param taxonomyId (optional) \r\n * @param mediaTypeId (optional) \r\n * @param showAll (optional) \r\n * @param pageNumber (optional) \r\n * @param pageSize (optional) \r\n * @return Success\r\n */\r\n getTrainingContentRecommendations(questionnaireType?: string | null | undefined, taxonomyId?: string | null | undefined, mediaTypeId?: string | null | undefined, showAll?: boolean | null | undefined, pageNumber?: number | null | undefined, pageSize?: number | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/TrainingContentRecommendations?\";\r\n if (questionnaireType !== undefined && questionnaireType !== null)\r\n url_ += \"QuestionnaireType=\" + encodeURIComponent(\"\" + questionnaireType) + \"&\";\r\n if (taxonomyId !== undefined && taxonomyId !== null)\r\n url_ += \"TaxonomyId=\" + encodeURIComponent(\"\" + taxonomyId) + \"&\";\r\n if (mediaTypeId !== undefined && mediaTypeId !== null)\r\n url_ += \"MediaTypeId=\" + encodeURIComponent(\"\" + mediaTypeId) + \"&\";\r\n if (showAll !== undefined && showAll !== null)\r\n url_ += \"ShowAll=\" + encodeURIComponent(\"\" + showAll) + \"&\";\r\n if (pageNumber !== undefined && pageNumber !== null)\r\n url_ += \"PageNumber=\" + encodeURIComponent(\"\" + pageNumber) + \"&\";\r\n if (pageSize !== undefined && pageSize !== null)\r\n url_ += \"PageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetTrainingContentRecommendations(_response));\r\n });\r\n }\r\n\r\n protected processGetTrainingContentRecommendations(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Get training content filter values.\r\n * @return Success\r\n */\r\n getTrainingContentFilters(): Promise {\r\n let url_ = this.baseUrl + \"/api/TrainingContentRecommendations/filters\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetTrainingContentFilters(_response));\r\n });\r\n }\r\n\r\n protected processGetTrainingContentFilters(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface IUserClient {\r\n /**\r\n * Creates a user if necessary, and sends an email with token to allow the user to log in.\r\n * @param redirectUrl (optional) \r\n * @param pendingAnswerSheetId (optional) \r\n * @return Success\r\n */\r\n loginByEmail(email: string, redirectUrl?: string | null | undefined, pendingAnswerSheetId?: string | null | undefined): Promise;\r\n /**\r\n * Generates new token for the logged-in user.\r\n * @return Success\r\n */\r\n refreshToken(body: RefreshTokenRequest): Promise;\r\n /**\r\n * Gets user information of the currently logged-in user.\r\n * @return Success\r\n */\r\n getInfo(): Promise;\r\n /**\r\n * Wipes out the user from the application.\r\n * @return Success\r\n */\r\n wipeOut(userId: string): Promise;\r\n /**\r\n * Logs an entry about visiting pages with user information.\r\n * @return Success\r\n */\r\n logAuditTrail(body: AuditTrailLogModel): Promise;\r\n /**\r\n * Gets an access token for a given user.\r\n * @return Success\r\n */\r\n getToken(userId: string): Promise;\r\n /**\r\n * Log out a given user.\r\n * @param userId (optional) \r\n * @return Success\r\n */\r\n logout(userId?: string | null | undefined): Promise;\r\n}\r\n\r\nexport class UserClient extends ClientBase implements IUserClient {\r\n private http: { fetch(url: RequestInfo, init?: RequestInit): Promise };\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(configuration: AuthConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) {\r\n super(configuration);\r\n this.http = http ? http : window;\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\r\n }\r\n\r\n /**\r\n * Creates a user if necessary, and sends an email with token to allow the user to log in.\r\n * @param redirectUrl (optional) \r\n * @param pendingAnswerSheetId (optional) \r\n * @return Success\r\n */\r\n loginByEmail(email: string, redirectUrl?: string | null | undefined, pendingAnswerSheetId?: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/User/login-by-email?\";\r\n if (email === undefined || email === null)\r\n throw new Error(\"The parameter 'email' must be defined and cannot be null.\");\r\n else\r\n url_ += \"email=\" + encodeURIComponent(\"\" + email) + \"&\";\r\n if (redirectUrl !== undefined && redirectUrl !== null)\r\n url_ += \"RedirectUrl=\" + encodeURIComponent(\"\" + redirectUrl) + \"&\";\r\n if (pendingAnswerSheetId !== undefined && pendingAnswerSheetId !== null)\r\n url_ += \"PendingAnswerSheetId=\" + encodeURIComponent(\"\" + pendingAnswerSheetId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processLoginByEmail(_response));\r\n });\r\n }\r\n\r\n protected processLoginByEmail(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Generates new token for the logged-in user.\r\n * @return Success\r\n */\r\n refreshToken(body: RefreshTokenRequest): Promise {\r\n let url_ = this.baseUrl + \"/api/User/refresh-token\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processRefreshToken(_response));\r\n });\r\n }\r\n\r\n protected processRefreshToken(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 403) {\r\n return response.text().then((_responseText) => {\r\n let result403: any = null;\r\n result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Forbidden\", status, _responseText, _headers, result403);\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Gets user information of the currently logged-in user.\r\n * @return Success\r\n */\r\n getInfo(): Promise {\r\n let url_ = this.baseUrl + \"/api/User/info\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetInfo(_response));\r\n });\r\n }\r\n\r\n protected processGetInfo(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 403) {\r\n return response.text().then((_responseText) => {\r\n let result403: any = null;\r\n result403 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Forbidden\", status, _responseText, _headers, result403);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Wipes out the user from the application.\r\n * @return Success\r\n */\r\n wipeOut(userId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/User/wipe-out?\";\r\n if (userId === undefined || userId === null)\r\n throw new Error(\"The parameter 'userId' must be defined and cannot be null.\");\r\n else\r\n url_ += \"userId=\" + encodeURIComponent(\"\" + userId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processWipeOut(_response));\r\n });\r\n }\r\n\r\n protected processWipeOut(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status === 404) {\r\n return response.text().then((_responseText) => {\r\n let result404: any = null;\r\n result404 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Not Found\", status, _responseText, _headers, result404);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Logs an entry about visiting pages with user information.\r\n * @return Success\r\n */\r\n logAuditTrail(body: AuditTrailLogModel): Promise {\r\n let url_ = this.baseUrl + \"/api/User/log-audit-trail\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(body);\r\n\r\n let options_ = {\r\n body: content_,\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processLogAuditTrail(_response));\r\n });\r\n }\r\n\r\n protected processLogAuditTrail(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Gets an access token for a given user.\r\n * @return Success\r\n */\r\n getToken(userId: string): Promise {\r\n let url_ = this.baseUrl + \"/api/User/get-token/{userId}\";\r\n if (userId === undefined || userId === null)\r\n throw new Error(\"The parameter 'userId' must be defined.\");\r\n url_ = url_.replace(\"{userId}\", encodeURIComponent(\"\" + userId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processGetToken(_response));\r\n });\r\n }\r\n\r\n protected processGetToken(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return result200;\r\n });\r\n } else if (status === 400) {\r\n return response.text().then((_responseText) => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver);\r\n return throwException(\"Bad Request\", status, _responseText, _headers, result400);\r\n });\r\n } else if (status === 401) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"Unauthorized\", status, _responseText, _headers);\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * Log out a given user.\r\n * @param userId (optional) \r\n * @return Success\r\n */\r\n logout(userId?: string | null | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/User/logout?\";\r\n if (userId !== undefined && userId !== null)\r\n url_ += \"userId=\" + encodeURIComponent(\"\" + userId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n headers: {\r\n }\r\n };\r\n\r\n return this.transformOptions(options_).then(transformedOptions_ => {\r\n return this.http.fetch(url_, transformedOptions_);\r\n }).then((_response: Response) => {\r\n return this.transformResult(url_, _response, (_response: Response) => this.processLogout(_response));\r\n });\r\n }\r\n\r\n protected processLogout(response: Response): Promise {\r\n const status = response.status;\r\n let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };\r\n if (status === 200) {\r\n return response.text().then((_responseText) => {\r\n return;\r\n });\r\n } else if (status !== 200 && status !== 204) {\r\n return response.text().then((_responseText) => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n });\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport interface AnswerSheetDataDto {\r\n taxonomyTexts?: AnswerSheetTaxonomyText[] | null;\r\n results?: AnswerSheetResultDataDto[] | null;\r\n debugPanelInfo?: AnswerSheetResultDebugPanel[] | null;\r\n pdfDownload?: AnswerSheetResultPdfDownload | null;\r\n}\r\n\r\nexport interface AnswerSheetDto {\r\n answerSheetCreated?: moment.Moment | null;\r\n answerSheetId?: string | null;\r\n}\r\n\r\nexport interface AnswerSheetResultDataDto {\r\n taxonomyId?: string | null;\r\n taxonomySequentialId?: number | null;\r\n taxonomyName?: string | null;\r\n score?: number | null;\r\n}\r\n\r\nexport interface AnswerSheetResultDebugPanel {\r\n taxonomyId?: string | null;\r\n taxonomy?: string | null;\r\n score?: number | null;\r\n scoreBand?: string | null;\r\n correctAnswersCount?: number | null;\r\n allAnswersCount?: number | null;\r\n paragraphOrder?: number | null;\r\n}\r\n\r\nexport interface AnswerSheetResultPdfDownload {\r\n downloadLink?: string | null;\r\n fileSize?: number | null;\r\n}\r\n\r\nexport interface AnswerSheetTaxonomyText {\r\n taxonomyId?: string | null;\r\n taxonomy?: string | null;\r\n text?: string | null;\r\n scoreBand?: string | null;\r\n}\r\n\r\nexport interface AuditTrailLogModel {\r\n screenName: string;\r\n url: string;\r\n}\r\n\r\nexport enum AuthorizableActions {\r\n UseDebugFunctions = \"UseDebugFunctions\",\r\n}\r\n\r\nexport interface ClientExceptionModel {\r\n message: string;\r\n url: string;\r\n userId?: string | null;\r\n}\r\n\r\nexport interface ContextModel {\r\n authorizedActions?: AuthorizableActions[] | null;\r\n request?: ContextRequestModel | null;\r\n userId?: string | null;\r\n}\r\n\r\nexport interface ContextRequestModel {\r\n userId?: string | null;\r\n}\r\n\r\nexport interface GeneratePdfResourceParameters {\r\n questionnaireType?: string | null;\r\n}\r\n\r\nexport interface Layout {\r\n headerHtmlEncode?: string | null;\r\n footerHtmlEncode?: string | null;\r\n styleURL?: string | null;\r\n scriptUrl?: string | null;\r\n scriptPluginsURL?: string | null;\r\n}\r\n\r\nexport interface ProblemDetails {\r\n type?: string | null;\r\n title?: string | null;\r\n status?: number | null;\r\n detail?: string | null;\r\n instance?: string | null;\r\n}\r\n\r\nexport interface PublicConfiguration {\r\n instanceType: string;\r\n instanceOwner: string;\r\n instanceUrl: string;\r\n appName: string;\r\n showErrorDetails: boolean;\r\n showUserDropdown: boolean;\r\n isLoginPageEnabled: boolean;\r\n isDebugPanelEnabled: boolean;\r\n isOpenIdLoginEnabled: boolean;\r\n openIdLoginUrl: string;\r\n openIdLogoutUrl: string;\r\n exportPdfRefreshIntervalInSec: number;\r\n googleAnalyticsId?: string | null;\r\n googleTagManagerId?: string | null;\r\n hotjarId?: number | null;\r\n feedbackEmail: string;\r\n}\r\n\r\nexport interface QuestionAnswer {\r\n taxonomyId: string;\r\n questionId: string;\r\n questionVariantId: string;\r\n answer?: boolean | null;\r\n}\r\n\r\nexport interface QuestionDebugData {\r\n correctAnswer?: boolean | null;\r\n taxonomyName?: string | null;\r\n weight?: number | null;\r\n}\r\n\r\nexport interface QuestionItem {\r\n taxonomyId?: string | null;\r\n questionId?: string | null;\r\n questionVariantId?: string | null;\r\n text?: string | null;\r\n answer?: boolean | null;\r\n debugDetails?: QuestionDebugData | null;\r\n}\r\n\r\nexport interface QuestionnaireData {\r\n title?: string | null;\r\n instructions?: string | null;\r\n questions?: QuestionItem[] | null;\r\n}\r\n\r\nexport interface RefreshTokenRequest {\r\n refreshToken: string;\r\n}\r\n\r\nexport interface SelectOption {\r\n value?: string | null;\r\n name?: string | null;\r\n}\r\n\r\nexport interface SubmitQuestionnaireResponse {\r\n pendingAnswerSheetId?: string | null;\r\n}\r\n\r\nexport interface TokenResponse {\r\n token?: string | null;\r\n refreshToken?: string | null;\r\n}\r\n\r\nexport interface TrainingContent {\r\n id?: string | null;\r\n url?: string | null;\r\n title?: string | null;\r\n ingress?: string | null;\r\n thumbnailUrl?: string | null;\r\n taxonomyName?: string | null;\r\n duration?: number | null;\r\n type?: string | null;\r\n}\r\n\r\nexport interface TrainingContentFilters {\r\n taxonomies?: SelectOption[] | null;\r\n mediaTypes?: SelectOption[] | null;\r\n}\r\n\r\nexport interface TrainingContentResponse {\r\n trainingContents?: TrainingContent[] | null;\r\n currentPage?: number | null;\r\n hasNextPage?: boolean | null;\r\n}\r\n\r\nexport interface UserDto {\r\n id?: string | null;\r\n fullName?: string | null;\r\n}\r\n\r\nexport interface UserInfo {\r\n firstName?: string | null;\r\n lastName?: string | null;\r\n email?: string | null;\r\n userId?: string | null;\r\n memberStatus?: UserMemberStatus | null;\r\n hasSubmittedQuestionnaire?: boolean | null;\r\n}\r\n\r\nexport enum UserMemberStatus {\r\n Member = \"Member\",\r\n NonMember = \"NonMember\",\r\n}\r\n\r\nexport interface FileResponse {\r\n data: Blob;\r\n status: number;\r\n fileName?: string;\r\n headers?: { [name: string]: any };\r\n}\r\n\r\nexport class SwaggerException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isSwaggerException = true;\r\n\r\n static isSwaggerException(obj: any): obj is SwaggerException {\r\n return obj.isSwaggerException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\r\n throw new SwaggerException(message, status, response, headers, result);\r\n}\r\n\r\nexport interface AuthConfig {\r\n token: string;\r\n refreshToken: string;\r\n setAdditionalOptions?: (options: RequestInit) => void;\r\n}\r\n\r\nexport interface WebApiErrorResponse {\r\n url: string;\r\n statusCode: number;\r\n body: string;\r\n isWebApiErrorResponse: boolean;\r\n stack: string;\r\n headers: Headers;\r\n}","import {AppStore} from \"../stores/app.store\";\r\nimport {AuthConfig} from \"./webapicall.extensions\";\r\n\r\n/** Implements auth config, which gives the token to the API Client library, and implements a fetch function which orchestrates the refresh token function. */\r\nexport class AuthConfigImpl implements AuthConfig {\r\n\ttoken: string = \"\";\r\n\trefreshToken: string = \"\";\r\n\r\n\tconstructor(protected appStore: AppStore) {}\r\n\r\n\tasync fetch(url: RequestInfo, init?: RequestInit): Promise {\r\n\t\tlet res = await window.fetch(url, init).catch((r: Response) => r);\r\n\t\tif (res.status === 401 && url !== \"/api/user/refresh-token\") {\r\n\t\t\tif (res.headers.get(\"x-auth-token-expired\") === \"true\") {\r\n\t\t\t\tlet result = await this.appStore.userStore.refreshToken(this.refreshToken);\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tinit.headers[\"Authorization\"] = `Bearer ${this.token}`;\r\n\t\t\t\t\tres = await window.fetch(url, init);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn res;\r\n\t}\r\n}\r\n","import {UserStore} from \"./user.store\";\r\nimport {observable, action} from \"mobx\";\r\nimport {IApiClient} from \"../common/api.client\";\r\n\r\nexport enum DebugPanelOperation {\r\n\tLogout = 1,\r\n\tGenerateTestPdf = 2,\r\n}\r\n\r\nexport class DebugPanelStore {\r\n\t@observable debugPanelVisible = false;\r\n\t@observable isLoading = false;\r\n\t@observable operation: DebugPanelOperation | null = null;\r\n\r\n\tconstructor(private userStore: UserStore, private apiClient: IApiClient) {}\r\n\r\n\t@action\r\n\ttoggleTestingPanel = () => {\r\n\t\tthis.debugPanelVisible = !this.debugPanelVisible;\r\n\t};\r\n\r\n\t@action\r\n\tasync logout() {\r\n\t\tawait this.userStore.logout();\r\n\t}\r\n\r\n\t@action\r\n\tasync getGeneratedPdfFile() {\r\n\t\tthis.setLoading(DebugPanelOperation.GenerateTestPdf);\r\n\t\tconst fileContent = await this.apiClient.debugPanelClient.generateTestPdf();\r\n\t\tthis.setLoading(null);\r\n\t\treturn fileContent;\r\n\t}\r\n\r\n\t@action\r\n\tprivate setLoading(operation: DebugPanelOperation | null) {\r\n\t\tthis.isLoading = !!operation;\r\n\t\tthis.operation = operation;\r\n\t}\r\n}\r\n","import {action, computed, observable} from \"mobx\";\r\nimport {Moment} from \"moment\";\r\nimport {IApiClient} from \"../common/api.client\";\r\nimport {TokenResponse, UserDto, UserMemberStatus} from \"../common/webapicall\";\r\nimport * as Cookies from \"js-cookie\";\r\nimport {IConfigurationProvider} from \"../common/public.configuration\";\r\n\r\nexport class UserStore {\r\n\tconstructor(private apiClient: IApiClient, private configurationProvider: IConfigurationProvider) {}\r\n\r\n\t@observable isLoggedIn = false;\r\n\t@observable expiration: Moment = null;\r\n\t@observable userId: string = null;\r\n\t@observable userName: string = null;\r\n\t@observable firstName: string = null;\r\n\t@observable lastName: string = null;\r\n\t@observable isLoginVisible: boolean = false;\r\n\t@observable memberStatus: UserMemberStatus = UserMemberStatus.NonMember;\r\n\t@observable users: UserDto[] = [];\r\n\t@observable hasSubmittedQuestionnaire: boolean = false;\r\n\r\n\tasync logAuditTrail(screenName: string) {\r\n\t\tawait this.apiClient.userClient.logAuditTrail({\r\n\t\t\tscreenName: screenName,\r\n\t\t\turl: window.location.href,\r\n\t\t});\r\n\t}\r\n\r\n\tasync loginByEmail(email: string, redirectUrl: string, pendingAnswerSheetId: string): Promise {\r\n\t\treturn await this.apiClient.userClient.loginByEmail(email, redirectUrl, pendingAnswerSheetId);\r\n\t}\r\n\r\n\tinitTokens() {\r\n\t\tlet token = this.getAuthToken();\r\n\t\tlet refreshToken = Cookies.get(\"refreshToken\");\r\n\t\tif (token) {\r\n\t\t\tthis.apiClient.setAuthToken(token, refreshToken);\r\n\t\t} \r\n\t}\r\n\r\n\tasync init() {\r\n\t\tlet token = this.getAuthToken();\r\n\t\tif (token) {\r\n\t\t\tlet userInfo = await this.apiClient.userClient.getInfo();\r\n\t\t\tthis.isLoggedIn = true;\r\n\t\t\tthis.userId = userInfo.userId;\r\n\t\t\tthis.userName = `${userInfo.firstName} ${userInfo.lastName}`;\r\n\t\t\tthis.firstName = userInfo.firstName;\r\n\t\t\tthis.lastName = userInfo.lastName;\r\n\t\t\tthis.memberStatus = userInfo.memberStatus;\r\n\t\t\tthis.hasSubmittedQuestionnaire = userInfo.hasSubmittedQuestionnaire;\t\r\n\t\t}\r\n\r\n\t\tif (this.configurationProvider.configuration.showUserDropdown && this.isLoggedIn) {\r\n\t\t\tthis.users = await this.apiClient.lookupClient.getAllUsers();\r\n\t\t}\r\n\t}\r\n\r\n\tasync refreshToken(refreshToken: string) {\r\n\t\tlet successful = true;\r\n\t\tlet tokenResponse: TokenResponse;\r\n\t\tawait this.apiClient.userClient\r\n\t\t\t.refreshToken({\r\n\t\t\t\trefreshToken: refreshToken,\r\n\t\t\t})\r\n\t\t\t.then((r) => {\r\n\t\t\t\tsuccessful = true;\r\n\t\t\t\ttokenResponse = r;\r\n\t\t\t})\r\n\t\t\t.catch((r) => {\r\n\t\t\t\tsuccessful = false;\r\n\t\t\t});\r\n\r\n\t\tif (successful) {\r\n\t\t\tCookies.set(\"authToken\", tokenResponse.token);\r\n\t\t\tCookies.set(\"refreshToken\", tokenResponse.refreshToken);\r\n\t\t\tthis.apiClient.setAuthToken(tokenResponse.token, tokenResponse.refreshToken);\r\n\t\t}\r\n\r\n\t\treturn successful;\r\n\t}\r\n\r\n\tgetLoginUrl(): string {\r\n\t\tif (this.isLoginVisible) {\r\n\t\t\treturn window.location.hash;\r\n\t\t} else {\r\n\t\t\treturn this.getLoginRedirectUrl(window.location.hash);\r\n\t\t}\r\n\t}\r\n\r\n\tcanChangeUser(): boolean {\r\n\t\treturn this.configurationProvider.configuration.showUserDropdown;\r\n\t}\r\n\r\n\tasync changeUser(userId: string) {\r\n\t\tif (this.canChangeUser()) {\r\n\t\t\tlet tokenResponse = await this.apiClient.userClient.getToken(userId);\r\n\t\t\tthis.updateTokens(tokenResponse);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateTokens(tokenResponse: TokenResponse) {\r\n\t\tif (this.canChangeUser()) {\r\n\t\t\tCookies.set(\"authToken\", tokenResponse.token);\r\n\t\t\tCookies.set(\"refreshToken\", tokenResponse.refreshToken);\r\n\t\t\twindow.location.href = \"/\";\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getLoginRedirectUrl(redirectUrl?: string): string {\r\n\t\tlet loginUrl = this.configurationProvider.configuration.loginUrl;\r\n\t\tif (!redirectUrl) {\r\n\t\t\treturn loginUrl;\r\n\t\t}\r\n\t\tif (redirectUrl[0] !== \"/\") {\r\n\t\t\tredirectUrl = `/${redirectUrl}`;\r\n\t\t}\r\n\t\treturn `${loginUrl}/${encodeURIComponent(redirectUrl)}`;\r\n\t}\r\n\r\n\tasync logout() {\r\n\t\tawait this.apiClient.userClient.logout(this.userId);\r\n\t\tCookies.remove(\"authToken\");\r\n\t\tCookies.remove(\"refreshToken\");\r\n\t\twindow.location.reload(true);\r\n\t}\r\n\r\n\tsendToOpenIdLogin(redirectUrl?: string, pendingAnswerSheetId?: string): void {\r\n\t\tif (this.configurationProvider.configuration.isOpenIdLoginEnabled) {\r\n\t\t\twindow.location.href = this.getOpenIdRedirectUrl(redirectUrl, pendingAnswerSheetId);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getOpenIdRedirectUrl(redirectUrl?: string, pendingAnswerSheetId?: string): string {\r\n\t\tif (!redirectUrl && !pendingAnswerSheetId) {\r\n\t\t\treturn this.configurationProvider.configuration.openIdLoginUrl;\r\n\t\t}\r\n\r\n\t\tlet queryParams = {};\r\n\t\tif (redirectUrl) {\r\n\t\t\tif (redirectUrl[0] !== \"/\") {\r\n\t\t\t\tredirectUrl = `/${redirectUrl}`;\r\n\t\t\t}\r\n\t\t\tqueryParams = {...queryParams, redirectUrl: encodeURIComponent(redirectUrl)};\r\n\t\t}\r\n\r\n\t\tif (pendingAnswerSheetId) {\r\n\t\t\tqueryParams = {...queryParams, pendingAnswerSheetId: pendingAnswerSheetId};\r\n\t\t}\r\n\r\n\t\tconst queryString = new URLSearchParams(queryParams).toString();\r\n\t\treturn `${this.configurationProvider.configuration.openIdLoginUrl}?${queryString}`;\r\n\t}\r\n\r\n\topenIdLogout() {\r\n\t\treturn `${this.configurationProvider.configuration.openIdLogoutUrl}?userId=${this.userId}`;\r\n\t}\r\n\r\n\tsendToOpenIdLogout(): void {\r\n\t\tif (this.configurationProvider.configuration.isOpenIdLoginEnabled) {\r\n\t\t\twindow.location.href = this.openIdLogout();\r\n\t\t}\r\n\t}\r\n\r\n\tgetAuthToken(): string {\r\n\t\treturn Cookies.get(\"authToken\");\r\n\t}\r\n\r\n\t@computed get isMember() {\r\n\t\treturn this.memberStatus === UserMemberStatus.Member;\r\n\t}\r\n\r\n\t@action\r\n\tsetHasSubmittedQuestionnaire() {\t\t\r\n\t\tthis.hasSubmittedQuestionnaire = true;\r\n\t}\r\n}\r\n","import {IApiClient} from \"../common/api.client\";\r\nimport {ContextModel} from \"../common/webapicall\";\r\nimport {action, observable} from \"mobx\";\r\n\r\nexport class AppContextStore {\r\n\t@observable contextModel: ContextModel;\r\n\r\n\tconstructor(private apiClient: IApiClient) {}\r\n\r\n\tasync loadContext(userId: string): Promise {\r\n\t\tlet contextResponse = await this.apiClient.contextClient.getContext({\r\n\t\t\tuserId: userId,\r\n\t\t});\r\n\t\tthis.handleContextResponse(contextResponse);\r\n\t}\r\n\r\n\t@action\r\n\tprivate handleContextResponse(contextResponse: ContextModel): void {\r\n\t\tthis.contextModel = contextResponse;\r\n\t}\r\n}\r\n","export enum ChartTypes {\r\n\tBarChart = 0,\r\n\tSpiderWebChart = 1,\r\n}\r\n","import {observable, action, runInAction, computed} from \"mobx\";\r\nimport {IApiClient} from \"../common/api.client\";\r\nimport {QuestionAnswer, QuestionItem, QuestionnaireData} from \"../common/webapicall\";\r\n\r\nexport class QuestionnaireStore {\r\n\tconstructor(private apiClient: IApiClient) {}\r\n\r\n\t@observable questionnaire: QuestionnaireData = null;\r\n\t@observable isQuestionnaireLoading: boolean = true;\r\n\t@observable isQuestionnaireSubmitLoading: boolean = false;\r\n\r\n\t@action\r\n\tasync getQuestionnaire(questionnaireType: string) {\r\n\t\tconst response = await this.apiClient.questionnaireClient.getQuestionnaire(questionnaireType);\r\n\t\trunInAction(() => {\r\n\t\t\tif (response) {\r\n\t\t\t\tthis.isQuestionnaireLoading = false;\r\n\t\t\t\tthis.questionnaire = response;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t@action\r\n\tasync submitQuestionnaire(questionnaireType: string): Promise {\r\n\t\tthis.isQuestionnaireSubmitLoading = true;\r\n\t\tif (this.isEveryQuestionAnswered) {\r\n\t\t\tlet answers = this.questionnaire.questions.map(\r\n\t\t\t\t(q) =>\r\n\t\t\t\t\t({\r\n\t\t\t\t\t\ttaxonomyId: q.taxonomyId,\r\n\t\t\t\t\t\tquestionId: q.questionId,\r\n\t\t\t\t\t\tquestionVariantId: q.questionVariantId,\r\n\t\t\t\t\t\tanswer: q.answer,\r\n\t\t\t\t\t} as QuestionAnswer),\r\n\t\t\t);\r\n\r\n\t\t\tconst res = await this.apiClient.questionnaireClient.submitQuestionnaire(questionnaireType, answers);\r\n\t\t\tthis.isQuestionnaireSubmitLoading = false;\r\n\t\t\treturn res.pendingAnswerSheetId;\r\n\t\t}\r\n\r\n\t\tthis.isQuestionnaireSubmitLoading = false;\r\n\t\treturn;\r\n\t}\r\n\r\n\t@action\r\n\thandleAnswerChange(qId: string, answer: boolean) {\r\n\t\tlet q = this.questionnaire.questions.find((q) => q.questionId === qId);\r\n\t\tif (q) {\r\n\t\t\tq.answer = answer;\r\n\t\t}\r\n\t}\r\n\t@action\r\n\trandomizeAnswers() {\r\n\t\tthis.questionnaire.questions.forEach((question: QuestionItem) => {\r\n\t\t\tquestion.answer = Math.random() < 0.5;\r\n\t\t});\r\n\t}\r\n\r\n\t@action\r\n\tclearQuestionnaire() {\r\n\t\tthis.isQuestionnaireLoading = true;\r\n\t\tthis.questionnaire = null;\r\n\t}\r\n\r\n\t@computed get questionsCount() {\r\n\t\tif (this.questionnaire.questions) {\r\n\t\t\treturn this.questionnaire.questions.length;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t@computed get answeredCount() {\r\n\t\tif (this.questionnaire.questions) {\r\n\t\t\treturn this.questionnaire.questions.filter((q) => q.answer !== null).length;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t@computed get isEveryQuestionAnswered() {\r\n\t\tif (this.questionnaire.questions) {\r\n\t\t\treturn this.questionnaire.questions.every((q) => q.answer !== null);\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n}\r\n","import {action, observable} from \"mobx\";\r\nimport {IApiClient} from \"../common/api.client\";\r\nimport {TrainingContent, TrainingContentFilters} from \"../common/webapicall\";\r\n\r\nexport class TrainingContentStore {\r\n\tconstructor(private apiClient: IApiClient) {}\r\n\r\n\t@observable questionnaireType: string = \"\";\r\n\t@observable trainings: TrainingContent[] = [];\r\n\t@observable currentPage: number = 1;\r\n\t@observable hasNext: boolean = false;\r\n\t@observable isTrainingContentsLoading: boolean = true;\r\n\t@observable isSeeMoreLoading: boolean = false;\r\n\r\n\t@observable filters: TrainingContentFilters = null;\r\n\t@observable selectedTaxonomy: string = \"\";\r\n\t@observable selectedMediaType: string = \"\";\r\n\t@observable showAll: boolean = false;\r\n\r\n\t@action\r\n\tasync getTrainingContentFilters() {\r\n\t\tconst res = await this.apiClient.trainingContentClient.getTrainingContentFilters();\r\n\t\tthis.filters = res;\r\n\t}\r\n\r\n\t@action\r\n\tasync getInitialTrainingContents(questionnaireType: string) {\r\n\t\tif (this.currentPage !== 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.isTrainingContentsLoading = true;\r\n\t\tthis.questionnaireType = questionnaireType;\r\n\t\tconst response = await this.apiClient.trainingContentClient.getTrainingContentRecommendations(questionnaireType, this.selectedTaxonomy, this.selectedMediaType, this.showAll, 1, null);\r\n\t\tthis.trainings = response.trainingContents;\r\n\t\tthis.currentPage = 1;\r\n\t\tthis.hasNext = response.hasNextPage;\r\n\t\tthis.isTrainingContentsLoading = false;\r\n\t}\r\n\r\n\t@action\r\n\tasync getNextPageOfTrainingContents() {\r\n\t\tif (!this.hasNext || !this.questionnaireType) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.isSeeMoreLoading = true;\r\n\t\tconst nextPage = this.currentPage + 1;\r\n\t\tconst response = await this.apiClient.trainingContentClient.getTrainingContentRecommendations(\r\n\t\t\tthis.questionnaireType,\r\n\t\t\tthis.selectedTaxonomy,\r\n\t\t\tthis.selectedMediaType,\r\n\t\t\tthis.showAll,\r\n\t\t\tnextPage,\r\n\t\t\tnull,\r\n\t\t);\r\n\t\tthis.trainings = [...this.trainings, ...response.trainingContents];\r\n\t\tthis.currentPage = response.currentPage;\r\n\t\tthis.hasNext = response.hasNextPage;\r\n\t\tthis.isSeeMoreLoading = false;\r\n\t}\r\n\r\n\t@action\r\n\tasync toggleShowAll() {\r\n\t\tif (!this.questionnaireType) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tthis.showAll = !this.showAll;\r\n\t\tthis.selectedTaxonomy = null;\r\n\t\tthis.selectedMediaType = null;\r\n\t\tthis.clearTrainingContents();\r\n\t\tawait this.getInitialTrainingContents(this.questionnaireType);\r\n\t}\r\n\r\n\t@action\r\n\tasync onChangeTaxonomy(taxonomyId: string) {\r\n\t\tif (!this.questionnaireType) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tthis.selectedTaxonomy = taxonomyId;\r\n\t\tthis.showAll = false;\r\n\t\tthis.clearTrainingContents();\r\n\t\tawait this.getInitialTrainingContents(this.questionnaireType);\r\n\t}\r\n\r\n\t@action\r\n\tasync onChangeMediaType(mediaType: string) {\r\n\t\tif (!this.questionnaireType) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tthis.selectedMediaType = mediaType;\r\n\t\tthis.showAll = false;\r\n\t\tthis.clearTrainingContents();\r\n\t\tawait this.getInitialTrainingContents(this.questionnaireType);\r\n\t}\r\n\r\n\t@action\r\n\tclearTrainingContents() {\r\n\t\tthis.hasNext = false;\r\n\t\tthis.currentPage = 1;\r\n\t\tthis.trainings = [];\r\n\t}\r\n}\r\n","import moment from \"moment\";\r\n\r\nexport function getDevExtremeDateFormat() {\r\n\treturn \"dd/MM/yyyy\";\r\n}\r\n\r\nexport const getDebugPanelFormat = (date: moment.Moment) => {\r\n\treturn date.format(\"DD/MM/yyyy\");\r\n};\r\n\r\nexport const getUserAnswerSheetSelectorFormat = (date: moment.Moment) => {\r\n\treturn moment(date).format(\"DD MMMM YYYY hh:mm\");\t\r\n};\r\n\r\nexport enum DateTimeSeparator {\r\n\tAT = \"at\",\r\n\tCOMMA = \", \",\r\n}\r\n\r\nexport function formatDate(date: moment.Moment, dateTimeSeparator: DateTimeSeparator = DateTimeSeparator.COMMA): string {\r\n\treturn `${formatDateOnly(date)} ${dateTimeSeparator} ${formatTime(date)}`;\r\n}\r\n\r\nexport const formatDateOnly = (date: moment.Moment): string => {\r\n\tif (date) {\r\n\t\treturn date.format(\"MMMM D, YYYY\");\r\n\t}\r\n\treturn \"\";\r\n};\r\n\r\nexport function formatTime(time: moment.Moment): string {\r\n\tif (time) {\r\n\t\treturn time.format(\"h:mm A\");\r\n\t}\r\n\treturn \"\";\r\n}\r\n","import {observable, action, runInAction, computed} from \"mobx\";\r\nimport {IApiClient} from \"../common/api.client\";\r\nimport {AnswerSheetDataDto, AnswerSheetDto} from \"../common/webapicall\";\r\nimport {ChartTypes} from \"../public/report-page/types/report.chart.types\";\r\nimport {ReportSelectorDropdownOption} from \"../../src/public/report-page/types/report.selector.dropdown.option\";\r\nimport {getUserAnswerSheetSelectorFormat} from \"../utils/date.utils\";\r\nimport {IConfigurationProvider} from \"../common/public.configuration\";\r\n\r\ntype AnswerSheetsListItem = {\r\n\t[key: string]: AnswerSheetDataDto;\r\n};\r\n\r\nexport class ReportPageStore {\r\n\tconstructor(private apiClient: IApiClient, private configurationProvider: IConfigurationProvider) {}\r\n\r\n\t@observable isAnswerSheetDetailsLoading: boolean = true;\r\n\tquestionnaireAnswerSheetDetailsItem: AnswerSheetsListItem = {};\r\n\t@observable questionnaireAnswerSheetDetails: AnswerSheetDataDto = null;\r\n\t@observable userQuestionnaireAnswerSheets: AnswerSheetDto[] = null;\r\n\t@observable selectedAnswerSheetId: string;\r\n\t@observable reportChartType: ChartTypes = ChartTypes.BarChart;\r\n\r\n\t@action\r\n\tsetSelectedAnswerSheetId(answerSheetId: string) {\r\n\t\tthis.selectedAnswerSheetId = answerSheetId;\r\n\t}\r\n\r\n\t@action\r\n\tasync getUserQuestionnaireAnswerSheets() {\r\n\t\tconst response = await this.apiClient.questionnaireAnswerClient.getUserAnswerSheets();\r\n\t\trunInAction(() => {\r\n\t\t\tif (response) {\r\n\t\t\t\tthis.userQuestionnaireAnswerSheets = response.sort((a, b) => (a.answerSheetCreated > b.answerSheetCreated ? 1 : b.answerSheetCreated > a.answerSheetCreated ? -1 : 0));\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t@action\r\n\tasync getNewestUserQuestionnaireAnswerDetails() {\r\n\t\tconst newestAnswerSheetId = this.userQuestionnaireAnswerSheets[this.userQuestionnaireAnswerSheets.length - 1].answerSheetId;\r\n\t\tawait this.getUserQuestionnaireAnswerDetails(newestAnswerSheetId);\r\n\t\treturn newestAnswerSheetId;\r\n\t}\r\n\r\n\t@action\r\n\tasync getUserQuestionnaireAnswerDetails(answerSheetId: string) {\r\n\t\tthis.setSelectedAnswerSheetId(answerSheetId);\r\n\t\tthis.isAnswerSheetDetailsLoading = true;\r\n\t\tif (this.questionnaireAnswerSheetDetailsItem[answerSheetId]) {\r\n\t\t\tthis.questionnaireAnswerSheetDetails = this.questionnaireAnswerSheetDetailsItem[answerSheetId];\r\n\t\t} else {\r\n\t\t\tconst response = await this.apiClient.questionnaireAnswerClient.getUserAnswerSheetDetails(answerSheetId);\r\n\t\t\trunInAction(() => {\r\n\t\t\t\tif (response) {\r\n\t\t\t\t\tthis.questionnaireAnswerSheetDetails = response;\r\n\t\t\t\t\tthis.questionnaireAnswerSheetDetailsItem[answerSheetId] = response;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.isAnswerSheetDetailsLoading = false;\r\n\t}\r\n\r\n\t@action\r\n\tsetReportChartType(chartType: ChartTypes) {\r\n\t\tthis.reportChartType = chartType;\r\n\t}\r\n\r\n\t@action\r\n\tasync getExportDownloadUrl(answerSheetId: string) {\r\n\t\tif (!this.questionnaireAnswerSheetDetails.pdfDownload.downloadLink) {\r\n\t\t\tsetTimeout(async () => {\r\n\t\t\t\tconst res = await this.apiClient.questionnaireAnswerClient.getExportDownloadUrl(answerSheetId);\r\n\t\t\t\tthis.questionnaireAnswerSheetDetails.pdfDownload.downloadLink = res.downloadLink;\r\n\t\t\t\tthis.questionnaireAnswerSheetDetails.pdfDownload.fileSize = res.fileSize;\r\n\r\n\t\t\t\tif (this.questionnaireAnswerSheetDetailsItem[answerSheetId]) {\r\n\t\t\t\t\tthis.questionnaireAnswerSheetDetailsItem[answerSheetId].pdfDownload.downloadLink = res.downloadLink;\r\n\t\t\t\t\tthis.questionnaireAnswerSheetDetailsItem[answerSheetId].pdfDownload.fileSize = res.fileSize;\r\n\t\t\t\t}\r\n\t\t\t}, this.configurationProvider.configuration.exportPdfRefreshIntervalInSec * 1000);\r\n\t\t}\r\n\t}\r\n\r\n\t@computed get numberOfAnswerSheets() {\r\n\t\treturn this.userQuestionnaireAnswerSheets?.length ? this.userQuestionnaireAnswerSheets?.length : 0;\r\n\t}\r\n\r\n\t@computed get answerSheetsSelectOptions() {\r\n\t\tconst options: ReportSelectorDropdownOption[] = this.userQuestionnaireAnswerSheets.map((answerSheet) => {\r\n\t\t\treturn {\r\n\t\t\t\tanswerSheetCreated: getUserAnswerSheetSelectorFormat(answerSheet.answerSheetCreated),\r\n\t\t\t\tanswerSheetId: answerSheet.answerSheetId,\r\n\t\t\t};\r\n\t\t});\r\n\t\treturn options;\r\n\t}\r\n\r\n\t@computed get taxonomyOrderedAnswerSheetDetails() {\r\n\t\treturn this.questionnaireAnswerSheetDetails.results.sort((a, b) => (a.taxonomySequentialId > b.taxonomySequentialId ? 1 : b.taxonomySequentialId > a.taxonomySequentialId ? -1 : 0));\r\n\t}\r\n\r\n\t@computed get taxonomyOrderedAnswerByScore() {\r\n\t\treturn this.questionnaireAnswerSheetDetails.results.sort((a, b) => b.score - a.score);\r\n\t}\r\n}\r\n","import {AppStore} from \"../stores/app.store\";\r\nimport {useAppStore} from \"../common/app.store.consumer\";\r\nimport * as React from \"react\";\r\nimport {ValidatableForm, ValidatableInput, ValidationMessage} from \"../common/validation\";\r\nimport {RouteComponentProps, withRouter} from \"react-router\";\r\nimport * as Yup from \"yup\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {IconName} from \"@fortawesome/pro-regular-svg-icons\";\r\nimport logoCih from \"../assets/img/logo.png\";\r\n\r\ninterface LoginInnerState {\r\n\tisSuccessful: boolean;\r\n\tisSuccessfulVisible: boolean;\r\n\thasLoginAttempted: boolean;\r\n\tmodel: {\r\n\t\temail?: string;\r\n\t};\r\n\thideInitialState: boolean;\r\n\tpendingAnswerSheetId?: string;\r\n}\r\n\r\ninterface LoginProps {\r\n\tappStore?: AppStore;\r\n\tinitialState: LoginState;\r\n}\r\n\r\nexport enum LoginState {\r\n\tDefault,\r\n\tSessionExpired,\r\n\tAccessLinkExpired,\r\n\tForcedLogout,\r\n\tAccessLinkNotFound,\r\n\tAccessDenied,\r\n}\r\n\r\ntype LoginPropsWithRouting = LoginProps & RouteComponentProps<{redirectUrl?: string}>;\r\n\r\nconst emailModel = Yup.object({\r\n\temail: Yup.string().required(\"Email field is required.\").email(\"Please enter a valid email address.\"),\r\n});\r\nconst unsuccessfulLoginAttemptMessage = \"The login request failed\";\r\n\r\n@useAppStore()\r\nexport default class LoginWithoutRouter extends React.Component {\r\n\tconstructor(props: LoginPropsWithRouting) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisSuccessful: false,\r\n\t\t\tisSuccessfulVisible: false,\r\n\t\t\thasLoginAttempted: false,\r\n\t\t\tmodel: {\r\n\t\t\t\temail: \"\",\r\n\t\t\t},\r\n\t\t\thideInitialState: false,\r\n\t\t\tpendingAnswerSheetId: null,\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.props.appStore.userStore.isLoginVisible = true;\r\n\r\n\t\t// get pendingAnswerSheetId from session storage\r\n\t\tconst pendingAnswerSheetId = window.sessionStorage.getItem(\"pendingAnswerSheetId\");\r\n\t\tif (pendingAnswerSheetId) {\r\n\t\t\tthis.setState({pendingAnswerSheetId: pendingAnswerSheetId});\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\tthis.props.appStore.userStore.isLoginVisible = false;\r\n\t}\r\n\r\n\tprivate onSubmit = async (e: React.FormEvent) => {\r\n\t\tthis.setState({\r\n\t\t\tisSuccessfulVisible: false,\r\n\t\t});\r\n\t\tlet userStore = this.props.appStore.userStore;\r\n\r\n\t\tlet res = await userStore.loginByEmail(this.state.model.email, this.getRedirectUrl(), this.state.pendingAnswerSheetId);\r\n\t\tthis.setState({\r\n\t\t\tisSuccessful: res,\r\n\t\t\tisSuccessfulVisible: true,\r\n\t\t\thasLoginAttempted: true,\r\n\t\t});\r\n\t\twindow.scrollTo(0, 0);\r\n\t};\r\n\r\n\tprivate onEmailChanged = (e: React.ChangeEvent) => {\r\n\t\tthis.setState({\r\n\t\t\tmodel: {\r\n\t\t\t\temail: e.target.value,\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tprivate onEmailFocused = () => {\r\n\t\tthis.setState({\r\n\t\t\tisSuccessfulVisible: false,\r\n\t\t\thideInitialState: true,\r\n\t\t});\r\n\t};\r\n\r\n\tprivate getRedirectUrl(): string {\r\n\t\tif (this.props.match.params.redirectUrl) {\r\n\t\t\treturn decodeURIComponent(this.props.match.params.redirectUrl);\r\n\t\t}\r\n\r\n\t\treturn \"/#/\";\r\n\t}\r\n\r\n\tprivate onClickLoginWithSSO = () => {\r\n\t\tthis.props.appStore.userStore.sendToOpenIdLogin(this.getRedirectUrl(), this.state.pendingAnswerSheetId);\r\n\t};\r\n\r\n\trender() {\r\n\t\tif (!this.props.appStore.configuration.isLoginPageEnabled) {\r\n\t\t\tthis.props.appStore.userStore.sendToOpenIdLogin(this.getRedirectUrl(), this.state.pendingAnswerSheetId);\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tlet loginSuccessfulMsg = this.state.isSuccessful && this.state.isSuccessfulVisible && Your login was successful, check your email inbox.;\r\n\t\tlet ico: IconName = this.state.isSuccessful ? \"check-circle\" : \"times-circle\";\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t) => this.onSubmit(e)} model={this.state.model} validateOnBlur={false} schema={emailModel}>\r\n\t\t\t\t\t\t\t{(validationResult) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tWelcome to the Chartered Institute of Housing\r\n\t\t\t\t\t\t\t\t\tIf your email is registered with us, you will receive a one-time-use access link to enter the platform. Please make sure to check your mailbox.\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t) => this.onEmailChanged(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.onEmailFocused()} />\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{this.state.hasLoginAttempted && (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.isSuccessful ? loginSuccessfulMsg : unsuccessfulLoginAttemptMessage}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\tSend\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{this.props.appStore.configuration.isOpenIdLoginEnabled && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tClick here to Login with SSO\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport const Login = withRouter(LoginWithoutRouter);\r\n","import { observable, action, runInAction, computed } from \"mobx\";\r\nimport { IApiClient } from \"../common/api.client\";\r\nimport { Layout } from \"../common/webapicall\";\r\n\r\nexport class LayoutStore {\r\n\tconstructor(private apiClient: IApiClient) { }\r\n\r\n\t@observable isLayoutLoaded: boolean = false;\r\n\t@observable siteLayout: Layout = null;\r\n\t@observable areScriptsAdded: boolean = false;\r\n\r\n\t@action\r\n\tasync getSiteLayout() {\r\n\t\tconst response = await this.apiClient.layoutClient.getSiteLayout();\r\n\t\trunInAction(() => {\r\n\t\t\tif (response) {\r\n\t\t\t\tthis.siteLayout = response;\r\n\t\t\t\tthis.isLayoutLoaded = true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t@computed get CIHHeaderMarkup() {\r\n\t\treturn { __html: this.siteLayout?.headerHtmlEncode ? window.atob(this.siteLayout.headerHtmlEncode) : \"\" };\r\n\t}\r\n\t@computed get CIHFooterMarkup() {\r\n\t\treturn { __html: this.siteLayout?.footerHtmlEncode ? window.atob(this.siteLayout.footerHtmlEncode) : \"\" };\r\n\t}\r\n\t@computed get styleSheetUrl() {\r\n\t\treturn this.siteLayout?.styleURL ? window.atob(this.siteLayout.styleURL) : \"\";\r\n\t}\r\n\t@computed get scriptUrl() {\r\n\t\treturn this.siteLayout?.scriptUrl;\r\n\t}\r\n\t@computed get scriptPluginsURL() {\r\n\t\treturn this.siteLayout?.scriptPluginsURL;\r\n\t}\r\n\t@action\r\n\tsetAreScriptsAdded(value: boolean) {\r\n\t\tthis.areScriptsAdded = value;\r\n\t}\r\n}\r\n","import * as crosstab from \"crosstab\";\r\nimport { AuthConfigImpl } from \"../common/auth.config\";\r\nimport { IApiClient } from \"../common/api.client\";\r\nimport { UserStore } from \"./user.store\";\r\nimport { AppContextStore } from \"./app.context.store\";\r\nimport {\r\n\tUserClient,\r\n\tReportClient,\r\n\tLookupClient,\r\n\tContextClient,\r\n\tQuestionnaireClient,\r\n\tTrainingContentRecommendationsClient,\r\n\tQuestionnaireAnswerClient,\r\n\tLayoutClient,\r\n\tDebugPanelClient,\r\n} from \"../common/webapicall\";\r\nimport { IConfigurationProvider, AppPublicConfiguration } from \"../common/public.configuration\";\r\nimport { DebugPanelStore } from \"./debug.panel.store\";\r\nimport { observable } from \"mobx\";\r\nimport { QuestionnaireStore } from \"./questionnaire.store\";\r\nimport { TrainingContentStore } from \"./training.content.store\";\r\nimport { ReportPageStore } from \"./report.page.store\";\r\nimport { LayoutStore } from \"./layout.store\";\r\nimport { hotjar } from 'react-hotjar';\r\nimport ReactGA from 'react-ga';\r\nimport TagManager from 'react-gtm-module'\r\n\r\nexport interface IAppStore extends IConfigurationProvider {\r\n\tinit();\r\n}\r\n\r\nconst RESIZE_OBSERVER_ERROR_MESSAGE = \"ResizeObserver loop limit exceeded\";\r\n\r\nabstract class AppStoreBase implements IAppStore {\r\n\tabstract userStore: UserStore;\r\n\tabstract configuration: AppPublicConfiguration;\r\n\tabstract outDatedClient: boolean = false;\r\n\tabstract errorVisible: boolean = false;\r\n\tabstract errorMessage: string = null;\r\n\r\n\tabstract questionnaireStore: QuestionnaireStore;\r\n\tabstract reportPageStore: ReportPageStore;\r\n\tabstract trainingContentStore: TrainingContentStore;\r\n\tabstract layoutStore: LayoutStore;\r\n\r\n\tabstract init();\r\n\r\n\tprotected subscribeEventHandlers() {\r\n\t\twindow.addEventListener(\"error\", async (ev) => {\r\n\t\t\tif (ev && ev.message === RESIZE_OBSERVER_ERROR_MESSAGE) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (typeof ev?.error?.stack === \"string\" && ev.error.stack.indexOf(\"crosstab.js\")) {\r\n\t\t\t\t//console.log(\"supress crosstab.js errors.\");\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tawait this.reportError(ev?.error?.stack);\r\n\t\t});\r\n\t\twindow.onunhandledrejection = async (ev) => await this.reportUnhandledRejection(ev.reason);\r\n\t}\r\n\r\n\tprotected setupCrosstab(tokenToCheck: string) {\r\n\t\tif (crosstab.supported) {\r\n\t\t\tlet ctEventName: string = \"crossTabOpenNewTab\";\r\n\t\t\tcrosstab.on(ctEventName, (message) => {\r\n\t\t\t\tif (crosstab.id === message.origin) {\r\n\t\t\t\t\t//console.log(\"Crosstab receiving event on the same tab, skip it\", ct.id, JSON.stringify(message));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//console.log(\"Crosstab receiving event on a different tab, process it\", ct.id, JSON.stringify(message));\r\n\t\t\t\t\tif (tokenToCheck !== message.data) {\r\n\t\t\t\t\t\twindow.location.assign(\"#/forced-logout\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t//console.log(\"Crosstab broadcast event from source tab\", ct.id);\r\n\t\t\tcrosstab.broadcast(ctEventName, tokenToCheck);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async reportUnhandledRejection(reason: any) {\r\n\t\tif (reason.isWebApiErrorResponse) {\r\n\t\t\tif (reason.statusCode === 406) {\r\n\t\t\t\tthis.outDatedClient = true;\r\n\t\t\t} else if (reason.statusCode === 401) {\r\n\t\t\t\tif (this.userStore.isLoggedIn) {\r\n\t\t\t\t\twindow.location.href = \"#/session-expired\";\r\n\t\t\t\t\tawait this.userStore.logout();\r\n\t\t\t\t} else {\r\n\t\t\t\t\twindow.location.href = this.userStore.getLoginUrl();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tawait this.reportError(`Unhandled web api error:\r\n\t\t\t\t\tURL: ${reason.url} (${reason.statusCode})\r\n\r\n\t\t\t\t\tBody: ${reason.body}\r\n\r\n\t\t\t\t\tStack: ${reason.stack}`);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tawait this.reportError(`Unhandled rejection: ${reason}`);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate async reportError(reason: any) {\r\n\t\ttry {\r\n\t\t\tthis.errorVisible = true;\r\n\t\t\tif (this.configuration.showErrorDetails) {\r\n\t\t\t\tthis.errorMessage = JSON.stringify(reason);\r\n\t\t\t}\r\n\r\n\t\t\tawait this.sendClientException(reason);\r\n\t\t} catch (e) {\r\n\t\t\t// Just log it console as reporting it would be recursive.\r\n\t\t\tconsole.log(\"Error occurred during reporting JS error\");\r\n\t\t\tconsole.log(e);\r\n\t\t}\r\n\t}\r\n\r\n\tprotected abstract sendClientException(reason: any): Promise;\r\n}\r\n\r\nexport class AppStore extends AppStoreBase implements IConfigurationProvider {\r\n\tprivate authConfig: AuthConfigImpl;\r\n\r\n\tapiClient: IApiClient;\r\n\tuserStore: UserStore;\r\n\tcontextStore: AppContextStore;\r\n\tdebugPanelStore: DebugPanelStore;\r\n\tquestionnaireStore: QuestionnaireStore;\r\n\treportPageStore: ReportPageStore;\r\n\ttrainingContentStore: TrainingContentStore;\r\n\tlayoutStore: LayoutStore;\r\n\r\n\tconfiguration: AppPublicConfiguration;\r\n\r\n\t@observable outDatedClient: boolean = false;\r\n\t@observable errorVisible: boolean = false;\r\n\t@observable errorMessage: string = null;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.authConfig = new AuthConfigImpl(this);\r\n\t\tthis.apiClient = {\r\n\t\t\tsetAuthToken: (newToken: string, refreshToken: string) => {\r\n\t\t\t\tthis.authConfig.token = newToken;\r\n\t\t\t\tthis.authConfig.refreshToken = refreshToken;\r\n\t\t\t},\r\n\t\t\tcontextClient: new ContextClient(this.authConfig, null, this.authConfig),\r\n\t\t\tlookupClient: new LookupClient(this.authConfig, null, this.authConfig),\r\n\t\t\treportClient: new ReportClient(this.authConfig, null, this.authConfig),\r\n\t\t\tuserClient: new UserClient(this.authConfig, null, this.authConfig),\r\n\t\t\tquestionnaireClient: new QuestionnaireClient(this.authConfig, null, this.authConfig),\r\n\t\t\ttrainingContentClient: new TrainingContentRecommendationsClient(this.authConfig, null, this.authConfig),\r\n\t\t\tquestionnaireAnswerClient: new QuestionnaireAnswerClient(this.authConfig, null, this.authConfig),\r\n\t\t\tlayoutClient: new LayoutClient(this.authConfig, null, this.authConfig),\r\n\t\t\tdebugPanelClient: new DebugPanelClient(this.authConfig, null, this.authConfig),\r\n\t\t};\r\n\t\tthis.userStore = new UserStore(this.apiClient, this);\r\n\t\tthis.contextStore = new AppContextStore(this.apiClient);\r\n\t\tthis.debugPanelStore = new DebugPanelStore(this.userStore, this.apiClient);\r\n\t\tthis.questionnaireStore = new QuestionnaireStore(this.apiClient);\r\n\t\tthis.reportPageStore = new ReportPageStore(this.apiClient, this);\r\n\t\tthis.trainingContentStore = new TrainingContentStore(this.apiClient);\r\n\t\tthis.layoutStore = new LayoutStore(this.apiClient);\r\n\t}\r\n\r\n\tasync init() {\r\n\t\tawait this.loadApiVersion();\r\n\r\n\t\tawait this.subscribeEventHandlers();\r\n\t\tthis.userStore.initTokens();\r\n\t\tawait this.layoutStore.getSiteLayout();\r\n\r\n\t\tawait this.loadPublicConfiguration();\r\n\t\tthis.addUsageTrackingScripts();\r\n\t\tawait this.userStore.init();\r\n\r\n\t\tif (this.userStore.userId) {\r\n\t\t\tawait this.contextStore.loadContext(this.userStore.userId);\r\n\t\t}\r\n\r\n\t\tawait this.setupCrosstab(this.userStore.getAuthToken());\r\n\t}\r\n\r\n\tasync loadPublicConfiguration() {\r\n\t\tlet config = await this.apiClient.lookupClient.getPublicConfiguration();\r\n\t\tthis.configuration = {\r\n\t\t\t...config,\r\n\t\t\tloginUrl: \"/#/login\",\r\n\t\t};\r\n\t}\r\n\r\n\tprotected async sendClientException(reason: any): Promise {\r\n\t\tawait this.apiClient.reportClient.sendClientException({\r\n\t\t\tmessage: reason,\r\n\t\t\turl: window.location.href,\r\n\t\t});\r\n\t}\r\n\r\n\tprivate async loadApiVersion() {\r\n\t\t(window as any).apiVersion = await this.apiClient.lookupClient.getApiVersion();\r\n\t}\r\n\r\n\tprivate addUsageTrackingScripts() {\r\n\t\tif (this.configuration.hotjarId) {\t\t\t\r\n\t\t\thotjar.initialize(this.configuration.hotjarId, 6);\r\n\t\t};\r\n\r\n\t\tif (this.configuration.googleAnalyticsId) {\t\t\t\t\r\n\t\t\tReactGA.initialize(this.configuration.googleAnalyticsId);\t\t\t\r\n\t\t\tReactGA.pageview(window.location.pathname + window.location.search);\r\n\t\t}\r\n\r\n\t\tif (this.configuration.googleTagManagerId) {\t\t\t\t\t\r\n\t\t\tconst tagManagerArgs = {\r\n\t\t\t\tgtmId: this.configuration.googleTagManagerId\r\n\t\t\t}\r\n\t\t\tTagManager.initialize(tagManagerArgs)\r\n\t\t}\r\n\t}\r\n}\r\n","import * as React from \"react\";\r\nimport {IAppStore} from \"../stores/app.store\";\r\nimport {observer} from \"mobx-react\";\r\nimport {AppContext} from \"./mainframe\";\r\n\r\n/** Decorator to be used for injecting AppStore to React component. */\r\nexport const useAppStore = () => {\r\n\treturn | {(props: T): JSX.Element}>(Component: C): C => {\r\n\t\tlet ObserverComponent: any = observer(Component);\r\n\t\tconst Wrapper: React.FC = (props: T) => {\r\n\t\t\tconst appStore = React.useContext(AppContext);\r\n\t\t\treturn ;\r\n\t\t};\r\n\r\n\t\treturn Wrapper as any as C;\r\n\t};\r\n};\r\n","import { AppStore } from \"../stores/app.store\";\r\nimport { useAppStore } from \"./app.store.consumer\";\r\nimport * as React from \"react\";\r\nimport { History } from \"history\";\r\nimport heroImage from \"../assets/img/report_pic.png\";\r\n\r\ninterface TopHeaderProps {\r\n\t//title: string;\r\n\t//bgImage: ImageBitmap;\r\n\tappStore?: AppStore;\r\n\thistory?: History;\r\n}\r\n\r\n@useAppStore()\r\nexport class TopHeader extends React.Component {\r\n\tprivate userStore = this.props.appStore.userStore;\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{this.userStore.isLoggedIn && Welcome {this.userStore.firstName}!}\r\n\t\t\t\t\r\n\t\t\t\t\tMy professional profile\r\n\t\t\t\t\t{/* */}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n","import * as React from \"react\";\r\n\r\nexport const MainBlank: React.FC = () => {\r\n\treturn Loading...;\r\n};\r\n","import * as React from \"react\";\r\n\r\nexport const NotFound = () => {\r\n\treturn 404 - Not found;\r\n};\r\n","import * as React from \"react\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport interface ValidatableFormProps {\r\n\tchildren: (isValid: ValidationResult) => any;\r\n\tschema: Yup.ObjectSchema;\r\n\tmodel: TSchema;\r\n\tonSubmit?: (e?: React.FormEvent) => void | Promise;\r\n\tonValidationErrorOnSubmit?: (validationResult?: ValidationResult) => void | Promise;\r\n\tvalidateOnBlur?: boolean;\r\n}\r\n\r\nexport interface ValidationResult {\r\n\tisValid: boolean;\r\n\terrorMessages?: {[key: string]: string};\r\n}\r\n\r\n/** Base component for validatable forms. It renders its children to the page, and adds some event handlers to them. */\r\nexport class ValidatableForm extends React.Component, ValidationResult> {\r\n\tprivate focusedElements: string[] = [];\r\n\r\n\tconstructor(props: Readonly>) {\r\n\t\tsuper(props);\r\n\t\tthis.state = this.validate();\r\n\t}\r\n\r\n\tprivate validate(): ValidationResult {\r\n\t\ttry {\r\n\t\t\tthis.props.schema.validateSync(this.props.model, {\r\n\t\t\t\tabortEarly: false,\r\n\t\t\t});\r\n\t\t\treturn {\r\n\t\t\t\tisValid: true,\r\n\t\t\t\terrorMessages: {},\r\n\t\t\t};\r\n\t\t} catch (e) {\r\n\t\t\tlet error = e as Yup.ValidationError;\r\n\t\t\tlet res: ValidationResult = {\r\n\t\t\t\tisValid: false,\r\n\t\t\t\terrorMessages: {},\r\n\t\t\t};\r\n\r\n\t\t\tlet elements = this.state ? this.focusedElements : [];\r\n\t\t\terror.inner.filter((i) => elements.some((fe) => fe === i.path)).forEach((i) => (res.errorMessages[i.path] = i.message));\r\n\t\t\treturn res;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate onFocus = (e: React.FocusEvent) => {\r\n\t\tlet focusedElements = this.focusedElements;\r\n\t\tlet fieldName = e.target.dataset[\"fieldName\"];\r\n\t\tif (fieldName && !focusedElements.some((fe) => fe === fieldName)) {\r\n\t\t\tfocusedElements.push(fieldName);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onBlur = (e: React.FocusEvent) => {\r\n\t\tif (this.shouldValidateOnBlur()) {\r\n\t\t\tthis.setState(this.validate());\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onSubmit = (e: React.FormEvent) => {\r\n\t\te.preventDefault();\r\n\t\tlet elements = Object.keys(this.props.model);\r\n\t\telements.forEach((e) => {\r\n\t\t\tif (!this.focusedElements.some((fe) => fe === e)) {\r\n\t\t\t\tthis.focusedElements.push(e);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet validationResult = this.validate();\r\n\t\tif (validationResult.isValid) {\r\n\t\t\tif (this.props.onSubmit) {\r\n\t\t\t\tthis.setState(validationResult);\r\n\t\t\t\tthis.props.onSubmit(e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (this.props.onValidationErrorOnSubmit) {\r\n\t\t\t\tthis.props.onValidationErrorOnSubmit(validationResult);\r\n\t\t\t}\r\n\r\n\t\t\tthis.setState(validationResult);\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onKeyup = () => {\r\n\t\tif (this.shouldValidateOnBlur()) {\r\n\t\t\tlet validationResult = this.validate();\r\n\t\t\t// not updating the validation messages intentionally, as they should be updated upon focus lost or submission.\r\n\t\t\t// the form can be submitted this way without removing focus from any other element\r\n\t\t\tthis.setState((s) => ({\r\n\t\t\t\tisValid: validationResult.isValid,\r\n\t\t\t\terrorMessages: s.errorMessages,\r\n\t\t\t}));\r\n\t\t}\r\n\t};\r\n\r\n\tprivate shouldValidateOnBlur() {\r\n\t\treturn this.props.validateOnBlur ?? true;\r\n\t}\r\n\r\n\tcomponentDidUpdate() {\r\n\t\tif (this.shouldValidateOnBlur()) {\r\n\t\t\tlet validationResult = this.validate();\r\n\t\t\tlet currentValidationResult = this.state;\r\n\t\t\tif (JSON.stringify(validationResult) !== JSON.stringify(currentValidationResult)) {\r\n\t\t\t\tthis.setState(validationResult);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (this.props.onSubmit) {\r\n\t\t\treturn React.cloneElement(this.props.children(this.state), {\r\n\t\t\t\tonSubmit: this.onSubmit,\r\n\t\t\t\tonBlur: this.onBlur,\r\n\t\t\t\tonFocus: this.onFocus,\r\n\t\t\t\tonKeyUp: this.onKeyup,\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\treturn this.props.children(this.state);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport interface ValidationMessageProps {\r\n\tvalidationResult: ValidationResult;\r\n\tfieldName: string;\r\n\tclassName?: string;\r\n\tstyle?: React.CSSProperties;\r\n}\r\n\r\n/**\r\n * Validation message component.\r\n * @param props Takes vaidation results from props, and shows the error message, if there's any.\r\n */\r\nexport const ValidationMessage = (props: ValidationMessageProps) => {\r\n\tlet errorMessage = props.validationResult.errorMessages[props.fieldName];\r\n\treturn (\r\n\t\t\r\n\t\t\t{errorMessage}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport interface ValidationMessageWithIconProps {\r\n\tvalidationResult: ValidationResult;\r\n\tfieldName: string;\r\n\tclassNames?: string;\r\n\ticonClassNames?: string;\r\n}\r\n\r\n/**\r\n * Validation message with icon component.\r\n * @param props Takes vaidation results from props, and shows the error message, if there's any.\r\n */\r\nexport const ValidationMessageWithIcon = (props: ValidationMessageWithIconProps) => {\r\n\tlet errorMessage = props.validationResult.errorMessages[props.fieldName];\r\n\treturn errorMessage ? (\r\n\t\t\r\n\t\t\t\r\n\t\t\t{errorMessage}\r\n\t\t\r\n\t) : null;\r\n};\r\n\r\nexport interface ValidatableInputProps {\r\n\tmodel: TModel;\r\n\tfieldName: keyof TModel;\r\n\tonChanged: (e: React.ChangeEvent) => void | Promise;\r\n\tchildren: any;\r\n\tvalue?: any;\r\n}\r\n\r\n/**\r\n * Validatable input component. Renders its children, and puts some additional properties on them.\r\n * @param props Input props for handling events of the input field.\r\n */\r\nexport const ValidatableInput = (props: ValidatableInputProps) => {\r\n\tlet val = props.value !== undefined ? props.value : props.model[props.fieldName];\r\n\tlet mappedProps: any = {\r\n\t\tonChange: props.onChanged,\r\n\t\t\"data-field-name\": props.fieldName,\r\n\t};\r\n\r\n\tif (props.children.type === \"input\" && props.children.props.type === \"radio\") {\r\n\t\tmappedProps.checked = val === props.children.props.value;\r\n\t} else {\r\n\t\tmappedProps.value = val || \"\";\r\n\t}\r\n\r\n\treturn React.cloneElement(props.children, mappedProps);\r\n};\r\n","import React from \"react\";\r\nimport {Redirect} from \"react-router-dom\";\r\nimport {AppStore} from \"../stores/app.store\";\r\nimport {UserStore} from \"../stores/user.store\";\r\nimport {useAppStore} from \"./app.store.consumer\";\r\nimport {MainBlank} from \"./blank\";\r\n\r\nexport interface GuardOptions {\r\n\tcheckUser: (userStore: UserStore) => GuardResult;\r\n\tappStore?: AppStore;\r\n\tredirectUrl?: string;\r\n}\r\n\r\nenum GuardResult {\r\n\tAllowed,\r\n\tRedirectToLogin,\r\n\tRedirectToHome,\r\n}\r\n\r\nexport const isLoggedIn = (userStore: UserStore) => (userStore.isLoggedIn ? GuardResult.Allowed : GuardResult.RedirectToLogin);\r\n\r\n/** Component that should be used for handling access rights. It requires a function that is run upon creation, and if the function returns false, it navigates the user to the login page. */\r\n@useAppStore()\r\nexport default class Guard extends React.Component {\r\n\tconstructor(props: Readonly) {\r\n\t\tsuper(props);\r\n\t\tlet userStore = props.appStore.userStore;\r\n\t\tthis.state = {\r\n\t\t\tredirect: props.checkUser(userStore),\r\n\t\t};\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (this.state.redirect === GuardResult.RedirectToLogin) {\r\n\t\t\tlet redirectUrl = this.props.redirectUrl ? this.props.redirectUrl : this.props.appStore.userStore.getLoginUrl();\r\n\t\t\tif (redirectUrl.startsWith(\"#/\")) {\r\n\t\t\t\treturn ;\r\n\t\t\t} else if (redirectUrl.startsWith(\"/#/\")) {\r\n\t\t\t\treturn ;\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.href = redirectUrl;\r\n\t\t\t\treturn ;\r\n\t\t\t}\r\n\t\t} else if (this.state.redirect === GuardResult.RedirectToHome) {\r\n\t\t\treturn ;\r\n\t\t} else {\r\n\t\t\treturn this.props.children;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Decorator that wraps the component with Guard component.\r\n * @param checkUser Function to decide whether the user is allowed to stay on this page.\r\n */\r\nexport const guard = (checkUser: (userStore: UserStore) => GuardResult) => {\r\n\treturn | {(props: T): JSX.Element}>(WrappedComponent: C): C => {\r\n\t\tlet RenderedComponent = WrappedComponent as any;\r\n\t\treturn (((props: T) => {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}) as any) as C;\r\n\t};\r\n};\r\n","import * as React from \"react\";\r\nimport {useAppStore} from \"../common/app.store.consumer\";\r\nimport {AppStore} from \"../stores/app.store\";\r\n\r\n@useAppStore()\r\nexport class UserDropdown extends React.Component<{appStore?: AppStore}> {\r\n\tprivate userStore = this.props.appStore.userStore;\r\n\r\n\tprivate onUserSelected = async (e: React.ChangeEvent) => {\r\n\t\tlet userId = e.target.value;\r\n\t\tthis.userStore.changeUser(userId);\r\n\t};\r\n\r\n\trender() {\r\n\t\tlet isVisible = this.props.appStore.configuration.showUserDropdown;\r\n\t\tif (!isVisible) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (!this.userStore.isLoggedIn) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tlet users = this.userStore.users;\r\n\t\tlet userId = this.userStore.userId;\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tSimulate login as:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{users.map((u) => (\r\n\t\t\t\t\t\t\t\t
If your email is registered with us, you will receive a one-time-use access link to enter the platform. Please make sure to check your mailbox.