{"version":3,"sources":["redux/uploadFile/uploadFile.actions.ts","core/environment/environment.custom.ts","core/environment/environment.dev.ts","core/environment/environment.local.ts","core/environment/environment.production.ts","core/environment/environment.staging.ts","core/environment/environment.test.ts","redux/organisation/organisation.types.ts","core/services/user.service.ts","assets/images/logo-icon.png","assets/images/logo-text.png","assets/images/logo-light-icon.png","assets/images/logo-ipf.png","components/availableFiles.tsx","redux/app/app.types.ts","redux/auditor/auditor.types.ts","core/environment sync /^/environment/..*$","components/loader.component.tsx","redux/app/app.actions.ts","core/environment/environment.ts","assets/images/Howareyoudoing.png","core/services/appinsights.service.ts","core/services/usermanager.service.ts","serviceWorker.js","redux/middlewares/redux.axios.middleware.ts","redux/middlewares/middlewares.ts","redux/app/app.reducer.ts","redux/auditor/auditor.reducer.ts","redux/dashboard/dashboard.reducer.ts","redux/dashboard/dashboard.types.ts","redux/norm/norm.reducer.ts","redux/organisation/organisation.reducer.ts","redux/questionnaire/questionnaire.reducer.ts","redux/settings/settings.reducer.ts","redux/reducers.ts","redux/settings/settings.types.ts","redux/store.ts","index.tsx","routes/private.routes.tsx","app.component.tsx","core/enums/toastTypes.enum.ts","redux/norm/norm.types.ts","redux/app/app.extended.actions.ts","views/internal/authcallback.component.tsx","views/internal/error403.component.tsx","views/internal/error500.component.tsx","components/divider.component.tsx","views/internal/genericerror.component.tsx","routes/error.routes.ts","layouts/blanklayout.tsx","components/banner.component.tsx","layouts/custom-components/banner.layout.component.tsx","layouts/layout-components/footer/footer.tsx","layouts/layout-components/header/data.ts","layouts/layout-components/header/headerprofiledropdown.tsx","layouts/layout-components/header/header.tsx","layouts/layout-components/sidebar/sidebar.js","routes/index.ts","layouts/fulllayout.jsx","core/enums/toastPositions.enum.ts","components/message.component.tsx","redux/uploadFile/uploadFile.types.ts","i18n.ts","core/configuration/usermanager.configuration.ts","redux/organisationBenchmark/organisationBenchmark.types.ts","redux/organisationBenchmark/organisationBenchmark.actions.ts","core/enums/questionnaireStatuses.enum.ts","redux/organisation/organisation.actions.ts","redux/questionnaire/questionnaire.actions.ts","components/availableOrganisationYears.component.tsx","views/organisationBenchmark/shared/resultStatuses.component.tsx","views/organisationBenchmark/shared/sunburstGraph.component.tsx","views/organisationBenchmark/shared/organisationBenchmarkContainer.component.tsx","views/organisationBenchmark/shared/organisationBenchmark.component.tsx","views/organisationBenchmark/shared/resultAuditor.component.tsx","views/organisationBenchmark/adminOrganisationBenchmark.component.tsx","core/constants/roles.constants.ts","redux/auditor/auditor.actions.ts","views/auditors/auditor.component.tsx","views/auditors/auditors.component.tsx","redux/norm/norm.actions.ts","views/norms/questionNorm.component.tsx","views/norms/dimensionNorm.component.tsx","redux/norm/norm.extended.actions.ts","views/norms/norms.component.tsx","views/organisations/organisation.component.tsx","views/organisations/organisations.component.tsx","views/organisationBenchmark/ownerOrganisationBenchmark.component.tsx","views/questionnaire/inviteEmployee.component.tsx","views/questionnaire/questionTypes/questionIntro.component.tsx","views/questionnaire/questionTypes/questionIntroReduced.component.tsx","views/questionnaire/auditorFeedback.component.tsx","views/questionnaire/questionTypes/questionMultiple.component.tsx","views/questionnaire/questionTypes/questionNumeric.component.tsx","views/questionnaire/questionTypes/questionSingle.component.tsx","views/questionnaire/questionTypes/questionSingleReduced.component.tsx","components/uploadFile.tsx","views/questionnaire/question.component.tsx","redux/questionnaire/questionnaire.extended.actions.ts","views/questionnaire/questionnaire.component.tsx","routes/router.routes.ts","redux/questionnaire/questionnaire.types.ts","core/configuration/appinsights.configuration.ts"],"names":["UploadFile","params","file","onUploadProgress","onSuccess","onError","formData","FormData","append","type","EUploadFileActionTypes","UPLOAD_FILE","payload","request","method","showErrors","url","organisationIdentity","year","questionId","headers","custom","onErrorToastMessage","onSuccessToastMessage","data","options","response","error","DeleteFile","fileId","DELETE_FILE","DownloadFile","DOWNLOAD_FILE","responseType","Backend","ApiUrl","Oidc","Authority","ClientID","Cache","Limit","ApplicationInsights","Enabled","dev","local","production","staging","test","EOrganisationActionTypes","EResultsActionTypes","UserService","routes","publicRoutes","sidebarRoutes","filteredRoutes","getUserRoles","userRoles","filter","r","undefined","allowedRoles","_some","role","includes","map","path","claimType","getUserClaims","claims","allowedEntities","Object","fromEntries","entries","key","result","permissions","Array","isArray","targetRole","roles","customAuthenticationTokenName","hasAccessKey","currentPath","URLSearchParams","get","clearCustomAuthenticationToken","sessionStorage","removeItem","getCustomAuthenticationToken","getItem","saveCustomAuthenticationToken","token","setItem","isAuthenticatedThroughACustomToken","getCustomAccessKey","decodeCustomAuthenticationToken","sub","isAutenticated","user","a","customAuthenticationToken","decodedToken","Date","now","exp","userManager","getUser","fetchedUser","access_token","expired","isAutenticatedAndAllowed","isAuthenticated","hasApplicationAccess","hasAccessToApplication","isRouteAllowed","x","redirect","navlabel","isStateUserAuthenticated","isAllowed","hasApplicationAllowedRoles","allowed","process","split","i","length","getUserRolesThroughCustomToken","jwtData","decodedJwtJsonData","window","atob","decodedJwtData","JSON","parse","getAccessTokenAsync","accessToken","clearSessionAndForceLogin","appInsights","context","clearAuthenticatedUserContext","um","clearStaleState","signoutRedirect","customToken","jwt_decode","id_token","module","exports","AvailableFiles","props","tryDeleteFile","t","global","confirm","filename","name","deleteFile","id","onDownload","downloadingFileIds","state","setState","uploadActions","blobUrl","URL","createObjectURL","downloadLink","document","createElement","href","download","click","revokeObjectURL","isFileProcessing","deletingFileIds","removeFromDeletingIds","fileInfos","this","filesInfo","className","i18nKey","hidden","isAuditorRole","disabled","disableDelete","onClick","onDeleteFile","Component","enhance","compose","withTranslation","connect","dispatch","bindActionCreators","uploadFileActions","EAppActionTypes","EAuditorActionTypes","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","resolve","active","size","GetApiSettings","GET_API_SETTINGS","getState","GET_API_SETTINGS_SUCCESS","GET_API_SETTINGS_ERROR","GetBannerInfo","GET_BANNER_INFO","GET_BANNER_INFO_SUCCESS","RetrieveCustomToken","accessKey","RETRIEVE_CUSTOM_TOKEN","toString","RETRIEVE_CUSTOM_TOKEN_SUCCESS","RETRIEVE_CUSTOM_TOKEN_ERROR","environmentConfig","require","default","config","ApplicationInsightsKey","Application","DefaultLanguageFallback","GET_API_URL","GET_CACHE_LIMIT","GET_SETTING","appInsightsConfiguration","createUserManager","userManagerConfig","Boolean","location","hostname","match","dispatchGenericError","message","status","reduxSourceAction","errors","SHOW_TOAST_MESSAGE","toastType","EToastTypes","ERROR","i18KeyTitle","innerMessage","middlewareConfig","interceptors","success","getSourceAction","customAccessToken","res","SUCCESS","i18KeyMessage","Promise","reject","cacheLimit","cache","setupCache","maxAge","invalidate","toLowerCase","store","clear","apiClient","axios","create","baseURL","adapter","thunk","axiosMiddleware","initialState","api","version","errorMessages","AppReducer","action","versionString","toast","GenerateMessage","position","EToastPositions","TOP_RIGHT","ADD_APPLICATION_ERROR_MESSAGE","trackTrace","severityLevel","SeverityLevel","CLEAR_APPLICATION_ERROR_MESSAGES","bannerInformation","auditors","isLoadingAuditors","isLoadingAuditor","AuditorReducer","GET_AUDITORS","GET_AUDITORS_SUCCESS","GET_AUDITORS_ERROR","GET_AUDITOR","GET_AUDITOR_SUCCESS","GET_AUDITOR_ERROR","POST_AUDITOR","POST_AUDITOR_SUCCESS","POST_AUDITOR_ERROR","DELETE_AUDITOR","DELETE_AUDITOR_SUCCESS","DELETE_AUDITOR_ERROR","model","dashboardReducer","questionnaireNorm","dimensionNorms","isLoadingNorms","NormReducer","ENormActionTypes","GET_NORMS","GET_NORMS_SUCCESS","GET_NORMS_ERROR","SET_DIMENSION_NORM","dimension","find","dimensionId","norm","SET_QUESTION_NORM","dimensionNorm","questionNorm","questionNorms","organisations","isLoadingOrganisations","isLoadingOrganisation","isLoadingAccountTypes","isLoadingAvailableYears","accountTypes","availableYears","OrganisationReducer","GET_ORGANISATIONS","GET_ORGANISATIONS_SUCCESS","GET_ORGANISATIONS_ERROR","GET_ORGANISATION","GET_ORGANISATION_SUCCESS","GET_ORGANISATION_ERROR","GET_ACCOUNTTYPES","GET_ACCOUNTTYPES_SUCCESS","GET_ACCOUNTTYPES_ERROR","POST_ORGANISATION","POST_ORGANISATION_SUCCESS","POST_ORGANISATION_ERROR","DELETE_ORGANISATION","DELETE_ORGANISATION_SUCCESS","DELETE_ORGANISATION_ERROR","GET_AVAILABLE_ORGANISATION_YEARS","GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS","GET_AVAILABLE_ORGANISATION_YEARS_ERROR","isLoadingQuestionnaire","questionModel","isReadOnly","questions","accountTypeName","hasFileUpload","auditorFeedbacks","answers","employeeTypes","isLoadingEmployeeTypes","isSendingInvitation","getQuestion","questionResult","questionsStack","forEach","question","push","currentQuestion","children","some","unshift","splice","questionnaireReducer","EQuestionnaireActionTypes","GET_EMPLOYEE_QUESTIONNAIRE","GET_QUESTIONNAIRE","GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS","GET_QUESTIONNAIRE_SUCCESS","GET_EMPLOYEE_QUESTIONNAIRE_ERROR","GET_QUESTIONNAIRE_ERROR","SAVE_EMPLOYEE_QUESTIONNAIRE","PUT_QUESTIONNAIRE","SUMBIT_QUESTIONNAIRE","SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS","PUT_QUESTIONNAIRE_SUCCESS","SUMBIT_QUESTIONNAIRE_SUCCESS","SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR","PUT_QUESTIONNAIRE_ERROR","SUMBIT_QUESTIONNAIRE_ERROR","SEND_INVITATION","SEND_INVITATION_SUCCESS","SEND_INVITATION_ERROR","SET_QUESTIONNAIRE_NORM_SCORE","selectedFeedback","y","score","isFinite","normScore","previousQuestionAuditorState","previousQuestionAuditorComment","answer","auditorComment","comment","SET_QUESTIONNAIRE_COMMENTS","comments","previousQuestionAuditorScore","auditorScore","SET_QUESTIONNAIRE_ANSWER","possibleAnswer","possibleAnswers","value","answerOptionId","INIT_STATE","activeDir","activeThemeLayout","activeTheme","activeSidebarType","activeLogoBg","activeNavbarBg","activeSidebarBg","activeSidebarPos","activeHeaderPos","activeLayout","rootReducer","combineReducers","oidc","oidcReducer","dashboard","settings","application","questionnaire","norms","loggerMiddleware","next","composeEnhancers","composeWithDevTools","createStore","reducers","applyMiddleware","middlewares","loadUser","then","setAuthenticatedUserContext","profile","App","Store","ReactDOM","render","fallback","basename","getElementById","navigator","serviceWorker","ready","registration","unregister","catch","console","PrivateRoute","component","allowedRoutes","rest","history","createBrowserHistory","Env","loadAppInsights","trackPageView","allowedRoutePaths","_isMounted","setAuthenticationType","pathname","search","retrieveCustomToken","hasAccess","signinRedirect","AddAppErrorMessage","appActions","onRetrieveCustomTokenSuccess","onRetrieveCustomTokenError","obtainAllowedRoutePaths","getUserAllowedRoutePaths","bind","i18n","isInitialized","loadResources","events","addUserLoaded","prop","withRouter","indexRoutes","React","AppActions","withAITracking","reactPlugin","ClearAppErrorMessage","mainContainer","height","width","display","flexDirection","justifyContent","alignItems","content","CallbackPage","successCallback","hasRoleAllowed","errorCallback","style","Row","Col","Error403","Trans","Button","color","aria-hidden","Error500","Divider","GenericError","sessionManager","automaticSession","errorRoutes","Blanklayout","from","to","pathTo","Banner","useState","visible","setVisible","Alert","isOpen","toggle","BannerLayout","Footer","appVersion","appName","actions","getFullYear","apiVersion","HeaderProfileMenuItems","authority","client_id","icon","dividerAfter","HeaderProfileDropdown","logout","preventDefault","UncontrolledDropdown","nav","inNavbar","DropdownToggle","caret","DropdownMenu","right","email","item","Fragment","DropdownItem","divider","setIsOpen","useSelector","data-navbarbg","Navbar","expand","data-logobg","classList","NavbarBrand","src","logodarkicon","alt","logolighticon","logodarktext","logolighttext","Collapse","navbar","Nav","NavItem","NavLink","element","contains","setAttribute","Sidebar","expandLogo","activeRoute","authentication","uicomponents","samplepages","dashboardpages","iconsPages","formlayoutPages","formpickerPages","routeName","indexOf","data-sidebarbg","onMouseEnter","onMouseLeave","collapse","firstdd","data-toggle","aria-expanded","child","seconddd","subchild","activeClassName","pro","innerWidth","setWidth","_filter","ThemeRoutes","_has","nonRedirectRoutes","redirectRoute","useEffect","isSubscribed","updateDimensions","add","remove","readyState","addEventListener","removeEventListener","dir","data-theme","data-layout","data-sidebartype","data-sidebar-position","data-header-position","data-boxed-layout","prop2","key2","prop3","key3","AuthCallbackPage","Message","messageType","INFO","WARNING","STANDARD","getIconType","values","i18KeyMessageValues","MAX_NUMBER_FILES_PER_QUESTION","use","detector","backend","initReactI18next","init","loadPath","fallbackLng","ns","defaultNS","debug","react","wait","interpolation","escapeValue","changeLanguage","Environment","redirect_uri","protocol","port","post_logout_redirect_uris","response_type","scope","filterProtocolClaims","loadUserInfo","automaticSilentRenew","silent_redirect_uri","OrganisationResultStatus","EResultStatuses","EQuestionnaireStatuses","GetResults","organisationGuid","GET_RESULTS","getTime","GetOrganisationStatuses","GET_STATUSES","SaveOrganisationStatus","statusId","UPDATE_STATUS","organisationResultStatus","GetOrganisations","GetOrganisation","organisationId","GetAccountTypes","CreateOrganisation","organisation","DeleteOrganisation","UpdateOrganisation","PUT_ORGANISATION","PUT_ORGANISATION_SUCCESS","PUT_ORGANISATION_ERROR","GetOrganisationResults","GET_ORGANISATION_RESULTS","Accept","GetAvailableOrganisationYears","arrayResponse","HasOrganisationResults","HAS_RESULTS","GetQuestionnaire","PutQuestionnaire","listAnswers","SubmitQuestionnaire","GetEmployeeQuestionnaire","SaveEmployeeQuestionnaire","SaveAuditorQuestionnaire","auditorFeedback","SAVE_AUDITOR_QUESTIONNAIRE","SAVE_AUDITOR_QUESTIONNAIRE_SUCCESS","SAVE_AUDITOR_QUESTIONNAIRE_ERROR","SendInvitation","employeeTypeId","stringify","employeeEmail","parseInt","GetEmployeeTypes","GET_EMPLOYEETYPES","GET_EMPLOYEETYPES_SUCCESS","GET_EMPLOYEETYPES_ERROR","GetQuestionnaireInfoPdf","GET_QUESTIONNAIRE_INFO_PDF","GET_QUESTIONNAIRE_INFO_PDF_SUCCESS","GET_QUESTIONNAIRE_INFO_PDF_ERROR","AvailableOrganisationYears","onGetAvailableOrganisationYearsSuccess","availableOrganisationYears","handleYearChange","target","organisationActions","getAvailableYears","prevProps","Input","onChange","required","index","ResultStatuses","onChangeStatus","event","currentStatus","onSave","isSaving","savedStatus","statuses","renderSaveButton","sunburst","Highcharts","EInnovativeColors","SunburstGraph","chart","title","text","allowTraversingTree","credits","subtitle","tooltip","headerFormat","pointFormat","series","allowDrillToNode","cursor","dataLabels","format","rotation","fontWeight","textOutline","highcharts","OrganisationBenchmark","onChangeYear","evt","rel","md","renderYearDropdown","renderStatusesDropdown","onSaveStatus","showStatuses","currentStatusName","Approved","renderApprovedMessage","Rejected","renderRejectedMessage","isInnovative","renderInnovativeMessage","renderNonInnovativeMessage","graphData","sm","renderMessage","Card","CardHeader","CardBody","renderDropdowns","renderResults","TooltipItem","placement","tooltipOpen","setTooltipOpen","Tooltip","ResultAuditor","questionChild","questionType","QuestionType","IntroQuestion","colSpan","renderQuestionValue","questionScoreDetails","overallScore","renderQuestionScoreDetails","toFixed","participantsDetails","participantDetails","numberOfParticipants","header","MultiResponse","renderChildrenQuestions","CardTitle","Table","responsive","renderQuestion","OrganisationBenchmarkContainer","getColorByIsInnovative","INNOVATIVE","NOT_INNOVATIVE","convertQuestionsToHighchartsData","dimensionIndex","questionIndex","parent","convertApiResponseToHighchartsData","apiResponse","rootElement","dimensions","dimensionElement","questionsElements","onGetResultsSuccess","getResults","resultsActions","getQuestionnaire","questionnaireActions","onSuccessGetQuestionnaire","hasResultsLoading","hasResults","isAuditor","filteredStatuses","condition","showLoader","renderLoader","visibility","renderContent","benchmarkActions","organisationsActions","AdminOrganisationBenchmark","isLoading","isInRole","GetAuditors","GetAuditor","auditorId","CreateAuditor","auditor","DeleteAuditor","UpdateAuditor","PUT_AUDITOR","PUT_AUDITOR_SUCCESS","PUT_AUDITOR_ERROR","Auditor","componentDidMount","editMode","sucessGetAuditorCallback","auditorModel","save","successAuditorCallback","handleChange","setCustomValidity","handleSetCustomValidity","getFormStructure","labelKey","readonly","inputType","handleBackClick","getAuditorIdentity","formGroups","onSubmit","formGroupProperties","FormGroup","htmlFor","readOnly","onInvalid","auditorsActions","Auditors","modal","deleteOrgId","goToEditFunction","row","deleteAuditorItem","successDeleteCallback","closeModal","goToDeleteFunction","editFunction","cell","removeFunction","striped","hover","condensed","searchPlaceholder","pagination","tableHeaderClass","bordered","dataField","isKey","dataFormat","Modal","ModalHeader","ModalBody","ModalFooter","GetNorms","UpdateNorms","PUT_NORMS","PUT_NORMS_SUCCESS","PUT_NORMS_ERROR","QuestionNorm","parseFloat","onChangeNorm","isReadonly","step","min","normsActions","DimensionNorm","setNormValue","SetQuestionNorm","Norms","successNormsCallback","SetDimensionNorm","Organisation","orgId","sucessGetOrgCallback","organisationModel","successOrganisationCallback","identity","postalCode","fteamount","legalFormName","professionalAssociation","city","address","practiceRegister","networkName","agbcode","regionName","contractedHealthInsurers","handleAccountTypeChange","accountTypeId","getOrganisationIdentity","hasUrlOrganisationIdentity","handleRedirect","handleRedirectQuestionnaire","totalOrganisationResults","Label","for","option","Organisations","successGetOrganisationResultsCallback","fileName","link","File","deleteOrganisationItem","OwnerOrganisationBenchmark","noOrganisationId","getEntityPermissions","entities","InviteEmployee","handleEmailChange","sendInvitation","handleEmployeeType","onGetEmployeeTypesSuccess","body","inverse","Form","InputGroup","InputGroupAddon","addonType","InputGroupText","placeholder","QuestionIntro","QuestionIntroReduced","AuditorFeedback","handleNormChange","handleCommentsChange","newNorm","onChangeComment","hasParticipants","onlyOneParticipant","renderFullDetails","CardFooter","rows","order","offset","QuestionMultiple","handleComments","answerId","selectedOption","onChangeValue","accountType","multiple","renderHeader","handleFileUpload","indicator","str","QuestionNumeric","answerValue","max","QuestionSingle","CustomInput","checked","QuestionSingleReduced","employeeAnswer","ALLOWED_FILE_EXTENSIONS","ACCEPT_FILE_EXTENSIONS","extension","join","clearFile","selectFile","files","MAX_FILE_SIZE_MB","showToast","maxFileSize","fileExtension","getFileExtension","supportedExtensions","currentFile","updateProgresBar","progress","Math","round","loaded","total","upload","isUploading","onFileAdded","pop","aria-valuenow","aria-valuemin","aria-valuemax","renderProgressBar","accept","marginLeft","Question","newFile","questionEntity","setValue","setCommentValue","getAnswer","SetQuestionnaireAnswer","SetQuestionnaireNormScore","SetQuestionnaireComment","SliderType","SingleResponse","parameters","FULL_ACCOUNT_TYPE","allowUpload","renderFiles","renderQuestionType","Questionnaire","selectedYear","downloadPdfInfo","successGetQuestionnaireInfoPdfCallback","data2","saveQuestionnaire","allQuestionsAnswered","saveQuestionnaireOnlySuccess","saveAuditorFeedback","saveAuditorFeedbackSuccess","submitQuestionnaire","isOrganisation","isModalOpen","saveQuestionnaireSuccess","setQuestionnaireStatusSuccess","Statuses","Submitted","Critical","toggleModal","emailInvite","isOrganisationRole","loadedRoles","Information","notAnsweredQuestions","addSliderDefaultAnswers","questionsAnswerable","childrenQuestionsAnswerable","renderOrganisationAvailableYearsDropdown","renderPdfInfoButton","renderSubmitButton","BASIC_ACCOUNT_TYPE","resultActions","SidebarRoutes","browserHistory","ReactPlugin","instrumentationKey","extensions","extensionConfig","identifier"],"mappings":"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","file":"static/js/main.0fc42ee3.chunk.js","sourcesContent":["import { EUploadFileActionTypes, TUploadParameters, UploadFileActionTypes } from \"./uploadFile.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nexport const UploadFile = (\r\n params: TUploadParameters,\r\n file: File,\r\n onUploadProgress: (event: ProgressEvent) => void,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): UploadFileActionTypes => {\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n\r\n return {\r\n type: EUploadFileActionTypes.UPLOAD_FILE,\r\n payload: {\r\n request: {\r\n method: \"post\",\r\n showErrors: true,\r\n url: `Questionnaire/${params.organisationIdentity}/${params.year}/${params.questionId}/file`,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n custom: {\r\n onErrorToastMessage: \"app.messages.uploadFile.ERROR_UPLOAD_FILE\",\r\n onSuccessToastMessage: \"app.messages.uploadFile.FILE_UPLOADED\",\r\n },\r\n data: formData,\r\n onUploadProgress,\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport const DeleteFile = (\r\n organisationIdentity: string,\r\n questionId: number,\r\n year: number,\r\n fileId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): UploadFileActionTypes => ({\r\n type: EUploadFileActionTypes.DELETE_FILE,\r\n payload: {\r\n request: {\r\n method: \"delete\",\r\n showErrors: true,\r\n url: `Questionnaire/${organisationIdentity}/${year}/${questionId}/${fileId}/file`,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.uploadFile.ERROR_DELETE_FILE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const DownloadFile = (\r\n organisationIdentity: string,\r\n year: number,\r\n questionId: number,\r\n fileId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): UploadFileActionTypes => ({\r\n type: EUploadFileActionTypes.DOWNLOAD_FILE,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n responseType: \"blob\",\r\n showErrors: true,\r\n url: `Questionnaire/${organisationIdentity}/${year}/${questionId}/${fileId}/file`,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.uploadFile.ERROR_DOWNLOAD_FILE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) {\r\n onSuccess(response.data);\r\n }\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst custom: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi-test.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://wa-identityserver-test.azurewebsites.net\",\r\n ClientID: \"InnovationPlatformFysio-Dev\",\r\n },\r\n Cache: {\r\n Limit: 1,\r\n },\r\n ApplicationInsights: {\r\n Enabled: false,\r\n },\r\n};\r\n\r\nexport default custom;\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst dev: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://localhost:44391\",\r\n },\r\n Oidc: {\r\n Authority: \"https://wa-identityserver-test.azurewebsites.net\",\r\n ClientID: \"InnovationPlatformFysio-Dev\",\r\n },\r\n Cache: {\r\n Limit: 1,\r\n },\r\n ApplicationInsights: {\r\n Enabled: false,\r\n },\r\n};\r\n\r\nexport default dev;\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst local: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi-test.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://wa-identityserver-test.azurewebsites.net\",\r\n ClientID: \"InnovationPlatformFysio-Dev\",\r\n },\r\n Cache: {\r\n Limit: 1,\r\n },\r\n ApplicationInsights: {\r\n Enabled: false,\r\n },\r\n};\r\n\r\nexport default local;\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst production: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://identity.qualiview.nl\",\r\n ClientID: \"InnovationPlatformFysio\",\r\n },\r\n};\r\n\r\nexport default production;\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst staging: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi-staging.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://identity.qualiview.nl\",\r\n ClientID: \"InnovationPlatformFysio-Staging\",\r\n },\r\n ApplicationInsights: {\r\n Enabled: false,\r\n },\r\n};\r\n\r\nexport default staging;\r\n","import EnvironmentType from \"../types/environment.types\";\r\n\r\nconst test: EnvironmentType = {\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi-test.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://wa-identityserver-test.azurewebsites.net\",\r\n ClientID: \"InnovationPlatformFysio-Test\",\r\n },\r\n ApplicationInsights: {\r\n Enabled: false,\r\n },\r\n};\r\n\r\nexport default test;\r\n","import { DispatchProp } from \"react-redux\";\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\nimport { IReduxResponseAction } from \"../../core/types/core.types\";\r\nimport { InputType } from \"reactstrap/lib/Input\";\r\n\r\nexport enum EOrganisationActionTypes {\r\n GET_ORGANISATIONS = \"GET_ORGANISATIONS\",\r\n GET_ORGANISATIONS_SUCCESS = \"GET_ORGANISATIONS_SUCCESS\",\r\n GET_ORGANISATIONS_ERROR = \"GET_ORGANISATIONS_ERROR\",\r\n\r\n GET_ORGANISATION = \"GET_ORGANISATION\",\r\n GET_ORGANISATION_SUCCESS = \"GET_ORGANISATION_SUCCESS\",\r\n GET_ORGANISATION_ERROR = \"GET_ORGANISATION_ERROR\",\r\n\r\n GET_ACCOUNTTYPES = \"GET_ACCOUNTTYPES\",\r\n GET_ACCOUNTTYPES_SUCCESS = \"GET_ACCOUNTTYPES_SUCCESS\",\r\n GET_ACCOUNTTYPES_ERROR = \"GET_ACCOUNTTYPES_ERROR\",\r\n\r\n POST_ORGANISATION = \"POST_ORGANISATION\",\r\n POST_ORGANISATION_SUCCESS = \"POST_ORGANISATION_SUCCESS\",\r\n POST_ORGANISATION_ERROR = \"POST_ORGANISATION_ERROR\",\r\n\r\n PUT_ORGANISATION = \"PUT_ORGANISATION\",\r\n PUT_ORGANISATION_SUCCESS = \"PUT_ORGANISATION_SUCCESS\",\r\n PUT_ORGANISATION_ERROR = \"PUT_ORGANISATION_ERROR\",\r\n\r\n DELETE_ORGANISATION = \"DELETE_ORGANISATION\",\r\n DELETE_ORGANISATION_SUCCESS = \"DELETE_ORGANISATION_SUCCESS\",\r\n DELETE_ORGANISATION_ERROR = \"DELETE_ORGANISATION_ERROR\",\r\n\r\n GET_ORGANISATION_RESULTS = \"GET_ORGANISATION_RESULTS\",\r\n GET_ORGANISATION_RESULTS_SUCCESS = \"GET_ORGANISATION_RESULTS_SUCCESS\",\r\n GET_ORGANISATION_RESULTS_ERROR = \"GET_ORGANISATION_RESULTS_ERROR\",\r\n\r\n GET_AVAILABLE_ORGANISATION_YEARS = \"GET_AVAILABLE_ORGANISATION_YEARS\",\r\n GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS = \"GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS\",\r\n GET_AVAILABLE_ORGANISATION_YEARS_ERROR = \"GET_AVAILABLE_ORGANISATION_YEARS_ERROR\",\r\n}\r\n\r\ninterface IGetOrganisationsAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATIONS;\r\n}\r\ninterface IGetOrganisationsSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATIONS_SUCCESS;\r\n}\r\n\r\ninterface IGetOrganisationsErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATIONS_ERROR;\r\n}\r\n\r\ninterface IGetOrganisationAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION;\r\n}\r\n\r\ninterface IGetOrganisationSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION_SUCCESS;\r\n}\r\n\r\ninterface IGetOrganisationErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION_ERROR;\r\n}\r\n\r\ninterface IPostOrganisationAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.POST_ORGANISATION;\r\n}\r\n\r\ninterface IPostOrganisationSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.POST_ORGANISATION_SUCCESS;\r\n}\r\n\r\ninterface IPutOrganisationErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.PUT_ORGANISATION_ERROR;\r\n}\r\n\r\ninterface IPutOrganisationAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.PUT_ORGANISATION;\r\n}\r\n\r\ninterface IPutOrganisationSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.PUT_ORGANISATION_SUCCESS;\r\n}\r\n\r\ninterface IPostOrganisationErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.POST_ORGANISATION_ERROR;\r\n}\r\n\r\ninterface IDeleteOrganisationAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.DELETE_ORGANISATION;\r\n}\r\n\r\ninterface IDeleteOrganisationSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.DELETE_ORGANISATION_SUCCESS;\r\n}\r\n\r\ninterface IDeleteOrganisationErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.DELETE_ORGANISATION_ERROR;\r\n}\r\n\r\ninterface IGetAccountTypesAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.GET_ACCOUNTTYPES;\r\n}\r\n\r\ninterface IGetAccountTypesSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ACCOUNTTYPES_SUCCESS;\r\n}\r\n\r\ninterface IGetAccountTypesErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ACCOUNTTYPES_ERROR;\r\n}\r\n\r\ninterface IGetOrganisationResultAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION_RESULTS;\r\n}\r\ninterface IGetOrganisationResultSuccessAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION_RESULTS_SUCCESS;\r\n}\r\n\r\ninterface IGetOrganisationResultErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_ORGANISATION_RESULTS_ERROR;\r\n}\r\n\r\ninterface IGetAvailableOrganisationYearsAction extends IAxiosAction {\r\n type: typeof EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS;\r\n}\r\ninterface IGetAvailableOrganisationYearsSuccessAction extends IReduxResponseAction> {\r\n type: typeof EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS;\r\n}\r\n\r\ninterface IGetAvailableOrganisationYearsErrorAction extends IReduxResponseAction {\r\n type: typeof EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_ERROR;\r\n}\r\n\r\nexport interface IOrganisationState {\r\n organisations: IOrganisation[];\r\n errorMessages: Array;\r\n isLoadingOrganisations: boolean;\r\n isLoadingOrganisation: boolean;\r\n isLoadingAccountTypes: boolean;\r\n isLoadingAvailableYears: boolean;\r\n accountTypes: IAccountType[];\r\n availableYears: Array;\r\n}\r\n\r\nexport enum EResultsActionTypes {\r\n HAS_RESULTS = \"HAS_RESULTS\",\r\n}\r\ninterface IGetHasResultsAction extends IAxiosAction {\r\n type: typeof EResultsActionTypes.HAS_RESULTS;\r\n}\r\n\r\nexport type HasResultsActionTypes = IGetHasResultsAction;\r\n\r\nexport interface IOrganisationActions extends DispatchProp {\r\n GetOrganisations: (onSuccess?: Function, onError?: Function) => OrganisationActionTypes;\r\n GetOrganisation: (organisationId: string, onSuccess?: Function, onError?: Function) => OrganisationActionTypes;\r\n GetAccountTypes: (onSuccess?: Function, onError?: Function) => OrganisationActionTypes;\r\n CreateOrganisation: (\r\n organisation: IOrganisation,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => OrganisationActionTypes;\r\n DeleteOrganisation: (organisationId: string, onSuccess?: Function, onError?: Function) => OrganisationActionTypes;\r\n UpdateOrganisation: (\r\n organisationId: string | undefined,\r\n organisation: IOrganisation,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => OrganisationActionTypes;\r\n GetOrganisationResults: (onSuccess?: Function, onError?: Function) => OrganisationActionTypes;\r\n GetAvailableOrganisationYears: (\r\n organisationIdentity: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => OrganisationActionTypes;\r\n HasOrganisationResults: (organisationGuid: string, onSuccess?: Function, onError?: Function) => HasResultsActionTypes;\r\n}\r\n\r\nexport interface IOrganisation {\r\n name?: string;\r\n email?: string;\r\n agbcode?: string;\r\n postalCode?: string;\r\n fteamount?: number;\r\n legalFormName?: string;\r\n professionalAssociation?: string;\r\n city?: string;\r\n address?: string;\r\n practiceRegister?: string;\r\n networkName?: string;\r\n regionName?: string;\r\n accountTypeId?: number;\r\n contractedHealthInsurers?: string;\r\n accountTypeName?: string;\r\n identity?: string;\r\n totalOrganisationResults: number;\r\n}\r\n\r\nexport interface IAccountType {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface IFormEntryOrganisation {\r\n labelKey: string;\r\n name: string;\r\n required: boolean;\r\n readonly: boolean;\r\n value?: string | number;\r\n inputType: InputType;\r\n}\r\n\r\nexport type OrganisationActionTypes =\r\n | IGetOrganisationsAction\r\n | IGetOrganisationAction\r\n | IGetAccountTypesAction\r\n | IPostOrganisationAction\r\n | IPutOrganisationAction\r\n | IDeleteOrganisationAction\r\n | IGetOrganisationResultAction\r\n | IGetAvailableOrganisationYearsAction;\r\n\r\nexport type OrganisationActionResponseTypes =\r\n | IGetOrganisationsSuccessAction\r\n | IGetOrganisationsErrorAction\r\n | IGetOrganisationSuccessAction\r\n | IGetOrganisationErrorAction\r\n | IGetAccountTypesSuccessAction\r\n | IGetAccountTypesErrorAction\r\n | IPostOrganisationSuccessAction\r\n | IPostOrganisationErrorAction\r\n | IDeleteOrganisationSuccessAction\r\n | IDeleteOrganisationErrorAction\r\n | IPutOrganisationSuccessAction\r\n | IPutOrganisationErrorAction\r\n | IGetOrganisationResultSuccessAction\r\n | IGetOrganisationResultErrorAction\r\n | IGetAvailableOrganisationYearsErrorAction\r\n | IGetAvailableOrganisationYearsSuccessAction;\r\n","import { User } from \"oidc-client\";\r\nimport _some from \"lodash/some\";\r\nimport appInsights from \"../services/appinsights.service\";\r\nimport jwt_decode from \"jwt-decode\";\r\nimport { publicRoutes } from \"../../routes\";\r\nimport sidebarRoutes from \"../../routes/router.routes\";\r\nimport userManager from \"../services/usermanager.service\";\r\n\r\nexport default class UserService {\r\n private static customAuthenticationTokenName = \"customAuthenticationToken\";\r\n\r\n static hasAccessKey = (currentPath: string): string | null => {\r\n const query = new URLSearchParams(currentPath);\r\n return query.get(\"accessKey\");\r\n };\r\n\r\n static clearCustomAuthenticationToken = (): void => {\r\n sessionStorage.removeItem(UserService.customAuthenticationTokenName);\r\n };\r\n\r\n static getCustomAuthenticationToken = (): string | null => {\r\n return sessionStorage.getItem(UserService.customAuthenticationTokenName);\r\n };\r\n\r\n static saveCustomAuthenticationToken = (token: string): void => {\r\n sessionStorage.setItem(UserService.customAuthenticationTokenName, token);\r\n };\r\n\r\n static isAuthenticatedThroughACustomToken = (): boolean => {\r\n return UserService.getCustomAuthenticationToken() !== null;\r\n };\r\n\r\n static getCustomAccessKey = (): string | null => {\r\n const token = UserService.getCustomAuthenticationToken();\r\n if (token !== null) {\r\n const decodedToken = UserService.decodeCustomAuthenticationToken(token);\r\n return decodedToken.sub;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n static isAutenticated = async (user?: User): Promise => {\r\n const customAuthenticationToken = UserService.getCustomAuthenticationToken();\r\n if (customAuthenticationToken !== null) {\r\n const decodedToken = UserService.decodeCustomAuthenticationToken(customAuthenticationToken);\r\n return Date.now() <= decodedToken.exp * 1000;\r\n }\r\n\r\n if (!user) {\r\n const fetchedUser = await userManager.getUser();\r\n if (fetchedUser) {\r\n user = fetchedUser;\r\n }\r\n }\r\n\r\n return user !== undefined && user?.access_token !== undefined && !user?.expired;\r\n };\r\n\r\n static isAutenticatedAndAllowed = async (currentPath: string, user?: User): Promise => {\r\n const isAuthenticated = UserService.isAutenticated(user);\r\n const hasApplicationAccess = UserService.hasAccessToApplication(user);\r\n const roles = await UserService.getUserRoles(user);\r\n\r\n const isRouteAllowed =\r\n publicRoutes.map((r) => r.path).includes(currentPath) ||\r\n sidebarRoutes\r\n .filter(\r\n (x) =>\r\n _some(x.allowedRoles, roles) &&\r\n ((x.redirect === undefined && x.navlabel === undefined) || (x.navlabel === false && x.path !== \"\"))\r\n )\r\n .map((r) => r.path)\r\n .includes(currentPath);\r\n return isAuthenticated && isRouteAllowed && hasApplicationAccess;\r\n };\r\n\r\n static isStateUserAuthenticated = (user: User): boolean => {\r\n return user !== null && user?.access_token !== null && !user.expired;\r\n };\r\n\r\n static hasAccessToApplication = async (user?: User): Promise => {\r\n if (!user) {\r\n const fetchedUser = await userManager.getUser();\r\n if (fetchedUser) {\r\n user = fetchedUser;\r\n }\r\n }\r\n let isAllowed = false;\r\n if (user) {\r\n const roles = await UserService.getUserRoles(user);\r\n isAllowed = UserService.hasApplicationAllowedRoles(roles);\r\n }\r\n return isAllowed;\r\n };\r\n\r\n static hasApplicationAllowedRoles = (userRoles: string[]): boolean => {\r\n let allowed = false;\r\n const allowedRoles = process.env.REACT_APP_ALLOWED_ROLES?.split(\",\");\r\n if (userRoles) {\r\n //multiple roles\r\n for (let i = 0; i < userRoles.length; i++) {\r\n if (allowedRoles?.includes(userRoles[i])) allowed = true;\r\n }\r\n }\r\n return allowed;\r\n };\r\n\r\n static getUserRoles = async (user?: User): Promise => {\r\n if (UserService.getCustomAuthenticationToken() !== null) {\r\n const userRoles = UserService.getUserRolesThroughCustomToken();\r\n return userRoles;\r\n }\r\n\r\n if (!user) {\r\n const fetchedUser = await userManager.getUser();\r\n if (fetchedUser) {\r\n user = fetchedUser;\r\n }\r\n }\r\n if (user !== undefined) {\r\n const jwtData = user.access_token.split(\".\")[1];\r\n const decodedJwtJsonData = window.atob(jwtData);\r\n const decodedJwtData = JSON.parse(decodedJwtJsonData);\r\n const multipleRoles = Array.isArray(decodedJwtData.role);\r\n if (multipleRoles) {\r\n return [...decodedJwtData.role];\r\n } else {\r\n return [decodedJwtData.role];\r\n }\r\n }\r\n return [];\r\n };\r\n\r\n static getAccessTokenAsync = async (): Promise => {\r\n const user = await userManager.getUser();\r\n let accessToken = null;\r\n if (user != null) {\r\n accessToken = user.access_token;\r\n }\r\n return accessToken;\r\n };\r\n\r\n static clearSessionAndForceLogin = async (): Promise => {\r\n UserService.clearCustomAuthenticationToken();\r\n if (appInsights.context) {\r\n appInsights.clearAuthenticatedUserContext();\r\n }\r\n const um = userManager;\r\n um.clearStaleState();\r\n um.signoutRedirect();\r\n };\r\n\r\n static decodeCustomAuthenticationToken = (customToken: string): any => {\r\n const decoded: any = jwt_decode(customToken);\r\n return decoded;\r\n };\r\n\r\n static getUserRolesThroughCustomToken = (): string[] => {\r\n const customToken = UserService.getCustomAuthenticationToken();\r\n\r\n if (customToken !== null) {\r\n const decoded: any = UserService.decodeCustomAuthenticationToken(customToken);\r\n return [decoded.role];\r\n }\r\n\r\n return [];\r\n };\r\n\r\n static async getUserAllowedRoutePaths(): Promise {\r\n const routes = [...publicRoutes, ...sidebarRoutes];\r\n let filteredRoutes: string[] = [];\r\n\r\n const userRoles = await UserService.getUserRoles();\r\n\r\n filteredRoutes = routes\r\n .filter(\r\n (r) =>\r\n r.allowedRoles === undefined ||\r\n _some(r.allowedRoles, function (role) {\r\n return userRoles.includes(role);\r\n })\r\n )\r\n .map((r) => r.path);\r\n return filteredRoutes;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static getUserClaims = async (user?: User): Promise => {\r\n if (!user) {\r\n const fetchedUser = await userManager.getUser();\r\n if (fetchedUser) {\r\n user = fetchedUser;\r\n }\r\n }\r\n if (user !== undefined) {\r\n const jwtData = user.id_token.split(\".\")[1];\r\n const decodedJwtJsonData = window.atob(jwtData);\r\n const decodedJwtData = JSON.parse(decodedJwtJsonData);\r\n return decodedJwtData;\r\n }\r\n return null;\r\n };\r\n\r\n static async getEntityPermissions(claimType: string): Promise {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const claims = await UserService.getUserClaims();\r\n\r\n if (claims !== undefined) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const allowedEntities = Object.fromEntries(\r\n Object.entries(claims).filter(([key, value]) => key === claimType)\r\n );\r\n\r\n const result = allowedEntities[claimType];\r\n\r\n if (result !== undefined) {\r\n const permissions = Array.isArray(result) ? result : [result];\r\n return permissions;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n static async isInRole(targetRole: string): Promise {\r\n const roles = await UserService.getUserRoles();\r\n return roles.includes(targetRole);\r\n }\r\n}\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","import * as uploadFileActions from \"../redux/uploadFile/uploadFile.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { IUploadFileActionTypes, TFileInfo } from \"../redux/uploadFile/uploadFile.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { ReduxState } from \"../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\ntype TAvailableFilesOwnProps = {\r\n filesInfo: TFileInfo[];\r\n organisationIdentity: string;\r\n year: number;\r\n questionId: number;\r\n onDeleteFile: Function;\r\n disableDelete: boolean;\r\n isAuditorRole: boolean;\r\n};\r\n\r\ntype TUploadFileState = {\r\n deletingFileIds: string[];\r\n downloadingFileIds: string[];\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TUploadFileProps = ReturnType &\r\n RouteComponentProps &\r\n WithTranslation &\r\n TAvailableFilesOwnProps;\r\n\r\nclass AvailableFiles extends Component {\r\n constructor(props: TUploadFileProps) {\r\n super(props);\r\n\r\n this.state = {\r\n deletingFileIds: [],\r\n downloadingFileIds: [],\r\n };\r\n }\r\n\r\n tryDeleteFile = (file: TFileInfo): void => {\r\n const { t } = this.props;\r\n const answer = global.window.confirm(t(\"uploadFile.CONFIRM_DELETE_FILE\", { filename: file.name }));\r\n if (answer === false) {\r\n return;\r\n }\r\n\r\n this.deleteFile(file.id);\r\n };\r\n\r\n onDownload = (file: TFileInfo): void => {\r\n const { downloadingFileIds } = this.state;\r\n this.setState({ downloadingFileIds: [...downloadingFileIds, file.id] });\r\n\r\n const { organisationIdentity, year, questionId } = this.props;\r\n this.props.uploadActions.DownloadFile(organisationIdentity, year, questionId, file.id, (data: Blob): void => {\r\n const blobUrl = window.URL.createObjectURL(data);\r\n const downloadLink = document.createElement(\"a\");\r\n downloadLink.href = blobUrl;\r\n downloadLink.download = file.name;\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(blobUrl);\r\n\r\n this.setState({ downloadingFileIds: this.state.downloadingFileIds.filter((id) => id !== file.id) });\r\n });\r\n };\r\n\r\n isFileProcessing = (fileId: string): boolean => {\r\n if (this.state.deletingFileIds.includes(fileId)) {\r\n return true;\r\n }\r\n\r\n return this.state.downloadingFileIds.includes(fileId);\r\n };\r\n\r\n render(): JSX.Element {\r\n const { filesInfo: fileInfos } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
    \r\n {!fileInfos ||\r\n (fileInfos.length === 0 && (\r\n

    \r\n \r\n

    \r\n ))}\r\n {fileInfos &&\r\n fileInfos.map((file: TFileInfo) => (\r\n
  • \r\n
    \r\n \r\n {file.name}\r\n
    \r\n\r\n
    \r\n
    \r\n
  • \r\n ))}\r\n
\r\n
\r\n );\r\n }\r\n\r\n removeFromDeletingIds = (fileId: string): void => {\r\n this.setState({ deletingFileIds: this.state.deletingFileIds.filter((id) => id !== fileId) });\r\n };\r\n\r\n deleteFile(fileId: string): void {\r\n const { deletingFileIds } = this.state;\r\n this.setState({ deletingFileIds: [...deletingFileIds, fileId] });\r\n\r\n const { organisationIdentity, year, questionId } = this.props;\r\n this.props.uploadActions.DeleteFile(\r\n organisationIdentity,\r\n questionId,\r\n year,\r\n fileId,\r\n () => {\r\n this.removeFromDeletingIds(fileId);\r\n this.props.onDeleteFile(fileId);\r\n },\r\n () => {\r\n this.removeFromDeletingIds(fileId);\r\n }\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n uploadActions: bindActionCreators(uploadFileActions, dispatch) as IUploadFileActionTypes,\r\n dispatch,\r\n});\r\n\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect<{}, TMapDispatchToProps, {}, ReduxState>(null, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(AvailableFiles) as React.ComponentType;\r\n","import { IReduxResponseAction, onFunction } from \"../../core/types/core.types\";\r\n\r\nimport { DispatchProp } from \"react-redux\";\r\nimport EToastTypes from \"../../core/enums/toastTypes.enum\";\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\nimport { TBannerTypes } from \"../../core/types/layout.types\";\r\n\r\nexport enum EAppActionTypes {\r\n GET_API_SETTINGS = \"GET_API_SETTINGS\",\r\n GET_API_SETTINGS_SUCCESS = \"GET_API_SETTINGS_SUCCESS\",\r\n GET_API_SETTINGS_ERROR = \"GET_API_SETTINGS_ERROR\",\r\n GET_BANNER_INFO = \"GET_BANNER_INFO\",\r\n GET_BANNER_INFO_SUCCESS = \"GET_BANNER_INFO_SUCCESS\",\r\n ADD_APPLICATION_ERROR_MESSAGE = \"ADD_APPLICATION_ERROR_MESSAGE\",\r\n CLEAR_APPLICATION_ERROR_MESSAGES = \"CLEAR_APPLICATION_ERROR_MESSAGES\",\r\n SHOW_TOAST_MESSAGE = \"SHOW_TOAST_MESSAGE\",\r\n\r\n RETRIEVE_CUSTOM_TOKEN = \"RETRIEVE_CUSTOM_TOKEN\",\r\n RETRIEVE_CUSTOM_TOKEN_SUCCESS = \"RETRIEVE_CUSTOM_TOKEN_SUCCESS\",\r\n RETRIEVE_CUSTOM_TOKEN_ERROR = \"RETRIEVE_CUSTOM_TOKEN_ERROR\",\r\n}\r\n\r\ninterface IGetApiSettingsAction extends IAxiosAction {\r\n type: typeof EAppActionTypes.GET_API_SETTINGS;\r\n}\r\n\r\ninterface IGetApiSettingsSuccessAction extends IReduxResponseAction {\r\n type: typeof EAppActionTypes.GET_API_SETTINGS_SUCCESS;\r\n}\r\n\r\ninterface IGetApiSettingsErrorAction extends IReduxResponseAction {\r\n type: typeof EAppActionTypes.GET_API_SETTINGS_ERROR;\r\n}\r\n\r\ninterface IGetBannerInfoAction extends IAxiosAction {\r\n type: typeof EAppActionTypes.GET_BANNER_INFO;\r\n}\r\n\r\nexport interface IGetBannerInfoSuccessAction extends IReduxResponseAction {\r\n type: typeof EAppActionTypes.GET_BANNER_INFO_SUCCESS;\r\n}\r\n\r\nexport interface IRetrieveCustomTokenAction extends IAxiosAction {\r\n type: typeof EAppActionTypes.RETRIEVE_CUSTOM_TOKEN;\r\n}\r\n\r\nexport interface IRetrieveCustomTokenSuccessAction extends IReduxResponseAction {\r\n type: typeof EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_SUCCESS;\r\n}\r\n\r\nexport interface IRetrieveCustomTokenErrorAction extends IReduxResponseAction {\r\n type: typeof EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_ERROR;\r\n}\r\n\r\nexport interface IAppState {\r\n api: IApiSettings;\r\n errorMessages: Array;\r\n bannerInformation?: IBannerDataReceiver;\r\n token: string;\r\n}\r\n\r\nexport interface IAppActions extends DispatchProp {\r\n GetApiSettings: (onSuccess?: onFunction, onError?: onFunction) => AppActionTypes;\r\n GetBannerInfo: () => AppActionTypes;\r\n\r\n RetrieveCustomToken: (accessKey: string, onSuccess: onFunction, onError: onFunction) => AppActionTypes;\r\n}\r\n\r\nexport interface IApiSettings {\r\n version: string;\r\n}\r\n\r\nexport interface IApiSettingsReceiver {\r\n versionString: string;\r\n}\r\nexport interface IBannerDataReceiver {\r\n message: string;\r\n type: TBannerTypes;\r\n}\r\n\r\nexport interface IPushToastMessageAction {\r\n type: typeof EAppActionTypes.SHOW_TOAST_MESSAGE;\r\n toastType: EToastTypes;\r\n i18KeyTitle: string;\r\n i18KeyMessage: string;\r\n i18KeyMessageValues?: object;\r\n innerMessage: string;\r\n}\r\n\r\nexport interface IAddAppErrorMessageAction {\r\n type: typeof EAppActionTypes.ADD_APPLICATION_ERROR_MESSAGE;\r\n i18KeyMessage: string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error?: any;\r\n}\r\n\r\nexport interface IClearAppErrorMessagesAction {\r\n type: typeof EAppActionTypes.CLEAR_APPLICATION_ERROR_MESSAGES;\r\n}\r\n\r\nexport type AppActionTypes =\r\n | IGetApiSettingsAction\r\n | IPushToastMessageAction\r\n | IAddAppErrorMessageAction\r\n | IClearAppErrorMessagesAction\r\n | IGetBannerInfoAction\r\n | IRetrieveCustomTokenAction;\r\n\r\nexport type AppActionResponseTypes =\r\n | IGetApiSettingsSuccessAction\r\n | IGetApiSettingsErrorAction\r\n | IGetBannerInfoSuccessAction\r\n | IRetrieveCustomTokenErrorAction\r\n | IRetrieveCustomTokenSuccessAction;\r\n","import { DispatchProp } from \"react-redux\";\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\nimport { IReduxResponseAction } from \"../../core/types/core.types\";\r\nimport { InputType } from \"reactstrap/lib/Input\";\r\n\r\nexport enum EAuditorActionTypes {\r\n GET_AUDITORS = \"GET_AUDITORS\",\r\n GET_AUDITORS_SUCCESS = \"GET_AUDITORS_SUCCESS\",\r\n GET_AUDITORS_ERROR = \"GET_AUDITORS_ERROR\",\r\n\r\n GET_AUDITOR = \"GET_AUDITOR\",\r\n GET_AUDITOR_SUCCESS = \"GET_AUDITOR_SUCCESS\",\r\n GET_AUDITOR_ERROR = \"GET_AUDITOR_ERROR\",\r\n\r\n POST_AUDITOR = \"POST_AUDITOR\",\r\n POST_AUDITOR_SUCCESS = \"POST_AUDITOR_SUCCESS\",\r\n POST_AUDITOR_ERROR = \"POST_AUDITOR_ERROR\",\r\n\r\n PUT_AUDITOR = \"PUT_AUDITOR\",\r\n PUT_AUDITOR_SUCCESS = \"PUT_AUDITOR_SUCCESS\",\r\n PUT_AUDITOR_ERROR = \"PUT_AUDITOR_ERROR\",\r\n\r\n DELETE_AUDITOR = \"DELETE_AUDITOR\",\r\n DELETE_AUDITOR_SUCCESS = \"DELETE_AUDITOR_SUCCESS\",\r\n DELETE_AUDITOR_ERROR = \"DELETE_AUDITOR_ERROR\",\r\n}\r\n\r\ninterface IGetAuditorsAction extends IAxiosAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITORS;\r\n}\r\ninterface IGetAuditorsSuccessAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITORS_SUCCESS;\r\n}\r\n\r\ninterface IGetAuditorsErrorAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITORS_ERROR;\r\n}\r\n\r\ninterface IGetAuditorAction extends IAxiosAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITOR;\r\n}\r\n\r\ninterface IGetAuditorSuccessAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITOR_SUCCESS;\r\n}\r\n\r\ninterface IGetAuditorErrorAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.GET_AUDITOR_ERROR;\r\n}\r\n\r\ninterface IPostAuditorAction extends IAxiosAction {\r\n type: typeof EAuditorActionTypes.POST_AUDITOR;\r\n}\r\n\r\ninterface IPostAuditorSuccessAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.POST_AUDITOR_SUCCESS;\r\n}\r\n\r\ninterface IPutAuditorErrorAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.PUT_AUDITOR_ERROR;\r\n}\r\n\r\ninterface IPutAuditorAction extends IAxiosAction {\r\n type: typeof EAuditorActionTypes.PUT_AUDITOR;\r\n}\r\n\r\ninterface IPutAuditorSuccessAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.PUT_AUDITOR_SUCCESS;\r\n}\r\n\r\ninterface IPostAuditorErrorAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.POST_AUDITOR_ERROR;\r\n}\r\n\r\ninterface IDeleteAuditorAction extends IAxiosAction {\r\n type: typeof EAuditorActionTypes.DELETE_AUDITOR;\r\n}\r\n\r\ninterface IDeleteAuditorsuccessAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.DELETE_AUDITOR_SUCCESS;\r\n}\r\n\r\ninterface IDeleteAuditorErrorAction extends IReduxResponseAction {\r\n type: typeof EAuditorActionTypes.DELETE_AUDITOR_ERROR;\r\n}\r\n\r\nexport interface IAuditorState {\r\n auditors: IAuditor[];\r\n errorMessages: Array;\r\n isLoadingAuditors: boolean;\r\n isLoadingAuditor: boolean;\r\n}\r\n\r\nexport interface IAuditorActions extends DispatchProp {\r\n GetAuditors: (onSuccess?: Function, onError?: Function) => AuditorActionTypes;\r\n GetAuditor: (auditorId: string, onSuccess?: Function, onError?: Function) => AuditorActionTypes;\r\n CreateAuditor: (auditor: IAuditor, onSuccess?: Function, onError?: Function) => AuditorActionTypes;\r\n DeleteAuditor: (auditorId: string, onSuccess?: Function, onError?: Function) => AuditorActionTypes;\r\n UpdateAuditor: (\r\n auditorId: string | undefined,\r\n auditor: IAuditor,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => AuditorActionTypes;\r\n}\r\n\r\nexport interface IAuditor {\r\n email?: string;\r\n id?: string;\r\n}\r\nexport interface IFormEntryAuditor {\r\n labelKey: string;\r\n name: string;\r\n required: boolean;\r\n readonly: boolean;\r\n value?: string | number;\r\n inputType: InputType;\r\n}\r\n\r\nexport type AuditorActionTypes =\r\n | IGetAuditorsAction\r\n | IGetAuditorAction\r\n | IPostAuditorAction\r\n | IPutAuditorAction\r\n | IDeleteAuditorAction;\r\n\r\nexport type AuditorActionResponseTypes =\r\n | IGetAuditorsSuccessAction\r\n | IGetAuditorsErrorAction\r\n | IGetAuditorSuccessAction\r\n | IGetAuditorErrorAction\r\n | IPostAuditorSuccessAction\r\n | IPostAuditorErrorAction\r\n | IDeleteAuditorsuccessAction\r\n | IDeleteAuditorErrorAction\r\n | IPutAuditorSuccessAction\r\n | IPutAuditorErrorAction;\r\n","var map = {\n\t\"./environment.custom\": 142,\n\t\"./environment.custom.ts\": 142,\n\t\"./environment.dev\": 143,\n\t\"./environment.dev.ts\": 143,\n\t\"./environment.local\": 144,\n\t\"./environment.local.ts\": 144,\n\t\"./environment.production\": 145,\n\t\"./environment.production.ts\": 145,\n\t\"./environment.staging\": 146,\n\t\"./environment.staging.ts\": 146,\n\t\"./environment.test\": 147,\n\t\"./environment.test.ts\": 147,\n\t\"./environment.ts\": 37\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 276;","import \"semantic-ui-loader/loader.min.css\";\r\n\r\nimport React, { FunctionComponent } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { TSemanticUILoader } from \"../core/types/layout.types\";\r\n\r\ntype TLoaderProps = TSemanticUILoader & WithTranslation;\r\n\r\nconst Loader: FunctionComponent = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n
\r\n );\r\n};\r\n\r\nexport default withTranslation()(Loader);\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport { AppActionResponseTypes, AppActionTypes, EAppActionTypes, IAddAppErrorMessageAction } from \"./app.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nimport { onFunction } from \"../../core/types/core.types\";\r\n\r\nexport const GetApiSettings = (onSuccess?: onFunction, onError?: onFunction): AppActionTypes => ({\r\n type: EAppActionTypes.GET_API_SETTINGS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/api/settings\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.ERROR_GET_API_SETTINGS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAppActionTypes.GET_API_SETTINGS_SUCCESS,\r\n payload: response.data,\r\n } as AppActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({ type: EAppActionTypes.GET_API_SETTINGS_ERROR, payload: error.response } as AppActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetBannerInfo = (onSuccess?: onFunction, onError?: onFunction): AppActionTypes => ({\r\n type: EAppActionTypes.GET_BANNER_INFO,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/Api/Banner\",\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAppActionTypes.GET_BANNER_INFO_SUCCESS,\r\n payload: response.data,\r\n } as AppActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({ type: EAppActionTypes.GET_API_SETTINGS_ERROR, payload: error.response } as AppActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const RetrieveCustomToken = (\r\n accessKey: string,\r\n onSuccess?: onFunction,\r\n onError?: onFunction\r\n): AppActionTypes => ({\r\n type: EAppActionTypes.RETRIEVE_CUSTOM_TOKEN,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/authentication/employeeToken\",\r\n method: \"post\",\r\n data: '\"' + accessKey.toString() + '\"',\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess)\r\n onSuccess(response.data !== null && response.data.accessToken !== null ? response.data.accessToken : null);\r\n dispatch({\r\n type: EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_SUCCESS,\r\n payload: response.data,\r\n } as AppActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_ERROR,\r\n payload: error.response,\r\n } as AppActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n","import EnvironmentType from \"../types/environment.types\";\r\nimport get from \"lodash/get\";\r\n\r\nconst stage = process.env.REACT_APP_STAGE;\r\nconst environmentConfig: EnvironmentType = require(`./environment.${stage}`).default;\r\n\r\n// Add common/default config values here\r\n// CommonVariable: \"Can you imagine?\",\r\nconst commonConfig: EnvironmentType = {\r\n Cache: {\r\n Limit: 15,\r\n },\r\n Backend: {\r\n ApiUrl: \"https://wa-innovatieplatformfysioapi.azurewebsites.net\",\r\n },\r\n Oidc: {\r\n Authority: \"https://identity.qualiview.nl\",\r\n ClientID: \"InnovationPlatformFysio\",\r\n },\r\n ApplicationInsights: {\r\n Enabled: true,\r\n ApplicationInsightsKey: process.env.REACT_APP_APPINSIGHTS_KEY,\r\n },\r\n Application: {\r\n DefaultLanguageFallback: \"nl\",\r\n },\r\n};\r\n\r\nconst config: EnvironmentType = {\r\n ...commonConfig,\r\n ...environmentConfig,\r\n};\r\n\r\nexport default config;\r\n\r\nexport const GET_API_URL = (): string | undefined => {\r\n return config.Backend?.ApiUrl;\r\n};\r\n\r\nexport const GET_CACHE_LIMIT = (): number | undefined => {\r\n return config.Cache?.Limit;\r\n};\r\n\r\nexport const GET_SETTING = (path: string): string | undefined => {\r\n const setting = get(config, path);\r\n return setting;\r\n};\r\n","module.exports = \"data:image/png;base64,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\"","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\nimport appInsightsConfiguration from \"../configuration/appinsights.configuration\";\r\n\r\nconst appInsights = new ApplicationInsights(appInsightsConfiguration);\r\n\r\nexport default appInsights;\r\n","import { createUserManager } from \"redux-oidc\";\r\nimport userManagerConfig from \"../configuration/usermanager.configuration\";\r\n\r\nconst userManager = createUserManager(userManagerConfig);\r\n\r\nexport default userManager;\r\n","/* eslint-disable */\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { \"Service-Worker\": \"script\" },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\"No internet connection found. App is running in offline mode.\");\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport { AxiosError, AxiosResponse } from \"axios\";\r\nimport {\r\n IAxiosExtendedError,\r\n IAxiosExtendedRequestConfig,\r\n IAxiosExtendedResponse,\r\n IAxiosMiddlewareBase,\r\n} from \"../../core/types/axios.types\";\r\n\r\nimport { EAppActionTypes } from \"../app/app.types\";\r\nimport EToastTypes from \"../../core/enums/toastTypes.enum\";\r\nimport UserService from \"../../core/services/user.service\";\r\n\r\nfunction onSuccess(response: IAxiosExtendedResponse, dispatch: Function): void {\r\n const {\r\n config: { custom },\r\n } = response;\r\n\r\n if (custom && custom.onSuccessToastMessage) {\r\n dispatch({\r\n type: EAppActionTypes.SHOW_TOAST_MESSAGE,\r\n toastType: EToastTypes.SUCCESS,\r\n i18KeyTitle: \"common.SUCCESS\",\r\n i18KeyMessage: custom.onSuccessToastMessage,\r\n });\r\n }\r\n}\r\n\r\nfunction onError(error: IAxiosExtendedError, dispatch: Function): void {\r\n if (!error.response) {\r\n // Show a generic error Toast (e.g. Server error, please retry)\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n dispatchGenericError(error, dispatch);\r\n return;\r\n }\r\n\r\n const {\r\n config,\r\n response,\r\n response: { status },\r\n } = error;\r\n\r\n const { custom } = error.config;\r\n\r\n if (status === 401) {\r\n // Refresh token\r\n }\r\n\r\n if (config.showErrors) {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n dispatchGenericError(error, dispatch);\r\n }\r\n\r\n if (custom && custom.onErrorToastMessage) {\r\n dispatch({\r\n type: EAppActionTypes.SHOW_TOAST_MESSAGE,\r\n toastType: EToastTypes.ERROR,\r\n i18KeyTitle: \"common.ERROR\",\r\n i18KeyMessage: custom.onErrorToastMessage,\r\n });\r\n }\r\n}\r\n\r\nfunction dispatchGenericError(error: IAxiosExtendedError, dispatch: Function): void {\r\n const { config, response } = error;\r\n\r\n let message = `Error Response Code [${response?.status}] - [${error.message}] | Type: ${\r\n config?.reduxSourceAction?.type || \"GENERIC\"\r\n }`;\r\n\r\n if (error.response?.data.errors) {\r\n message = `Error Response Code [${response?.status}] - [${\r\n error.message\r\n }] - [${error.response.data.errors.toString()}] | Type: ${config?.reduxSourceAction?.type || \"GENERIC\"}`;\r\n }\r\n\r\n if (process.env.REACT_APP_IS_INTERNAL_APP === \"true\") {\r\n // eslint-disable-next-line no-console\r\n console.group(`[${new Date().toLocaleString()}] - Request Error Log For Qualizorg`);\r\n // eslint-disable-next-line no-console\r\n console.log(`%c ${message}`, \"background: black; color: red\");\r\n // eslint-disable-next-line no-console\r\n console.log(`%c Requested URL ${error.config.url}`, \"background: black; color: red\");\r\n if (error.config.data) {\r\n const bodyMessage = `Body Sent ${error.config.data} to URL ${error.config.url}`;\r\n // eslint-disable-next-line no-console\r\n console.log(`%c ${bodyMessage}`, \"background: black; color: red\");\r\n }\r\n // eslint-disable-next-line no-console\r\n console.groupEnd();\r\n }\r\n\r\n dispatch({\r\n type: EAppActionTypes.SHOW_TOAST_MESSAGE,\r\n toastType: EToastTypes.ERROR,\r\n i18KeyTitle: \"app.messages.FETCH_ERROR\",\r\n innerMessage: message,\r\n });\r\n}\r\n\r\nconst middlewareConfig = {\r\n interceptors: {\r\n request: [\r\n {\r\n success: async function (\r\n { getState, dispatch, getSourceAction }: IAxiosMiddlewareBase,\r\n req: IAxiosExtendedRequestConfig\r\n ): Promise {\r\n req.headers[\"Content-Type\"] = \"application/json\";\r\n\r\n const customAccessToken = UserService.getCustomAuthenticationToken();\r\n let accessToken: string | null;\r\n\r\n if (customAccessToken !== null) {\r\n accessToken = customAccessToken;\r\n } else {\r\n accessToken = await UserService.getAccessTokenAsync();\r\n }\r\n\r\n if (accessToken != null) {\r\n req.headers[\"Authorization\"] = `Bearer ${accessToken}`;\r\n }\r\n return req;\r\n },\r\n error: function (\r\n { getState, dispatch, getSourceAction }: IAxiosMiddlewareBase,\r\n error: IAxiosExtendedRequestConfig\r\n ): IAxiosExtendedRequestConfig {\r\n //...\r\n return error;\r\n },\r\n },\r\n ],\r\n response: [\r\n {\r\n success: function (\r\n { getState, dispatch, getSourceAction }: IAxiosMiddlewareBase,\r\n res: IAxiosExtendedResponse\r\n ): Promise {\r\n onSuccess(res, dispatch);\r\n return Promise.resolve(res);\r\n },\r\n error: function (\r\n { getState, dispatch, getSourceAction }: IAxiosMiddlewareBase,\r\n error: IAxiosExtendedError\r\n ): Promise {\r\n onError(error, dispatch);\r\n return Promise.reject(error);\r\n },\r\n },\r\n ],\r\n },\r\n};\r\n\r\nexport default middlewareConfig;\r\n","import { GET_API_URL, GET_CACHE_LIMIT } from \"../../core/environment/environment\";\r\nimport { ISetupCache, setupCache } from \"axios-cache-adapter\";\r\nimport axios, { AxiosInstance, AxiosRequestConfig } from \"axios\";\r\n\r\nimport axiosMiddleware from \"redux-axios-middleware\";\r\nimport middlewareConfig from \"./redux.axios.middleware\";\r\nimport thunk from \"redux-thunk\";\r\n\r\nconst cacheLimit: number | undefined = GET_CACHE_LIMIT();\r\n\r\nconst cache: ISetupCache = setupCache({\r\n maxAge: (cacheLimit || 15) * 60 * 1000,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n invalidate: async (config: any, request: AxiosRequestConfig) => {\r\n const method = request.method?.toLowerCase();\r\n if (method !== \"get\") {\r\n await config?.store?.clear();\r\n }\r\n },\r\n});\r\n\r\nconst apiClient: AxiosInstance = axios.create({\r\n baseURL: GET_API_URL(),\r\n responseType: \"json\",\r\n adapter: cache.adapter,\r\n});\r\n\r\nexport default [thunk, axiosMiddleware(apiClient, middlewareConfig)];\r\n","import { AppActionResponseTypes, AppActionTypes, EAppActionTypes, IAppState } from \"./app.types\";\r\n\r\nimport EToastPositions from \"../../core/enums/toastPositions.enum\";\r\nimport { GenerateMessage } from \"../../components/message.component\";\r\nimport { SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport appInsights from \"../../core/services/appinsights.service\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nconst initialState: IAppState = {\r\n api: {\r\n version: \"0.0.0.0\",\r\n },\r\n token: \"\",\r\n errorMessages: [],\r\n /*bannerInformation: {\r\n message: \"Hello I'm a Redux Banner!\",\r\n type: \"success\",\r\n },*/\r\n};\r\n\r\nconst AppReducer = (state = initialState, action: AppActionTypes | AppActionResponseTypes): IAppState => {\r\n switch (action.type) {\r\n case EAppActionTypes.RETRIEVE_CUSTOM_TOKEN:\r\n return {\r\n ...state,\r\n };\r\n case EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_SUCCESS:\r\n return {\r\n ...state,\r\n token: action.payload,\r\n };\r\n case EAppActionTypes.RETRIEVE_CUSTOM_TOKEN_ERROR:\r\n return {\r\n ...state,\r\n token: \"\",\r\n };\r\n case EAppActionTypes.GET_API_SETTINGS:\r\n return {\r\n ...state,\r\n };\r\n case EAppActionTypes.GET_API_SETTINGS_SUCCESS:\r\n return {\r\n ...state,\r\n api: { version: action.payload.versionString },\r\n };\r\n case EAppActionTypes.GET_API_SETTINGS_ERROR:\r\n return {\r\n ...state,\r\n };\r\n case EAppActionTypes.SHOW_TOAST_MESSAGE:\r\n toast(GenerateMessage(action), {\r\n type: action.toastType,\r\n position: EToastPositions.TOP_RIGHT,\r\n });\r\n return {\r\n ...state,\r\n };\r\n case EAppActionTypes.ADD_APPLICATION_ERROR_MESSAGE:\r\n appInsights.trackTrace({\r\n message: \"Client has received error message: \" + action.i18KeyMessage,\r\n severityLevel: SeverityLevel.Error,\r\n });\r\n return {\r\n ...state,\r\n errorMessages: [...state.errorMessages, action.i18KeyMessage],\r\n };\r\n case EAppActionTypes.CLEAR_APPLICATION_ERROR_MESSAGES:\r\n return {\r\n ...state,\r\n errorMessages: [],\r\n };\r\n case EAppActionTypes.GET_BANNER_INFO_SUCCESS:\r\n return {\r\n ...state,\r\n bannerInformation: action.payload,\r\n };\r\n default:\r\n return {\r\n ...state,\r\n };\r\n }\r\n};\r\n\r\nexport default AppReducer;\r\n","import { AuditorActionResponseTypes, AuditorActionTypes, EAuditorActionTypes, IAuditorState } from \"./auditor.types\";\r\n\r\nconst initialState: IAuditorState = {\r\n auditors: [],\r\n errorMessages: [],\r\n isLoadingAuditors: false,\r\n isLoadingAuditor: false,\r\n};\r\n\r\nconst AuditorReducer = (\r\n state = initialState,\r\n action: AuditorActionTypes | AuditorActionResponseTypes\r\n): IAuditorState => {\r\n switch (action.type) {\r\n case EAuditorActionTypes.GET_AUDITORS:\r\n return {\r\n ...state,\r\n isLoadingAuditors: true,\r\n };\r\n case EAuditorActionTypes.GET_AUDITORS_SUCCESS:\r\n return {\r\n ...state,\r\n auditors: action.payload,\r\n isLoadingAuditors: false,\r\n };\r\n case EAuditorActionTypes.GET_AUDITORS_ERROR:\r\n return {\r\n ...state,\r\n isLoadingAuditors: false,\r\n };\r\n case EAuditorActionTypes.GET_AUDITOR:\r\n return {\r\n ...state,\r\n isLoadingAuditor: true,\r\n };\r\n case EAuditorActionTypes.GET_AUDITOR_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingAuditor: false,\r\n };\r\n case EAuditorActionTypes.GET_AUDITOR_ERROR:\r\n return {\r\n ...state,\r\n isLoadingAuditor: false,\r\n };\r\n case EAuditorActionTypes.POST_AUDITOR:\r\n return {\r\n ...state,\r\n isLoadingAuditor: true,\r\n };\r\n case EAuditorActionTypes.POST_AUDITOR_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingAuditor: false,\r\n };\r\n case EAuditorActionTypes.POST_AUDITOR_ERROR:\r\n return {\r\n ...state,\r\n isLoadingAuditor: false,\r\n };\r\n case EAuditorActionTypes.DELETE_AUDITOR:\r\n return {\r\n ...state,\r\n isLoadingAuditors: true,\r\n };\r\n case EAuditorActionTypes.DELETE_AUDITOR_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingAuditors: false,\r\n };\r\n case EAuditorActionTypes.DELETE_AUDITOR_ERROR:\r\n return {\r\n ...state,\r\n isLoadingAuditors: false,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default AuditorReducer;\r\n","import {\r\n DashboardActionResponseTypes,\r\n DashboardActionTypes,\r\n GET_DASHBOARD,\r\n GET_DASHBOARD_ERROR,\r\n GET_DASHBOARD_SUCCESS,\r\n IDashboardState,\r\n} from \"./dashboard.types\";\r\n\r\nconst initialState: IDashboardState = {\r\n model: {},\r\n};\r\n\r\nconst dashboardReducer = (\r\n state = initialState,\r\n action: DashboardActionTypes | DashboardActionResponseTypes\r\n): IDashboardState => {\r\n switch (action.type) {\r\n case GET_DASHBOARD:\r\n return {\r\n ...state,\r\n };\r\n case GET_DASHBOARD_SUCCESS:\r\n return {\r\n ...state,\r\n model: { data: action.payload },\r\n };\r\n case GET_DASHBOARD_ERROR:\r\n return {\r\n ...state,\r\n model: { data: action.payload },\r\n };\r\n default:\r\n return {\r\n ...state,\r\n };\r\n }\r\n};\r\n\r\nexport default dashboardReducer;\r\n","import { IReduxResponseAction, onFunction } from \"../../core/types/core.types\";\r\n\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\n\r\nexport const GET_DASHBOARD = \"GET_DASHBOARD\";\r\nexport const GET_DASHBOARD_SUCCESS = \"GET_DASHBOARD_SUCCESS\";\r\nexport const GET_DASHBOARD_ERROR = \"GET_DASHBOARD_ERROR\";\r\n\r\ninterface IGetDashboardAction extends IAxiosAction {\r\n type: typeof GET_DASHBOARD;\r\n}\r\n\r\ninterface IGetDashboardSuccessAction extends IReduxResponseAction {\r\n type: typeof GET_DASHBOARD_SUCCESS;\r\n}\r\n\r\ninterface IGetDashboardSuccessError extends IReduxResponseAction {\r\n type: typeof GET_DASHBOARD_ERROR;\r\n}\r\n\r\nexport interface IDashboardState {\r\n model: object;\r\n}\r\n\r\nexport type DashboardActionTypes = IGetDashboardAction;\r\n\r\nexport type DashboardActionResponseTypes = IGetDashboardSuccessAction | IGetDashboardSuccessError;\r\n\r\nexport interface IDashboardActions {\r\n GetDashboard: (onSuccess: onFunction, onError: onFunction) => DashboardActionTypes;\r\n}\r\n","import { ENormActionTypes, INormsState, NormActionResponseTypes, NormActionTypes } from \"./norm.types\";\r\n\r\nconst initialState: INormsState = {\r\n questionnaireNorm: { dimensionNorms: [] },\r\n errorMessages: [],\r\n isLoadingNorms: false,\r\n};\r\n\r\nconst NormReducer = (state = initialState, action: NormActionTypes | NormActionResponseTypes): INormsState => {\r\n const { questionnaireNorm } = state;\r\n switch (action.type) {\r\n case ENormActionTypes.GET_NORMS:\r\n return {\r\n ...state,\r\n isLoadingNorms: true,\r\n };\r\n case ENormActionTypes.GET_NORMS_SUCCESS:\r\n return {\r\n ...state,\r\n questionnaireNorm: action.payload,\r\n isLoadingNorms: false,\r\n };\r\n case ENormActionTypes.GET_NORMS_ERROR:\r\n return {\r\n ...state,\r\n isLoadingNorms: false,\r\n };\r\n case ENormActionTypes.SET_DIMENSION_NORM:\r\n // eslint-disable-next-line no-case-declarations\r\n const dimension = questionnaireNorm.dimensionNorms.find((x) => x.id === action.dimensionId);\r\n if (dimension !== undefined) dimension.norm = action.norm;\r\n\r\n return {\r\n ...state,\r\n isLoadingNorms: false,\r\n };\r\n case ENormActionTypes.SET_QUESTION_NORM:\r\n // eslint-disable-next-line no-case-declarations\r\n const dimensionNorm = questionnaireNorm.dimensionNorms.find((x) => x.id === action.dimensionId);\r\n if (dimensionNorm !== undefined) {\r\n const questionNorm = dimensionNorm.questionNorms.find((x) => x.id === action.questionId);\r\n if (questionNorm !== undefined) {\r\n questionNorm.norm = action.norm;\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n isLoadingNorms: false,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default NormReducer;\r\n","import {\r\n EOrganisationActionTypes,\r\n IOrganisationState,\r\n OrganisationActionResponseTypes,\r\n OrganisationActionTypes,\r\n} from \"./organisation.types\";\r\n\r\nconst initialState: IOrganisationState = {\r\n organisations: [],\r\n errorMessages: [],\r\n isLoadingOrganisations: false,\r\n isLoadingOrganisation: false,\r\n isLoadingAccountTypes: false,\r\n isLoadingAvailableYears: false,\r\n accountTypes: [],\r\n availableYears: [],\r\n};\r\n\r\nconst OrganisationReducer = (\r\n state = initialState,\r\n action: OrganisationActionTypes | OrganisationActionResponseTypes\r\n): IOrganisationState => {\r\n switch (action.type) {\r\n case EOrganisationActionTypes.GET_ORGANISATIONS:\r\n return {\r\n ...state,\r\n isLoadingOrganisations: true,\r\n };\r\n case EOrganisationActionTypes.GET_ORGANISATIONS_SUCCESS:\r\n return {\r\n ...state,\r\n organisations: action.payload,\r\n isLoadingOrganisations: false,\r\n };\r\n case EOrganisationActionTypes.GET_ORGANISATIONS_ERROR:\r\n return {\r\n ...state,\r\n isLoadingOrganisations: false,\r\n };\r\n case EOrganisationActionTypes.GET_ORGANISATION:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: true,\r\n };\r\n case EOrganisationActionTypes.GET_ORGANISATION_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: false,\r\n };\r\n case EOrganisationActionTypes.GET_ORGANISATION_ERROR:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: false,\r\n };\r\n case EOrganisationActionTypes.GET_ACCOUNTTYPES:\r\n return {\r\n ...state,\r\n isLoadingAccountTypes: true,\r\n };\r\n case EOrganisationActionTypes.GET_ACCOUNTTYPES_SUCCESS:\r\n return {\r\n ...state,\r\n accountTypes: action.payload,\r\n isLoadingAccountTypes: false,\r\n };\r\n case EOrganisationActionTypes.GET_ACCOUNTTYPES_ERROR:\r\n return {\r\n ...state,\r\n isLoadingAccountTypes: false,\r\n };\r\n case EOrganisationActionTypes.POST_ORGANISATION:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: true,\r\n };\r\n case EOrganisationActionTypes.POST_ORGANISATION_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: false,\r\n };\r\n case EOrganisationActionTypes.POST_ORGANISATION_ERROR:\r\n return {\r\n ...state,\r\n isLoadingOrganisation: false,\r\n };\r\n case EOrganisationActionTypes.DELETE_ORGANISATION:\r\n return {\r\n ...state,\r\n isLoadingOrganisations: true,\r\n };\r\n case EOrganisationActionTypes.DELETE_ORGANISATION_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingOrganisations: false,\r\n };\r\n case EOrganisationActionTypes.DELETE_ORGANISATION_ERROR:\r\n return {\r\n ...state,\r\n isLoadingOrganisations: false,\r\n };\r\n case EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS:\r\n return {\r\n ...state,\r\n isLoadingAvailableYears: true,\r\n };\r\n case EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS:\r\n return {\r\n ...state,\r\n availableYears: action.payload,\r\n isLoadingAvailableYears: false,\r\n };\r\n case EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_ERROR:\r\n return {\r\n ...state,\r\n availableYears: [],\r\n isLoadingAvailableYears: false,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default OrganisationReducer;\r\n","import {\r\n EQuestionnaireActionTypes,\r\n IQuestionnaireState,\r\n QuestionEntity,\r\n QuestionnaireActionResponseTypes,\r\n QuestionnaireActionTypes,\r\n} from \"./questionnaire.types\";\r\n\r\nconst initialState: IQuestionnaireState = {\r\n isLoadingQuestionnaire: false,\r\n questionModel: { isReadOnly: true, questions: [], accountTypeName: \"\", hasFileUpload: false, auditorFeedbacks: [] },\r\n answers: [],\r\n employeeTypes: [],\r\n isLoadingEmployeeTypes: false,\r\n isSendingInvitation: false,\r\n};\r\n\r\nfunction getQuestion(questions: Array, questionId: number): any {\r\n let questionResult: any;\r\n const questionsStack: Array = new Array();\r\n\r\n questions.forEach(function (question) {\r\n questionsStack.push(question);\r\n });\r\n\r\n while (questionsStack.length > 0) {\r\n const currentQuestion = questionsStack[0];\r\n\r\n if (currentQuestion.id === questionId) {\r\n questionResult = currentQuestion;\r\n break;\r\n }\r\n\r\n if (currentQuestion.children != null) {\r\n const exists = currentQuestion.children.some(function (question) {\r\n return question.id === questionId;\r\n });\r\n\r\n if (exists) {\r\n questionResult = currentQuestion.children.filter(function (question) {\r\n return question.id === questionId;\r\n })[0];\r\n\r\n break;\r\n } else {\r\n currentQuestion.children.forEach(function (question) {\r\n questionsStack.unshift(question);\r\n });\r\n }\r\n }\r\n\r\n questionsStack.splice(0, 1);\r\n }\r\n\r\n return questionResult;\r\n}\r\n\r\nconst questionnaireReducer = (\r\n state = initialState,\r\n action: QuestionnaireActionTypes | QuestionnaireActionResponseTypes\r\n): IQuestionnaireState => {\r\n const { questionModel, answers } = state;\r\n switch (action.type) {\r\n case EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE:\r\n case EQuestionnaireActionTypes.GET_QUESTIONNAIRE:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: true,\r\n };\r\n case EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS:\r\n case EQuestionnaireActionTypes.GET_QUESTIONNAIRE_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: false,\r\n questionModel: action.payload,\r\n };\r\n case EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_ERROR:\r\n case EQuestionnaireActionTypes.GET_QUESTIONNAIRE_ERROR:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: false,\r\n };\r\n case EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE:\r\n case EQuestionnaireActionTypes.PUT_QUESTIONNAIRE:\r\n case EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: true,\r\n };\r\n case EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS:\r\n case EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_SUCCESS:\r\n case EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_SUCCESS:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: false,\r\n };\r\n case EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR:\r\n case EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_ERROR:\r\n case EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_ERROR:\r\n return {\r\n ...state,\r\n isLoadingQuestionnaire: false,\r\n };\r\n case EQuestionnaireActionTypes.SEND_INVITATION: {\r\n return {\r\n ...state,\r\n isSendingInvitation: true,\r\n };\r\n }\r\n case EQuestionnaireActionTypes.SEND_INVITATION_SUCCESS: {\r\n return {\r\n ...state,\r\n isSendingInvitation: false,\r\n };\r\n }\r\n case EQuestionnaireActionTypes.SEND_INVITATION_ERROR: {\r\n return {\r\n ...state,\r\n isSendingInvitation: false,\r\n };\r\n }\r\n case EQuestionnaireActionTypes.SET_QUESTIONNAIRE_NORM_SCORE: {\r\n if (questionModel.auditorFeedbacks === undefined) {\r\n questionModel.auditorFeedbacks = [];\r\n }\r\n const selectedFeedback = questionModel.auditorFeedbacks.find((y) => y.questionId === action.questionId);\r\n if (selectedFeedback) {\r\n selectedFeedback.score = isFinite(action.normScore) ? action.normScore : undefined;\r\n } else {\r\n\r\n const previousQuestionAuditorState = questionModel.questions.find((x) => x.id === action.questionId);\r\n let previousQuestionAuditorComment: string = \"\";\r\n\r\n if (previousQuestionAuditorState?.answer?.auditorComment)\r\n previousQuestionAuditorComment = previousQuestionAuditorState?.answer?.auditorComment;\r\n\r\n questionModel.auditorFeedbacks.push({\r\n questionId: action.questionId,\r\n score: isFinite(action.normScore) ? action.normScore : undefined,\r\n comment: previousQuestionAuditorComment\r\n });\r\n }\r\n return {\r\n ...state,\r\n questionModel: questionModel,\r\n };\r\n }\r\n case EQuestionnaireActionTypes.SET_QUESTIONNAIRE_COMMENTS: {\r\n if (questionModel.auditorFeedbacks === undefined) {\r\n questionModel.auditorFeedbacks = [];\r\n }\r\n const selectedFeedback = questionModel.auditorFeedbacks.find((y) => y.questionId === action.questionId);\r\n if (selectedFeedback) {\r\n selectedFeedback.comment = action.comments;\r\n } else {\r\n\r\n const previousQuestionAuditorState = questionModel.questions.find((x) => x.id === action.questionId);\r\n let previousQuestionAuditorScore: number | undefined = undefined;\r\n\r\n if (previousQuestionAuditorState?.answer?.auditorComment)\r\n previousQuestionAuditorScore = previousQuestionAuditorState?.answer?.auditorScore;\r\n\r\n questionModel.auditorFeedbacks.push({\r\n questionId: action.questionId,\r\n comment: action.comments,\r\n score: previousQuestionAuditorScore,\r\n });\r\n }\r\n return {\r\n ...state,\r\n questionModel: questionModel,\r\n };\r\n }\r\n case EQuestionnaireActionTypes.SET_QUESTIONNAIRE_ANSWER:\r\n // eslint-disable-next-line no-case-declarations\r\n const question: QuestionEntity = getQuestion(questionModel.questions, action.questionId) as QuestionEntity;\r\n\r\n if (question) {\r\n const possibleAnswer = question.possibleAnswers.find((y) => y.id === action.answer);\r\n if (possibleAnswer) {\r\n question.value = possibleAnswer.value;\r\n const answer = answers.find((x) => x.questionId === action.questionId);\r\n if (answer) {\r\n answer.answerOptionId = possibleAnswer.id;\r\n } else {\r\n answers.push({ questionId: action.questionId, answerOptionId: possibleAnswer.id });\r\n }\r\n }\r\n }\r\n return {\r\n ...state,\r\n questionModel: questionModel,\r\n answers: answers,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default questionnaireReducer;\r\n","import {\r\n DIRECTION,\r\n HEADER_POSITION,\r\n ISettingsState,\r\n LAYOUT,\r\n LOGO_BG,\r\n NAVBAR_BG,\r\n SIDEBAR_BG,\r\n SIDEBAR_POSITION,\r\n SIDEBAR_TYPE,\r\n THEME,\r\n} from \"./settings.types\";\r\n\r\nconst INIT_STATE: ISettingsState = {\r\n activeDir: \"ltr\",\r\n activeThemeLayout: \"vertical\",\r\n activeTheme: \"light\",\r\n activeSidebarType: \"full\",\r\n activeLogoBg: \"skin6\",\r\n activeNavbarBg: \"qualiviewFrontOfficeSkin\",\r\n activeSidebarBg: \"skin6\",\r\n activeSidebarPos: \"fixed\",\r\n activeHeaderPos: \"fixed\",\r\n activeLayout: \"full\",\r\n};\r\n\r\nexport default (state = INIT_STATE, action: any): ISettingsState => {\r\n switch (action.type) {\r\n case LOGO_BG:\r\n return {\r\n ...state,\r\n activeLogoBg: action.payload,\r\n };\r\n case NAVBAR_BG:\r\n return {\r\n ...state,\r\n activeNavbarBg: action.payload,\r\n };\r\n case SIDEBAR_BG:\r\n return {\r\n ...state,\r\n activeSidebarBg: action.payload,\r\n };\r\n case THEME:\r\n return {\r\n ...state,\r\n activeTheme: action.payload,\r\n };\r\n case DIRECTION:\r\n return {\r\n ...state,\r\n activeDir: action.payload,\r\n };\r\n case SIDEBAR_POSITION:\r\n return {\r\n ...state,\r\n activeSidebarPos: action.payload,\r\n };\r\n case HEADER_POSITION:\r\n return {\r\n ...state,\r\n activeHeaderPos: action.payload,\r\n };\r\n case LAYOUT:\r\n return {\r\n ...state,\r\n activeLayout: action.payload,\r\n };\r\n case SIDEBAR_TYPE:\r\n return {\r\n ...state,\r\n activeSidebarType: action.payload,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import application from \"./app/app.reducer\";\r\nimport auditors from \"./auditor/auditor.reducer\";\r\nimport { combineReducers } from \"redux\";\r\nimport dashboardReducer from \"./dashboard/dashboard.reducer\";\r\nimport norms from \"./norm/norm.reducer\";\r\nimport { reducer as oidcReducer } from \"redux-oidc\";\r\nimport organisations from \"./organisation/organisation.reducer\";\r\nimport questionnaire from \"./questionnaire/questionnaire.reducer\";\r\nimport settings from \"./settings/settings.reducer\";\r\n\r\nconst rootReducer = combineReducers({\r\n oidc: oidcReducer,\r\n dashboard: dashboardReducer,\r\n settings: settings,\r\n application,\r\n organisations,\r\n questionnaire,\r\n auditors,\r\n norms,\r\n});\r\n\r\nexport type ReduxState = ReturnType;\r\n\r\nexport default rootReducer;\r\n\r\n//https://medium.com/knerd/typescript-tips-series-proper-typing-of-react-redux-connected-components-eda058b6727d\r\n//https://redux.js.org/recipes/usage-with-typescript#type-checking-reducers\r\n","// SETTINGS CONSTANTS\r\nexport const LOGO_BG = \"LOGO_BG\";\r\nexport const NAVBAR_BG = \"NAVBAR_BG\";\r\nexport const SIDEBAR_BG = \"SIDEBAR_BG\";\r\nexport const THEME = \"THEME\";\r\nexport const DIRECTION = \"DIRECTION\";\r\nexport const SIDEBAR_POSITION = \"SIDEBAR_POSITION\";\r\nexport const HEADER_POSITION = \"HEADER_POSITION\";\r\nexport const LAYOUT = \"LAYOUT\";\r\nexport const SIDEBAR_TYPE = \"SIDEBAR_TYPE\";\r\n\r\n// CHAT CONSTANTS\r\nexport const SELECTED_CHAT = \"SELECTED_CHAT\";\r\nexport const SEARCH_USER = \"SEARCH_USER\";\r\nexport const MSG_SUBMIT = \"MSG_SUBMIT\";\r\n\r\n// CONTACT CONSTANTS\r\nexport const ADD_CONTACT = \"ADD_CONTACT\";\r\nexport const UPDATE_CONTACT = \"UPDATE_CONTACT\";\r\nexport const CONTACT_DETAILS = \"CONTACT_DETAILS\";\r\nexport const EDIT_CONTACT = \"EDIT_CONTACT\";\r\nexport const SET_VISIBILITY_FILTER = \"SET_VISIBILITY_FILTER\";\r\nexport const FILTER_CONTACT = \"FILTER_CONTACT\";\r\nexport const TOGGLE_STARRED_CONTACT = \"TOGGLE_STARRED_CONTACT\";\r\nexport const DELETE_CONTACT = \"DELETE_CONTACT\";\r\n\r\n// EMAIL CONSTANTS\r\nexport const STAR_EMAIL = \"STAR_EMAIL\";\r\nexport const IMPORTANT_EMAIL = \"IMPORTANT_EMAIL\";\r\nexport const OPEN_EMAIL = \"OPEN_EMAIL\";\r\nexport const TRASH_EMAIL = \"TRASH_EMAIL\";\r\nexport const ASSIGN_FOLDER = \"ASSIGN_FOLDER\";\r\nexport const ASSIGN_LABEL = \"ASSIGN_LABEL\";\r\nexport const SET_SELECTED_EMAIL = \"SET_SELECTED_EMAIL\";\r\nexport const FILTER_EMAIL = \"FILTER_EMAIL\";\r\nexport const SET_EMAIL_VISIBILITY_FILTER = \"SET_EMAIL_VISIBILITY_FILTER\";\r\n\r\nexport interface ISettingsState {\r\n activeDir: string;\r\n activeThemeLayout: string;\r\n activeTheme: string;\r\n activeSidebarType: string;\r\n activeLogoBg: string;\r\n activeNavbarBg: string;\r\n activeSidebarBg: string;\r\n activeSidebarPos: string;\r\n activeHeaderPos: string;\r\n activeLayout: string;\r\n}\r\n","/* eslint-disable no-console */\r\nimport { applyMiddleware, createStore } from \"redux\";\r\n\r\nimport appInsights from \"../core/services/appinsights.service\";\r\nimport { composeWithDevTools } from \"redux-devtools-extension/developmentOnly\";\r\n//import { createLogger } from \"redux-logger\";\r\nimport { loadUser } from \"redux-oidc\";\r\nimport middlewares from \"./middlewares/middlewares\";\r\nimport reducers from \"./reducers\";\r\nimport userManager from \"../core/services/usermanager.service\";\r\n\r\n// const logger = createLogger();\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst loggerMiddleware = (store: any) => (next: Function) => (action: any): void => {\r\n const debug = false;\r\n if (debug) {\r\n // Do some logging if needed\r\n console.log(\"Action type: \", action.type);\r\n console.log(\"Action payload: \", action.payload);\r\n console.log(\"State before: \", store.getState());\r\n }\r\n next(action);\r\n if (debug) {\r\n console.log(\"State after: \", store.getState());\r\n }\r\n};\r\n\r\nconst composeEnhancers = composeWithDevTools({\r\n // options like actionSanitizer, stateSanitizer\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst store = () => {\r\n const internalStore = createStore(reducers, composeEnhancers(applyMiddleware(...middlewares, loggerMiddleware)));\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (module.hot) {\r\n module.hot.accept(\"./reducers\", () => {\r\n internalStore.replaceReducer(reducers);\r\n });\r\n }\r\n }\r\n return internalStore;\r\n};\r\n\r\nloadUser(store(), userManager).then((user) => {\r\n //Checking if user exists and there is any Application Insights Context.\r\n if (user && appInsights.context) {\r\n if (appInsights.context) {\r\n //Setting Application Insights Authenticated User Context\r\n appInsights.setAuthenticatedUserContext(user.profile.sub, user.profile.sub, true);\r\n }\r\n }\r\n});\r\n\r\nexport default store;\r\n","import \"./assets/scss/style.scss\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nimport { OidcProvider, loadUser } from \"redux-oidc\";\r\nimport React, { Suspense } from \"react\";\r\n\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport Loader from \"./components/loader.component\";\r\nimport { Provider } from \"react-redux\";\r\nimport ReactDOM from \"react-dom\";\r\nimport Store from \"./redux/store\";\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport userManager from \"./core/services/usermanager.service\";\r\n\r\nrequire(\"./i18n\");\r\n\r\nconst basename = process.env.NODE_ENV === \"development\" ? \"/\" : process.env.PUBLIC_URL || \"/\";\r\n\r\nconst App = require(\"./app.component\").default;\r\n\r\nconst store = Store();\r\n\r\nconst render = (Component: React.ComponentClass): void => {\r\n //Loading authenticated user.\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n loadUser(store, userManager).then((user) => {\r\n // do something?\r\n });\r\n // eslint-disable-next-line react/no-render-return-value\r\n return ReactDOM.render(\r\n \r\n Loading...}>\r\n \r\n \r\n }>\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n );\r\n};\r\n\r\nrender(App);\r\n\r\nif (module.hot) {\r\n module.hot.accept(\"./app.component.tsx\", () => {\r\n const NextApp = require(\"./app.component\").default;\r\n render(NextApp);\r\n });\r\n}\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport React from \"react\";\r\nimport { Route } from \"react-router-dom\";\r\n\r\nexport const PrivateRoute = ({ component: Component, allowedRoutes, ...rest }: any): JSX.Element => (\r\n {\r\n return ;\r\n }}\r\n />\r\n);\r\n\r\nexport default PrivateRoute;\r\n","import * as AppActions from \"../src/redux/app/app.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { Route, RouteComponentProps, withRouter } from \"react-router-dom\";\r\nimport { indexRoutes, publicRoutes } from \"./routes\";\r\n\r\nimport { AddAppErrorMessage } from \"./redux/app/app.extended.actions\";\r\nimport Env from \"./core/environment/environment\";\r\nimport { IAppActions } from \"./redux/app/app.types\";\r\nimport { PrivateRoute } from \"./routes/private.routes\";\r\nimport React from \"react\";\r\nimport { Switch } from \"react-router-dom\";\r\nimport UserService from \"./core/services/user.service\";\r\nimport appInsights from \"./core/services/appinsights.service\";\r\nimport { connect } from \"react-redux\";\r\nimport { createBrowserHistory } from \"history\";\r\nimport i18n from \"./i18n\";\r\nimport { reactPlugin } from \"./core/configuration/appinsights.configuration\";\r\nimport userManager from \"./core/services/usermanager.service\";\r\nimport { withAITracking } from \"@microsoft/applicationinsights-react-js\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\nexport const history = createBrowserHistory();\r\n\r\nif (Env.ApplicationInsights?.Enabled) {\r\n appInsights.loadAppInsights();\r\n appInsights.trackPageView();\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TAppProps = ReturnType & RouteComponentProps;\r\n\r\ntype TAppOwnState = {\r\n allowedRoutePaths?: string[];\r\n};\r\n\r\nclass App extends React.Component {\r\n state = { allowedRoutePaths: [] };\r\n _isMounted = false;\r\n\r\n constructor(props: TAppProps) {\r\n super(props);\r\n this.onRetrieveCustomTokenSuccess = this.onRetrieveCustomTokenSuccess.bind(this);\r\n }\r\n\r\n async componentDidMount(): Promise {\r\n const { location } = this.props;\r\n this._isMounted = true;\r\n\r\n this.setAuthenticationType(location);\r\n if (!i18n.isInitialized) i18n.loadResources();\r\n\r\n this.obtainAllowedRoutePaths();\r\n\r\n userManager.events.addUserLoaded(() => {\r\n this.obtainAllowedRoutePaths();\r\n });\r\n }\r\n\r\n setAuthenticationType = (location: any): void => {\r\n if (!publicRoutes.map((r) => r.path).includes(location.pathname)) {\r\n //UserService.clearCustomAuthenticationToken();\r\n\r\n const hasAccessKey = UserService.hasAccessKey(location.search);\r\n\r\n if (hasAccessKey !== null) {\r\n this.retrieveCustomToken(hasAccessKey);\r\n } else {\r\n const hasCustomAccessToken = UserService.getCustomAuthenticationToken();\r\n if (!hasCustomAccessToken) {\r\n UserService.isAutenticatedAndAllowed(location.pathname).then((hasAccess) => {\r\n if (!hasAccess) {\r\n userManager.signinRedirect().catch(() => {\r\n const { dispatch } = this.props;\r\n AddAppErrorMessage(dispatch, \"app.messages.UNREACHABLE_IDENTITY_SERVER\");\r\n this.props.history.push(\"/error/generic\");\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n retrieveCustomToken = (accessKey: string): void => {\r\n this.props.appActions.RetrieveCustomToken(\r\n accessKey,\r\n this.onRetrieveCustomTokenSuccess,\r\n this.onRetrieveCustomTokenError\r\n );\r\n };\r\n\r\n onRetrieveCustomTokenSuccess(data?: object): void {\r\n if (data !== undefined) {\r\n UserService.saveCustomAuthenticationToken(data.toString());\r\n this.obtainAllowedRoutePaths();\r\n }\r\n }\r\n\r\n onRetrieveCustomTokenError(): void {}\r\n\r\n componentWillUnmount(): void {\r\n this._isMounted = false;\r\n }\r\n\r\n obtainAllowedRoutePaths = (): void => {\r\n UserService.getUserAllowedRoutePaths().then((allowedRoutePaths) => {\r\n if (this._isMounted) {\r\n this.setState({ allowedRoutePaths: allowedRoutePaths });\r\n }\r\n });\r\n };\r\n\r\n render(): JSX.Element {\r\n return (\r\n \r\n {publicRoutes.map((prop, key) => {\r\n return ;\r\n })}\r\n {indexRoutes.map((prop, key) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n appActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\nconst enhance = compose(withRouter, withTranslation(\"translations\"), connect(null, mapDispatchToProps));\r\n\r\nexport default enhance(withAITracking(reactPlugin, App));\r\n","enum EToastTypes {\r\n ERROR = \"error\",\r\n INFO = \"info\",\r\n SUCCESS = \"success\",\r\n WARNING = \"warning\",\r\n STANDARD = \"default\",\r\n}\r\n\r\nexport default EToastTypes;\r\n","import { ChangeEvent } from \"react\";\r\nimport { DispatchProp } from \"react-redux\";\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\nimport { IReduxResponseAction } from \"../../core/types/core.types\";\r\nimport { InputType } from \"reactstrap/lib/Input\";\r\n\r\nexport enum ENormActionTypes {\r\n GET_NORMS = \"GET_NORMS\",\r\n GET_NORMS_SUCCESS = \"GET_NORMS_SUCCESS\",\r\n GET_NORMS_ERROR = \"GET_NORMS_ERROR\",\r\n\r\n PUT_NORMS = \"PUT_NORMS\",\r\n PUT_NORMS_SUCCESS = \"PUT_NORMS_SUCCESS\",\r\n PUT_NORMS_ERROR = \"PUT_NORMS_ERROR\",\r\n\r\n SET_DIMENSION_NORM = \"SET_DIMENSION_NORM\",\r\n SET_QUESTION_NORM = \"SET_QUESTION_NORM\",\r\n}\r\n\r\nexport interface ISetDimensionNormAction {\r\n type: typeof ENormActionTypes.SET_DIMENSION_NORM;\r\n dimensionId: number;\r\n norm: number;\r\n}\r\n\r\nexport interface ISetQuestionNormAction {\r\n type: typeof ENormActionTypes.SET_QUESTION_NORM;\r\n questionId: number;\r\n dimensionId: number;\r\n norm: number;\r\n}\r\n\r\ninterface IGetNormsAction extends IAxiosAction {\r\n type: typeof ENormActionTypes.GET_NORMS;\r\n}\r\ninterface IGetNormsSuccessAction extends IReduxResponseAction {\r\n type: typeof ENormActionTypes.GET_NORMS_SUCCESS;\r\n}\r\n\r\ninterface IGetNormsErrorAction extends IReduxResponseAction {\r\n type: typeof ENormActionTypes.GET_NORMS_ERROR;\r\n}\r\n\r\ninterface IPutNormsErrorAction extends IReduxResponseAction {\r\n type: typeof ENormActionTypes.PUT_NORMS_ERROR;\r\n}\r\n\r\ninterface IPutNormsAction extends IAxiosAction {\r\n type: typeof ENormActionTypes.PUT_NORMS;\r\n}\r\n\r\ninterface IPutNormsSuccessAction extends IReduxResponseAction {\r\n type: typeof ENormActionTypes.PUT_NORMS_SUCCESS;\r\n}\r\n\r\nexport interface INormsState {\r\n questionnaireNorm: IQuestionnaireNorm;\r\n errorMessages: Array;\r\n isLoadingNorms: boolean;\r\n}\r\n\r\nexport interface INormsActions extends DispatchProp {\r\n GetNorms: (onSuccess?: Function, onError?: Function) => NormActionTypes;\r\n UpdateNorms: (questionnaireNorm: IQuestionnaireNorm, onSuccess?: Function, onError?: Function) => NormActionTypes;\r\n}\r\n\r\nexport type TDimensionNormSpecificOwnProps = {\r\n id?: number;\r\n text?: string;\r\n norm?: number;\r\n questionNorms: IQuestionNorm[];\r\n onChangeNorm: (event: ChangeEvent, dimensionId: number) => void;\r\n};\r\n\r\nexport interface IQuestionnaireNorm {\r\n year?: number;\r\n norm?: number;\r\n dimensionNorms: IDimensionNorm[];\r\n}\r\n\r\nexport interface IDimensionNorm {\r\n id?: number;\r\n text?: string;\r\n norm?: number;\r\n questionNorms: IQuestionNorm[];\r\n}\r\n\r\nexport type TQuestionNormSpecificOwnProps = {\r\n id?: number;\r\n text?: string;\r\n norm?: number;\r\n isReadonly?: boolean;\r\n onChangeNorm: (event: ChangeEvent, dimensionId: number) => void;\r\n};\r\n\r\nexport interface IQuestionNorm {\r\n id?: number;\r\n text?: string;\r\n norm?: number;\r\n isReadonly?: boolean;\r\n}\r\n\r\nexport interface IFormEntryNorm {\r\n labelKey: string;\r\n name: string;\r\n required: boolean;\r\n readonly: boolean;\r\n value?: string | number;\r\n inputType: InputType;\r\n}\r\n\r\nexport type NormActionTypes = IGetNormsAction | IPutNormsAction | ISetDimensionNormAction | ISetQuestionNormAction;\r\n\r\nexport type NormActionResponseTypes =\r\n | IGetNormsSuccessAction\r\n | IGetNormsErrorAction\r\n | IPutNormsSuccessAction\r\n | IPutNormsErrorAction;\r\n","import { AnyAction, Dispatch } from \"redux\";\r\nimport { EAppActionTypes, IAddAppErrorMessageAction, IClearAppErrorMessagesAction } from \"./app.types\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const AddAppErrorMessage = (dispatch: Dispatch, i18KeyMessage: string): void => {\r\n dispatch({\r\n type: EAppActionTypes.ADD_APPLICATION_ERROR_MESSAGE,\r\n i18KeyMessage: i18KeyMessage,\r\n } as IAddAppErrorMessageAction);\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const ClearAppErrorMessage = (dispatch: Dispatch): void => {\r\n dispatch({\r\n type: EAppActionTypes.CLEAR_APPLICATION_ERROR_MESSAGES,\r\n } as IClearAppErrorMessagesAction);\r\n};\r\n","import { AnyAction, Dispatch, compose } from \"redux\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport React, { CSSProperties, Component } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\r\n\r\nimport { AddAppErrorMessage } from \"../../redux/app/app.extended.actions\";\r\nimport { CallbackComponent } from \"redux-oidc\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport UserService from \"../../core/services/user.service\";\r\nimport { connect } from \"react-redux\";\r\nimport userManager from \"../../core/services/usermanager.service\";\r\n\r\n//import Loader from \"../../../shared/Loader\";\r\n\r\nconst mainContainer: CSSProperties = {\r\n height: \"80vh\",\r\n width: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n};\r\n\r\nconst content = {\r\n height: 100,\r\n width: 100,\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TCallbackProps = ReturnType & RouteComponentProps;\r\n\r\nclass CallbackPage extends Component {\r\n constructor(props: TCallbackProps) {\r\n super(props);\r\n this.successCallback = this.successCallback.bind(this);\r\n this.errorCallback = this.errorCallback.bind(this);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n successCallback = async (data: any): Promise => {\r\n const hasRoleAllowed = await UserService.hasAccessToApplication(data);\r\n const { dispatch, history } = this.props;\r\n if (!hasRoleAllowed) {\r\n AddAppErrorMessage(dispatch, \"app.messages.NOT_ALLOWED_ROLES\");\r\n history.push(\"/error/403\");\r\n } else {\r\n history.push(\"/\");\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n errorCallback = (error: any): void => {\r\n const { dispatch, history } = this.props;\r\n AddAppErrorMessage(dispatch, \"app.messages.AUTHENTICATION_ERROR\");\r\n history.push(\"/error/generic\");\r\n };\r\n\r\n render(): JSX.Element {\r\n // just redirect to '/' in both cases\r\n return (\r\n {\r\n this.successCallback(data);\r\n }}\r\n errorCallback={this.errorCallback}\r\n >\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n dispatch,\r\n});\r\n\r\nconst enhance = compose(withRouter, connect(null, mapDispatchToProps));\r\n\r\nexport default enhance(CallbackPage);\r\n","import React, { Component } from \"react\";\r\n\r\nimport { Button } from \"reactstrap\";\r\nimport { Trans } from \"react-i18next\";\r\nimport UserService from \"../../core/services/user.service\";\r\n\r\nclass Error403 extends Component {\r\n render(): JSX.Element {\r\n return (\r\n
\r\n
\r\n
\r\n

{process.env.REACT_APP_NAME || \"Qualiview\"}

\r\n
\r\n

Error 403

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {\" \"}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Error403;\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nconst Error500: FunctionComponent = () => {\r\n return (\r\n
\r\n
\r\n
\r\n

{process.env.REACT_APP_NAME || \"Qualiview\"}

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

Error 500

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Error500;\r\n","import { Col, Row } from \"reactstrap\";\r\nimport React, { FunctionComponent } from \"react\";\r\n\r\nconst Divider: FunctionComponent = () => {\r\n return (\r\n \r\n  \r\n \r\n );\r\n};\r\n\r\nexport default Divider;\r\n","import * as appActions from \"../../redux/app/app.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators } from \"redux\";\r\nimport { IAppActions, IAppState } from \"../../redux/app/app.types\";\r\nimport React, { Component, Fragment } from \"react\";\r\n\r\nimport { Button } from \"reactstrap\";\r\nimport { ClearAppErrorMessage } from \"../../redux/app/app.extended.actions\";\r\nimport Divider from \"../../components/divider.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { Trans } from \"react-i18next\";\r\nimport appInsights from \"../../core/services/appinsights.service\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TGenericErrorProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n RouteComponentProps;\r\n\r\nclass GenericError extends Component {\r\n componentWillUnmount(): void {\r\n const { dispatch } = this.props;\r\n ClearAppErrorMessage(dispatch);\r\n }\r\n render(): JSX.Element {\r\n return (\r\n
\r\n
\r\n
\r\n

{process.env.REACT_APP_NAME || \"Qualiview\"}

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

Error

\r\n \r\n {this.props.errorMessages.map((error, key) => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n })}\r\n
\r\n \r\n
Session ID: {appInsights.context?.sessionManager?.automaticSession?.id}
\r\n \r\n {\" \"}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n errorMessages: state.application.errorMessages,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n AppActions: bindActionCreators(appActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(GenericError);\r\n","import Error403 from \"../views/internal/error403.component\";\r\nimport Error500 from \"../views/internal/error500.component\";\r\nimport GenericError from \"../views/internal/genericerror.component\";\r\nimport { TRouteComponent } from \"../core/types/route.types\";\r\n\r\nconst errorRoutes: Array = [\r\n { path: \"/error/500\", name: \"500 Internal\", component: Error500 } as TRouteComponent,\r\n { path: \"/error/403\", name: \"Unauthorized\", component: Error403 } as TRouteComponent,\r\n { path: \"/error/generic\", name: \"Generic Error\", component: GenericError } as TRouteComponent,\r\n];\r\nexport default errorRoutes;\r\n","import \"../i18n\";\r\n\r\nimport React, { FunctionComponent } from \"react\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\n\r\nimport errorRoutes from \"../routes/error.routes\";\r\n\r\nconst Blanklayout: FunctionComponent = () => {\r\n return (\r\n
\r\n \r\n {errorRoutes.map((prop, key) => {\r\n if (prop.redirect) return ;\r\n return ;\r\n })}\r\n \r\n
\r\n );\r\n};\r\nexport default Blanklayout;\r\n","import \"semantic-ui-loader/loader.min.css\";\r\n\r\nimport React, { FunctionComponent, useState } from \"react\";\r\n\r\nimport { Alert } from \"reactstrap\";\r\nimport { TBannerTypes } from \"../core/types/layout.types\";\r\n\r\ntype TBannerProps = {\r\n message: string;\r\n type: TBannerTypes;\r\n};\r\n\r\nconst Banner: FunctionComponent = (props) => {\r\n // For Dismiss Button with Alert\r\n const [visible, setVisible] = useState(true);\r\n\r\n const onDismiss = (): void => {\r\n setVisible(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {props.message}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Banner;\r\n","import * as AppActions from \"../../redux/app/app.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators } from \"redux\";\r\nimport React, { Component, Fragment } from \"react\";\r\n\r\nimport Banner from \"../../components/banner.component\";\r\nimport { IAppActions } from \"../../redux/app/app.types\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TBannerLayoutProps = ReturnType & ReturnType;\r\n\r\nclass BannerLayout extends Component {\r\n componentDidMount(): void {\r\n if (!this.props.application.bannerInformation) {\r\n this.props.appActions.GetBannerInfo();\r\n }\r\n }\r\n render(): JSX.Element {\r\n if (this.props.application.bannerInformation !== undefined) {\r\n const { message, type } = this.props.application.bannerInformation;\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n appActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(BannerLayout);\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\n\r\nimport * as appActions from \"../../..//redux/app/app.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators } from \"redux\";\r\nimport { IAppActions, IAppState } from \"../../..//redux/app/app.types\";\r\nimport React, { Component, Fragment } from \"react\";\r\n\r\nimport { ReduxState } from \"../../../redux/reducers\";\r\nimport { connect } from \"react-redux\";\r\n\r\ntype TFooterProps = ReturnType & ReturnType & IAppState & ReduxState;\r\n\r\ninterface IOwnState {\r\n appVersion: string;\r\n appName: string;\r\n}\r\n\r\nclass Footer extends Component {\r\n state: IOwnState = {\r\n appVersion: process.env.REACT_APP_VERSION || \"0.0.0\",\r\n appName: process.env.REACT_APP_NAME || \"Qualiview\",\r\n };\r\n componentDidMount(): void {\r\n this.props.actions.GetApiSettings();\r\n }\r\n\r\n render(): JSX.Element {\r\n const year = new Date().getFullYear();\r\n\r\n const { version: apiVersion } = this.props.application.api;\r\n return (\r\n \r\n
\r\n \r\n © {year} - {this.state.appName}\r\n \r\n \r\n \r\n App Version: {this.state.appVersion}\r\n \r\n  \r\n \r\n API Version: {apiVersion}\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(appActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Footer);\r\n","import { THeaderProfileMenuItem } from \"../../../core/types/layout.types\";\r\nimport UserService from \"../../../core/services/user.service\";\r\nimport userManager from \"../../../core/configuration/usermanager.configuration\";\r\n\r\nconst HeaderProfileMenuItems: Array = [\r\n {\r\n href: userManager.authority + \"/Manage/index?client_id=\" + userManager.client_id,\r\n i18nKey: \"app.header.ACCOUNT_SETTINGS\",\r\n icon: \"ti-settings mr-1 ml-1\",\r\n dividerAfter: true,\r\n },\r\n {\r\n onClick: (): void => {\r\n UserService.clearSessionAndForceLogin();\r\n },\r\n i18nKey: \"common.LOGOUT\",\r\n icon: \"fa fa-power-off mr-1 ml-1\",\r\n },\r\n];\r\nexport { HeaderProfileMenuItems };\r\n","import { DropdownItem, DropdownMenu, DropdownToggle, UncontrolledDropdown } from \"reactstrap\";\r\nimport React, { Component, MouseEvent } from \"react\";\r\nimport { Trans, withTranslation } from \"react-i18next\";\r\n\r\nimport { HeaderProfileMenuItems } from \"./data\";\r\nimport { ReduxState } from \"../../../redux/reducers\";\r\nimport UserService from \"../../../core/services/user.service\";\r\nimport { compose } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype THeaderProfileDropdownProps = ReturnType;\r\n\r\nclass HeaderProfileDropdown extends Component {\r\n /**\r\n *\r\n */\r\n constructor(props: THeaderProfileDropdownProps) {\r\n super(props);\r\n this.logout = this.logout.bind(this);\r\n }\r\n\r\n logout(e: MouseEvent): void {\r\n e.preventDefault();\r\n UserService.clearSessionAndForceLogin();\r\n }\r\n\r\n render(): JSX.Element {\r\n const { user } = this.props.oidc;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* \"user\" */}\r\n \r\n
\r\n
\r\n

{user?.profile.name}

\r\n

{user?.profile.email}

\r\n
\r\n
\r\n\r\n {HeaderProfileMenuItems.map((item, i) => {\r\n return (\r\n \r\n {\r\n if (item.onClick) {\r\n item.onClick();\r\n }\r\n }}\r\n >\r\n \r\n \r\n {item.dividerAfter && }\r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n oidc: state.oidc,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, {})\r\n);\r\n\r\nexport default enhance(HeaderProfileDropdown) as React.ComponentType;\r\n","/* eslint-disable */\r\n\r\nimport * as data from \"./data\";\r\n\r\nimport {\r\n Button,\r\n Col,\r\n Collapse,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle,\r\n Form,\r\n FormGroup,\r\n Input,\r\n ListGroup,\r\n ListGroupItem,\r\n Nav,\r\n NavItem,\r\n NavLink,\r\n Navbar,\r\n NavbarBrand,\r\n Progress,\r\n Row,\r\n UncontrolledCarousel,\r\n UncontrolledDropdown,\r\n} from \"reactstrap\";\r\nimport React, { useState } from \"react\";\r\n\r\nimport { default as HeaderProfileDropdown } from \"./headerprofiledropdown\";\r\nimport logodarkicon from \"../../../assets/images/logo-icon.png\";\r\nimport logodarktext from \"../../../assets/images/logo-text.png\";\r\nimport logolighticon from \"../../../assets/images/logo-light-icon.png\";\r\nimport logolighttext from \"../../../assets/images/logo-ipf.png\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n/*--------------------------------------------------------------------------------*/\r\n/* Import images which are need for the HEADER */\r\n/*--------------------------------------------------------------------------------*/\r\n\r\nexport default () => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const settings = useSelector((state: any) => state.settings);\r\n\r\n const toggle = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n const showMobilemenu = () => {\r\n document.getElementById(\"main-wrapper\")?.classList.toggle(\"show-sidebar\");\r\n };\r\n\r\n const sidebarHandler = () => {\r\n const element = document.getElementById(\"main-wrapper\");\r\n switch (settings.activeSidebarType) {\r\n case \"full\":\r\n case \"iconbar\":\r\n element?.classList.toggle(\"mini-sidebar\");\r\n if (element?.classList.contains(\"mini-sidebar\")) {\r\n element.setAttribute(\"data-sidebartype\", \"mini-sidebar\");\r\n } else {\r\n element?.setAttribute(\"data-sidebartype\", settings.activeSidebarType);\r\n }\r\n break;\r\n\r\n case \"overlay\":\r\n case \"mini-sidebar\":\r\n element?.classList.toggle(\"full\");\r\n if (element?.classList.contains(\"full\")) {\r\n element.setAttribute(\"data-sidebartype\", \"full\");\r\n } else {\r\n element?.setAttribute(\"data-sidebartype\", settings.activeSidebarType);\r\n }\r\n break;\r\n default:\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Mobile View Toggler [visible only after 768px screen] */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n \r\n \r\n \r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Logos Or Icon will be goes here for Light Layout && Dark Layout */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n \r\n \r\n \"homepage\"\r\n \"homepage\"\r\n \r\n \r\n \"homepage\"\r\n \"homepage\"\r\n \r\n \r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Mobile View Toggler [visible only after 768px screen] */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n/* eslint-disable */\r\n","/* eslint-disable */\r\n\r\nimport { Collapse, Nav } from \"reactstrap\";\r\n\r\nimport { NavLink } from \"react-router-dom\";\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport howAreYouDoingImage from \"../../../assets/images/Howareyoudoing.png\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\nconst mapStateToProps = (state) => ({\r\n ...state,\r\n});\r\n\r\nclass Sidebar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.expandLogo = this.expandLogo.bind(this);\r\n this.activeRoute.bind(this);\r\n this.state = {\r\n authentication: this.activeRoute(\"/authentication\") !== \"\" ? true : false,\r\n uicomponents: this.activeRoute(\"/ui-components\") !== \"\" ? true : false,\r\n samplepages: this.activeRoute(\"/sample-pages\") !== \"\" ? true : false,\r\n dashboardpages: this.activeRoute(\"/dahboards\") !== \"\" ? true : false,\r\n iconsPages: this.activeRoute(\"/icons\") !== \"\" ? true : false,\r\n formlayoutPages: this.activeRoute(\"/form-layouts\") !== \"\" ? true : false,\r\n formpickerPages: this.activeRoute(\"/form-pickers\") !== \"\" ? true : false,\r\n };\r\n }\r\n /*--------------------------------------------------------------------------------*/\r\n /*To Expand SITE_LOGO With Sidebar-Menu on Hover */\r\n /*--------------------------------------------------------------------------------*/\r\n expandLogo() {\r\n document.getElementById(\"logobg\").classList.toggle(\"expand-logo\");\r\n }\r\n /*--------------------------------------------------------------------------------*/\r\n /*Verifies if routeName is the one active (in browser input) */\r\n /*--------------------------------------------------------------------------------*/\r\n activeRoute(routeName) {\r\n return this.props.location.pathname.indexOf(routeName) > -1 ? \"selected\" : \"\";\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n return (\r\n \r\n
\r\n \r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Sidebar Menus will go here */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default withTranslation()(connect(mapStateToProps)(Sidebar));\r\n/* eslint-disable */\r\n","import AuthCallbackPage from \"../views/internal/authcallback.component\";\r\nimport Blanklayout from \"../layouts/blanklayout\";\r\nimport Fulllayout from \"../layouts/fulllayout\";\r\nimport { TRouteComponent } from \"../core/types/route.types\";\r\nimport errorRoutes from \"./error.routes\";\r\n\r\nexport const indexRoutes: Array = [\r\n { path: \"/error\", name: \"Error\", component: Blanklayout } as TRouteComponent,\r\n { path: \"/\", name: \"Dashboard\", component: Fulllayout } as TRouteComponent,\r\n];\r\n\r\nexport const pubRoutes: Array = [\r\n { path: \"/error\", name: \"Error\", component: Blanklayout } as TRouteComponent,\r\n { path: \"/auth-callback\", name: \"Authentication Callback\", component: AuthCallbackPage } as TRouteComponent,\r\n];\r\n\r\nexport const publicRoutes: Array = [...pubRoutes, ...errorRoutes];\r\n","/* eslint-disable */\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Redirect, Route, Switch } from \"react-router-dom\";\r\n\r\nimport BannerLayout from \"./custom-components/banner.layout.component\";\r\nimport Footer from \"./layout-components/footer/footer\";\r\nimport Header from \"./layout-components/header/header\";\r\nimport Sidebar from \"./layout-components/sidebar/sidebar\";\r\nimport ThemeRoutes from \"../routes/router.routes\";\r\nimport UserService from \"../core/services/user.service\";\r\nimport _filter from \"lodash/filter\";\r\nimport _has from \"lodash/has\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default (props) => {\r\n const [width, setWidth] = useState(window.innerWidth);\r\n\r\n const settings = useSelector((state) => state.settings);\r\n const dashboard = useSelector((state) => state.dashboard);\r\n\r\n let routes = [];\r\n const filteredRoutes = _filter(\r\n ThemeRoutes,\r\n (r) =>\r\n props.allowedRoutes.includes(r.path) &&\r\n (r.redirect === undefined || r.redirect === false || props.allowedRoutes.includes(r.pathTo))\r\n );\r\n\r\n if (_has(filteredRoutes, (r) => r.redirect)) {\r\n const nonRedirectRoutes = _filter(filteredRoutes, (r) => r.redirect !== undefined && r.redirect === false);\r\n const redirectRoute = _filter(filteredRoutes, (r) => r.redirect);\r\n routes = [...nonRedirectRoutes, ...redirectRoute];\r\n } else {\r\n routes = filteredRoutes;\r\n }\r\n\r\n useEffect(() => {\r\n let isSubscribed = true;\r\n const updateDimensions = () => {\r\n const element = document.getElementById(\"main-wrapper\");\r\n if (isSubscribed) setWidth(window.innerWidth);\r\n switch (settings.activeSidebarType) {\r\n case \"full\":\r\n case \"iconbar\":\r\n if (width < 1170) {\r\n element?.setAttribute(\"data-sidebartype\", \"mini-sidebar\");\r\n element?.classList.add(\"mini-sidebar\");\r\n } else {\r\n element?.setAttribute(\"data-sidebartype\", settings.activeSidebarType);\r\n element?.classList.remove(\"mini-sidebar\");\r\n }\r\n break;\r\n\r\n case \"overlay\":\r\n if (width < 767) {\r\n element?.setAttribute(\"data-sidebartype\", \"mini-sidebar\");\r\n } else {\r\n element?.setAttribute(\"data-sidebartype\", settings.activeSidebarType);\r\n }\r\n break;\r\n\r\n default:\r\n }\r\n };\r\n if (document.readyState === \"complete\") {\r\n updateDimensions();\r\n }\r\n window.addEventListener(\"load\", updateDimensions.bind(null));\r\n window.addEventListener(\"resize\", updateDimensions.bind(null));\r\n return () => {\r\n isSubscribed = false;\r\n window.removeEventListener(\"load\", updateDimensions.bind(null));\r\n window.removeEventListener(\"resize\", updateDimensions.bind(null));\r\n };\r\n }, [settings.activeSidebarType, width]);\r\n\r\n return (\r\n \r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Header */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n
\r\n\r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Sidebar */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n \r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Page Main-Content */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n
\r\n
\r\n \r\n {routes.map((prop, key) => {\r\n if (prop.navlabel) {\r\n return null;\r\n } else if (prop.collapse) {\r\n return prop.child.map((prop2, key2) => {\r\n if (prop2.collapse) {\r\n return prop2.subchild.map((prop3, key3) => {\r\n return ;\r\n });\r\n }\r\n return ;\r\n });\r\n } else if (prop.redirect) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n })}\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n {/*--------------------------------------------------------------------------------*/}\r\n {/* Customizer from which you can set all the Layout Settings */}\r\n {/*--------------------------------------------------------------------------------*/}\r\n {/**/}\r\n \r\n );\r\n};\r\n","enum EToastPositions {\r\n TOP_LEFT = \"top-left\",\r\n TOP_RIGHT = \"top-right\",\r\n TOP_CENTER = \"top-center\",\r\n BOTTOM_LEFT = \"bottom-left\",\r\n BOTTOM_RIGHT = \"bottom-right\",\r\n BOTTOM_CENTER = \"bottom-center\",\r\n}\r\n\r\nexport default EToastPositions;\r\n","import EToastTypes from \"../core/enums/toastTypes.enum\";\r\nimport { IPushToastMessageAction } from \"../redux/app/app.types\";\r\nimport React from \"react\";\r\nimport { Trans } from \"react-i18next\";\r\n\r\nfunction getIconType(messageType: EToastTypes): string {\r\n switch (messageType) {\r\n case EToastTypes.SUCCESS:\r\n return \"fas fa-check-circle\";\r\n case EToastTypes.INFO:\r\n return \"fas fa-info-circle\";\r\n case EToastTypes.WARNING:\r\n return \"fas fa-exclamation-circle\";\r\n case EToastTypes.ERROR:\r\n return \"fas fa-times-circle\";\r\n case EToastTypes.STANDARD:\r\n return \"fas fa-bell\";\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\ntype TMessageProps = IPushToastMessageAction;\r\n\r\nconst Message: React.FunctionComponent = (props): JSX.Element => {\r\n const icon = getIconType(props.toastType);\r\n\r\n return (\r\n
\r\n
\r\n {icon ? : \"\"} \r\n
\r\n {props.i18KeyMessage ? (\r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n {props.innerMessage ? {props.innerMessage} : \"\"}\r\n
\r\n );\r\n};\r\n\r\nexport const GenerateMessage = (props: TMessageProps): JSX.Element => {\r\n return ;\r\n};\r\n\r\nexport default Message;\r\n","import { IAxiosAction } from \"../../core/types/axios.types\";\r\n\r\nexport const MAX_NUMBER_FILES_PER_QUESTION = 10;\r\n\r\nexport type TFileInfo = {\r\n name: string;\r\n id: string;\r\n type: string;\r\n};\r\n\r\nexport type TUploadParameters = {\r\n questionId: number;\r\n year: number;\r\n organisationIdentity: string;\r\n};\r\n\r\nexport enum EUploadFileActionTypes {\r\n UPLOAD_FILE = \"UPLOAD_FILE\",\r\n DELETE_FILE = \"DELETE_FILE\",\r\n DOWNLOAD_FILE = \"DOWNLOAD_FILE\",\r\n}\r\n\r\ninterface IUploadFileTypeAction extends IAxiosAction {\r\n type: typeof EUploadFileActionTypes.UPLOAD_FILE;\r\n}\r\n\r\ninterface IDeleteFileTypeAction extends IAxiosAction {\r\n type: typeof EUploadFileActionTypes.DELETE_FILE;\r\n}\r\n\r\ninterface IDownloadFileTypeAction extends IAxiosAction {\r\n type: typeof EUploadFileActionTypes.DOWNLOAD_FILE;\r\n}\r\n\r\nexport type UploadFileActionTypes = IUploadFileTypeAction | IDeleteFileTypeAction | IDownloadFileTypeAction;\r\n\r\nexport interface IUploadFileActionTypes {\r\n UploadFile: (\r\n params: TUploadParameters,\r\n file: File,\r\n onUploadProgress: (event: ProgressEvent) => void,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => UploadFileActionTypes;\r\n DeleteFile: (\r\n organisationIdentity: string,\r\n questionId: number,\r\n year: number,\r\n fileId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => UploadFileActionTypes;\r\n DownloadFile: (\r\n organisationIdentity: string,\r\n year: number,\r\n questionId: number,\r\n fileId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => UploadFileActionTypes;\r\n}\r\n","import Env from \"./core/environment/environment\";\r\nimport backend from \"i18next-xhr-backend\";\r\nimport detector from \"i18next-browser-languagedetector\";\r\nimport i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\ni18n\r\n .use(detector)\r\n .use(backend)\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n backend: {\r\n loadPath: \"locales/{{lng}}/{{ns}}.json\",\r\n },\r\n fallbackLng: Env.Application?.DefaultLanguageFallback, // use en if detected lng is not available\r\n // have a common namespace used around the full app\r\n ns: [\"translations\"],\r\n defaultNS: \"translations\",\r\n debug: false,\r\n react: {\r\n wait: true,\r\n },\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss\r\n },\r\n });\r\n\r\nif (process.env.REACT_APP_FORCE_STARTUP_LANGUAGE) {\r\n i18n.changeLanguage(process.env.REACT_APP_FORCE_STARTUP_LANGUAGE);\r\n}\r\n\r\n//*** call without param to use language detector\r\n//i18n.changeLanguage();\r\n\r\nexport default i18n;\r\n","/* eslint-disable */\r\n\r\nimport Environment from \"../environment/environment\";\r\nimport { UserManagerSettings } from \"oidc-client\";\r\n\r\n// import oidc from \"oidc-client\";\r\n// OIDC Logging\r\n// oidc.Log.logger = console;\r\n// oidc.Log.level = oidc.Log.INFO\r\nconst userManagerConfig = {\r\n client_id: Environment?.Oidc?.ClientID,\r\n redirect_uri: `${window.location.protocol}//${window.location.hostname}${\r\n window.location.port ? `:${window.location.port}` : \"\"\r\n }/auth-callback`,\r\n post_logout_redirect_uris: `${window.location.protocol}//${window.location.hostname}${\r\n window.location.port ? `:${window.location.port}` : \"\"\r\n }`,\r\n response_type: \"token id_token\",\r\n scope: \"openid profile email AllowRequestRoles entityPermissions EntityPermissions\",\r\n authority: Environment?.Oidc?.Authority,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n automaticSilentRenew: true,\r\n silent_redirect_uri: `${window.location.protocol}//${window.location.hostname}${\r\n window.location.port ? `:${window.location.port}` : \"\"\r\n }/auth-silent-renewal.html`,\r\n} as UserManagerSettings;\r\n\r\nexport default userManagerConfig;\r\n\r\n/* eslint-disable */\r\n","import { IAxiosAction } from \"../../core/types/axios.types\";\r\n\r\nexport interface IResultQuestion {\r\n name: string;\r\n isInnovative: boolean;\r\n}\r\n\r\nexport interface IResultDimension {\r\n name: string;\r\n isInnovative: boolean;\r\n questions: IResultQuestion[];\r\n}\r\n\r\nexport interface IResultResponse {\r\n isInnovative: boolean;\r\n dimensions: IResultDimension[];\r\n organisationResultStatus: OrganisationResultStatus;\r\n}\r\nexport enum OrganisationResultStatus {\r\n Open = 1,\r\n Submitted = 2,\r\n Approved = 3,\r\n Rejected = 4,\r\n}\r\n\r\nexport enum EResultsActionTypes {\r\n GET_RESULTS = \"GET_RESULTS\",\r\n}\r\n\r\ninterface IGetResultsAction extends IAxiosAction {\r\n type: typeof EResultsActionTypes.GET_RESULTS;\r\n}\r\n\r\nexport type ResultsActionTypes = IGetResultsAction;\r\n\r\nexport enum EResultStatuses {\r\n GET_STATUSES = \"GET_STATUSES\",\r\n UPDATE_STATUS = \"UPDATE_STATUS\",\r\n}\r\n\r\ninterface IGetStatusesAction extends IAxiosAction {\r\n type: EResultStatuses.GET_STATUSES;\r\n}\r\n\r\ninterface IUpdateStatusAction extends IAxiosAction {\r\n type: EResultStatuses.UPDATE_STATUS;\r\n}\r\n\r\nexport interface IOrganisationStatus {\r\n id: number;\r\n name: string;\r\n description: string;\r\n}\r\n\r\nexport type OrganisationStatusActionsTypes = IGetStatusesAction | IUpdateStatusAction;\r\n\r\nexport interface IResultsActions {\r\n GetResults: (organisationGuid: string, year: number, onSuccess?: Function, onError?: Function) => ResultsActionTypes;\r\n GetOrganisationStatuses: (onSuccess?: Function, onError?: Function) => OrganisationStatusActionsTypes;\r\n SaveOrganisationStatus: (\r\n organisationGuid: string,\r\n year: number,\r\n statusId: number,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => OrganisationStatusActionsTypes;\r\n}\r\n","import {\r\n EResultStatuses,\r\n EResultsActionTypes,\r\n OrganisationStatusActionsTypes,\r\n ResultsActionTypes,\r\n} from \"./organisationBenchmark.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nexport const GetResults = (\r\n organisationGuid: string,\r\n year: number,\r\n onSuccess: Function,\r\n onError: Function\r\n): ResultsActionTypes => ({\r\n type: EResultsActionTypes.GET_RESULTS,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n // timestamp to force non caching requests\r\n url: \"/Organisations/\" + organisationGuid + \"/\" + year + \"/benchmarkResults?timestamp=\" + new Date().getTime(),\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisationBenchmark.ERROR_GET_RESULTS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetOrganisationStatuses = (onSuccess?: Function, onError?: Function): OrganisationStatusActionsTypes => ({\r\n type: EResultStatuses.GET_STATUSES,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/Organisations/ResultStatuses\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisationBenchmark.ERROR_GET_STATUSES\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SaveOrganisationStatus = (\r\n organisationGuid: string,\r\n year: number,\r\n statusId: number,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationStatusActionsTypes => ({\r\n type: EResultStatuses.UPDATE_STATUS,\r\n payload: {\r\n request: {\r\n method: \"patch\",\r\n showErrors: true,\r\n data: { organisationResultStatus: statusId },\r\n url: \"/Organisations/\" + organisationGuid + \"/\" + year,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.organisationBenchmark.SAVE_STATUS_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.organisationBenchmark.ERROR_SAVE_STATUS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n","enum EQuestionnaireStatuses {\r\n Open = \"Open\",\r\n Submitted = \"Submitted\",\r\n Approved = \"Approved\",\r\n Rejected = \"Rejected\",\r\n}\r\n\r\nexport default EQuestionnaireStatuses;\r\n","import {\r\n EOrganisationActionTypes,\r\n EResultsActionTypes,\r\n HasResultsActionTypes,\r\n OrganisationActionResponseTypes,\r\n OrganisationActionTypes,\r\n} from \"./organisation.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nimport { IOrganisation } from \"./organisation.types\";\r\n\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nexport const GetOrganisations = (onSuccess?: Function, onError?: Function): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.GET_ORGANISATIONS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/organisations\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_ORGANISATIONS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATIONS_SUCCESS,\r\n payload: response.data,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATIONS_ERROR,\r\n payload: error.response,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetOrganisation = (\r\n organisationId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.GET_ORGANISATION,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/organisations/\" + organisationId,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_ORGANISATION\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATION_SUCCESS,\r\n payload: response.data,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATION_ERROR,\r\n payload: error.response,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetAccountTypes = (onSuccess?: Function, onError?: Function): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.GET_ACCOUNTTYPES,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/organisations/accounttypes\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_ACCOUNTTYPES\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ACCOUNTTYPES_SUCCESS,\r\n payload: response.data,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ACCOUNTTYPES_ERROR,\r\n payload: error.response,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const CreateOrganisation = (\r\n organisation: IOrganisation,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.POST_ORGANISATION,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"post\",\r\n url: \"/organisations/\",\r\n data: organisation,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.organisation.CREATION_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_POST_ORGANISATION\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.POST_ORGANISATION_SUCCESS,\r\n ...{ name: \"organisation\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.POST_ORGANISATION_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const DeleteOrganisation = (\r\n organisationId: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.DELETE_ORGANISATION,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"delete\",\r\n url: \"/organisations/\" + organisationId,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.organisation.DELETE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_DELETE_ORGANISATION\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.DELETE_ORGANISATION_SUCCESS,\r\n ...{ name: \"organisation\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.DELETE_ORGANISATION_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const UpdateOrganisation = (\r\n organisationId: string,\r\n organisation: IOrganisation,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.PUT_ORGANISATION,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"put\",\r\n url: \"/organisations/\" + organisationId,\r\n data: organisation,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.organisation.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_PUT_ORGANISATION\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.PUT_ORGANISATION_SUCCESS,\r\n ...{ name: \"organisation\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.PUT_ORGANISATION_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetOrganisationResults = (onSuccess?: Function, onError?: Function): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.GET_ORGANISATION_RESULTS,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n responseType: \"blob\",\r\n headers: {\r\n Accept: \"application/octet-stream\",\r\n },\r\n showErrors: true,\r\n url: \"/results/csv\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_RESULTS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATIONS_SUCCESS,\r\n payload: response.data,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_ORGANISATIONS_ERROR,\r\n payload: error.response,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetAvailableOrganisationYears = (\r\n organisationIdentity: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): OrganisationActionTypes => ({\r\n type: EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/organisations/availableYears/\" + organisationIdentity,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_AVAILABLE_ORGANISATION_YEARS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) {\r\n if (!Array.isArray(response.data)) {\r\n const arrayResponse = new Array();\r\n arrayResponse.push(response.data);\r\n onSuccess(arrayResponse);\r\n } else {\r\n onSuccess(response.data);\r\n }\r\n }\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_SUCCESS,\r\n payload: response.data,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EOrganisationActionTypes.GET_AVAILABLE_ORGANISATION_YEARS_ERROR,\r\n payload: error.response,\r\n } as OrganisationActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const HasOrganisationResults = (\r\n organisationGuid: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): HasResultsActionTypes => ({\r\n type: EResultsActionTypes.HAS_RESULTS,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/Organisations/\" + organisationGuid + \"/HasOrganisationResults\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisationBenchmark.ERROR_HAS_RESULTS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n },\r\n onError({ error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n },\r\n },\r\n },\r\n});\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport {\r\n AnswerDto,\r\n AuditorFeedback,\r\n EQuestionnaireActionTypes,\r\n QuestionnaireActionResponseTypes,\r\n QuestionnaireActionTypes,\r\n} from \"./questionnaire.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nexport const GetQuestionnaire = (\r\n organisationGuid: string,\r\n year: number,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/Questionnaire/\" + organisationGuid + \"/\" + year.toString(),\r\n custom: {\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_GET_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\nexport const PutQuestionnaire = (\r\n organisationGuid: string,\r\n year: number,\r\n listAnswers: Array,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.PUT_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"PUT\",\r\n url: \"/Questionnaire/\" + organisationGuid + \"/\" + year.toString(),\r\n data: listAnswers,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.questionnaire.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_PUT_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SubmitQuestionnaire = (\r\n organisationGuid: string,\r\n year: number,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"PATCH\",\r\n url: \"/Questionnaire/\" + organisationGuid + \"/\" + year.toString() + \"/submit\",\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.questionnaire.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_PUT_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetEmployeeQuestionnaire = (\r\n accessKey: string,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/Questionnaire/AccessKey/\" + accessKey,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_GET_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SaveEmployeeQuestionnaire = (\r\n accessKey: string,\r\n listAnswers: Array,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"POST\",\r\n url: \"/Questionnaire/AccessKey/\" + accessKey,\r\n data: listAnswers,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.questionnaire.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_PUT_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\nexport const SaveAuditorQuestionnaire = (\r\n organisationGuid: string,\r\n year: number,\r\n auditorFeedback: Array,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"PATCH\",\r\n url: \"/Questionnaire/\" + organisationGuid + \"/\" + year.toString() + \"/saveAuditorFeedback\",\r\n data: auditorFeedback,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.questionnaire.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_PUT_QUESTIONNAIRE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const SendInvitation = (\r\n organisationGuid: string,\r\n year: number,\r\n employeeTypeId: number,\r\n email: string,\r\n onSuccess: Function,\r\n onError: Function\r\n): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.SEND_INVITATION,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"POST\",\r\n url: \"/Questionnaire/\" + organisationGuid + \"/\" + year + \"/employee\",\r\n data: JSON.stringify({ employeeEmail: email, employeeTypeId: parseInt(employeeTypeId.toString()) }),\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.questionnaire.SEND_INVITE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.questionnaire.ERROR_SEND_INVITE\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SEND_INVITATION_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SEND_INVITATION_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetEmployeeTypes = (onSuccess?: Function, onError?: Function): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEETYPES,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/questionnaire/employeeTypes\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_EMPLOYEETYPES\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEETYPES_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_EMPLOYEETYPES_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const GetQuestionnaireInfoPdf = (onSuccess?: Function, onError?: Function): QuestionnaireActionTypes => ({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n responseType: \"blob\",\r\n headers: {\r\n Accept: \"application/octet-stream\",\r\n },\r\n showErrors: true,\r\n url: \"/Questionnaire/InfoPDF\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.organisation.ERROR_GET_RESULTS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF_SUCCESS,\r\n payload: response.data,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF_ERROR,\r\n payload: error.response,\r\n } as QuestionnaireActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n","import * as AppActions from \"../redux/app/app.actions\";\r\nimport * as React from \"react\";\r\nimport * as actions from \"../redux/organisation/organisation.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { IAppActions, IAppState } from \"../redux/app/app.types\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { Component } from \"react\";\r\nimport { IOrganisationActions } from \"../redux/organisation/organisation.types\";\r\nimport { Input } from \"reactstrap\";\r\nimport { ReduxState } from \"../redux/reducers\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TAvailableOrganisationYearsProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n WithTranslation &\r\n TAvailableOrganisationYearsOwnProps;\r\n\r\ntype TAvailableOrganisationYearsOwnProps = {\r\n handleYearChange: (selectedYear: number) => void;\r\n organisationIdentity: string;\r\n};\r\n\r\ntype TAvailableOrganisationYearsState = {\r\n availableOrganisationYears: number[];\r\n};\r\n\r\nclass AvailableOrganisationYears extends Component {\r\n constructor(props: TAvailableOrganisationYearsProps) {\r\n super(props);\r\n\r\n this.state = {\r\n availableOrganisationYears: [],\r\n };\r\n }\r\n\r\n getAvailableYears(): void {\r\n this.props.organisationActions.GetAvailableOrganisationYears(\r\n this.props.organisationIdentity,\r\n this.onGetAvailableOrganisationYearsSuccess\r\n );\r\n }\r\n\r\n componentDidMount(): void {\r\n if (this.props.organisationIdentity && this.props.organisationIdentity.length > 0) {\r\n this.getAvailableYears();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: TAvailableOrganisationYearsProps): void {\r\n if (this.props.organisationIdentity !== prevProps.organisationIdentity) {\r\n this.getAvailableYears();\r\n }\r\n }\r\n\r\n onGetAvailableOrganisationYearsSuccess = (data: number[]): void => {\r\n this.setState({\r\n availableOrganisationYears: data,\r\n });\r\n this.props.handleYearChange(this.state.availableOrganisationYears[0]);\r\n };\r\n\r\n handleYearChange = (e: React.ChangeEvent): void => {\r\n this.props.handleYearChange(parseInt(e.target.value));\r\n };\r\n\r\n render(): JSX.Element {\r\n return (\r\n \r\n {this.state.availableOrganisationYears &&\r\n this.state.availableOrganisationYears.map((year, index) => (\r\n \r\n ))}\r\n \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n organisationActions: bindActionCreators(actions, dispatch) as IOrganisationActions,\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(AvailableOrganisationYears) as React.ComponentType;\r\n","import { Button, Input } from \"reactstrap\";\r\n\r\nimport { IOrganisationStatus } from \"../../../redux/organisationBenchmark/organisationBenchmark.types\";\r\nimport React from \"react\";\r\nimport { Trans } from \"react-i18next\";\r\n\r\ntype TResultStatusesProps = {\r\n onChange: (status: number) => void;\r\n onSave: () => Promise;\r\n statuses: IOrganisationStatus[];\r\n savedStatus: number;\r\n currentStatus: number;\r\n};\r\n\r\ntype TResultStatusesState = {\r\n isSaving: boolean;\r\n};\r\n\r\nclass ResultStatuses extends React.Component {\r\n constructor(props: TResultStatusesProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isSaving: false,\r\n };\r\n }\r\n\r\n onChangeStatus = (event: React.ChangeEvent): void => {\r\n const currentStatus = parseInt(event.target.value, 10);\r\n this.props.onChange(currentStatus);\r\n };\r\n\r\n onSave = (): void => {\r\n this.setState({ isSaving: true });\r\n\r\n this.props.onSave().then(() => {\r\n this.setState({ isSaving: false });\r\n });\r\n };\r\n\r\n renderSaveButton(): JSX.Element {\r\n const { currentStatus, savedStatus } = this.props;\r\n if (currentStatus === savedStatus) {\r\n return <>;\r\n }\r\n\r\n const { isSaving } = this.state;\r\n return (\r\n \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n const { statuses, currentStatus } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {statuses.map((status, index) => (\r\n \r\n ))}\r\n \r\n {this.renderSaveButton()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ResultStatuses;\r\n","import React, { FunctionComponent } from \"react\";\r\n\r\nimport Highcharts from \"highcharts\";\r\nimport HighchartsReact from \"highcharts-react-official\";\r\nimport sunburst from \"highcharts/modules/sunburst.js\";\r\n\r\nsunburst(Highcharts);\r\n\r\ntype TGraphProps = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data: any;\r\n};\r\n\r\nconst SunburstGraph: FunctionComponent = ({ data }) => {\r\n const options = {\r\n chart: {\r\n height: \"80%\",\r\n },\r\n title: {\r\n text: \"\",\r\n },\r\n allowTraversingTree: true,\r\n credits: false,\r\n subtitle: {\r\n text: \"\",\r\n },\r\n tooltip: {\r\n headerFormat: \"\",\r\n pointFormat: \"{point.name}\",\r\n },\r\n series: [\r\n {\r\n type: \"sunburst\",\r\n data: data,\r\n allowDrillToNode: false,\r\n cursor: \"pointer\",\r\n dataLabels: {\r\n format: \"{point.name}\",\r\n rotation: \"circular\",\r\n style: {\r\n fontWeight: \"normal\",\r\n textOutline: \"none\",\r\n color: \"#fff\",\r\n },\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default SunburstGraph;\r\n","import * as AppActions from \"../../../redux/app/app.actions\";\r\nimport * as benchmarkActions from \"../../../redux/organisationBenchmark/organisationBenchmark.actions\";\r\nimport * as organisationsActions from \"../../../redux/organisation/organisation.actions\";\r\nimport * as questionnaireActions from \"../../../redux/questionnaire/questionnaire.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { IAppActions, IAppState } from \"../../../redux/app/app.types\";\r\nimport {\r\n IOrganisationStatus,\r\n IResultDimension,\r\n IResultQuestion,\r\n IResultResponse,\r\n IResultsActions,\r\n OrganisationResultStatus,\r\n} from \"../../../redux/organisationBenchmark/organisationBenchmark.types\";\r\nimport {\r\n IQuestionnaireActions,\r\n QuestionEntity,\r\n QuestionnaireModel,\r\n} from \"../../../redux/questionnaire/questionnaire.types\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport { IOrganisationActions } from \"../../../redux/organisation/organisation.types\";\r\nimport Loader from \"../../../components/loader.component\";\r\nimport OrganisationBenchmark from \"./organisationBenchmark.component\";\r\nimport { ReduxState } from \"../../../redux/reducers\";\r\nimport ResultAuditor from \"./resultAuditor.component\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { Trans } from \"react-i18next\";\r\nimport { connect } from \"react-redux\";\r\n\r\ntype TOrganisationBenchmarkContainerOwnProps = {\r\n organisationIdentity: string;\r\n showStatuses: boolean;\r\n isAuditor: boolean;\r\n};\r\n\r\ntype TOrganisationBenchmarkContainerProps =\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n RouteComponentProps &\r\n TOrganisationBenchmarkContainerOwnProps;\r\n\r\ntype TOrganisationBenchmarkContainerState = {\r\n year: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n data: IResultResponse;\r\n status: OrganisationResultStatus;\r\n savedStatus: number;\r\n statuses: IOrganisationStatus[];\r\n hasResultsLoading: boolean;\r\n hasResults: boolean;\r\n questions: Array;\r\n};\r\n\r\nenum EInnovativeColors {\r\n INNOVATIVE = \"#00AF50\",\r\n NOT_INNOVATIVE = \"#C00000\",\r\n}\r\n\r\ninterface IHighchartElement {\r\n id: string;\r\n parent?: string;\r\n name: string;\r\n color: string;\r\n value?: number;\r\n}\r\n\r\nclass OrganisationBenchmarkContainer extends Component<\r\n TOrganisationBenchmarkContainerProps,\r\n TOrganisationBenchmarkContainerState\r\n> {\r\n constructor(props: TOrganisationBenchmarkContainerProps) {\r\n super(props);\r\n\r\n this.state = {\r\n year: new Date().getFullYear(),\r\n data: { isInnovative: false, dimensions: [], organisationResultStatus: 1 },\r\n status: 0,\r\n statuses: [],\r\n savedStatus: 0,\r\n hasResultsLoading: true,\r\n hasResults: false,\r\n questions: [],\r\n };\r\n this.onSuccessGetQuestionnaire = this.onSuccessGetQuestionnaire.bind(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n const { isAuditor } = this.props;\r\n\r\n this.props.resultsActions.GetOrganisationStatuses((statuses: IOrganisationStatus[]) => {\r\n if (isAuditor) {\r\n const filteredStatuses = statuses.filter(function (status) {\r\n return status.name.toLowerCase() !== \"open\";\r\n });\r\n\r\n this.setState({ statuses: filteredStatuses });\r\n } else {\r\n this.setState({ statuses });\r\n }\r\n });\r\n\r\n this.props.organisationActions.HasOrganisationResults(this.props.organisationIdentity, (hasResults: boolean) => {\r\n this.setState({ hasResultsLoading: false, hasResults: hasResults });\r\n });\r\n }\r\n\r\n getColorByIsInnovative = (isInnovative: boolean): string =>\r\n isInnovative ? EInnovativeColors.INNOVATIVE : EInnovativeColors.NOT_INNOVATIVE;\r\n\r\n convertQuestionsToHighchartsData = (dimensionIndex: string, questions: IResultQuestion[]): IHighchartElement[] =>\r\n questions.map((question, questionIndex) => ({\r\n id: `${dimensionIndex}.${questionIndex}`,\r\n parent: dimensionIndex,\r\n name: question.name,\r\n color: this.getColorByIsInnovative(question.isInnovative),\r\n value: 1, // need it for Highcharts\r\n }));\r\n\r\n convertApiResponseToHighchartsData = (apiResponse: IResultResponse): IHighchartElement[] => {\r\n const rootElement = {\r\n id: \"0\",\r\n name: \" \",\r\n color: \"transparent\",\r\n };\r\n\r\n let data = [rootElement];\r\n\r\n if (!apiResponse) {\r\n return data;\r\n }\r\n\r\n apiResponse.dimensions.forEach((dimension: IResultDimension, dimensionIndex: number) => {\r\n const dimensionElement = {\r\n id: (dimensionIndex + 1).toString(),\r\n name: dimension.name,\r\n parent: rootElement.id,\r\n color: this.getColorByIsInnovative(dimension.isInnovative),\r\n };\r\n\r\n const questionsElements = this.convertQuestionsToHighchartsData(dimensionElement.id, dimension.questions);\r\n data = [...data, dimensionElement, ...questionsElements];\r\n });\r\n\r\n return data;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onGetResultsSuccess = (data: IResultResponse): void => {\r\n const { organisationResultStatus } = data;\r\n this.setState({ data, savedStatus: organisationResultStatus, status: organisationResultStatus });\r\n };\r\n\r\n getResults = (year: number): void => {\r\n this.props.resultsActions.GetResults(this.props.organisationIdentity, year, this.onGetResultsSuccess);\r\n };\r\n getQuestionnaire = (year: number): void => {\r\n this.props.questionnaireActions.GetQuestionnaire(\r\n this.props.organisationIdentity,\r\n year,\r\n this.onSuccessGetQuestionnaire\r\n );\r\n };\r\n\r\n onChangeYear = (year: number): void => {\r\n this.setState({\r\n year,\r\n data: { isInnovative: false, dimensions: [], organisationResultStatus: 1 },\r\n });\r\n this.getResults(year);\r\n this.getQuestionnaire(year);\r\n };\r\n onSuccessGetQuestionnaire(data: QuestionnaireModel): void {\r\n this.setState({\r\n questions: data.questions,\r\n });\r\n }\r\n\r\n renderLoader(condition: boolean): JSX.Element {\r\n if (condition) {\r\n return ;\r\n }\r\n\r\n return <>;\r\n }\r\n\r\n onSaveStatus = (): Promise => {\r\n const { year, status } = this.state;\r\n const { organisationIdentity } = this.props;\r\n\r\n const promise = new Promise((resolve, reject) => {\r\n const onResolve = (): void => {\r\n this.setState({ savedStatus: status });\r\n resolve();\r\n };\r\n\r\n this.props.resultsActions.SaveOrganisationStatus(organisationIdentity, year, status, onResolve, reject);\r\n });\r\n\r\n return promise;\r\n };\r\n renderContent(): JSX.Element {\r\n const { data, statuses, savedStatus, status, questions, year } = this.state;\r\n const showLoader = data === null || statuses.length === 0;\r\n\r\n return (\r\n <>\r\n {this.renderLoader(showLoader)}\r\n \r\n this.setState({ status })}\r\n onSaveStatus={this.onSaveStatus}\r\n savedStatus={savedStatus}\r\n currentStatus={status}\r\n statuses={statuses}\r\n />\r\n {(status === OrganisationResultStatus.Rejected || status === OrganisationResultStatus.Approved) && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n const { hasResultsLoading, hasResults } = this.state;\r\n\r\n if (hasResultsLoading) {\r\n return ;\r\n }\r\n\r\n if (!hasResults) {\r\n return ;\r\n }\r\n\r\n return this.renderContent();\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n resultsActions: bindActionCreators(benchmarkActions, dispatch) as IResultsActions,\r\n organisationActions: bindActionCreators(organisationsActions, dispatch) as IOrganisationActions,\r\n questionnaireActions: bindActionCreators(questionnaireActions, dispatch) as IQuestionnaireActions,\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(connect<{}, TMapDispatchToProps, {}, ReduxState>(null, mapDispatchToProps));\r\n\r\nexport default (enhance(OrganisationBenchmarkContainer) as unknown) as React.ComponentType<\r\n TOrganisationBenchmarkContainerOwnProps\r\n>;\r\n","import { Alert, Card, CardBody, CardHeader, Col, Row } from \"reactstrap\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport AvailableOrganisationYears from \"../../../components/availableOrganisationYears.component\";\r\nimport EQuestionnaireStatuses from \"../../../core/enums/questionnaireStatuses.enum\";\r\nimport { IOrganisationStatus } from \"../../../redux/organisationBenchmark/organisationBenchmark.types\";\r\nimport ResultStatuses from \"./resultStatuses.component\";\r\nimport SunburstGraph from \"./sunburstGraph.component\";\r\nimport { Trans } from \"react-i18next\";\r\n\r\ntype TOrganisationBenchmarkProps = {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n graphData: any;\r\n isInnovative: boolean;\r\n organisationId: string;\r\n onChangeYear: (selectedYear: number) => void;\r\n onSaveStatus: () => Promise;\r\n onChangeStatus: (status: number) => void;\r\n statuses: IOrganisationStatus[];\r\n showStatuses: boolean;\r\n savedStatus: number;\r\n currentStatus: number;\r\n};\r\n\r\ntype TOrganisationBenchmarkState = {};\r\n\r\nclass OrganisationBenchmark extends Component {\r\n renderInnovativeMessage(): JSX.Element {\r\n return (\r\n <>\r\n

\r\n \r\n

\r\n \r\n via \r\n
Toelichting:
\r\n
  • Bij een dimensie met 1 kernbegrip: een score van 3 of hoger
  • \r\n
  • \r\n Bij een dimensie met meerdere kernbegrippen: de som van de kernbegrippen + 1. Hierbij geldt dat elk\r\n kernbegrip een score heeft van 3 of hoger.\r\n
  • \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n renderNonInnovativeMessage(): JSX.Element {\r\n return (\r\n <>\r\n

    \r\n \r\n

    \r\n \r\n halen betekent geen\r\n geen\r\n \r\n
    Toelichting:
    \r\n
  • Bij een dimensie met 1 kernbegrip: een score van 3 of hoger
  • \r\n
  • \r\n Bij een dimensie met meerdere kernbegrippen: de som van de kernbegrippen + 1. Hierbij geldt dat elk\r\n kernbegrip een score heeft van 3 of hoger.\r\n
  • \r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n renderDropdowns(): JSX.Element {\r\n return (\r\n \r\n {this.renderYearDropdown()}\r\n {this.renderStatusesDropdown()}\r\n \r\n );\r\n }\r\n\r\n renderYearDropdown(): JSX.Element {\r\n const { onChangeYear, organisationId } = this.props;\r\n\r\n return ;\r\n }\r\n\r\n renderStatusesDropdown(): JSX.Element {\r\n const { onChangeStatus, onSaveStatus, statuses, showStatuses, currentStatus, savedStatus } = this.props;\r\n if (showStatuses === false) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderRejectedMessage(): JSX.Element {\r\n return (\r\n
    \r\n

    \r\n \r\n

    \r\n \r\n Ga hiervoor naar \r\n
    Toelichting:
    \r\n
  • Bij een dimensie met 1 kernbegrip: een score van 3 of hoger
  • \r\n
  • \r\n Bij een dimensie met meerdere kernbegrippen: de som van de kernbegrippen + 1. Hierbij geldt dat elk\r\n kernbegrip een score heeft van 3 of hoger.\r\n
  • \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderApprovedMessage(): JSX.Element {\r\n return (\r\n
    \r\n

    \r\n \r\n

    \r\n \r\n Toelichting:
    Toelichting:
    \r\n
  • Bij een dimensie met 1 kernbegrip: een score van 3 of hoger
  • \r\n
  • \r\n Bij een dimensie met meerdere kernbegrippen: de som van de kernbegrippen + 1. Hierbij geldt dat elk\r\n kernbegrip een score heeft van 3 of hoger.\r\n
  • \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderMessage(): JSX.Element {\r\n const { currentStatus, statuses } = this.props;\r\n\r\n if (!statuses || statuses.length === 0) {\r\n return <>;\r\n }\r\n\r\n const currentStatusName = statuses.find((status) => status.id === currentStatus);\r\n if (currentStatusName?.name === EQuestionnaireStatuses.Approved) {\r\n return this.renderApprovedMessage();\r\n }\r\n\r\n if (currentStatusName?.name === EQuestionnaireStatuses.Rejected) {\r\n return this.renderRejectedMessage();\r\n }\r\n\r\n if (this.props.isInnovative) {\r\n return this.renderInnovativeMessage();\r\n }\r\n\r\n return this.renderNonInnovativeMessage();\r\n }\r\n\r\n renderResults(): JSX.Element {\r\n const { graphData } = this.props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {this.renderMessage()}\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n onChangeYear = (evt: React.ChangeEvent): void => {\r\n this.props.onChangeYear(parseInt(evt.target.value, 10));\r\n };\r\n\r\n render(): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {this.renderDropdowns()}\r\n {this.renderResults()}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default OrganisationBenchmark;\r\n","import * as AppActions from \"../../../redux/app/app.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { Card, CardBody, CardTitle, Table, Tooltip } from \"reactstrap\";\r\nimport { IAppActions, IAppState } from \"../../../redux/app/app.types\";\r\nimport {\r\n ParticipantDetails,\r\n QuestionEntity,\r\n QuestionScoreDetails,\r\n QuestionType,\r\n} from \"../../../redux/questionnaire/questionnaire.types\";\r\nimport React, { Component, Fragment, useState } from \"react\";\r\n\r\nimport { ReduxState } from \"../../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { Trans } from \"react-i18next\";\r\nimport { connect } from \"react-redux\";\r\n\r\ntype TResultAuditorOwnProps = {\r\n organisationIdentity: string;\r\n year: number;\r\n questions: Array;\r\n};\r\ntype TResultAuditorProps =\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType & IAppState & ReduxState & RouteComponentProps & TResultAuditorOwnProps;\r\n\r\ntype TResultAuditorState = {};\r\nconst TooltipItem = (props: any): JSX.Element => {\r\n const { placement, text, id } = props;\r\n const [tooltipOpen, setTooltipOpen] = useState(false);\r\n\r\n const toggle = () => setTooltipOpen(!tooltipOpen);\r\n\r\n if (text !== \"\" && text !== undefined) {\r\n return (\r\n \r\n \r\n   \r\n \r\n \r\n {text}\r\n \r\n \r\n );\r\n } else {\r\n return <>;\r\n }\r\n};\r\nclass ResultAuditor extends Component {\r\n componentDidMount(): void {}\r\n renderChildrenQuestions(questionChild: QuestionEntity): JSX.Element {\r\n if (questionChild.questionType === QuestionType.IntroQuestion) {\r\n return (\r\n \r\n {questionChild.text}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n   \r\n {questionChild.text}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {this.renderQuestionValue(questionChild.questionScoreDetails)}\r\n {questionChild.questionScoreDetails?.overallScore &&\r\n this.renderQuestionScoreDetails(questionChild.questionScoreDetails)}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n renderQuestionValue(questionScoreDetails: QuestionScoreDetails | undefined): JSX.Element {\r\n if (!questionScoreDetails?.overallScore) {\r\n return

    ;\r\n }\r\n return

    {questionScoreDetails?.overallScore.toFixed(2)}

    ;\r\n }\r\n\r\n renderQuestionScoreDetails(questionScoreDetails: QuestionScoreDetails | undefined): JSX.Element {\r\n if (!questionScoreDetails?.overallScore) {\r\n return <>;\r\n }\r\n\r\n const hasParticipants =\r\n questionScoreDetails?.participantsDetails != null && questionScoreDetails?.participantsDetails.length > 0;\r\n\r\n if (hasParticipants) {\r\n return (\r\n <>\r\n {questionScoreDetails?.participantsDetails.map((participantDetails: ParticipantDetails) => (\r\n

    \r\n {\" \"}\r\n {participantDetails.type} : {participantDetails.numberOfParticipants}{\" \"}\r\n

    \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return <>;\r\n }\r\n\r\n renderQuestion(question: QuestionEntity): JSX.Element {\r\n switch (question.questionType) {\r\n case QuestionType.IntroQuestion:\r\n return (\r\n \r\n {question.header}\r\n \r\n );\r\n case QuestionType.MultiResponse:\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {question.header}
    \r\n
    \r\n
    \r\n \r\n \r\n {this.renderQuestionValue(question.questionScoreDetails)}\r\n {question.questionScoreDetails?.overallScore &&\r\n this.renderQuestionScoreDetails(question.questionScoreDetails)}\r\n \r\n {question.norm}\r\n {question.answer?.auditorScore}\r\n \r\n \r\n \r\n \r\n {question.children.map((children: QuestionEntity) => this.renderChildrenQuestions(children))}\r\n
    \r\n );\r\n default:\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    {question.header}
    \r\n
    \r\n
    \r\n \r\n \r\n {this.renderQuestionValue(question.questionScoreDetails)}\r\n {question.questionScoreDetails?.overallScore &&\r\n this.renderQuestionScoreDetails(question.questionScoreDetails)}\r\n \r\n {question.norm}\r\n {question.answer?.auditorScore}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n render(): JSX.Element {\r\n const { questions } = this.props;\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {this.props.year}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {questions.map((question: QuestionEntity) => this.renderQuestion(question))}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(connect<{}, TMapDispatchToProps, {}, ReduxState>(null, mapDispatchToProps));\r\n\r\nexport default (enhance(ResultAuditor) as unknown) as React.ComponentType;\r\n","import { IPFAuditor } from \"../../core/constants/roles.constants\";\r\nimport OrganisationBenchmarkContainer from \"./shared/organisationBenchmarkContainer.component\";\r\nimport React from \"react\";\r\nimport UserService from \"../../core/services/user.service\";\r\n\r\ntype TAdminOrganisationBenchmark = {};\r\n\r\ntype AdminOrganisationBenchmarkState = {\r\n isLoading: boolean;\r\n isAuditor: boolean;\r\n};\r\n\r\nclass AdminOrganisationBenchmark extends React.Component {\r\n constructor(props: TAdminOrganisationBenchmark) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true,\r\n isAuditor: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n UserService.isInRole(IPFAuditor).then((result) => {\r\n this.setState({ isAuditor: result, isLoading: false });\r\n });\r\n }\r\n\r\n render(): JSX.Element {\r\n if (this.state.isLoading) {\r\n return <>;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const { organisationIdentity } = (this.props as any).match.params;\r\n const { isAuditor } = this.state;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AdminOrganisationBenchmark;\r\n","export const IPFOrganisation = \"IPF-Organisation\";\r\nexport const IPFAuditor = \"IPF-Auditor\";\r\n","import { AuditorActionResponseTypes, AuditorActionTypes, EAuditorActionTypes } from \"./auditor.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nimport { IAuditor } from \"./auditor.types\";\r\n\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nexport const GetAuditors = (onSuccess?: Function, onError?: Function): AuditorActionTypes => ({\r\n type: EAuditorActionTypes.GET_AUDITORS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/auditors\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.auditor.ERROR_GET_AUDITORS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAuditorActionTypes.GET_AUDITORS_SUCCESS,\r\n payload: response.data,\r\n } as AuditorActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAuditorActionTypes.GET_AUDITORS_ERROR,\r\n payload: error.response,\r\n } as AuditorActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\nexport const GetAuditor = (auditorId: string, onSuccess?: Function, onError?: Function): AuditorActionTypes => ({\r\n type: EAuditorActionTypes.GET_AUDITOR,\r\n payload: {\r\n request: {\r\n method: \"get\",\r\n showErrors: true,\r\n url: \"/auditors/\" + auditorId,\r\n custom: {\r\n onErrorToastMessage: \"app.messages.auditor.ERROR_GET_AUDITOR\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAuditorActionTypes.GET_AUDITOR_SUCCESS,\r\n payload: response.data,\r\n } as AuditorActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAuditorActionTypes.GET_AUDITOR_ERROR,\r\n payload: error.response,\r\n } as AuditorActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\nexport const CreateAuditor = (auditor: IAuditor, onSuccess?: Function, onError?: Function): AuditorActionTypes => ({\r\n type: EAuditorActionTypes.POST_AUDITOR,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"post\",\r\n url: \"/auditors/\",\r\n data: auditor,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.auditor.CREATION_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.auditor.ERROR_POST_AUDITOR\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAuditorActionTypes.POST_AUDITOR_SUCCESS,\r\n ...{ name: \"auditor\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAuditorActionTypes.POST_AUDITOR_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\nexport const DeleteAuditor = (auditorId: string, onSuccess?: Function, onError?: Function): AuditorActionTypes => ({\r\n type: EAuditorActionTypes.DELETE_AUDITOR,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"delete\",\r\n url: \"/auditors/\" + auditorId,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.auditor.DELETE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.auditor.ERROR_DELETE_AUDITOR\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAuditorActionTypes.DELETE_AUDITOR_SUCCESS,\r\n ...{ name: \"auditor\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAuditorActionTypes.DELETE_AUDITOR_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const UpdateAuditor = (\r\n auditorId: string,\r\n auditor: IAuditor,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): AuditorActionTypes => ({\r\n type: EAuditorActionTypes.PUT_AUDITOR,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"put\",\r\n url: \"/auditors/\" + auditorId,\r\n data: auditor,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.auditor.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.auditor.ERROR_PUT_AUDITOR\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: EAuditorActionTypes.PUT_AUDITOR_SUCCESS,\r\n ...{ name: \"auditor\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: EAuditorActionTypes.PUT_AUDITOR_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n","import * as auditorsActions from \"../../redux/auditor/auditor.actions\";\r\n\r\nimport { AnyAction, Dispatch, compose } from \"redux\";\r\nimport { Button, Card, CardBody, CardHeader, FormGroup, Input } from \"reactstrap\";\r\nimport { IAuditor, IAuditorActions, IFormEntryAuditor } from \"../../redux/auditor/auditor.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { InputType } from \"reactstrap/lib/Input\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst defaultInputValue = \"\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TAuditorProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\ninterface IAuditorState {\r\n auditorModel: IAuditor;\r\n editMode: boolean;\r\n isAuditorRole: boolean;\r\n}\r\n\r\nclass Auditor extends Component {\r\n constructor(props: TAuditorProps) {\r\n super(props);\r\n\r\n this.state = {\r\n auditorModel: {},\r\n editMode: false,\r\n isAuditorRole: false,\r\n };\r\n\r\n this.save = this.save.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSetCustomValidity = this.handleSetCustomValidity.bind(this);\r\n this.successAuditorCallback = this.successAuditorCallback.bind(this);\r\n }\r\n\r\n componentDidMount = (): void => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const auditorId = (this.props.match.params as any).id;\r\n\r\n if (auditorId !== null && auditorId !== undefined) {\r\n // set edit mode\r\n this.setState({\r\n editMode: true,\r\n });\r\n this.props.actions.GetAuditor(auditorId, this.sucessGetAuditorCallback);\r\n } else {\r\n //set create mode\r\n this.setState({\r\n editMode: false,\r\n });\r\n }\r\n };\r\n\r\n sucessGetAuditorCallback = (auditor: IAuditor): void => {\r\n this.setState({\r\n auditorModel: auditor,\r\n });\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n save = (event: any): void => {\r\n event.preventDefault();\r\n if (this.state.editMode === false) {\r\n // create mode\r\n this.props.actions.CreateAuditor(this.state.auditorModel, this.successAuditorCallback);\r\n } else {\r\n // edit mode\r\n this.props.actions.UpdateAuditor(\r\n this.state.auditorModel.id,\r\n this.state.auditorModel,\r\n this.successAuditorCallback\r\n );\r\n }\r\n };\r\n\r\n successAuditorCallback = (): void => {\r\n const { history } = this.props;\r\n history.push(\"/auditors/\");\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleChange = (event: any): void => {\r\n const { target } = event;\r\n\r\n target.setCustomValidity(\"\");\r\n\r\n if (target.type === \"text\" || target.type === \"email\" || target.type === \"textarea\") {\r\n this.setState({\r\n auditorModel: { ...this.state.auditorModel, [target.name]: target.value },\r\n });\r\n } else if (target.type === \"number\") {\r\n this.setState({\r\n auditorModel: { ...this.state.auditorModel, [target.name]: parseInt(target.value) },\r\n });\r\n }\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleSetCustomValidity = (e: any): boolean => {\r\n const { t } = this.props;\r\n const { required } = e.target;\r\n if (required) {\r\n if (!e.target.value) {\r\n e.target.setCustomValidity(t(\"common.validationMessages.MANDATORY_FIELD\"));\r\n }\r\n } else {\r\n e.target.setCustomValidity(\"\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getFormStructure = (): IFormEntryAuditor[] => {\r\n return [\r\n {\r\n labelKey: \"auditor.EMAIL\",\r\n name: \"email\",\r\n required: true,\r\n readonly: true,\r\n value: this.state.auditorModel.email,\r\n inputType: \"email\" as InputType,\r\n },\r\n ];\r\n };\r\n\r\n handleBackClick = (): void => {\r\n const { history } = this.props;\r\n history.push(\"/auditors\");\r\n };\r\n\r\n getAuditorIdentity = (): string => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const { id } = this.props.match.params as any;\r\n return id;\r\n };\r\n\r\n render(): JSX.Element {\r\n const formGroups = this.getFormStructure();\r\n const { isLoadingAuditor } = this.props;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {!this.state.isAuditorRole && this.state.editMode === false && (\r\n \r\n )}\r\n {this.state.editMode && }\r\n \r\n
    \r\n \r\n
    \r\n \r\n {isLoadingAuditor && }\r\n
    \r\n {formGroups.map((formGroupProperties) => (\r\n \r\n \r\n {\r\n return undefined;\r\n }\r\n }\r\n onChange={this.handleChange}\r\n />\r\n \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n isLoadingAuditor: state.auditors.isLoadingAuditor,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(auditorsActions, dispatch) as IAuditorActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Auditor);\r\n","import * as auditorsActions from \"../../redux/auditor/auditor.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { BootstrapTable, TableHeaderColumn } from \"react-bootstrap-table\";\r\nimport { Button, Card, CardBody, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\";\r\nimport { IAuditor, IAuditorActions } from \"../../redux/auditor/auditor.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport Loader from \"../../components/loader.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TAuditorProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\ninterface IOwnState {\r\n auditors: IAuditor[];\r\n modal: boolean;\r\n deleteOrgId: string;\r\n isAuditorRole: boolean;\r\n}\r\n\r\nclass Auditors extends Component {\r\n constructor(props: TAuditorProps) {\r\n super(props);\r\n this.goToEditFunction = this.goToEditFunction.bind(this);\r\n this.editFunction = this.editFunction.bind(this);\r\n this.goToDeleteFunction = this.goToDeleteFunction.bind(this);\r\n this.removeFunction = this.removeFunction.bind(this);\r\n this.deleteAuditorItem = this.deleteAuditorItem.bind(this);\r\n\r\n this.closeModal = this.closeModal.bind(this);\r\n }\r\n\r\n state: IOwnState = {\r\n auditors: [],\r\n modal: false,\r\n deleteOrgId: \"\",\r\n isAuditorRole: false,\r\n };\r\n componentDidMount = (): void => {\r\n this.props.actions.GetAuditors(this.successCallback);\r\n };\r\n\r\n successCallback = (data?: IAuditor[]): void => {\r\n this.setState({\r\n auditors: data,\r\n });\r\n };\r\n\r\n goToEditFunction = (row: IAuditor): void => {\r\n const { history } = this.props;\r\n const id = row.id;\r\n history.push(\"/auditor/\" + id);\r\n };\r\n\r\n deleteAuditorItem = (): void => {\r\n const id = this.state.deleteOrgId;\r\n this.setState({\r\n modal: false,\r\n });\r\n this.props.actions.DeleteAuditor(id, this.successDeleteCallback);\r\n };\r\n\r\n closeModal = (): void => {\r\n this.setState({\r\n modal: false,\r\n deleteOrgId: \"\",\r\n });\r\n };\r\n\r\n goToDeleteFunction = (row: IAuditor): void => {\r\n const id = row.id;\r\n\r\n this.setState({\r\n modal: true,\r\n deleteOrgId: id,\r\n });\r\n };\r\n\r\n successDeleteCallback = (): void => {\r\n const { history } = this.props;\r\n this.setState({\r\n modal: false,\r\n deleteOrgId: \"\",\r\n });\r\n history.push(\"/auditors/\");\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n editFunction = (cell: any, row: IAuditor): JSX.Element => {\r\n const { t } = this.props;\r\n return (\r\n {\r\n this.goToEditFunction(row);\r\n }}\r\n className=\"btn\"\r\n >\r\n \r\n \r\n );\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n removeFunction = (cell: any, row: IAuditor): JSX.Element => {\r\n const { t } = this.props;\r\n return (\r\n {\r\n this.goToDeleteFunction(row);\r\n }}\r\n className=\"btn\"\r\n >\r\n \r\n \r\n );\r\n };\r\n\r\n render(): JSX.Element {\r\n const { t } = this.props;\r\n const { isLoadingAuditors } = this.props;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {isLoadingAuditors && }\r\n {!this.state.isAuditorRole && (\r\n {\r\n const { history } = this.props;\r\n history.push(\"/auditor/\");\r\n }}\r\n >\r\n \r\n  \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!this.state.isAuditorRole && (\r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n isLoadingAuditors: state.auditors.isLoadingAuditors,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(auditorsActions, dispatch) as IAuditorActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Auditors);\r\n","import { ENormActionTypes, NormActionResponseTypes, NormActionTypes } from \"./norm.types\";\r\nimport { IAxiosOnError, IAxiosOnSuccess } from \"../../core/types/axios.types\";\r\n\r\nimport { IQuestionnaireNorm } from \"./norm.types\";\r\n\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nexport const GetNorms = (onSuccess?: Function, onError?: Function): NormActionTypes => ({\r\n type: ENormActionTypes.GET_NORMS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n url: \"/norms\",\r\n custom: {\r\n onErrorToastMessage: \"app.messages.norm.ERROR_GET_NORMS\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: ENormActionTypes.GET_NORMS_SUCCESS,\r\n payload: response.data,\r\n } as NormActionResponseTypes);\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: ENormActionTypes.GET_NORMS_ERROR,\r\n payload: error.response,\r\n } as NormActionResponseTypes);\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const UpdateNorms = (\r\n questionnaireNorm: IQuestionnaireNorm,\r\n onSuccess?: Function,\r\n onError?: Function\r\n): NormActionTypes => ({\r\n type: ENormActionTypes.PUT_NORMS,\r\n payload: {\r\n request: {\r\n showErrors: true,\r\n method: \"put\",\r\n url: \"/norms/\",\r\n data: questionnaireNorm,\r\n custom: {\r\n onSuccessToastMessage: \"app.messages.norm.UPDATE_SUCCESS\",\r\n onErrorToastMessage: \"app.messages.norm.ERROR_PUT_NORM\",\r\n },\r\n },\r\n options: {\r\n onSuccess({ getState, dispatch, response }: IAxiosOnSuccess): void {\r\n if (onSuccess) onSuccess(response.data);\r\n dispatch({\r\n type: ENormActionTypes.PUT_NORMS_SUCCESS,\r\n ...{ name: \"questionnaireNorm\", payload: response.data },\r\n });\r\n },\r\n onError({ getState, dispatch, error }: IAxiosOnError): void {\r\n if (onError) onError(error.response);\r\n dispatch({\r\n type: ENormActionTypes.PUT_NORMS_ERROR,\r\n payload: error.response,\r\n });\r\n },\r\n },\r\n },\r\n});\r\n","import * as normsActions from \"../../redux/norm/norm.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { Card, CardBody } from \"reactstrap\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { INormsActions, IQuestionNorm, TQuestionNormSpecificOwnProps } from \"../../redux/norm/norm.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, withTranslation } from \"react-i18next\";\r\n\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { connect } from \"react-redux\";\r\n\r\ninterface IOwnState {\r\n questionNorm: IQuestionNorm;\r\n}\r\n\r\nclass QuestionNorm extends Component {\r\n // eslint-disable-next-line no-useless-constructor\r\n constructor(props: TQuestionNormSpecificOwnProps) {\r\n super(props);\r\n\r\n this.state = {\r\n questionNorm: { ...this.props },\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n state: IOwnState = {\r\n questionNorm: {},\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleChange = (event: any): void => {\r\n const { target } = event;\r\n\r\n target.setCustomValidity(\"\");\r\n\r\n this.setState({\r\n questionNorm: { ...this.state.questionNorm, [target.name]: parseFloat(target.value) },\r\n });\r\n\r\n if (this.state.questionNorm.id !== undefined) this.props.onChangeNorm(event, this.state.questionNorm.id);\r\n };\r\n\r\n render(): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n \r\n - {this.state.questionNorm.text}\r\n \r\n \r\n \r\n {!this.state.questionNorm.isReadonly && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n isLoadingNorms: state.norms.isLoadingNorms,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(normsActions, dispatch) as INormsActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(QuestionNorm) as React.ComponentType;\r\n","import * as normsActions from \"../../redux/norm/norm.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { Card, CardBody } from \"reactstrap\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport {\r\n IDimensionNorm,\r\n INormsActions,\r\n IQuestionNorm,\r\n TDimensionNormSpecificOwnProps,\r\n} from \"../../redux/norm/norm.types\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport QuestionNorm from \"./questionNorm.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { SetQuestionNorm } from \"../../redux/norm/norm.extended.actions\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TNormProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\ntype TDimensionNormProps = ReturnType &\r\n ReturnType &\r\n ReduxState &\r\n WithTranslation &\r\n RouteComponentProps &\r\n TDimensionNormSpecificOwnProps;\r\n\r\ninterface IOwnState {\r\n dimensionNorm: IDimensionNorm;\r\n}\r\n\r\nclass DimensionNorm extends Component {\r\n // eslint-disable-next-line no-useless-constructor\r\n constructor(props: TDimensionNormProps) {\r\n super(props);\r\n\r\n this.state = {\r\n dimensionNorm: { ...this.props },\r\n };\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.setNormValue = this.setNormValue.bind(this);\r\n }\r\n\r\n state: IOwnState = {\r\n dimensionNorm: { questionNorms: [] },\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n componentDidMount = (): void => { };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleChange = (event: any): void => {\r\n const { target } = event;\r\n\r\n target.setCustomValidity(\"\");\r\n this.setState({\r\n dimensionNorm: { ...this.state.dimensionNorm, [target.name]: parseFloat(target.value) },\r\n });\r\n if (this.state.dimensionNorm.id !== undefined) this.props.onChangeNorm(event, this.state.dimensionNorm.id);\r\n };\r\n\r\n setNormValue(event: React.ChangeEvent, questionId: number): void {\r\n const { dispatch } = this.props;\r\n\r\n if (this.state.dimensionNorm.id !== undefined)\r\n SetQuestionNorm(dispatch, this.state.dimensionNorm.id, questionId, parseFloat(event.target.value));\r\n }\r\n render(): JSX.Element {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n - {this.state.dimensionNorm.text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.dimensionNorm.questionNorms.map((questionNorm: IQuestionNorm) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n isLoadingNorms: state.norms.isLoadingNorms,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(normsActions, dispatch) as INormsActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(DimensionNorm) as React.ComponentType;\r\n","import { AnyAction, Dispatch } from \"redux\";\r\nimport { ENormActionTypes, ISetDimensionNormAction, ISetQuestionNormAction } from \"./norm.types\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const SetDimensionNorm = (dispatch: Dispatch, dimensionId: number, norm: number): void => {\r\n dispatch({\r\n type: ENormActionTypes.SET_DIMENSION_NORM,\r\n dimensionId,\r\n norm,\r\n } as ISetDimensionNormAction);\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const SetQuestionNorm = (\r\n dispatch: Dispatch,\r\n dimensionId: number,\r\n questionId: number,\r\n norm: number\r\n): void => {\r\n dispatch({\r\n type: ENormActionTypes.SET_QUESTION_NORM,\r\n dimensionId,\r\n questionId,\r\n norm,\r\n } as ISetQuestionNormAction);\r\n};\r\n","import * as normsActions from \"../../redux/norm/norm.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { Button, Card, CardBody } from \"reactstrap\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { IDimensionNorm, INormsActions, IQuestionnaireNorm } from \"../../redux/norm/norm.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport DimensionNorm from \"./dimensionNorm.component\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { SetDimensionNorm } from \"../../redux/norm/norm.extended.actions\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TNormProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\ninterface IOwnState {\r\n questionnaireNorm: IQuestionnaireNorm;\r\n}\r\n\r\nclass Norms extends Component {\r\n constructor(props: TNormProps) {\r\n super(props);\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.setNormValue = this.setNormValue.bind(this);\r\n }\r\n\r\n state: IOwnState = {\r\n questionnaireNorm: { dimensionNorms: [] },\r\n };\r\n componentDidMount = (): void => {\r\n this.props.actions.GetNorms(this.successCallback);\r\n };\r\n\r\n successCallback = (data?: IQuestionnaireNorm): void => {\r\n this.setState({\r\n questionnaireNorm: data,\r\n });\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleChange = (event: any): void => {\r\n const { target } = event;\r\n\r\n target.setCustomValidity(\"\");\r\n this.setState({\r\n questionnaireNorm: { ...this.state.questionnaireNorm, [target.name]: parseFloat(target.value) },\r\n });\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n save = (event: any): void => {\r\n event.preventDefault();\r\n\r\n this.props.actions.UpdateNorms(this.state.questionnaireNorm, this.successNormsCallback);\r\n };\r\n\r\n successNormsCallback = (): void => {\r\n const { history } = this.props;\r\n history.push(\"/norms/\");\r\n };\r\n\r\n setNormValue(event: React.ChangeEvent, dimensionId: number): void {\r\n const { dispatch } = this.props;\r\n SetDimensionNorm(dispatch, dimensionId, parseFloat(event.target.value));\r\n }\r\n\r\n renderSaveButton(): JSX.Element {\r\n const { isLoadingNorms } = this.props;\r\n return (\r\n <>\r\n {isLoadingNorms && }\r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n {this.renderSaveButton()}\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.questionnaireNorm.dimensionNorms.map((dimensionNorm: IDimensionNorm) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n {this.renderSaveButton()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n isLoadingNorms: state.norms.isLoadingNorms,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(normsActions, dispatch) as INormsActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Norms);\r\n","import * as organisationsActions from \"../../redux/organisation/organisation.actions\";\r\n\r\nimport { AnyAction, Dispatch, compose } from \"redux\";\r\nimport { Button, Card, CardBody, CardHeader, FormGroup, Input } from \"reactstrap\";\r\nimport {\r\n IAccountType,\r\n IFormEntryOrganisation,\r\n IOrganisation,\r\n IOrganisationActions,\r\n} from \"../../redux/organisation/organisation.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { IPFAuditor } from \"../../core/constants/roles.constants\";\r\nimport { InputType } from \"reactstrap/lib/Input\";\r\nimport { Label } from \"reactstrap\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport UserService from \"../../core/services/user.service\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst defaultInputValue = \"\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TOrganisationProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\ninterface IOrgState {\r\n organisationModel: IOrganisation;\r\n accountTypes: IAccountType[];\r\n editMode: boolean;\r\n isAuditorRole: boolean;\r\n}\r\n\r\nclass Organisation extends Component {\r\n constructor(props: TOrganisationProps) {\r\n super(props);\r\n\r\n this.state = {\r\n organisationModel: {\r\n fteamount: 1,\r\n accountTypeId: 1,\r\n totalOrganisationResults: 0,\r\n },\r\n accountTypes: [],\r\n editMode: false,\r\n isAuditorRole: false,\r\n };\r\n\r\n this.save = this.save.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.successCallback = this.successCallback.bind(this);\r\n this.handleSetCustomValidity = this.handleSetCustomValidity.bind(this);\r\n this.successOrganisationCallback = this.successOrganisationCallback.bind(this);\r\n this.handleAccountTypeChange = this.handleAccountTypeChange.bind(this);\r\n this.handleRedirect = this.handleRedirect.bind(this);\r\n }\r\n\r\n componentDidMount = (): void => {\r\n this.props.actions.GetAccountTypes(this.successCallback);\r\n\r\n UserService.isInRole(IPFAuditor).then((result) => {\r\n this.setState({ isAuditorRole: result });\r\n });\r\n };\r\n\r\n successCallback = (data: IAccountType[]): void => {\r\n this.setState({\r\n accountTypes: data,\r\n });\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const orgId = (this.props.match.params as any).id;\r\n\r\n if (orgId !== null && orgId !== undefined) {\r\n // set edit mode\r\n this.setState({\r\n editMode: true,\r\n });\r\n this.props.actions.GetOrganisation(orgId, this.sucessGetOrgCallback);\r\n } else {\r\n //set create mode\r\n this.setState({\r\n editMode: false,\r\n });\r\n }\r\n };\r\n\r\n sucessGetOrgCallback = (organisation: IOrganisation): void => {\r\n this.setState({\r\n organisationModel: organisation,\r\n });\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n save = (event: any): void => {\r\n event.preventDefault();\r\n if (this.state.editMode === false) {\r\n // create mode\r\n this.props.actions.CreateOrganisation(this.state.organisationModel, this.successOrganisationCallback);\r\n } else {\r\n // edit mode\r\n this.props.actions.UpdateOrganisation(\r\n this.state.organisationModel.identity,\r\n this.state.organisationModel,\r\n this.successOrganisationCallback\r\n );\r\n }\r\n };\r\n\r\n successOrganisationCallback = (): void => {\r\n const { history } = this.props;\r\n history.push(\"/organisations/\");\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleChange = (event: any): void => {\r\n const { target } = event;\r\n\r\n target.setCustomValidity(\"\");\r\n\r\n if (target.type === \"text\" || target.type === \"email\" || target.type === \"textarea\") {\r\n this.setState({\r\n organisationModel: { ...this.state.organisationModel, [target.name]: target.value },\r\n });\r\n } else if (target.type === \"number\") {\r\n this.setState({\r\n organisationModel: { ...this.state.organisationModel, [target.name]: parseInt(target.value) },\r\n });\r\n }\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleSetCustomValidity = (e: any): boolean => {\r\n const { t } = this.props;\r\n const { required } = e.target;\r\n if (required) {\r\n if (!e.target.value) {\r\n e.target.setCustomValidity(t(\"common.validationMessages.MANDATORY_FIELD\"));\r\n }\r\n } else {\r\n e.target.setCustomValidity(\"\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n getFormStructure = (): IFormEntryOrganisation[] => {\r\n return [\r\n {\r\n labelKey: \"organisation.NAME\",\r\n name: \"name\",\r\n required: true,\r\n value: this.state.organisationModel.name,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.EMAIL\",\r\n name: \"email\",\r\n required: true,\r\n readonly: true,\r\n value: this.state.organisationModel.email,\r\n inputType: \"email\" as InputType,\r\n },\r\n {\r\n labelKey: \"organisation.POSTCODE\",\r\n name: \"postalCode\",\r\n required: false,\r\n value: this.state.organisationModel.postalCode,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.FTEAMOUNT\",\r\n name: \"fteamount\",\r\n required: false,\r\n value: this.state.organisationModel.fteamount,\r\n inputType: \"number\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.LEGALFORMNAME\",\r\n name: \"legalFormName\",\r\n required: false,\r\n value: this.state.organisationModel.legalFormName,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.PROFESSIONALASSOCIATION\",\r\n name: \"professionalAssociation\",\r\n required: false,\r\n value: this.state.organisationModel.professionalAssociation,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.CITY\",\r\n name: \"city\",\r\n required: false,\r\n value: this.state.organisationModel.city,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.ADDRESS\",\r\n name: \"address\",\r\n required: false,\r\n value: this.state.organisationModel.address,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.PRACTICEREGISTER\",\r\n name: \"practiceRegister\",\r\n required: false,\r\n value: this.state.organisationModel.practiceRegister,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.NETWORKNAME\",\r\n name: \"networkName\",\r\n required: false,\r\n value: this.state.organisationModel.networkName,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.AGBCODE\",\r\n name: \"agbcode\",\r\n required: false,\r\n value: this.state.organisationModel.agbcode,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.REGIONNAME\",\r\n name: \"regionName\",\r\n required: false,\r\n value: this.state.organisationModel.regionName,\r\n inputType: \"text\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n {\r\n labelKey: \"organisation.CONTRACTEDHEALTHINSURERS\",\r\n name: \"contractedHealthInsurers\",\r\n required: false,\r\n value: this.state.organisationModel.contractedHealthInsurers,\r\n inputType: \"textarea\" as InputType,\r\n readonly: this.state.isAuditorRole,\r\n },\r\n ];\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n handleAccountTypeChange = (e: any): void => {\r\n this.setState({\r\n organisationModel: { ...this.state.organisationModel, accountTypeId: parseInt(e.target.value) },\r\n });\r\n };\r\n\r\n handleBackClick = (): void => {\r\n const { history } = this.props;\r\n history.push(\"/organisations\");\r\n };\r\n\r\n getOrganisationIdentity = (): string => {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const { id } = this.props.match.params as any;\r\n return id;\r\n };\r\n\r\n hasUrlOrganisationIdentity = (): boolean => {\r\n return this.getOrganisationIdentity() ? true : false;\r\n };\r\n\r\n handleRedirect = (): void => {\r\n this.props.history.push(\"/admin-benchmark-results/\" + this.getOrganisationIdentity());\r\n };\r\n handleRedirectQuestionnaire = (): void => {\r\n const id = this.getOrganisationIdentity();\r\n\r\n this.props.history.push(\"/auditorQuestionnaire?organisationId=\" + id);\r\n };\r\n\r\n render(): JSX.Element {\r\n const formGroups = this.getFormStructure();\r\n const accountTypes = this.state.accountTypes;\r\n const { isLoadingAccountTypes, isLoadingOrganisation } = this.props.organisations;\r\n const hasResults = this.state.organisationModel.totalOrganisationResults > 0 ?? 0;\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {!this.state.isAuditorRole && this.state.editMode === false && (\r\n \r\n )}\r\n {this.state.editMode && }\r\n \r\n
    \r\n \r\n
    \r\n \r\n {(isLoadingAccountTypes || isLoadingOrganisation) && }\r\n
    \r\n {formGroups.map((formGroupProperties) => (\r\n \r\n \r\n {\r\n return undefined;\r\n }\r\n }\r\n onChange={this.handleChange}\r\n />\r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n {accountTypes.map((option) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n {this.state.isAuditorRole && (\r\n \r\n )}\r\n {this.hasUrlOrganisationIdentity() && hasResults && (\r\n \r\n )}\r\n {!this.state.isAuditorRole && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n organisations: state.organisations,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(organisationsActions, dispatch) as IOrganisationActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Organisation);\r\n","import * as organisationsActions from \"../../redux/organisation/organisation.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { BootstrapTable, TableHeaderColumn } from \"react-bootstrap-table\";\r\nimport { Button, Card, CardBody, Modal, ModalBody, ModalFooter, ModalHeader } from \"reactstrap\";\r\nimport { IOrganisation, IOrganisationActions } from \"../../redux/organisation/organisation.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { IPFAuditor } from \"../../core/constants/roles.constants\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport UserService from \"../../core/services/user.service\";\r\nimport { connect } from \"react-redux\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TOrganisationProps = ReturnType &\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n ReturnType &\r\n ReduxState &\r\n RouteComponentProps &\r\n WithTranslation;\r\n\r\ninterface IOwnState {\r\n organisations: IOrganisation[];\r\n modal: boolean;\r\n deleteOrgId: string;\r\n isAuditorRole: boolean;\r\n}\r\n\r\nclass Organisations extends Component {\r\n constructor(props: TOrganisationProps) {\r\n super(props);\r\n this.goToEditFunction = this.goToEditFunction.bind(this);\r\n this.editFunction = this.editFunction.bind(this);\r\n this.goToDeleteFunction = this.goToDeleteFunction.bind(this);\r\n this.removeFunction = this.removeFunction.bind(this);\r\n this.deleteOrganisationItem = this.deleteOrganisationItem.bind(this);\r\n this.getResults = this.getResults.bind(this);\r\n this.successGetOrganisationResultsCallback = this.successGetOrganisationResultsCallback.bind(this);\r\n\r\n this.closeModal = this.closeModal.bind(this);\r\n }\r\n\r\n state: IOwnState = {\r\n organisations: [],\r\n modal: false,\r\n deleteOrgId: \"\",\r\n isAuditorRole: false,\r\n };\r\n componentDidMount = (): void => {\r\n this.props.actions.GetOrganisations(this.successCallback);\r\n\r\n UserService.isInRole(IPFAuditor).then((result) => {\r\n this.setState({ isAuditorRole: result });\r\n });\r\n };\r\n\r\n successCallback = (data?: IOrganisation[]): void => {\r\n this.setState({\r\n organisations: data,\r\n });\r\n };\r\n getResults = (event: any): void => {\r\n event.preventDefault();\r\n this.props.actions.GetOrganisationResults(this.successGetOrganisationResultsCallback);\r\n };\r\n successGetOrganisationResultsCallback = (data: any): void => {\r\n const { t } = this.props;\r\n const fileName = t(\"organisation.results\") + \"-\" + Date.now().toFixed() + \".csv\";\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(new File([data], fileName));\r\n link.download = fileName;\r\n link.click();\r\n };\r\n\r\n goToEditFunction = (row: IOrganisation): void => {\r\n const { history } = this.props;\r\n const id = row.identity;\r\n history.push(\"/organisation/\" + id);\r\n };\r\n\r\n deleteOrganisationItem = (): void => {\r\n const id = this.state.deleteOrgId;\r\n this.props.actions.DeleteOrganisation(id, this.successDeleteCallback);\r\n this.setState({\r\n modal: false,\r\n });\r\n };\r\n\r\n closeModal = (): void => {\r\n this.setState({\r\n modal: false,\r\n deleteOrgId: \"\",\r\n });\r\n };\r\n\r\n goToDeleteFunction = (row: IOrganisation): void => {\r\n const id = row.identity;\r\n\r\n this.setState({\r\n modal: true,\r\n deleteOrgId: id,\r\n });\r\n };\r\n\r\n successDeleteCallback = (): void => {\r\n const { history } = this.props;\r\n this.setState({\r\n modal: false,\r\n deleteOrgId: \"\",\r\n });\r\n history.push(\"/organisations/\");\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n editFunction = (cell: any, row: IOrganisation): JSX.Element => {\r\n const { t } = this.props;\r\n return (\r\n {\r\n this.goToEditFunction(row);\r\n }}\r\n className=\"btn\"\r\n >\r\n \r\n \r\n );\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n removeFunction = (cell: any, row: IOrganisation): JSX.Element => {\r\n const { t } = this.props;\r\n return (\r\n {\r\n this.goToDeleteFunction(row);\r\n }}\r\n className=\"btn\"\r\n >\r\n \r\n \r\n );\r\n };\r\n\r\n render(): JSX.Element {\r\n const { t } = this.props;\r\n const { isLoadingOrganisations } = this.props.organisations;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {isLoadingOrganisations && }\r\n {!this.state.isAuditorRole && (\r\n {\r\n const { history } = this.props;\r\n history.push(\"/organisation/\");\r\n }}\r\n >\r\n \r\n  \r\n \r\n \r\n \r\n )}\r\n {!this.state.isAuditorRole && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!this.state.isAuditorRole && (\r\n \r\n )}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n organisations: state.organisations,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n actions: bindActionCreators(organisationsActions, dispatch) as IOrganisationActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Organisations);\r\n","import Loader from \"../../components/loader.component\";\r\nimport OrganisationBenchmarkContainer from \"./shared/organisationBenchmarkContainer.component\";\r\nimport React from \"react\";\r\nimport { Trans } from \"react-i18next\";\r\nimport UserService from \"../../core/services/user.service\";\r\n\r\ntype TOwnerOrganisationBenchmark = {};\r\n\r\ntype TOrganisationBenchmarkContainerState = {\r\n organisationId: string;\r\n isLoading: boolean;\r\n noOrganisationId: boolean;\r\n};\r\n\r\nclass OwnerOrganisationBenchmark extends React.Component<\r\n TOwnerOrganisationBenchmark,\r\n TOrganisationBenchmarkContainerState\r\n> {\r\n constructor(props: TOwnerOrganisationBenchmark) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true,\r\n organisationId: \"\",\r\n noOrganisationId: false,\r\n };\r\n }\r\n\r\n componentDidMount(): void {\r\n UserService.isAutenticated().then((isAutenticated) => {\r\n if (!isAutenticated) {\r\n return;\r\n }\r\n\r\n UserService.getEntityPermissions(\"IPF-OrganisationID\").then((entities) => {\r\n if (!entities || entities.length === 0 || !entities[0]) {\r\n this.setState({ isLoading: false, noOrganisationId: true });\r\n } else {\r\n this.setState({ organisationId: entities[0], isLoading: false, noOrganisationId: false });\r\n }\r\n });\r\n });\r\n }\r\n\r\n render(): JSX.Element {\r\n if (this.state.isLoading) {\r\n return ;\r\n }\r\n\r\n if (this.state.noOrganisationId) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default OwnerOrganisationBenchmark;\r\n","import * as AppActions from \"../../redux/app/app.actions\";\r\nimport * as actions from \"../../redux/questionnaire/questionnaire.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport {\r\n Button,\r\n Card,\r\n CardTitle,\r\n Col,\r\n Form,\r\n Input,\r\n InputGroup,\r\n InputGroupAddon,\r\n InputGroupText,\r\n Row,\r\n} from \"reactstrap\";\r\nimport { EmployeeType, IQuestionnaireActions } from \"../../redux/questionnaire/questionnaire.types\";\r\nimport { IAppActions, IAppState } from \"../../redux/app/app.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport { Label } from \"reactstrap\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { connect } from \"react-redux\";\r\n\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\ntype TInviteEmployeeProps = ReturnType &\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n WithTranslation &\r\n TInviteEmployeeOwnProps;\r\n\r\ntype TInviteEmployeeOwnProps = {\r\n organisationId: string;\r\n year: number;\r\n};\r\n\r\ntype TInviteEmployeeOwnState = {\r\n email: string;\r\n employeeTypeId?: number;\r\n employeeTypes: Array;\r\n};\r\n\r\nclass InviteEmployee extends Component {\r\n constructor(props: TInviteEmployeeProps) {\r\n super(props);\r\n\r\n this.render = this.render.bind(this);\r\n this.handleEmployeeType = this.handleEmployeeType.bind(this);\r\n this.onGetEmployeeTypesSuccess = this.onGetEmployeeTypesSuccess.bind(this);\r\n\r\n this.state = {\r\n email: \"\",\r\n employeeTypeId: 1,\r\n employeeTypes: [],\r\n };\r\n }\r\n\r\n componentDidMount(): void {\r\n this.props.questionnaireActions.GetEmployeeTypes(this.onGetEmployeeTypesSuccess);\r\n }\r\n\r\n handleEmailChange = (event: any): void => {\r\n this.setState({ email: event.target.value });\r\n };\r\n\r\n sendInvitation = (event: any): void => {\r\n if (this.state.employeeTypeId === undefined) return;\r\n\r\n event.preventDefault();\r\n this.props.questionnaireActions.SendInvitation(\r\n this.props.organisationId,\r\n this.props.year,\r\n this.state.employeeTypeId,\r\n this.state.email\r\n );\r\n };\r\n\r\n onGetEmployeeTypesSuccess(data: Array): void {\r\n this.setState({\r\n employeeTypes: data,\r\n });\r\n }\r\n\r\n handleEmployeeType = (event: any): void => {\r\n this.setState({ employeeTypeId: event.target.value });\r\n };\r\n\r\n render(): JSX.Element {\r\n const employeeTypes = this.state.employeeTypes;\r\n\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n @\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {employeeTypes.map((option) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n questionnaireActions: bindActionCreators(actions, dispatch) as IQuestionnaireActions,\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(InviteEmployee) as React.ComponentType;\r\n","import { Card, CardBody, CardTitle, Col, Row } from \"reactstrap\";\r\n\r\nimport React from \"react\";\r\nimport { TQuestionSpecificOwnPropsWithChildren } from \"../../../redux/questionnaire/questionnaire.types\";\r\n\r\nconst QuestionIntro = (props: TQuestionSpecificOwnPropsWithChildren) => {\r\n return (\r\n \r\n \r\n \r\n {props.question?.header}\r\n {props.question?.text}\r\n
    {props.children}
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default QuestionIntro;\r\n","import { CardTitle, Col, Row } from \"reactstrap\";\r\n\r\nimport React from \"react\";\r\nimport { TQuestionSpecificOwnPropsWithChildren } from \"../../../redux/questionnaire/questionnaire.types\";\r\n\r\nconst QuestionIntroReduced = (props: TQuestionSpecificOwnPropsWithChildren) => {\r\n return (\r\n \r\n \r\n {props.question?.text}\r\n \r\n \r\n

    \r\n {props.children}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default QuestionIntroReduced;\r\n","import { CardFooter, Col, Form, FormGroup, Input, InputGroup, Label, Row } from \"reactstrap\";\r\nimport {\r\n EmployeeAnswer,\r\n ParticipantDetails,\r\n QuestionScoreDetails,\r\n} from \"../../redux/questionnaire/questionnaire.types\";\r\nimport React, { ChangeEvent, Component } from \"react\";\r\n\r\nimport { Trans } from \"react-i18next\";\r\n\r\ntype TAuditorFeedbackOwnProps = {\r\n organisationId: string;\r\n questionId: number;\r\n norm?: number;\r\n newNorm?: number;\r\n comments?: string;\r\n employeeAnswers?: Array;\r\n questionScoreDetails?: QuestionScoreDetails;\r\n onChangeNorm?: (event: ChangeEvent) => void;\r\n onChangeComment?: (event: ChangeEvent) => void;\r\n renderFullDetails: boolean;\r\n};\r\n\r\ntype TAuditorFeedbackOwnState = {\r\n questionId: number;\r\n newNorm?: number;\r\n comments?: string;\r\n employeeAnswers?: Array;\r\n onChangeNorm: (event: ChangeEvent) => void;\r\n onChangeComment: (event: ChangeEvent) => void;\r\n};\r\n\r\nclass AuditorFeedback extends Component {\r\n constructor(props: TAuditorFeedbackOwnProps) {\r\n super(props);\r\n\r\n this.render = this.render.bind(this);\r\n\r\n this.handleNormChange = this.handleNormChange.bind(this);\r\n this.handleCommentsChange = this.handleCommentsChange.bind(this);\r\n\r\n this.state = {\r\n newNorm: this.props.newNorm,\r\n comments: this.props.comments,\r\n questionId: this.props.questionId,\r\n onChangeNorm: this.handleNormChange,\r\n onChangeComment: this.handleCommentsChange,\r\n };\r\n }\r\n handleNormChange(event: React.ChangeEvent): void {\r\n this.setState({ newNorm: parseInt(event.target.value) });\r\n if (this.props.onChangeNorm) this.props.onChangeNorm(event);\r\n }\r\n handleCommentsChange(event: React.ChangeEvent): void {\r\n this.setState({ comments: event.target.value });\r\n if (this.props.onChangeComment) this.props?.onChangeComment(event);\r\n }\r\n\r\n renderQuestionScoreDetails(): JSX.Element {\r\n const hasParticipants =\r\n this.props.questionScoreDetails?.participantsDetails != null &&\r\n this.props.questionScoreDetails?.participantsDetails.length > 0;\r\n const onlyOneParticipant = hasParticipants && this.props.questionScoreDetails?.participantsDetails.length === 1;\r\n\r\n return (\r\n <>\r\n {this.props.questionScoreDetails && (\r\n
    \r\n \r\n \r\n {this.props.questionScoreDetails?.overallScore.toFixed(2)}\r\n \r\n {hasParticipants &&\r\n this.props.questionScoreDetails?.participantsDetails.map(\r\n (participantDetails: ParticipantDetails, index: number) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {!onlyOneParticipant && index % 2 === 0 && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n )}\r\n
    \r\n )}\r\n \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n const hasParticipants =\r\n this.props.questionScoreDetails?.participantsDetails != null &&\r\n this.props.questionScoreDetails?.participantsDetails.length > 0;\r\n\r\n if (!this.props.renderFullDetails) {\r\n if (hasParticipants)\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    {this.renderQuestionScoreDetails()}
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n else {\r\n return <>;\r\n }\r\n } else {\r\n return (\r\n \r\n
    \r\n {this.renderQuestionScoreDetails()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n}\r\nexport default AuditorFeedback as React.ComponentType;\r\n","import { Card, CardBody, CardTitle, Col, Row, Table } from \"reactstrap\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport AuditorFeedback from \"../auditorFeedback.component\";\r\nimport Question from \"../question.component\";\r\nimport { QuestionEntity } from \"../../../redux/questionnaire/questionnaire.types\";\r\nimport { TQuestionSpecificOwnProps } from \"../../../redux/questionnaire/questionnaire.types\";\r\n\r\nclass QuestionMultiple extends Component {\r\n constructor(props: TQuestionSpecificOwnProps) {\r\n super(props);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleNormChange = this.handleNormChange.bind(this);\r\n this.handleComments = this.handleComments.bind(this);\r\n }\r\n\r\n handleChange(event: React.ChangeEvent): void {\r\n if (!this.props.isReadOnly) {\r\n const answerId = parseInt(event.target.value);\r\n this.setState({ selectedOption: answerId });\r\n this.props.onChangeValue(event);\r\n }\r\n }\r\n handleNormChange(event: React.ChangeEvent): void {\r\n this.props.onChangeNorm(event);\r\n }\r\n handleComments(event: React.ChangeEvent): void {\r\n this.props.onChangeComment(event);\r\n }\r\n\r\n render(): JSX.Element {\r\n const { isReadOnly, accountTypeName: accountType } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this.props.question?.header}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.question?.children[0]?.possibleAnswers.map((possibleAnswer, index) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n {possibleAnswer.text}\r\n
    \r\n \r\n \r\n {this.props.question?.children.map((question: QuestionEntity) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n \r\n \r\n \r\n {this.props.question?.children[0]?.indicator?.split(\"\\t\").map((str, index) => (\r\n

    {str}

    \r\n ))}\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {this.props.isAuditorRole && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QuestionMultiple;\r\n","import { Card, CardBody, CardTitle, Col, FormGroup, Input, Row, Table } from \"reactstrap\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport { TQuestionSpecificOwnProps, TQuestionSpecificOwnState } from \"../../../redux/questionnaire/questionnaire.types\";\r\n\r\nimport AuditorFeedback from \"../auditorFeedback.component\";\r\n\r\nclass QuestionNumeric extends Component {\r\n constructor(props: TQuestionSpecificOwnProps) {\r\n super(props);\r\n const { question } = this.props;\r\n\r\n this.state = {\r\n selectedOption: question ? (question.answer ? question.answer.id : 0) : 0,\r\n answerValue: question ? (question.answer ? question.answer.value : 0) : 0,\r\n questionId: this.props.question ? this.props.question.id : 0,\r\n norm: this.props.question ? this.props.question.norm : 0,\r\n comments: this.props.question ? this.props.question.comments : \"\",\r\n isAuditorRole: this.props.isAuditorRole,\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleNormChange = this.handleNormChange.bind(this);\r\n this.handleComments = this.handleComments.bind(this);\r\n }\r\n\r\n handleChange(event: React.ChangeEvent): void {\r\n if (!this.props.isReadOnly) {\r\n const answerValue = parseInt(event.target.value);\r\n this.setState({ answerValue: answerValue });\r\n this.props.onChangeValue(event);\r\n }\r\n }\r\n handleNormChange(event: React.ChangeEvent): void {\r\n this.props.onChangeNorm(event);\r\n }\r\n handleComments(event: React.ChangeEvent): void {\r\n this.props.onChangeComment(event);\r\n }\r\n\r\n render(): JSX.Element {\r\n const { answerValue, questionId, isAuditorRole } = this.state;\r\n const { isReadOnly } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n {this.props.renderHeader && this.props.question?.header && (\r\n {this.props.question?.header}\r\n )}\r\n \r\n \r\n {this.props.question?.text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    15
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.question?.indicator?.split(\"\\t\").map((str, index) => (\r\n

    {str}

    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n {this.props.isAuditorRole && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QuestionNumeric;\r\n","import { Card, CardBody, CardTitle, Col, CustomInput, Row, Table } from \"reactstrap\";\r\nimport React, { Component } from \"react\";\r\nimport { TQuestionSpecificOwnProps, TQuestionSpecificOwnState } from \"../../../redux/questionnaire/questionnaire.types\";\r\n\r\nimport AuditorFeedback from \"../auditorFeedback.component\";\r\n\r\nclass QuestionSingle extends Component {\r\n constructor(props: TQuestionSpecificOwnProps) {\r\n super(props);\r\n const { question } = this.props;\r\n this.state = {\r\n selectedOption: question ? (question.answer ? question.answer.id : 0) : 0,\r\n answerValue: question ? (question.answer ? question.answer.value : 0) : 0,\r\n questionId: this.props.question ? this.props.question.id : 0,\r\n norm: this.props.question ? this.props.question.norm : 0,\r\n comments: this.props.question ? this.props.question.comments : \"\",\r\n isAuditorRole: this.props.isAuditorRole,\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleNormChange = this.handleNormChange.bind(this);\r\n this.handleComments = this.handleComments.bind(this);\r\n }\r\n handleChange(event: React.ChangeEvent): void {\r\n if (!this.props.isReadOnly) {\r\n const answerId = parseInt(event.target.id);\r\n this.setState({ selectedOption: answerId });\r\n this.props.onChangeValue(event);\r\n }\r\n }\r\n handleNormChange(event: React.ChangeEvent): void {\r\n this.props.onChangeNorm(event);\r\n }\r\n handleComments(event: React.ChangeEvent): void {\r\n this.props.onChangeComment(event);\r\n }\r\n\r\n render(): JSX.Element {\r\n const { selectedOption, isAuditorRole } = this.state;\r\n const { isReadOnly } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this.props.renderHeader && this.props.question?.header && (\r\n {this.props.question?.header}\r\n )}\r\n \r\n \r\n {this.props.question?.text}\r\n \r\n \r\n \r\n \r\n {this.props.question?.possibleAnswers.map((possibleAnswer, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {this.props.question?.possibleAnswers.map((possibleAnswer, index) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n {possibleAnswer.text}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {this.props.question?.indicator?.split(\"\\t\").map((str, index) => (\r\n

    {str}

    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n {this.props.isAuditorRole && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QuestionSingle;\r\n","import { CardTitle, Col, CustomInput, Row, Table } from \"reactstrap\";\r\nimport {\r\n EmployeeAnswer,\r\n TQuestionSpecificOwnProps,\r\n TQuestionSpecificOwnState,\r\n} from \"../../../redux/questionnaire/questionnaire.types\";\r\nimport React, { Component } from \"react\";\r\n\r\nimport AuditorFeedback from \"../auditorFeedback.component\";\r\n\r\nclass QuestionSingleReduced extends Component {\r\n constructor(props: TQuestionSpecificOwnProps) {\r\n super(props);\r\n const { question } = this.props;\r\n this.state = {\r\n selectedOption: question ? (question.answer ? question.answer.id : 0) : 0,\r\n answerValue: question ? (question.answer ? question.answer.value : 0) : 0,\r\n questionId: this.props.question ? this.props.question.id : 0,\r\n isAuditorRole: this.props.isAuditorRole,\r\n };\r\n this.handleChange = this.handleChange.bind(this);\r\n }\r\n\r\n handleChange(event: React.ChangeEvent): void {\r\n if (!this.props.isReadOnly) {\r\n const answerId = parseInt(event.target.id);\r\n this.setState({ selectedOption: answerId });\r\n this.props.onChangeValue(event);\r\n }\r\n }\r\n getEmployeeAnswerValue(employeeAnswer: EmployeeAnswer): JSX.Element {\r\n return {employeeAnswer.text};\r\n }\r\n\r\n render(): JSX.Element {\r\n const { selectedOption, isAuditorRole } = this.state;\r\n const { isReadOnly } = this.props;\r\n return (\r\n \r\n \r\n {this.props.question?.text}\r\n \r\n \r\n \r\n \r\n \r\n {this.props.question?.possibleAnswers.map((possibleAnswer, index) => (\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default QuestionSingleReduced;\r\n","import * as uploadFileActions from \"../redux/uploadFile/uploadFile.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { EAppActionTypes, IPushToastMessageAction } from \"../redux/app/app.types\";\r\nimport { IUploadFileActionTypes, MAX_NUMBER_FILES_PER_QUESTION, TFileInfo } from \"../redux/uploadFile/uploadFile.types\";\r\nimport React, { Component } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport EToastPositions from \"../core/enums/toastPositions.enum\";\r\nimport EToastTypes from \"../core/enums/toastTypes.enum\";\r\nimport { GenerateMessage } from \"./message.component\";\r\nimport { ReduxState } from \"../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nconst MAX_FILE_SIZE_MB = 20;\r\nconst MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;\r\nconst ALLOWED_FILE_EXTENSIONS = [\"png\", \"jpg\", \"jpeg\", \"pdf\", \"xlsx\", \"xls\", \"csv\", \"doc\", \"docx\"];\r\nconst ACCEPT_FILE_EXTENSIONS = ALLOWED_FILE_EXTENSIONS.map((extension) => `.${extension}`).join(\",\");\r\n\r\ntype TUploadFileOwnProps = {\r\n questionId: number;\r\n organisationIdentity: string;\r\n year: number;\r\n onFileAdded: Function;\r\n filesInfo: TFileInfo[];\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-use-before-define\r\ntype TUploadFileProps = ReturnType &\r\n RouteComponentProps &\r\n WithTranslation &\r\n TUploadFileOwnProps;\r\n\r\ntype TUploadFileState = {\r\n currentFile: File | null;\r\n isUploading: boolean;\r\n progress: number;\r\n};\r\n\r\nclass UploadFile extends Component {\r\n constructor(props: TUploadFileProps) {\r\n super(props);\r\n\r\n this.state = {\r\n currentFile: null,\r\n isUploading: false,\r\n progress: 0,\r\n };\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n clearFile = (event: any): void => {\r\n event.target.value = null;\r\n };\r\n\r\n showToast(i18KeyMessage: string, values?: object): void {\r\n const action: IPushToastMessageAction = {\r\n type: EAppActionTypes.SHOW_TOAST_MESSAGE,\r\n toastType: EToastTypes.ERROR,\r\n i18KeyTitle: \"common.ERROR\",\r\n i18KeyMessage,\r\n i18KeyMessageValues: values,\r\n innerMessage: \"\",\r\n };\r\n\r\n toast(GenerateMessage(action), {\r\n type: EToastTypes.ERROR,\r\n position: EToastPositions.TOP_RIGHT,\r\n });\r\n }\r\n\r\n selectFile = (event: React.ChangeEvent): void => {\r\n const files = event.target.files;\r\n if (!files || files.length === 0) {\r\n return;\r\n }\r\n\r\n const file = files[0];\r\n if (file.size > MAX_FILE_SIZE_BYTES) {\r\n this.showToast(\"uploadFile.FILE_SIZE_TOO_BIG\", { maxFileSize: MAX_FILE_SIZE_MB });\r\n this.clearFile(event);\r\n return;\r\n }\r\n\r\n const fileExtension = this.getFileExtension(file);\r\n if (!fileExtension || !ALLOWED_FILE_EXTENSIONS.includes(fileExtension)) {\r\n this.showToast(\"uploadFile.FILE_EXTENSION_NOT_ALLOWED\", { supportedExtensions: ACCEPT_FILE_EXTENSIONS });\r\n this.clearFile(event);\r\n return;\r\n }\r\n\r\n this.setState({ currentFile: file });\r\n };\r\n\r\n updateProgresBar = (event: ProgressEvent): void => {\r\n this.setState({ progress: Math.round((100 * event.loaded) / event.total) });\r\n };\r\n\r\n upload = (): void => {\r\n const { questionId, year, organisationIdentity, uploadActions } = this.props;\r\n const { currentFile } = this.state;\r\n\r\n if (currentFile === null) {\r\n return;\r\n }\r\n\r\n this.setState({ progress: 0, isUploading: true });\r\n\r\n uploadActions.UploadFile(\r\n { questionId, year, organisationIdentity },\r\n currentFile,\r\n this.updateProgresBar,\r\n (fileId: string) => {\r\n this.props.onFileAdded({\r\n name: currentFile.name,\r\n id: fileId,\r\n type: this.getFileExtension(currentFile),\r\n });\r\n\r\n this.setState({ currentFile: null, isUploading: false, progress: 0 });\r\n },\r\n () => {\r\n this.setState({\r\n progress: 0,\r\n currentFile: null,\r\n isUploading: false,\r\n });\r\n }\r\n );\r\n };\r\n\r\n getFileExtension(file: File): string {\r\n return file.name.toLowerCase().split(\".\").pop() || \"\";\r\n }\r\n\r\n renderProgressBar(): JSX.Element {\r\n const { currentFile, progress } = this.state;\r\n\r\n if (!currentFile) {\r\n return <>;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {progress}%\r\n
    \r\n
    \r\n {progress === 100 && (\r\n

    \r\n \r\n

    \r\n )}\r\n \r\n );\r\n }\r\n\r\n render(): JSX.Element {\r\n const { currentFile, isUploading } = this.state;\r\n\r\n if (this.props.filesInfo.length >= MAX_NUMBER_FILES_PER_QUESTION) {\r\n return <>;\r\n }\r\n\r\n return (\r\n
    \r\n {this.renderProgressBar()}\r\n\r\n {!isUploading && (\r\n \r\n )}\r\n\r\n {currentFile && !isUploading && (\r\n \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n uploadActions: bindActionCreators(uploadFileActions, dispatch) as IUploadFileActionTypes,\r\n dispatch,\r\n});\r\n\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect<{}, TMapDispatchToProps, {}, ReduxState>(null, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(UploadFile) as React.ComponentType;\r\n","import * as AppActions from \"../../redux/app/app.actions\";\r\nimport * as actions from \"../../redux/questionnaire/questionnaire.actions\";\r\n\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport {\r\n FULL_ACCOUNT_TYPE,\r\n IQuestionnaireActions,\r\n QuestionEntity,\r\n QuestionType,\r\n TQuestionSpecificOwnProps,\r\n} from \"../../redux/questionnaire/questionnaire.types\";\r\nimport { IAppActions, IAppState } from \"../../redux/app/app.types\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport {\r\n SetQuestionnaireAnswer,\r\n SetQuestionnaireComment,\r\n SetQuestionnaireNormScore,\r\n} from \"../../redux/questionnaire/questionnaire.extended.actions\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport AvailableFiles from \"../../components/availableFiles\";\r\nimport QuestionIntro from \"./questionTypes/questionIntro.component\";\r\nimport QuestionIntroReduced from \"./questionTypes/questionIntroReduced.component\";\r\nimport QuestionMultiple from \"./questionTypes/questionMultiple.component\";\r\nimport QuestionNumeric from \"./questionTypes/questionNumeric.component\";\r\nimport QuestionSingle from \"./questionTypes/questionSingle.component\";\r\nimport QuestionSingleReduced from \"./questionTypes/questionSingleReduced.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { TFileInfo } from \"../../redux/uploadFile/uploadFile.types\";\r\nimport UploadFile from \"../../components/uploadFile\";\r\nimport UserService from \"../../core/services/user.service\";\r\nimport { connect } from \"react-redux\";\r\n\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\ntype TQuestionProps = ReturnType &\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n WithTranslation &\r\n RouteComponentProps &\r\n TQuestionOwnProps;\r\n\r\ntype TQuestionOwnProps = {\r\n question: QuestionEntity;\r\n renderHeader: boolean;\r\n multiple: boolean;\r\n isReadOnly: boolean;\r\n accountTypeName: string;\r\n organisationIdentity: string;\r\n year: number;\r\n isAuditorRole: boolean;\r\n handleFileUpload: () => void;\r\n};\r\n\r\ntype TQuestionOwnState = {\r\n questionEntity?: QuestionEntity;\r\n renderHeader: boolean;\r\n value: number;\r\n};\r\nclass Question extends Component {\r\n constructor(props: TQuestionProps) {\r\n super(props);\r\n\r\n this.state = {\r\n value: 0,\r\n questionEntity: this.props.question,\r\n renderHeader: this.props.renderHeader,\r\n };\r\n this.setValue = this.setValue.bind(this);\r\n this.setNormValue = this.setNormValue.bind(this);\r\n this.setCommentValue = this.setCommentValue.bind(this);\r\n }\r\n\r\n setValue(event: React.ChangeEvent): void {\r\n const { dispatch } = this.props;\r\n if (this.state.questionEntity) {\r\n const answerId = this.getAnswer(this.state.questionEntity, event);\r\n this.setState({ value: answerId });\r\n SetQuestionnaireAnswer(dispatch, this.state.questionEntity.id, answerId);\r\n }\r\n }\r\n setNormValue(event: React.ChangeEvent): void {\r\n const { dispatch } = this.props;\r\n if (this.state.questionEntity) {\r\n SetQuestionnaireNormScore(dispatch, this.state.questionEntity.id, parseInt(event.target.value));\r\n }\r\n }\r\n setCommentValue(event: React.ChangeEvent): void {\r\n const { dispatch } = this.props;\r\n if (this.state.questionEntity) {\r\n SetQuestionnaireComment(dispatch, this.state.questionEntity.id, event.target.value);\r\n }\r\n }\r\n\r\n getAnswer(question: QuestionEntity, event: React.ChangeEvent): number {\r\n switch (question.questionType) {\r\n case QuestionType.SliderType:\r\n // eslint-disable-next-line no-case-declarations\r\n const answer = question.possibleAnswers.find((x) => x.value === parseInt(event.target.value));\r\n return answer ? answer.id : 0;\r\n case QuestionType.SingleResponse:\r\n case QuestionType.MultiResponse:\r\n return parseInt(event.target.id);\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n onFileAdded = (newFile: TFileInfo): void => {\r\n if (!this.state.questionEntity) {\r\n return;\r\n }\r\n\r\n const questionEntity = {\r\n ...this.state.questionEntity,\r\n files: [...this.state.questionEntity.files, newFile],\r\n };\r\n\r\n this.setState({ questionEntity });\r\n\r\n this.props.handleFileUpload();\r\n };\r\n\r\n onDeleteFile = (fileId: string): void => {\r\n if (!this.state.questionEntity) {\r\n return;\r\n }\r\n\r\n const questionEntity = {\r\n ...this.state.questionEntity,\r\n files: this.state.questionEntity.files.filter((file) => file.id !== fileId),\r\n };\r\n this.setState({ questionEntity });\r\n };\r\n\r\n renderFiles(parameters: TQuestionSpecificOwnProps): JSX.Element {\r\n const shouldfilesBeHidden =\r\n UserService.isAuthenticatedThroughACustomToken() || parameters.accountTypeName !== FULL_ACCOUNT_TYPE;\r\n\r\n if (shouldfilesBeHidden || !parameters.question?.allowUpload) {\r\n return <>;\r\n }\r\n\r\n return (\r\n <>\r\n {!parameters.isReadOnly && !parameters.isAuditorRole && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n\r\n renderQuestionType(): JSX.Element {\r\n const parameters: TQuestionSpecificOwnProps = {\r\n question: this.state.questionEntity,\r\n onChangeValue: this.setValue,\r\n onChangeNorm: this.setNormValue,\r\n onChangeComment: this.setCommentValue,\r\n renderHeader: this.state.renderHeader,\r\n isReadOnly: this.props.isReadOnly,\r\n accountTypeName: this.props.accountTypeName,\r\n year: this.props.year,\r\n organisationIdentity: this.props.organisationIdentity,\r\n isAuditorRole: this.props.isAuditorRole,\r\n handleFileUpload: this.props.handleFileUpload,\r\n };\r\n\r\n switch (this.props.question?.questionType) {\r\n case QuestionType.SliderType:\r\n return ;\r\n case QuestionType.SingleResponse:\r\n if (this.props.multiple) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n case QuestionType.MultiResponse:\r\n return ;\r\n case QuestionType.IntroQuestion:\r\n if (this.props.multiple) {\r\n return {this.renderFiles(parameters)};\r\n } else {\r\n return {this.renderFiles(parameters)};\r\n }\r\n default:\r\n return <>;\r\n }\r\n }\r\n\r\n render(): JSX.Element {\r\n return {this.renderQuestionType()};\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n questionnaireActions: bindActionCreators(actions, dispatch) as IQuestionnaireActions,\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Question) as React.ComponentType;\r\n","import { AnyAction, Dispatch } from \"redux\";\r\nimport {\r\n EQuestionnaireActionTypes,\r\n ISetQuestionnaireAnswerAction,\r\n ISetQuestionnaireCommentAction,\r\n ISetQuestionnaireNormScoreAction,\r\n} from \"./questionnaire.types\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const SetQuestionnaireAnswer = (dispatch: Dispatch, questionId: number, answer: number): void => {\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SET_QUESTIONNAIRE_ANSWER,\r\n questionId,\r\n answer,\r\n } as ISetQuestionnaireAnswerAction);\r\n};\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport const SetQuestionnaireNormScore = (\r\n dispatch: Dispatch,\r\n questionId: number,\r\n normScore: number\r\n): void => {\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SET_QUESTIONNAIRE_NORM_SCORE,\r\n questionId,\r\n normScore,\r\n } as ISetQuestionnaireNormScoreAction);\r\n};\r\n\r\nexport const SetQuestionnaireComment = (dispatch: Dispatch, questionId: number, comments: string): void => {\r\n dispatch({\r\n type: EQuestionnaireActionTypes.SET_QUESTIONNAIRE_COMMENTS,\r\n questionId,\r\n comments,\r\n } as ISetQuestionnaireCommentAction);\r\n};\r\n","import * as AppActions from \"../../redux/app/app.actions\";\r\nimport * as organisationActions from \"../../redux/organisation/organisation.actions\";\r\nimport * as questionnaireActions from \"../../redux/questionnaire/questionnaire.actions\";\r\nimport * as resultActions from \"../../redux/organisationBenchmark/organisationBenchmark.actions\";\r\n\r\nimport {\r\n AnswerDto,\r\n IQuestionnaireActions,\r\n QuestionEntity,\r\n QuestionType,\r\n QuestionnaireModel,\r\n} from \"../../redux/questionnaire/questionnaire.types\";\r\nimport { AnyAction, Dispatch, bindActionCreators, compose } from \"redux\";\r\nimport { BASIC_ACCOUNT_TYPE, FULL_ACCOUNT_TYPE } from \"../../redux/questionnaire/questionnaire.types\";\r\nimport { Button, Col, Modal, ModalBody, ModalFooter, ModalHeader, Row } from \"reactstrap\";\r\nimport { EAppActionTypes, IAppActions, IAppState, IPushToastMessageAction } from \"../../redux/app/app.types\";\r\nimport { IOrganisationStatus, IResultsActions } from \"../../redux/organisationBenchmark/organisationBenchmark.types\";\r\nimport { IPFAuditor, IPFOrganisation } from \"../../core/constants/roles.constants\";\r\nimport React, { Component, Fragment } from \"react\";\r\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\r\n\r\nimport AvailableOrganisationYears from \"./../../components/availableOrganisationYears.component\";\r\nimport EToastPositions from \"../../core/enums/toastPositions.enum\";\r\nimport EToastTypes from \"../../core/enums/toastTypes.enum\";\r\nimport { GenerateMessage } from \"../../components/message.component\";\r\nimport { IOrganisationActions } from \"../../redux/organisation/organisation.types\";\r\nimport InviteEmployee from \"./inviteEmployee.component\";\r\nimport Loader from \"../../components/loader.component\";\r\nimport Question from \"./question.component\";\r\nimport { ReduxState } from \"../../redux/reducers\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport Statuses from \"../../core/enums/questionnaireStatuses.enum\";\r\nimport UserService from \"../../core/services/user.service\";\r\nimport appInsights from \"../../core/services/appinsights.service\";\r\nimport { connect } from \"react-redux\";\r\nimport { toast } from \"react-toastify\";\r\n\r\n/* eslint-disable @typescript-eslint/no-use-before-define */\r\ntype TQuestionnaireProps = ReturnType &\r\n ReturnType &\r\n IAppState &\r\n ReduxState &\r\n WithTranslation &\r\n RouteComponentProps;\r\n\r\ntype TQuestionnaireOwnState = {\r\n model: QuestionnaireModel;\r\n organisationId: string;\r\n year: number;\r\n emailInvite: string;\r\n answers: Array;\r\n isOrganisationRole: boolean;\r\n isAuditorRole: boolean;\r\n loadedRoles: boolean;\r\n isModalOpen: boolean;\r\n};\r\n\r\nclass Questionnaire extends Component {\r\n constructor(props: TQuestionnaireProps) {\r\n super(props);\r\n\r\n this.state = {\r\n model: { questions: [], isReadOnly: true, accountTypeName: \"\", hasFileUpload: false, auditorFeedbacks: [] },\r\n answers: [],\r\n organisationId: \"\",\r\n emailInvite: \"\",\r\n year: 0,\r\n isOrganisationRole: false,\r\n isAuditorRole: false,\r\n loadedRoles: false,\r\n isModalOpen: false,\r\n };\r\n\r\n this.onSuccessGetQuestionnaire = this.onSuccessGetQuestionnaire.bind(this);\r\n this.render = this.render.bind(this);\r\n this.saveQuestionnaire = this.saveQuestionnaire.bind(this);\r\n this.saveQuestionnaireOnlySuccess = this.saveQuestionnaireOnlySuccess.bind(this);\r\n this.handleYearChange = this.handleYearChange.bind(this);\r\n this.handleFileUpload = this.handleFileUpload.bind(this);\r\n this.saveAuditorFeedbackSuccess = this.saveAuditorFeedbackSuccess.bind(this);\r\n this.renderSaveButton = this.renderSaveButton.bind(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n appInsights.trackTrace({\r\n message: \"Questionnaire page has been mounted\",\r\n severityLevel: SeverityLevel.Information,\r\n });\r\n UserService.isAutenticated().then((isAutenticated) => {\r\n if (isAutenticated) {\r\n if (UserService.isAuthenticatedThroughACustomToken()) {\r\n const accessKey = UserService.getCustomAccessKey();\r\n this.setState({ loadedRoles: true });\r\n if (accessKey !== null)\r\n this.props.questionnaireActions.GetEmployeeQuestionnaire(accessKey, this.onSuccessGetQuestionnaire);\r\n } else {\r\n UserService.isInRole(IPFAuditor).then((result) => {\r\n if (result) {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const organisationId = urlParams.get(\"organisationId\");\r\n if (organisationId !== null) {\r\n this.setState({ organisationId: organisationId.toString() });\r\n }\r\n } else {\r\n UserService.isInRole(IPFOrganisation).then((result) => {\r\n if (result) {\r\n UserService.getEntityPermissions(\"IPF-OrganisationID\").then((entities) => {\r\n if (entities !== null && entities.length > 0 && entities[0] !== null) {\r\n this.setState({ organisationId: entities[0] });\r\n }\r\n });\r\n }\r\n this.setState({ isOrganisationRole: result });\r\n });\r\n }\r\n this.setState({ isAuditorRole: result, loadedRoles: true });\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n onSuccessGetQuestionnaire(data: QuestionnaireModel): void {\r\n this.setState({\r\n model: data,\r\n });\r\n }\r\n\r\n handleYearChange = (selectedYear: number): void => {\r\n if (!selectedYear) return;\r\n\r\n this.props.questionnaireActions.GetQuestionnaire(\r\n this.state.organisationId,\r\n selectedYear,\r\n this.onSuccessGetQuestionnaire\r\n );\r\n this.setState({\r\n year: selectedYear,\r\n model: { questions: [], isReadOnly: true, accountTypeName: \"\", hasFileUpload: false, auditorFeedbacks: [] },\r\n });\r\n };\r\n\r\n downloadPdfInfo = (event: React.ChangeEvent): void => {\r\n event.preventDefault();\r\n\r\n this.props.questionnaireActions.GetQuestionnaireInfoPdf(this.successGetQuestionnaireInfoPdfCallback);\r\n };\r\n successGetQuestionnaireInfoPdfCallback = (data: any, data2: any): void => {\r\n const { t } = this.props;\r\n const fileName = t(\"common.DOWNLOAD_INFO_FILE_NAME\") + \".pdf\";\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(new File([data], fileName));\r\n link.download = fileName;\r\n link.click();\r\n };\r\n addSliderDefaultAnswers(): void {\r\n const sliderQuestions = this.props.questionnaire.questionModel.questions.filter(\r\n (x) => x.questionType === QuestionType.SliderType\r\n );\r\n const notAnsweredQuestions = sliderQuestions.filter((x) => x.answer === undefined);\r\n const answers = this.props.questionnaire.answers;\r\n\r\n notAnsweredQuestions.forEach((question) => {\r\n if (answers.find((x) => x.questionId === question.id) === undefined) {\r\n answers.push({\r\n questionId: question.id,\r\n answerOptionId: question.possibleAnswers[0].id,\r\n });\r\n }\r\n });\r\n }\r\n allQuestionsAnswered(): boolean {\r\n this.addSliderDefaultAnswers();\r\n let questionsAnswerable = this.props.questionnaire.questionModel.questions.filter(\r\n (x) => x.questionType === QuestionType.SingleResponse || x.questionType === QuestionType.SliderType\r\n );\r\n const multipleQuestions = this.props.questionnaire.questionModel.questions.filter(\r\n (x) => x.questionType === QuestionType.MultiResponse\r\n );\r\n multipleQuestions.forEach((element) => {\r\n const childrenQuestionsAnswerable = element.children.filter(\r\n (x) => x.questionType === QuestionType.SingleResponse || x.questionType === QuestionType.SliderType\r\n );\r\n questionsAnswerable = [...questionsAnswerable, ...childrenQuestionsAnswerable];\r\n });\r\n const notAnsweredQuestions = questionsAnswerable.filter((x) => x.answer === undefined);\r\n\r\n const answers = this.props.questionnaire.answers;\r\n const anyQuestionWithNoAnswer = notAnsweredQuestions.some((question) => {\r\n return answers.find((x) => x.questionId === question.id) === undefined;\r\n });\r\n return !anyQuestionWithNoAnswer;\r\n }\r\n showToast(i18KeyMessage: string, values?: object): void {\r\n const action: IPushToastMessageAction = {\r\n type: EAppActionTypes.SHOW_TOAST_MESSAGE,\r\n toastType: EToastTypes.ERROR,\r\n i18KeyTitle: \"common.ERROR\",\r\n i18KeyMessage,\r\n i18KeyMessageValues: values,\r\n innerMessage: \"\",\r\n };\r\n\r\n toast(GenerateMessage(action), {\r\n type: EToastTypes.ERROR,\r\n position: EToastPositions.TOP_RIGHT,\r\n });\r\n }\r\n\r\n saveQuestionnaire = (event: React.ChangeEvent): void => {\r\n event.preventDefault();\r\n\r\n if (!this.allQuestionsAnswered()) {\r\n this.showToast(\"app.messages.questionnaire.QUESTIONNAIRE_INCOMPLETED\");\r\n return;\r\n }\r\n\r\n if (UserService.isAuthenticatedThroughACustomToken()) {\r\n const accessKey = UserService.getCustomAccessKey();\r\n\r\n if (accessKey !== null) {\r\n this.props.questionnaireActions.SaveEmployeeQuestionnaire(\r\n accessKey,\r\n this.props.questionnaire.answers,\r\n this.saveQuestionnaireOnlySuccess\r\n );\r\n }\r\n } else {\r\n this.props.questionnaireActions.PutQuestionnaire(\r\n this.state.organisationId,\r\n this.state.year,\r\n this.props.questionnaire.answers,\r\n this.saveQuestionnaireOnlySuccess\r\n );\r\n }\r\n };\r\n saveAuditorFeedback = (event: React.ChangeEvent): void => {\r\n event.preventDefault();\r\n\r\n this.props.questionnaireActions.SaveAuditorQuestionnaire(\r\n this.state.organisationId,\r\n this.state.year,\r\n this.state.model.auditorFeedbacks,\r\n this.saveAuditorFeedbackSuccess\r\n );\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n saveAuditorFeedbackSuccess(): void {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n submitQuestionnaire = (event: React.MouseEvent): void => {\r\n event.preventDefault();\r\n UserService.isInRole(IPFOrganisation).then((isOrganisation) => {\r\n if (isOrganisation) {\r\n if (this.allQuestionsAnswered()) {\r\n this.setState({ model: { ...this.state.model, hasFileUpload: false }, isModalOpen: false });\r\n this.props.questionnaireActions.PutQuestionnaire(\r\n this.state.organisationId,\r\n this.state.year,\r\n this.props.questionnaire.answers,\r\n this.saveQuestionnaireSuccess\r\n );\r\n } else {\r\n this.showToast(\"app.messages.questionnaire.QUESTIONNAIRE_INCOMPLETED\");\r\n }\r\n }\r\n });\r\n };\r\n\r\n setQuestionnaireStatusSuccess = (): void => {\r\n this.setState({ model: { ...this.state.model, isReadOnly: true } });\r\n };\r\n\r\n saveQuestionnaireSuccess = (): void => {\r\n this.saveQuestionnaireOnlySuccess();\r\n\r\n this.props.resultsActions.GetOrganisationStatuses((statuses: IOrganisationStatus[]) => {\r\n const submitted = statuses.find((x) => x.name === Statuses.Submitted);\r\n if (!submitted) {\r\n appInsights.trackTrace({\r\n severityLevel: SeverityLevel.Critical,\r\n message: \"Statuses list did not contain the submit one and user could not submit questionnaire\",\r\n });\r\n return;\r\n }\r\n\r\n this.props.questionnaireActions.SubmitQuestionnaire(\r\n this.state.organisationId,\r\n this.state.year,\r\n this.setQuestionnaireStatusSuccess\r\n );\r\n });\r\n };\r\n\r\n saveQuestionnaireOnlySuccess(): void {\r\n this.props.questionnaire.answers = [];\r\n }\r\n renderPdfInfoButton(): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n renderSaveButton(): JSX.Element {\r\n const { isReadOnly } = this.state.model;\r\n\r\n if (this.state.isAuditorRole) {\r\n const disabled =\r\n this.state.model.auditorFeedbacks === undefined ? true : this.state.model.auditorFeedbacks.length === 0;\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n renderSubmitButton(): JSX.Element {\r\n const { isReadOnly, hasFileUpload } = this.state.model;\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderOrganisationAvailableYearsDropdown(): JSX.Element {\r\n return (\r\n \r\n );\r\n }\r\n\r\n handleFileUpload = (): void => {\r\n this.setState({ model: { ...this.state.model, hasFileUpload: true } });\r\n };\r\n\r\n toggleModal = (): void => {\r\n this.setState({ isModalOpen: !this.state.isModalOpen });\r\n };\r\n\r\n render(): JSX.Element {\r\n const model = this.state.model;\r\n const { isLoadingQuestionnaire } = this.props.questionnaire;\r\n const { isReadOnly, accountTypeName } = model;\r\n\r\n if (model != null) {\r\n return (\r\n \r\n {isLoadingQuestionnaire && }\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n {!UserService.isAuthenticatedThroughACustomToken() && this.renderOrganisationAvailableYearsDropdown()}\r\n \r\n\r\n \r\n
    \r\n {this.renderPdfInfoButton()}\r\n {this.renderSaveButton()}\r\n {this.state.isOrganisationRole && this.renderSubmitButton()}\r\n
    \r\n \r\n
    \r\n {this.state.isOrganisationRole && isReadOnly && accountTypeName === FULL_ACCOUNT_TYPE && (\r\n
    \r\n \r\n
    \r\n )}\r\n {this.state.isOrganisationRole && isReadOnly && accountTypeName === BASIC_ACCOUNT_TYPE && (\r\n
    \r\n \r\n
    \r\n )}\r\n {model.questions.map((question: QuestionEntity) => (\r\n
    \r\n \r\n
    \r\n ))}\r\n \r\n \r\n
    \r\n {this.renderSaveButton()}\r\n {this.state.isOrganisationRole && this.renderSubmitButton()}\r\n
    \r\n \r\n
    \r\n {!UserService.isAuthenticatedThroughACustomToken() &&\r\n !this.state.isAuditorRole &&\r\n this.state.loadedRoles &&\r\n !this.state.model.isReadOnly && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n } else {\r\n return

    ;\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapStateToProps = (state: ReduxState) => ({\r\n application: state.application,\r\n questionnaire: state.questionnaire,\r\n});\r\n\r\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\nconst mapDispatchToProps = (dispatch: Dispatch) => ({\r\n questionnaireActions: bindActionCreators(questionnaireActions, dispatch) as IQuestionnaireActions,\r\n organisationActions: bindActionCreators(organisationActions, dispatch) as IOrganisationActions,\r\n resultsActions: bindActionCreators(resultActions, dispatch) as IResultsActions,\r\n AppActions: bindActionCreators(AppActions, dispatch) as IAppActions,\r\n dispatch,\r\n});\r\n\r\ntype TMapStateToProps = ReturnType;\r\ntype TMapDispatchToProps = ReturnType;\r\n\r\nconst enhance = compose(\r\n withTranslation(\"translations\"),\r\n connect(mapStateToProps, mapDispatchToProps)\r\n);\r\n\r\nexport default enhance(Questionnaire);\r\n","import AdminOrganisationBenchmark from \"../views/organisationBenchmark/adminOrganisationBenchmark.component\";\r\nimport Auditor from \"../views/auditors/auditor.component\";\r\nimport Auditors from \"../views/auditors/auditors.component\";\r\nimport Norms from \"../views/norms/norms.component\";\r\nimport Organisation from \"../views/organisations/organisation.component\";\r\nimport Organisations from \"../views/organisations/organisations.component\";\r\nimport OwnerOrganisationBenchmark from \"../views/organisationBenchmark/ownerOrganisationBenchmark.component\";\r\nimport Questionnaire from \"../views/questionnaire/questionnaire.component\";\r\nimport { TRouteComponent } from \"../core/types/route.types\";\r\n\r\nconst SidebarRoutes: Array = [\r\n {\r\n navlabel: true,\r\n name: \"\",\r\n icon: \"mdi mdi-dots-horizontal\",\r\n component: null,\r\n path: \"\",\r\n visible: true,\r\n },\r\n {\r\n path: \"/organisations\",\r\n name: \"app.sidebar.ORGANISATIONS\",\r\n icon: \"ti-world\",\r\n component: Organisations,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\", \"IPF-Auditor\"],\r\n visible: true,\r\n },\r\n {\r\n path: \"/questionnaire\",\r\n name: \"app.sidebar.QUESTIONNAIRE\",\r\n icon: \"ti-list\",\r\n component: Questionnaire,\r\n allowedRoles: [\"IPF-Organisation\", \"Admin\", \"IPF-Employee\"],\r\n visible: true,\r\n },\r\n {\r\n path: \"/auditorQuestionnaire\",\r\n name: \"app.sidebar.QUESTIONNAIRE\",\r\n icon: \"ti-list\",\r\n component: Questionnaire,\r\n allowedRoles: [\"IPF-Auditor\"],\r\n visible: false,\r\n },\r\n {\r\n path: \"/owner-benchmark-results\",\r\n name: \"app.sidebar.RESULTS\",\r\n icon: \"ti-pie-chart\",\r\n component: OwnerOrganisationBenchmark,\r\n allowedRoles: [\"IPF-Organisation\"],\r\n visible: true,\r\n },\r\n {\r\n path: \"/auditors\",\r\n name: \"app.sidebar.AUDITORS\",\r\n icon: \"ti-user\",\r\n component: Auditors,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\"],\r\n visible: true,\r\n },\r\n {\r\n path: \"/norms\",\r\n name: \"app.sidebar.NORMS\",\r\n component: Norms,\r\n icon: \"ti-settings\",\r\n allowedRoles: [\"IPF-Manager\", \"Admin\"],\r\n visible: true,\r\n } as TRouteComponent,\r\n {\r\n path: \"/admin-benchmark-results/:organisationIdentity\",\r\n component: AdminOrganisationBenchmark,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\", \"IPF-Auditor\"],\r\n } as TRouteComponent,\r\n {\r\n path: \"/organisation/:id\",\r\n component: Organisation,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\", \"IPF-Auditor\"],\r\n } as TRouteComponent,\r\n {\r\n path: \"/organisation\",\r\n component: Organisation,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\", \"IPF-Auditor\"],\r\n } as TRouteComponent,\r\n {\r\n path: \"/auditor/:id\",\r\n component: Auditor,\r\n allowedRoles: [\"Admin\"],\r\n } as TRouteComponent,\r\n {\r\n path: \"/auditor\",\r\n component: Auditor,\r\n allowedRoles: [\"IPF-Manager\", \"Admin\"],\r\n } as TRouteComponent,\r\n { path: \"/\", pathTo: \"/organisations\", redirect: true } as TRouteComponent,\r\n { path: \"/\", pathTo: \"/questionnaire\", redirect: true } as TRouteComponent,\r\n];\r\nexport default SidebarRoutes;\r\n","import { ChangeEvent, ReactNode } from \"react\";\r\n\r\nimport { IAxiosAction } from \"../../core/types/axios.types\";\r\nimport { IReduxResponseAction } from \"../../core/types/core.types\";\r\nimport { TFileInfo } from \"../uploadFile/uploadFile.types\";\r\n\r\nexport enum EQuestionnaireActionTypes {\r\n GET_QUESTIONNAIRE = \"GET_QUESTIONNAIRE\",\r\n GET_EMPLOYEE_QUESTIONNAIRE = \"GET_EMPLOYEE_QUESTIONNAIRE\",\r\n GET_QUESTIONNAIRE_SUCCESS = \"GET_QUESTIONNAIRE_SUCCESS\",\r\n GET_QUESTIONNAIRE_ERROR = \"GET_QUESTIONNAIRE_ERROR\",\r\n PUT_QUESTIONNAIRE = \"PUT_QUESTIONNAIRE\",\r\n PUT_QUESTIONNAIRE_SUCCESS = \"PUT_QUESTIONNAIRE_SUCCESS\",\r\n PUT_QUESTIONNAIRE_ERROR = \"PUT_QUESTIONNAIRE_ERROR\",\r\n SUMBIT_QUESTIONNAIRE = \"SUMBIT_QUESTIONNAIRE\",\r\n SUMBIT_QUESTIONNAIRE_SUCCESS = \"SUMBIT_QUESTIONNAIRE_SUCCESS\",\r\n SUMBIT_QUESTIONNAIRE_ERROR = \"SUMBIT_QUESTIONNAIRE_ERROR\",\r\n SET_QUESTIONNAIRE_ANSWER = \"SET_QUESTIONNAIRE_ANSWER\",\r\n SET_QUESTIONNAIRE_NORM_SCORE = \"SET_QUESTIONNAIRE_NORM_SCORE\",\r\n SET_QUESTIONNAIRE_COMMENTS = \"SET_QUESTIONNAIRE_COMMENTS\",\r\n\r\n GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS = \"GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS\",\r\n GET_EMPLOYEE_QUESTIONNAIRE_ERROR = \"GET_EMPLOYEE_QUESTIONNAIRE_ERROR\",\r\n\r\n SAVE_EMPLOYEE_QUESTIONNAIRE = \"SAVE_EMPLOYEE_QUESTIONNAIRE\",\r\n SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS = \"SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS\",\r\n SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR = \"SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR\",\r\n\r\n SAVE_AUDITOR_QUESTIONNAIRE = \"SAVE_AUDITOR_QUESTIONNAIRE\",\r\n SAVE_AUDITOR_QUESTIONNAIRE_SUCCESS = \"SAVE_AUDITOR_QUESTIONNAIRE_SUCCESS\",\r\n SAVE_AUDITOR_QUESTIONNAIRE_ERROR = \"SAVE_AUDITOR_QUESTIONNAIRE_ERROR\",\r\n\r\n SEND_INVITATION = \"SEND_INVITATION\",\r\n SEND_INVITATION_SUCCESS = \"SEND_INVITATION_SUCCESS\",\r\n SEND_INVITATION_ERROR = \"SEND_INVITATION_ERROR\",\r\n\r\n GET_EMPLOYEETYPES = \"GET_EMPLOYEETYPES\",\r\n GET_EMPLOYEETYPES_SUCCESS = \"GET_EMPLOYEETYPES_SUCCESS\",\r\n GET_EMPLOYEETYPES_ERROR = \"GET_EMPLOYEETYPES_ERROR\",\r\n\r\n GET_QUESTIONNAIRE_INFO_PDF = \"GET_QUESTIONNAIRE_INFO_PDF\",\r\n GET_QUESTIONNAIRE_INFO_PDF_SUCCESS = \"GET_QUESTIONNAIRE_INFO_PDF_SUCCESS\",\r\n GET_QUESTIONNAIRE_INFO_PDF_ERROR = \"GET_QUESTIONNAIRE_INFO_PDF_ERROR\",\r\n}\r\n\r\nexport enum QuestionType {\r\n SliderType = \"SliderType\",\r\n SingleResponse = \"LikertScaleSingleResponse\",\r\n MultiResponse = \"LikertScaleMultiResponse\",\r\n IntroQuestion = \"IntroQuestion\",\r\n}\r\n\r\ninterface IGetQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE;\r\n}\r\ninterface IGetEmployeeQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE;\r\n}\r\ninterface IPutQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.PUT_QUESTIONNAIRE;\r\n}\r\ninterface ISubmitQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE;\r\n}\r\ninterface ISaveEmployeeQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE;\r\n}\r\ninterface ISaveAuditorQuestionnaireAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE;\r\n}\r\ninterface ISaveAuditorQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE_SUCCESS;\r\n}\r\n\r\ninterface ISaveAuditorQuestionnaireError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_AUDITOR_QUESTIONNAIRE_ERROR;\r\n}\r\n\r\ninterface ISendInvitationAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.SEND_INVITATION;\r\n}\r\ninterface ISendInvitationSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SEND_INVITATION_SUCCESS;\r\n}\r\n\r\ninterface ISendInvitationSuccessError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SEND_INVITATION_ERROR;\r\n}\r\n\r\nexport interface ISetQuestionnaireAnswerAction {\r\n type: typeof EQuestionnaireActionTypes.SET_QUESTIONNAIRE_ANSWER;\r\n answer: number;\r\n questionId: number;\r\n}\r\nexport interface ISetQuestionnaireNormScoreAction {\r\n type: typeof EQuestionnaireActionTypes.SET_QUESTIONNAIRE_NORM_SCORE;\r\n questionId: number;\r\n normScore: number;\r\n}\r\nexport interface ISetQuestionnaireCommentAction {\r\n type: typeof EQuestionnaireActionTypes.SET_QUESTIONNAIRE_COMMENTS;\r\n questionId: number;\r\n comments: string;\r\n}\r\nexport type TQuestionSpecificOwnProps = {\r\n question?: QuestionEntity;\r\n renderHeader: boolean;\r\n onChangeValue: (event: ChangeEvent) => void;\r\n onChangeNorm: (event: ChangeEvent) => void;\r\n onChangeComment: (event: ChangeEvent) => void;\r\n isReadOnly: boolean;\r\n accountTypeName: string;\r\n year: number;\r\n organisationIdentity: string;\r\n isAuditorRole: boolean;\r\n handleFileUpload: () => void;\r\n};\r\n\r\nexport type TQuestionSpecificOwnPropsWithChildren = TQuestionSpecificOwnProps & {\r\n children?: ReactNode;\r\n};\r\n\r\nexport type TQuestionSpecificOwnState = {\r\n questionEntity?: QuestionEntity;\r\n questionId: number;\r\n selectedOption: number;\r\n answerValue: number;\r\n norm?: number;\r\n comments?: string;\r\n employeeAnswers?: Array;\r\n isAuditorRole: boolean;\r\n};\r\n\r\nexport const FULL_ACCOUNT_TYPE = \"Full\";\r\nexport const BASIC_ACCOUNT_TYPE = \"Basic\";\r\n\r\nexport type QuestionnaireModel = {\r\n accountTypeName: string;\r\n isReadOnly: boolean;\r\n questions: Array;\r\n auditorFeedbacks: Array;\r\n hasFileUpload: boolean;\r\n};\r\n\r\nexport type QuestionEntity = {\r\n id: number;\r\n text: string;\r\n header: string;\r\n indicator: string;\r\n questionTypeId: number;\r\n value: number;\r\n possibleAnswers: Array;\r\n answer?: Answer;\r\n questionType: QuestionType;\r\n parentQuestionId?: number;\r\n children: Array;\r\n files: TFileInfo[];\r\n allowUpload: boolean;\r\n norm: number;\r\n comments: string;\r\n questionScoreDetails: QuestionScoreDetails;\r\n};\r\nexport type Answer = {\r\n id: number;\r\n questionId: number;\r\n text: string;\r\n value: number;\r\n auditorComment: string;\r\n auditorScore: number;\r\n};\r\nexport type AnswerDto = {\r\n answerOptionId: number;\r\n questionId: number;\r\n};\r\nexport type AuditorFeedback = {\r\n questionId: number;\r\n score?: number;\r\n comment: string;\r\n};\r\nexport type EmployeeAnswer = {\r\n employeeRole: string;\r\n text: string;\r\n value: number;\r\n};\r\nexport type QuestionScoreDetails = {\r\n overallScore: number;\r\n participantsDetails: Array;\r\n};\r\nexport type ParticipantDetails = {\r\n type: string;\r\n numberOfParticipants: number;\r\n};\r\nexport type EmployeeType = {\r\n name: string;\r\n id: number;\r\n};\r\ninterface IGetEmployeeTypesAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEETYPES;\r\n}\r\ninterface IGetQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE_SUCCESS;\r\n}\r\ninterface IGetEmployeeQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_SUCCESS;\r\n}\r\ninterface IGetEmployeeQuestionnaireErrorAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEE_QUESTIONNAIRE_ERROR;\r\n}\r\ninterface IGetQuestionnaireSuccessError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE_ERROR;\r\n}\r\ninterface IPutQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_SUCCESS;\r\n}\r\n\r\ninterface IPutQuestionnaireSuccessError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.PUT_QUESTIONNAIRE_ERROR;\r\n}\r\ninterface ISubmitQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_SUCCESS;\r\n}\r\n\r\ninterface ISubmitQuestionnaireSuccessError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SUMBIT_QUESTIONNAIRE_ERROR;\r\n}\r\n\r\ninterface ISaveEmployeeQuestionnaireSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_SUCCESS;\r\n}\r\n\r\ninterface ISaveEmployeeQuestionnaireError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.SAVE_EMPLOYEE_QUESTIONNAIRE_ERROR;\r\n}\r\n\r\ninterface IGetEmployeeTypesSuccessAction extends IReduxResponseAction> {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEETYPES_SUCCESS;\r\n}\r\n\r\ninterface IGetEmployeeTypesError extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_EMPLOYEETYPES_ERROR;\r\n}\r\ninterface IGetQuestionnaireInfoPdfAction extends IAxiosAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF;\r\n}\r\ninterface IGetQuestionnaireInfoPdfSuccessAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF_SUCCESS;\r\n}\r\ninterface IGetQuestionnaireInfoPdfErrorAction extends IReduxResponseAction {\r\n type: typeof EQuestionnaireActionTypes.GET_QUESTIONNAIRE_INFO_PDF_ERROR;\r\n}\r\nexport interface IQuestionnaireState {\r\n isLoadingQuestionnaire: boolean;\r\n isSendingInvitation: boolean;\r\n isLoadingEmployeeTypes: boolean;\r\n questionModel: QuestionnaireModel;\r\n answers: Array;\r\n employeeTypes: Array;\r\n}\r\n\r\nexport type QuestionnaireActionTypes =\r\n | IGetQuestionnaireAction\r\n | ISetQuestionnaireAnswerAction\r\n | IPutQuestionnaireAction\r\n | ISubmitQuestionnaireAction\r\n | IGetEmployeeQuestionnaireAction\r\n | ISaveEmployeeQuestionnaireAction\r\n | ISaveAuditorQuestionnaireAction\r\n | ISendInvitationAction\r\n | IGetEmployeeTypesAction\r\n | IGetQuestionnaireInfoPdfAction\r\n | ISetQuestionnaireNormScoreAction\r\n | ISetQuestionnaireCommentAction;\r\n\r\nexport type QuestionnaireActionResponseTypes =\r\n | IGetQuestionnaireSuccessAction\r\n | IGetQuestionnaireSuccessError\r\n | IPutQuestionnaireSuccessAction\r\n | IPutQuestionnaireSuccessError\r\n | ISubmitQuestionnaireSuccessAction\r\n | ISubmitQuestionnaireSuccessError\r\n | IGetEmployeeQuestionnaireSuccessAction\r\n | IGetEmployeeQuestionnaireErrorAction\r\n | ISaveEmployeeQuestionnaireSuccessAction\r\n | ISaveEmployeeQuestionnaireError\r\n | ISaveAuditorQuestionnaireSuccessAction\r\n | ISaveAuditorQuestionnaireError\r\n | ISendInvitationSuccessAction\r\n | ISendInvitationSuccessError\r\n | IGetEmployeeTypesSuccessAction\r\n | IGetEmployeeTypesError\r\n | IGetQuestionnaireInfoPdfErrorAction\r\n | IGetQuestionnaireInfoPdfSuccessAction;\r\n\r\nexport interface IQuestionnaireActions {\r\n GetQuestionnaire: (\r\n organisationGuid: string,\r\n year: number,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n PutQuestionnaire: (\r\n organisationGuid: string,\r\n year: number,\r\n listAnswers: Array,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n SubmitQuestionnaire: (\r\n organisationGuid: string,\r\n year: number,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n GetEmployeeQuestionnaire: (accessKey: string, onSuccess?: Function, onError?: Function) => QuestionnaireActionTypes;\r\n\r\n SaveEmployeeQuestionnaire: (\r\n accessKey: string,\r\n listAnswers: Array,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n SaveAuditorQuestionnaire: (\r\n organisationGuid: string,\r\n year: number,\r\n auditorFeedback: Array,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n SendInvitation: (\r\n organisationGuid: string,\r\n year: number,\r\n employeeTypeId: number,\r\n emailEmployee: string,\r\n onSuccess?: Function,\r\n onError?: Function\r\n ) => QuestionnaireActionTypes;\r\n\r\n GetEmployeeTypes: (onSuccess?: Function, onError?: Function) => QuestionnaireActionTypes;\r\n\r\n GetQuestionnaireInfoPdf: (onSuccess?: Function, onError?: Function) => QuestionnaireActionTypes;\r\n}\r\n","import Environment from \"../environment/environment\";\r\nimport { ReactPlugin } from \"@microsoft/applicationinsights-react-js\";\r\nimport { Snippet } from \"@microsoft/applicationinsights-web\";\r\nimport { createBrowserHistory } from \"history\";\r\n\r\nconst browserHistory = createBrowserHistory();\r\nexport const reactPlugin = new ReactPlugin();\r\n\r\nconst appInsightsConfiguration = {\r\n config: {\r\n instrumentationKey: Environment.ApplicationInsights?.Enabled\r\n ? Environment.ApplicationInsights.ApplicationInsightsKey\r\n : \"\",\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: browserHistory },\r\n },\r\n },\r\n} as Snippet;\r\n\r\nexport default appInsightsConfiguration;\r\n"],"sourceRoot":""}