{"version":3,"sources":["utils/constants/unauthorizedRegularExpression.js","utils/auth/auth-utils.js","actions/types.ts","actions/applicationUser.ts","actions/question.ts","actions/questionType.ts","actions/claimType.ts","actions/questionGroupStep.ts","actions/policyType.ts","actions/answer.ts","actions/questionValidationRule.ts","actions/claimApplication.ts","actions/documentType.ts","actions/applicationSettings.ts","actions/message.ts","actions/communicatorMessage.ts","actions/claimReview.ts","actions/claimDocument.ts","actions/formType.ts","actions/currency.ts","actions/claimCategory.ts","actions/survey.ts","utils/constants/rules.js","utils/constants/config.js","utils/constants/ids.js","utils/constants/currencies.js","i18n/i18n.js","utils/functions/question.js","utils/constants/claimBankDetailsQuestionsCodes.js","utils/functions/headers.js","utils/constants/codes.js","utils/constants/tabs.js","utils/functions/functions.ts","i18n/syncTranslationsFromRedux.js","cycles/applicationUser.js","cycles/claimCategory.js","cycles/claimType.js","cycles/questionGroupStep.js","cycles/question.js","cycles/questionType.js","cycles/policyType.js","cycles/questionValidationRule.js","cycles/claimApplication.js","cycles/documentType.js","cycles/applicationSettings.js","cycles/answer.js","cycles/communicatorMessage.js","cycles/claimReview.js","cycles/claimDocument.js","cycles/formType.js","cycles/message.js","cycles/survey.js","cycles/currency.js","cycles/index.js","reducers/message.ts","reducers/applicationUser.ts","reducers/question.ts","reducers/questionType.ts","reducers/claimType.ts","reducers/questionGroupStep.ts","reducers/claimCatgegory.ts","reducers/policyType.ts","reducers/answer.ts","reducers/questionValidationRule.ts","reducers/claimApplication.ts","reducers/documentType.ts","reducers/applicationSettings.ts","reducers/communicatorMessage.ts","reducers/claimReview.ts","reducers/claimDocument.ts","reducers/formType.ts","reducers/survey.ts","reducers/currency.ts","reducers/index.js","store/store.ts","hooks/usePrevious.js","hooks/usePageTracking.js","components/icons/icon.tsx","components/icons/pencilIcon.js","components/icons/phoneIcon.js","hooks/hooks.ts","components/policyHolderClaimReviewAcceptedRejectedWordings/policyHolderClaimReviewAcceptedRejectedWordings.tsx","components/general/formikFieldWrapper/formikFieldWrapper.tsx","components/policyHolderReviewClaimForm/policyHolderReviewClaimForm.tsx","components/policyHolderLoginModal/policyHolderLoginModal.tsx","projections/question.js","components/claimOverview/claimOverview.tsx","components/policyHolderReviewClaimOverview/policyHolderReviewClaimOverview.tsx","components/questionWithAnswer/questionWithAnswer.tsx","components/stepWithQuestionsAndAnswers/stepWithQuestionsAndAnswers.tsx","components/policyHolderReviewClaimQuestionsAnswers/policyHolderReviewClaimQuestionsAnswers.tsx","components/policyHolderClaimDetails/policyHolderClaimDetails.tsx","components/policyHolderClaimRejectedForm/policyHolderClaimRejectedForm.tsx","hosc/modals/modals.js","components/policyHolderClaimRejectedModal/policyHolderClaimRejectedModal.tsx","components/policyHolderReviewClaim/policyHolderReviewClaim.tsx","projections/claimReview.js","components/pageNotFound/pageNotFound.tsx","containers/policyHolderReviewClaim/policyHolderReviewClaimContainer.tsx","components/general/confirmationDialog/confirmationDialog.js","projections/questionValidationRule.ts","components/formikQuestion/formikQuestion.tsx","components/formikQuestion/formikQuestionInputProps.js","components/genericFormWithChildrenQuestions/utils.ts","components/genericFormWithChildrenQuestions/genericParentQuestion.tsx","projections/questionGroupStep.js","components/genericFormWithChildrenQuestions/genericChildQuestions.tsx","components/genericFormWithChildrenQuestions/genericFormWithChildQuestion.tsx","components/claimFormStep/claimFormStep.tsx","projections/documentType.js","components/general/progressBar/progressBar.tsx","components/attachmentItem/attachmentItem.tsx","components/questionDocumentTypes/questionDocumentTypes.tsx","projections/applicationSettings.ts","components/attachments/attachments.tsx","routers/stepsRouter.js","hooks/useStateIfMounted.ts","components/claimForm/claimForm.tsx","projections/message.js","projections/currency.ts","containers/claimForm/claimFormContainer.tsx","components/claim/claim.tsx","utils/constants/claimTypesStates.ts","containers/claim/claimContainer.tsx","components/submittedClaim/submittedClaim.tsx","containers/submittedClaimContainer/submittedClaimContainer.tsx","components/claimsList/claimsList.tsx","hooks/usePagination.js","projections/claimApplication.js","containers/claimsListContainer/claimsListContainer.tsx","components/claimTabs/claimtabs.js","hosc/filters/filters.js","components/claimCommunicator/ClaimCommunicatorFilesArray.tsx","components/claimCommunicator/claimCommunicatorForm.tsx","components/claimCommunicationTemplate/communicatorTemplateModal.tsx","components/icons/downloadIcon.js","components/claimCommunicationTemplate/claimCommunicatorTemplate.tsx","components/claimCommunicator/claimCommunicatorComments.tsx","components/claimCommunicator/claimCommunicator.tsx","projections/communicatorMessage.tsx","containers/claimCommunicator/claimCommunicatorContainer.tsx","components/editableQuestionWithAnswer/editableQuestionWithAnswer.tsx","components/claimDetails/claimDetails.tsx","containers/claimDetails/claimDetailsContainer.tsx","components/claimBankDetailsForm/claimBankDetailsForm.tsx","components/claimBankDetails/claimBankDetails.tsx","containers/claimBankDetails/claimBankDetailsContainer.tsx","projections/claimDocument.ts","components/claimDocuments/claimDocument.tsx","components/claimDocumentListFiltersForm/claimDocumentListFiltersForm.tsx","components/claimDocuments/claimDocumentList.tsx","containers/claimDocuments/claimDocumentContainer.tsx","utils/constants/surveyViews.ts","projections/survey.ts","components/general/circleWrapper/circleWrapper.tsx","components/icons/thumbUp.js","components/surveyConfirmation/surveyConfirmation.tsx","components/surveyForm/surveyForm.tsx","components/surveyForm/surveyFormWrapper.tsx","components/survey/singleSurvey.tsx","components/survey/multipleSurvey.tsx","containers/surveyContainer/surveyContainer.tsx","routers/tabRouter.js","components/claimTabArea/claimTabArea.tsx","components/withdrawClaimApplicationForm/withdrawClaimApplicationForm.tsx","components/withdrawnClaimApplicationBody/withdrawnClaimApplicationBody.tsx","components/withdrawClaimApplicationModal/withdrawClaimApplicationModal.tsx","components/displayDocumentClickedByEmailLink/displayDocumentClickedByEmailLink.tsx","components/existingClaim/existingClaim.tsx","containers/existingClaim/existingClaimContainer.tsx","routers/authenticatedUserRouter.js","hocs/withAuthentication.js","routers/contentRouter.js","components/content/content.js","components/applicationMessages/applicationMessages.tsx","hooks/useWindowSize.js","projections/applicationUser.ts","components/icons/languageIcon.tsx","components/general/headerContent/headerContent.js","components/termsAndConditionsModal/termsAndConditionsModal.tsx","hooks/useTermsAndConditions.ts","components/layout/layout.tsx","assets/images/warning.png","components/icons/copyPasteIcon.js","components/icons/checkedIcon.js","components/icons/phoneNoFillIcon.js","components/icons/emailIcon.js","components/general/intermalErrorsPage/internalErrorsPage.js","assets/images/wrencher-min.png","hooks/useOnlineStatus.js","components/general/unavailableWebAppPage/unavailableWebAppPage.js","containers/layout/layoutContainer.tsx","components/scrollToTop/scrollToTop.ts","routers/mainRouter.js","components/general/refreshPage/refreshPage.js","components/general/errorBoundary/errorBoundary.js","App.tsx","index.tsx","utils/auth/react-azure-adb2c.js","components/policyHolderClaimReviewAcceptedRejectedWordings/policyHolderClaimReviewAcceptedRejectedWordings.module.scss","assets/images/araglogo3@2x.png","components/general/styles/generalLabels.module.scss","components/layout/layout.module.scss","utils/auth/authConstants.js","components/general/progressBar/progressBar.module.scss","components/surveyConfirmation/surveyConfirmation.module.scss","components/termsAndConditionsModal/termsAndConditionsModal.module.scss","assets/images/tick.png","components/claimOverview/claimOverview.module.scss","components/claimForm/claimForm.module.scss","components/general/headerContent/headerContent.module.scss","components/general/formikFieldWrapper/formikFieldWrapper.module.scss","components/policyHolderClaimDetails/policyHolderClaimDetails.module.scss","components/policyHolderClaimRejectedForm/policyholderClaimRejectedForm.module.scss","components/pageNotFound/pageNotFount.module.scss","components/claimTabs/claimTabs.module.scss","components/claimCommunicator/claimCommunicatorForm.module.scss","components/claimCommunicator/claimCommunicatorCommentsDeleteButton.module.scss","components/general/circleWrapper/circleWrapper.module.scss","components/general/unavailableWebAppPage/unvailabeWebAppPage.module.scss","components/general/refreshPage/refreshPage.module.scss","assets/styles/generalStyle.module.scss","components/general/intermalErrorsPage/internalErrorsPage.module.scss"],"names":["unauthorizedRegularExpression","AUTH","require","Object","defineProperty","exports","value","requiresInteraction","errorMessage","length","indexOf","isIE","ua","window","navigator","userAgent","msie","msie11","B2C_SCOPES","initializeConfig","config","policyName","authority","tenant","split","policyTypes","resetPassword","key","resetPolicy","editProfile","profilePolicy","signInPolicy","msalAppConfig","auth","clientId","redirectUri","postLogoutRedirectUri","cache","cacheLocation","API_ACCESS","scopes","validateAuthority","storeAuthStateInCookie","REMOVE_MESSAGE","HANDLE_BUSINESS_ERRORS","HANDLE_INTERNAL_ERRORS","HANDLE_SERVICE_ERRORS","HIDE_MESSAGE","DISPLAY_DOWNLOAD_FILE_WARNING","FETCH_APPLICATION_SETTINGS","FETCH_APPLICATION_SETTINGS_SUCCESS","FETCH_APPLICATION_SETTINGS_FAILED","LOGIN","LOGIN_SUCCEEDED","LOGIN_FAILED","UPDATE_TOKEN","LOGOUT","FETCH_APPLICATION_USER_DETAILS","FETCH_APPLICATION_USER_DETAILS_SUCCESS","FETCH_APPLICATION_USER_DETAILS_FAILED","FETCH_APPLICATION_CUSTOMER_FEEDBACK","FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS","FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED","FETCH_APPLICATION_USER_WORDINGS","FETCH_APPLICATION_USER_WORDINGS_SUCCESS","FETCH_APPLICATION_USER_WORDINGS_FAILED","FETCH_UNAUTHORISED_WORDINGS","FETCH_UNAUTHORISED_WORDINGS_SUCCESS","FETCH_UNAUTHORISED_WORDINGS_FAILED","UPDATE_LANGUAGE_APPLICATION_USER","UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS","UPDATE_LANGUAGE_APPLICATION_USER_FAILED","ADD_RESOURCE_FILE_TO_I18N","ADD_RESOURCE_FILE_TO_I18N_SUCCESS","UPDATE_APPLICATION_TERMS_CONSENTED","UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS","UPDATE_APPLICATION_TERMS_CONSENTED_FAILED","FETCH_QUESTIONS","FETCH_QUESTIONS_SUCCESS","FETCH_QUESTIONS_FAILED","CLEAR_QUESTION_STATE","FETCH_ALL_QUESTIONS","FETCH_ALL_QUESTIONS_SUCCESS","FETCH_ALL_QUESTIONS_FAILED","FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO","FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS","FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED","FETCH_ALL_QUESTIONS_BY_GROUP","FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS","FETCH_ALL_QUESTIONS_BY_GROUP_FAILED","FETCH_QUESTION_TYPES","FETCH_QUESTION_TYPES_SUCCESS","FETCH_QUESTION_TYPES_FAILED","FETCH_CLAIM_TYPES","FETCH_CLAIM_TYPES_SUCCESS","FETCH_CLAIM_TYPES_FAILED","FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY","FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS","FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED","CLEAR_CLAIM_TYPES_STATE","FETCH_CURRENCIES","FETCH_CURRENCIES_SUCCESS","FETCH_CURRENCIES_FAILED","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_SUCCESS","FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_FAILED","CLEAR_QUESTION_GROUP_STEP","FETCH_CLAIM_CATEGORIES","FETCH_CLAIM_CATEGORIES_SUCCESS","FETCH_CLAIM_CATEGORIES_FAILED","FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE","FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS","FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED","CLEAR_CLAIM_CATEGORY_STATE","FETCH_POLICY_TYPES","FETCH_POLICY_TYPES_SUCCESS","FETCH_POLICY_TYPES_FAILED","CLEAR_POLICY_TYPE","CHANGE_ANSWER_STATE","CLEAR_ANSWERS_FROM_GROUP_STEPS","GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER","GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS","GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED","GET_DRAFT_CLAIM_APPLICATION_BY_USER","GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS","GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED","GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER","GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS","GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED","CLEAR_ANSWERS_STATE","CLEAR_POLICY_TYPE_COMBINATION","FETCH_QUESTION_VALIDATION_RULE","FETCH_QUESTION_VALIDATION_RULE_SUCCESS","FETCH_QUESTION_VALIDATION_RULE_FAILED","SEND_CLAIM_APPLICATION","SEND_CLAIM_APPLICATION_SUCCESS","SEND_CLAIM_APPLICATION_FAILED","UPDATE_CLAIM_APPLICATION","UPDATE_CLAIM_APPLICATION_SUCCESS","UPDATE_CLAIM_APPLICATION_FAILED","GET_CLAIM_APPLICATION_BY_ID","GET_CLAIM_APPLICATION_BY_ID_SUCCESS","GET_CLAIM_APPLICATION_BY_ID_FAILED","GET_CLAIM_APPLICATIONS","GET_CLAIM_APPLICATIONS_SUCCESS","GET_CLAIM_APPLICATIONS_FAILED","CHANGE_CLAIM_APPLICATION_STATE","REDIRECT_AFTER_CLAIM_SUBMIT","SEND_DRAFT_CLAIM_APPLICATION_BY_USER","SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS","SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED","CREATE_WITHDRAWN_CLAIM_APPLICATION","CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS","CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED","FETCH_CLAIM_APPLICATION_TEMPLATE","FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS","FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED","FETCH_DOCUMENT_TYPES","FETCH_DOCUMENT_TYPES_SUCCESS","FETCH_DOCUMENT_TYPES_FAILED","FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS","FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS","FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED","UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT","UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS","UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED","FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS","FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS","FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED","FETCH_COMMUNICATOR_MESSAGE","FETCH_COMMUNICATOR_MESSAGE_SUCCESS","FETCH_COMMUNICATOR_MESSAGE_FAILED","CREATE_COMMUNICATOR_MESSAGE","CREATE_COMMUNICATOR_MESSAGE_SUCCESS","CREATE_COMMUNICATOR_MESSAGE_FAILED","FETCH_COMMUNICATOR_HISTORY","FETCH_COMMUNICATOR_HISTORY_SUCCESS","FETCH_COMMUNICATOR_HISTORY_FAILED","FETCH_CLAIM_REVIEW_VALIDITY","FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS","FETCH_CLAIM_REVIEW_VALIDITY_FAILED","FETCH_CLAIM_REVIEW_DETAILS","FETCH_CLAIM_REVIEW_DETAILS_SUCCESS","FETCH_CLAIM_REVIEW_DETAILS_FAILED","ACCEPT_CLAIM_REVIEW","ACCEPT_CLAIM_REVIEW_SUCCESS","ACCEPT_CLAIM_REVIEW_FAILED","FETCH_REJECTION_FORM_CLAIM_REVIEW","FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS","FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED","REJECT_CLAIM_REVIEW_WITH_REASON","REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS","REJECT_CLAIM_REVIEW_WITH_REASON_FAILED","CHANGE_CLAIM_REVIEW_ANSWERS_STATE","CHANGE_CLAIM_REVIEW_STATE","FETCH_CLAIM_DOCUMENT","FETCH_CLAIM_DOCUMENT_SUCCESS","FETCH_CLAIM_DOCUMENT_FAILED","FETCH_FORM_TYPES","FETCH_FORM_TYPES_SUCCESS","FETCH_FORM_TYPES_FAILED","FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE","FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS","FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED","CLEAR_FORM_TYPES_STATE","FETCH_SURVEY_TYPE","FETCH_SURVEY_TYPE_SUCCESS","FETCH_SURVEY_TYPE_FAILED","POST_SURVEY_ANSWERS","POST_SURVEY_ANSWERS_SUCCESS","POST_SURVEY_ANSWERS_FAILED","loginSucceeded","createAction","ActionTypes","loginFailed","updateToken","fetchApplicationUserDetails","fetchApplicationUserDetailsSuccess","fetchApplicationUserDetailsFailed","logout","fetchApplicationCustomerFeedback","fetchApplicationCustomerFeedbackSuccess","fetchApplicationCustomerFeedbackFailed","updateApplicationTermsAndConditionsTermsConsented","updateApplicationTermsAndConditionsTermsConsentedSuccess","updateApplicationTermsAndConditionsTermsConsentedFailed","fetchApplicationUserWordings","fetchApplicationUserWordingsSuccess","fetchApplicationUserWordingsFailed","fetchUnauthorisedUserWordings","fetchUnauthorisedUserWordingsSuccess","fetchUnauthorisedUserWordingsFailed","addResourceToi18n","addResourceToi18nSuccess","updateLanguageApplicationUser","updateLanguageApplicationUserSuccess","updateLanguageApplicationUserFailed","fetchQuestions","fetchQuestionsSuccess","fetchQuestionsFailed","clearQuestionState","fetchAllQuestionsSuccess","fetchAllQuestionsFailed","fetchQuestionsOfClaimTypeCombo","fetchQuestionsOfClaimTypeComboSuccess","fetchQuestionsOfClaimTypeComboFailed","fetchQuestionsByGroup","fetchQuestionsByGroupSuccess","fetchQuestionsByGroupFailed","fetchQuestionTypes","fetchQuestionTypesSuccess","fetchQuestionTypesFailed","fetchClaimTypesSuccess","fetchClaimTypesFailed","fetchClaimTypesByPolicyTypeAndClaimCategorySuccess","fetchClaimTypesByPolicyTypeAndClaimCategoryFailed","clearClaimTypesState","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccess","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailed","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplication","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccess","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailed","clearGroupStep","fetchPolicyTypes","fetchPolicyTypesSuccess","fetchPolicyTypesFailed","changeAnswerState","clearAnswersFromGroupSteps","clearAnswersState","clearPolicyTypeCombination","fetchDraftClaimApplicationByUser","fetchDraftClaimApplicationByUserSuccess","fetchDraftClaimApplicationByUserFailed","fetchNoSubmittedDraftClaimApplicationByUser","fetchDraftClaimApplicationListByUserSuccess","fetchDraftClaimApplicationListByUserFailed","fetchQuestionValidationRule","fetchQuestionValidationRuleSuccess","fetchQuestionValidationRuleFailed","sendClaimApplication","sendClaimApplicationSuccess","sendClaimApplicationFailed","updateClaimApplication","updateClaimApplicationSuccess","updateClaimApplicationFailed","fetchClaimApplicationById","fetchClaimApplicationByIdSuccess","fetchClaimApplicationByIdFailed","fetchClaimApplications","fetchClaimApplicationsSuccess","fetchClaimApplicationsFailed","redirectAfterClaimSubmit","sendDraftClaimApplicationByUser","sendDraftClaimApplicationByUserSuccess","sendDraftClaimApplicationByUserFailed","fetchClaimApplicationBankAccountAnswers","fetchClaimApplicationBankAccountAnswersSuccess","fetchClaimApplicationBankAccountAnswersFailed","updateClaimApplicationBankAccount","updateClaimApplicationBankAccountSuccess","updateClaimApplicationBankAccountFailed","createWithdrawnClaimApplication","createWithdrawnClaimApplicationSuccess","createWithdrawnClaimApplicationFailed","fetchClaimApplicationTemplate","fetchClaimApplicationTemplateSuccess","fetchClaimApplicationTemplateFailed","fetchDocumentTypes","fetchDocumentTypesSuccess","fetchDocumentTypesFailed","fetchApplicationSettings","fetchApplicationSettingsSuccess","fetchApplicationSettingsFailed","removeMessage","handleBusinessErrors","handleInternalErrors","handleServiceErrors","hideMessage","displayDownloadFileWarning","fetchCommunicatorMessageSuccess","fetchCommunicatorMessageFailed","createCommunicatorMessage","createCommunicatorMessageSuccess","createCommunicatorMessageFailed","fetchCommunicatorHistory","fetchCommunicatorHistorySuccess","fetchCommunicatorHistoryFailed","fetchClaimReviewValidity","fetchClaimReviewValiditySuccess","fetchClaimReviewValidityFailed","fetchClaimReviewDetails","fetchClaimReviewDetailsSuccess","fetchClaimReviewDetailsFailed","acceptClaimReview","acceptClaimReviewSuccess","acceptClaimReviewFailed","fetchRejectionFormClaimReview","fetchRejectionFormClaimReviewSuccess","fetchRejectionFormClaimReviewFailed","rejectClaimReviewWithReason","rejectClaimReviewWithReasonSuccess","rejectClaimReviewWithReasonFailed","changeClaimReviewAnswerState","changeClaimReviewState","fetchClaimDocumentSuccess","fetchClaimDocumentFailed","fetchClaimDocumentWithQueryParams","fetchClaimDocumentWithQueryParamsSuccess","fetchClaimDocumentWithQueryParamsFailed","fetchFormTypesSuccess","fetchFormTypesFailed","fetchFormTypesByPolicyAndCategoryCode","fetchFormTypesByPolicyAndCategoryCodeSuccess","fetchFormTypesByPolicyAndCategoryCodeFailed","clearFormTypes","fetchCurrencies","fetchCurrenciesSuccess","fetchCurrenciesFailed","fetchClaimCategoriesSuccess","fetchClaimCategoriesFailed","fetchClaimCategoriesByPolicyType","fetchClaimCategoriesByPolicyTypeSuccess","fetchClaimCategoriesByPolicyTypeFailed","clearClaimCategoryState","fetchSurveyType","fetchSurveyTypeSuccess","fetchSurveyTypeFailed","postSurveyAnswers","postSurveyAnswersSuccess","postSurveyAnswersFailed","rules","code","label","process","SUCCESS","ERROR","WARNING","INFO","before","after","ids","currencyPosition","i18next","use","initReactI18next","init","fallbackLng","resources","translation","blankPage","contactIT","email","emailContactEmail","refreshPage","returnHomepage","questionFunctions","questionTypeCode","question","dateFormat","showYearDropdown","showMonthDropdown","dropdownMode","name","showTimeSelect","showTimeSelectOnly","noOptionsMessage","loadingMessage","placeholder","noOptionsText","answer","questionType","restOptions","QuestionCode","Text","Amount","Date","OptionId","Flag","QuestionId","id","parseFloat","CurrencyId","currency","moment","format","trim","Attachments","map","attachment","documentTypeCodes","documentTypes","type","values","questions","valuesArrays","parentQuestion","find","requiredByQuestionId","requiredByOptionId","some","item","isRequired","i18n","t","questionTypes","answers","formAnswers","keys","answerQuestion","questionTypeId","constructAnswerDto","checkboxQuestionTypeId","_","checkBoxQuestionAnswers","filter","isRequiredCheckboxQuestion","isParentOrEnabled","isParent","enabledByOptionId","enabledByQuestionId","hasAnswerInFormAnswers","draftAnswers","dtoAnswers","mapFormAnswersToDTOAnswers","mappedValues","e","questionCode","text","amount","Currency","toUpperCase","date","optionId","flag","attachments","questionId","GENERAL_FUNCTIONS","mergeArraysOfObjects","questionValidationRules","integer","minValue","maxValue","range","parseInt","ruleCode","questionsAnswers","maxRestrictionValue","minRestrictionValue","valueRestrictions","rule","reduce","acc","curr","restriction","minDate","maxDate","entries","forEach","min","max","getQuestionValidationRuleMinAndMaxValue","toLowerCase","futureDate","add","toDate","pastDate","subtract","todayFutureDate","todayPastDate","beforeEqualSpecificDate","beforeSpecificDate","afterSpecificDate","afterEqualSpecificDate","pastSpecificDate","futureSpecificDate","isBefore","isAfter","currencyOptions","_questionTypeCode","_parsedAnswerTextValue","c","currencyId","val","appendCurrencySymbol","symbol","selectedOption","options","o","claimBankDetailsQuestionCodes","HEADER_FUNCTIONS","token","accept","codes","ca","uk","ClaimForm","ArchivedClaimForm","ClaimFormQuestion","Message","ClaimTemplate","MediationPdf","UnderwriterFile","page","limit","isEditable","isReadOnly","description","filename","surveysGroupCodesToGroupIds","acceptSurveyGroupCode","acceptedSurveyGroupId","rejectSurveyGroupCode","rejectedSurveyGroupId","solicitorSurveyGroupCode","solicitorSurveyGroupId","questionTypeIdForCheckboxes","TABS","communication","claimDetails","documents","BANK_DETAILS_TAB","SURVEY_TAB","REACT_APP_API_VPATH","file","substr","lastIndexOf","variant","isReadOnlyOrEditableQuestion","displayType","isQuestionOfTypeIntegerRange","errors","i","isReadOnlyQuestionHandler","requiredErrorMessage","invalidRule","regExExpression","RegExp","test","differentValues","every","minAge","getTimeDifference","years","maxAge","minLength","maxLength","isSameOrAfter","isSameOrBefore","fileValidation","files","content","generals","firstDate","secondDate","Math","abs","option","setFieldError","formikBag","field","rejectedFile","numberOfFiles","FileSize","size","isValidFile","isValidFileName","push","fileName","regexString","slice","pattern","patternForAttachments","matchWhiteSpaces","exec","match","replace","tables","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","result","substring","onerror","requestToDownloadFile","setProgress","a","store","getState","applicationUser","accessToken","url","getBaseURL","template","fetch","method","headers","headersWithTokenJson","json","data","requestFileDownload","warnings","dispatch","actions","body","setTimeout","undefined","status","fileNotFound","blankPageFiles","sasUri","uri","responseType","response","progressDownloadIndicator","clone","ok","Error","blob","downloadURI","document","createElement","href","URL","createObjectURL","download","appendChild","click","revokeObjectURL","removeChild","contentLength","get","total","getReader","receivedLength","read","done","requestToUploadFile","JSON","stringify","customMessage","requestToUploadFileToBlob","requestToRemoveFile","attachmentId","downLoadFile","base64Encoding","src","msSaveOrOpenBlob","byteCharacters","atob","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","Blob","downloadLink","datURLtoFile","dataurl","fileType","bstr","n","u8arr","File","scaleImage","encodedImage","scaleFactor","img","Image","scaledWidth","width","scaledHeight","height","canvasEl","ctx","getContext","drawImage","dataUrlString","canvas","toDataURL","remove","base64FileSizeInBytes","base64String","ceil","compressImageDimensions","imageFile","sizeLimit","MAX_ALLOWED_SIZE_IN_BYTES","readFileAsBase64Async","iterativeEncodedImage","totalIter","pow","extractDataFromResponseObject","arraysWithObjects","arg","toTitleCase","string","charAt","join","isUndefined","v","normalizeById","entity","byId","allIds","mergeArraysUnique","merged","concat","newSet","Set","rangeArray","start","end","appendCurrencySign","position","sign","createClaimApplicationBankAccountDto","claimApplicationId","bankAccountType","bankAccountTypeUkOption","BankAccountTypeId","AccountHolderName","accoutnHolderNameUk","AccountNumber","accountNumber","SortCode","sortCode","ClaimApplicationId","bankAccountTypeinternationalOption","accoutnHolderNameInternational","Iban","iban","addHyphenInEveryTwoCharacters","removeAllDashesFromValue","removeHyphens","replaceAll","filterObjectBy","obj","predicate","res","assign","timeFormat","time","objectKeepDiffsAndClearSameValuesForBankDetails","newObj","prevObj","target","getDifferenceFromStrings","str1","str2","diff","createUrlQueryParameters","params","index","constructedQueryParam","constructSingleQueryParameter","isArray","isBoolean","isAndroidDevice","getEnvironmentByWindowUrl","isEnvironmentIndicator","enviromentsForIndicator","getCountryByWindowUrl","countryCode","isCountryIndicator","countries","findActiveTabToClaimTabArea","query","includes","matchClaimIdFromUrl","location","pathname","fileUploadAzureBlob","abortController","hasMetaDataSet","parts","blobURI","sasToken","segments","storageAccount","containerName","metadata","state","createdDate","createdById","applicationUserDetails","blobService","BlobServiceClient","containerClient","getContainerClient","blobClient","getBlockBlobClient","blobHTTPHeaders","blobContentType","blockSize","concurrency","onProgress","progress","currentProgress","loadedBytes","abortSignal","signal","uploadData","setMetadata","hasCompleteMetaData","console","log","getAnswersOfQuestionTree","filteredQuestionsById","claimApplication","questionTypesById","items","answerOfQuestion","parseQuestionWithAnswer","subQs","q","sq","getAnswersForm","filterQuestionsById","parseAnswerType","isAnonymised","Anonymised","selectedUserId","isValidDateFormat","dateString","convertToParsedDateStringFormat","inputDate","day","month","year","UTC","Number","adjustMinMaxToLocalTime","convertedMaxDate","localTimeZoneOffset","getTimezoneOffset","setMinutes","getMinutes","capitalizeFirstLetter","str","formatValuesForRadioQuestion","formattedValues","splitValues","checkIfParentQuestionCheckboxTickedToEnableQuestion","findParentQuestion","questionTypeIdCheckboxId","checkIfParentQuestionCheckboxUntickedToClearChildQuestionValue","fetchTermsAndConditions","userId","syncTranslationsFromRedux","lng","languages","ietfbcP47","x","addResourceBundle","changeLanguage","REQUEST_LOGIN","REQUEST_APPLICATION_USER_DETAILS","REQUEST_APPLICATION_CUSTOMER_FEEDBACK","REQUEST_APPLICATION_USER_WORDINGS","REQUEST_UPDATE_LANGUAGE","REQUEST_APPLICATION_USER_REVIEW_CLAIM_WORDINGS","addResourceFileToi18n","sources","ACTION","action","languageId","applicationSettings","apiApplicationSettings","wordings","changeWordingAfterUpdateLanguage","requestUpdateLanguage","token$","STATE","request$","compose","delay","sampleCombine","category","send","payload","HTTP","select","replaceError","err","xs","of","flatten","requestApplicationUserDetails","requestApplicationUserWordings","requestApplicationUserInfoAfterSuccessfulLogin","requestLogin","requestApplicationCustomerFeedback","updateApplicationUserTermsConsented","requestApplicationUserReviewClaimWordings","REQUEST_CLAIM_CATEGORIES","REQUEST_CLAIM_CATEGORIES_BY_POLICYTYPE","requestClaimCategories","requestClaimTypesWhenClaimCategoriesAreEmpty","policyType$","policyType","policyTypeCode","claimCategoryCode","requestClaimCategoriesByPolicyType","REQUEST_CLAIM_TYPES","REQUEST_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY","requestClaimTypes","requestQuestionGroupStepsWhenClaimTypesAreEmpty","answers$","claimCategory","claimTypeCode","requestClaimTypesByPolicyTypeAndClaimCategory","REQUEST_QUESTION_GROUP_STEP","REQUEST_QUESTION_GROUP_STEP_BY_CLAIM_APPLICATION","requestQuestionGroupStep","formTypeCode","requestQuestionGroupStepByClaimApplication","REQUEST_QUESTIONS","REQUEST_ALL_QUESTIONS","REQUEST_QUESTIONS_BY_GROUP","REQUEST_QUESTIONS_OF_CLAIM_TYPE_COMBO","requestQuestionsOfClaimTypeCombo","requestAllQuestions","requestQuestions","questionGroupStepId","requestQuestionsByGroup","groupCode","REQUEST_QUESTION_TYPES","requestQuestionsTypes","REQUEST_POLICYTYPES","requestPolicyTypes","REQUEST_QUESTION_VALIDATION_RULE","requestQuestionValidationRule","POST_CLAIM_APPLICATION","POST_DRAFT_CLAIM_APPLICATION","REQUEST_CLAIM_APPLICATION_BY_ID","REQUEST_CLAIM_APPLICATIONS","POST_WITHDRAWN_CLAIM_APPLICATION","fetchClaimApplicationAfterMakingClaimBankAccount","fetchCustomerFeedbackAfterSuccessClaim","history","postClaimApplication","requestClaimApplication","postDraftClaimApplication","flattenSequentially","requestClaimApplications","postWithdrawnClaimApplication","templateId","REQUEST_DOCUMENT_TYPES","requestDocumentTypes","REQUEST_APPLICATION_SETTINGS","requestApplicationSettings","REQUEST_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER","REQUEST_DRAFT_CLAIM_APPLICATION_BY_USER","REQUEST_DRAFT_CLAIM_APPLICATION_LIST_BY_USER","requestNoSubmittedDraftClaimApplicationByUser","requestDraftClaimApplicationByUser","requestDraftClaimApplicationListByUser","REQUEST_COMMUNICATOR_MESSAGE","REQUEST_COMMUNICATOR_HISTORY","REQUEST_CREATE_COMMUNICATOR_MESSAGE","requestCommunicatorMessageAftermakingMessage","request","requestCommunicatorMessage","requestCreateCommunicatorMessage","requestCommunicatorHistory","filters","defaultPayloadPagination","REQUEST_CLAIM_REVIEW_VALIDITY","REQUEST_CLAIM_REVIEW_DETAILS","REQUEST_ACCEPT_CLAIM_REVIEW","REQUEST_REJECTION_FORM_CLAIM_REVIEW","REQUEST_REJECT_CLAIM_REVIEW_WITH_REASON","requestClaimReviewValidity","randomId","requestClaimReviewDetails","RandomId","requestAcceptClaimReview","requestRejectionFormClaimReview","requestRejectClaimReviewWithReason","REQUEST_CLAIM_DOCUMENT","REQUEST_DOCUMENT_WITH_QUERY_PARAMS","requestDocumentWithQueryParams","requestClaimDocument","REQUEST_FORM_TYPES","REQUEST_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE","requestFormTypes","requestQuestionGroupStepsWhenFormTypesAreEmpty","requestClaimFormTypesByPolicyAndCategoryCode","flattenConcurrently","authorizedMessage","REQUEST_SURVEY_TYPE","requestSurveyType","surveyTypeGroupCode","fetchSurveyQuestions","guid","fetchSurveyTypesAfterSuccessPost","REQUEST_CURRENCIES","requestCurrencies","combineCycles","initialMessage","cycles","cycle","createReducer","message","unAuthorisedDetails","customerFeedback","loading","updateConsent","requestHasFailed","accessTokenFromAuthentication","INITIAL_STATE","surveyQuestion","claimType","claimFormType","questionGroupStep","clearClaimCategory","formType","answerFromGroupSteps","activeGroupStepCode","loadingAddresses","draftClaimApplicationList","submittedLoading","loadingNoSubmittedDraft","answerWithCurrency","newState","questionValidationRule","bankDetails","loadingBankAccountAnswers","pagination","submitting","isDraftApplicationRequestFinished","claimApplicationTemplate","totalPages","count","totalItems","totalCount","error","withdrawn","documentType","createMessage","newId","v4","uuid","created","detectWarnings","warning","StatusMessage","internalErrors","serviceErrors","newMessages","addSuccessMessage","title","traceId","communicatorMessage","posting","claimReview","passCode","claimReviewDetails","overview","currencies","claimReviewAcceptedRejectedWordings","rejectedReasonClaimReview","isClaimReviewValid","rejectFormLoading","questionGroupSteps","claimReference","policyTypeName","claimCategoryName","claimTypeName","formTypeName","claimDocument","clearFormTypesState","survey","surveyType","postingSuccessBody","completed","link","surveyTypeId","reducers","combineReducers","resettableRootReducer","ActionsTypes","middleWare","createLogger","cycleMiddleware","createCycleMiddleware","makeActionDriver","makeStateDriver","persistConfig","version","storage","whitelist","reducer","persistReducer","configureStore","middleware","devTools","run","main","makeHTTPDriver","createBrowserHistory","basename","REACT_APP_UI_VPATH","persistor","persistStore","usePrevious","ref","useRef","useEffect","current","usePageTracking","useLocation","activeMatch","useRouteMatch","prevActiveMatch","useSelector","submittedClaimMatch","prevSubmittedClaimMatch","createNewDataLayer","step","virtualPageUrl","getClaimFormBaseVirtualPageUrl","layer","dataLayer","Icon","props","children","className","PencilIcon","xmlns","viewBox","xmlSpace","d","PhoneIcon","useAppDispatch","useDispatch","useAppSelector","PolicyHolderClaimReviewAcceptedRejectedWordings","acceptedRejectedWordings","appSettings","useTranslation","style","subtitle","contact","aragEmail","aragTelephoneNumber","aragAddress","aragStreet","aragCounty","FormikFieldWrapper","inputProps","inline","labelSize","inputSize","helpText","validator","getInputProps","groupShape","customErrorMessage","infoText","formGroupContainerStyle","hasInlineElements","inlineGroupElements","validate","form","touched","setFieldValue","setFieldTouched","meta","finalInputProps","styles","dangerouslySetInnerHTML","__html","maxCharacters","PolicyHolderReviewClaimForm","handleUserInfoSubmit","marginBottom","initialValues","onSubmit","autoComplete","autoCorrect","spellCheck","required","onClick","PolicyHolderLoginModal","fadeIn","darkenedBackground","questionProjections","questionsExists","createSelector","questionsById","questionHelperText","givenQuestion","formAnswer","answerOfGivenQuestion","labelDisplayedWhenAnswered","attachmentsQuestionDocumentTypes","attachmentQuestionCode","asnwerValues","isSuggested","fitlerAnswersByQuestions","documentsTypes","loadingQuestions","arrayOfDocumentTypes","arrayOfQuestions","objOfAnswers","cur","mappedAttachments","documentTypesOfAttachment","fullFileName","decode","scope","questionListOfGroupStep","questionGroupStepCode","questionById","groupStep","getAllRelatedQuestions","postcodeLoader","questionValues","questionsWithRelatedQuestions","relatedQuestions","questionWithRelatedQuestions","filterQuestionsByGroup","groupId","filterQuestionsByGroupCode","questionsByCode","areQuestionsByGroupExist","areQuestionsByGroupCodeExist","surveyQuestions","questionTypeById","questionTypesLoading","questionsAllIds","arr","addHorizontalLine","section","sort","b","rank","questionsWithGroupId","questionsByGroupId","isReadonly","ClaimOverviewRow","leftSide","rightSide","ClaimOverview","openWithdrawModal","withDrawQuestionsExist","updateWithdrawnDetailsGroupCode","formattedType","claimHandlerName","claimStatusName","claimStateName","arrowDirection","PolicyHolderReviewClaimOverview","claimReviewOverview","QuestionWithAnswer","questionWithAnswer","answerLabel","checkbox","default","alt","marginRight","declarationQuestionGroupStep","StepWithQuestionsAndAnswers","stepWithQuestionsAndAnswers","generalStyle","questionsWithAnswers","PolicyHolderReviewClaimQuestionsAnswers","questionsWithAnswersGroupedByStep","PolicyHolderClaimDetails","claimReviewAnswersGroupedByStep","getRejectionFormClaimReview","print","PolicyHolderClaimRejectedForm","rejectedReasonClaimReviewWordings","SmallModal","PrimaryButton","generalStyles","SecondaryButton","TabWrapper","TabButton","PolicyHolderClaimRejectedModal","changeClaimReviewStateAction","Boolean","noScroll","onClose","formikProps","PolicyHolderReviewClaim","claimReviewProjections","claimReviewDetailsOverview","CreatedDate","acceptedClaimReview","answersGroupedByStep","sortedAnswersGroupedByStep","sortBy","chain","groupBy","s","stepId","PageNotFound","PolicyHolderReviewClaimContainer","useParams","fetchClaimReviewValidityAction","useCallback","fetchClaimReviewDetailsAction","acceptClaimReviewAction","fetchRejectionFormClaimReviewAction","rejectClaimReviewWithReasonAction","changeClaimReviewAnswerStateAction","fetchUnauthorisedUserWordingsAction","passcode","Email","Passcode","AcceptanceStatusReason","acceptanceStatusReason","ConfirmationDialog","isOpen","handleClose","executeAction","QuestionValidationRuleProjections","rulesById","FormikQuestion","handleCurrencySelectWrapper","onAutoSaveDraftClaim","inlineReadOnlyElement","isDisabledQuestion","useFormikContext","questionHelpText","filteredRulesByCodes","formGroupVariant","getInputItem","changeAnswerStateAction","useMemo","validationCreator","formikArgs","restArgs","maxLengthRule","charLimit","questionOptions","requiredQuestionByOptionId","generalInputProps","onBlur","evt","handleBlur","checked","horizontal","onChange","flex","labelStyle","marginTop","ranging","getQuestionIntegerRange","rangeOptions","startLabel","endLabel","textAlign","inputValue","timeOutInMilliseconds","inputId","Address1","lines","addressline1","Address2","addressline2","Address3","addressline3","County","county","Town","town","Province","controlName","dropdownElement","querySelector","from","province","dispatchEvent","Event","bubbles","postcode","setInputValue","dateInputProps","mapQuestionTypeCodeToDateInputProps","dateQuestionRestrictions","selected","isVertical","menuoptions","defaultCurrency","isDefault","menuOptions","handleOptionSelect","selectedCurrency","valueWithHyphens","getQuestionFieldInputProps","addStyleToSpecificQuestion","specificStyleToQuestion","isDisableSpecificQuestion","isDisabled","GenericParentQuestion","Form","defaultLabelSize","defaultInputSize","hasDynamicStyle","accQuestions","dynamicStyle","tooltip","ReadOnlyForm","isCheckboxLabel","Body","additionalStyle","questionGroupStepProjections","tabs","questionGroupStepById","questionGroupStepWithSmallestRank","availableSteps","activeTab","hasReachedLastPartiallyGroupStep","lastCompletedStep","availableItems","GenericChildQuestions","isEnabledQuestion","findAnswerQuestion","isEnabledByOptionType","isEnabledByCheckBoxType","shouldClearFieldValue","useChildQuestions","GenericFormWithChildQuestions","ParentElement","ChildrenElement","notUseFieldValidator","SubmitForm","SubmitButton","disabledSubmitButton","disabled","Loading","ClaimFormStep","allQuestions","documentTypeProjections","uploadOnlyOnceDocumentTypesCodes","questionWithDocumentTypesCode","documentTypesById","questionDocumentTypesById","mergedDocumentTypesOptions","documentTypesOptionsList","ProgressBar","additionalStyles","mainStyles","subProgressTitle","hasInitialStyle","role","toFixed","AttachmentItem","handleTypeChange","attachmentIndex","handleDownload","removeAttachment","maxAttachmentsSizeInBytes","autoSaveAction","fileUploadingProgress","cancelUpload","isDownloadingFile","fileDownloadingProgress","useState","invalidAttachmentsMessage","setInvalidAttachmentsMessage","documentTypesOptions","attachmentAvailableDocumentTypesOptions","claimAttachments","attachmentValidationError","validateAttachment","instanceId","preventDefault","aria-disabled","marginLeft","fileToMB","thresholdMb","progressEnd","QuestionDocumentTypes","questionDocumentTypes","marginBlockStart","marginBlockEnd","marginInlineStart","marginInlineEnd","paddingInlineStart","applicationSettingsProjections","maxAttachmentSizeInMB","getCountry","currentCountryCode","getAragSocialMediaImages","aragSocialMediaImages","isUploadingFile","setUploadingfile","setFileUploadingProgress","setDownloadingFile","setFileDownloadingProgress","uniqueAndNotAdded","uploadOnlyOnePerClaimApplication","unique","extractUniqueSelectedDocumentTypesThatCanBeUploadedOnlyOnce","addAttachments","newAttachments","rejectedFileIndexes","uploadedAttachments","attachmentTypeEnum","uploadedAttachment","AbortController","fileSize","round","updatedList","fileUploadingProgressHandler","uploadedAttachmentsProgress","uploadPromises","progressPromise","prevProgress","updatedProgress","findIndex","then","fileItem","aborted","all","indexOfAttachmentToBeRemoved","fileId","abort","updatedAttachment","updatedAttachmentIndex","updateAttachment","handleDrop","dragDrop","validateFileExtensions","sizeOfFiles","readFiles","validationCreatorForAttachments","accepts","ACCEPTED_FILE_EXTENSIONS","allowMultiple","onDrop","fontWeight","StepsRouter","path","render","useStateIfMounted","initialState","isMounted","setState","onNextPage","onPreviousPage","onSubmitForm","setCaptchaValue","captchaValue","recaptchaRef","fetchingQuestionGroupSteps","questionGroupsStepsLoading","setQuestionGroupsStepsLoading","isCaptchaEnabled","enableCaptcha","submittingClaim","fetchingQuestions","claimFormAnswers","isLastTab","setIsLastTab","tab","handleCaptcha","Fragment","activeItemKey","navItems","stepCounter","validateOnChange","sitekey","CAPTCHA_SITE_KEY","onExpired","declarationGroupStep","reversedArrow","messageProjections","notificationCallback","messagesById","notificationLabel","callback","totalErrorMessages","currencyProjections","currencyOptionsList","symbolSeparated","defaultCurrencies","currencyOptionsListForm","ClaimFormContainer","setHasRouteChangedByModal","hasRouteChangedByModal","prevFetchingQuestionGroupSteps","useHistory","allAnswersFromGroupSteps","prevSubmittingClaim","enableAutoSave","prevTotalErrorMessages","setActiveTab","React","createRef","loadingQuestionGroupStep","prevLoadingQuestionGroupStep","setSelectedCurrency","fetchQuestionTypeAction","fetchQuestionValidationRuleAction","fetchCurrenciesAction","sendClaimApplicationAction","updateClaimApplicationAction","sendDraftClaimApplicationByUserAction","fetchDocumentTypesAction","fetchQuestionAction","clearQuestionStateAction","clearClaimCategoryStateAction","clearFormTypesStateAction","clearPolicyTypeCombinationAction","clearGroupStepAction","reset","answersArray","constructAnswersDTO","pickBy","PolicyTypeCode","ClaimCategoryCode","FormTypeCode","Answers","nextTabCode","ReCaptchaResponseToken","Claim","claimCategories","formTypes","handleClaimBasicQuestionChange","handleConfirm","closeConfirmationModal","confirmationModalOpen","arePoliciesLoading","areClaimCategoriesLoading","areFormTypesLoading","refillClaimId","isLoading","CLAIM_TYPES_STATES","clearClaimFormTypesStateAction","ClaimContainer","setConfirmationModalOpen","storedInputChange","setStoredInputChange","fetchPolicyTypesAction","fetchNoSubmittedDraftClaimApplicationByUserAction","clearAnswersFromGroupStepsAction","fetchClaimCategoriesByPolicyTypeAction","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeAction","clearAnswerStateAction","fetchDraftClaimApplicationByUserActionAction","fetchFormTypesByPolicyAndCategoryCodeAction","onSelectChange","inputChange","claimTypesStates","SubmittedClaim","SubmittedClaimContainer","fetchClaimApplicationByIdAction","onClaimList","columns","onClickResumeClaim","onClickViewDetails","propertyName","header","sortable","formatter","row","isDraft","ClaimsList","claimApplicationsList","onCreateNewClaim","pager","onPageSizeChange","goAtPage","goAtStart","goAtEnd","goAtNext","goAtPrevious","striped","accordionItemHeaderFormatter","pageSize","totalRecords","pageSizeOptions","listSizeOptions","noResultsMessage","GO_AT_PREVIOUS","GOT_AT_NEXT","GO_AT_END","GO_AT_START","GO_AT_PAGE","HANDLE_PAGE_SIZE_CHANGE","SET_STATE","SET_STATE_FILTERS","CLEAR_FILTER","isFetching","filterState","isEqual","usePagination","useReducer","defaultListSize","pagerState","handlePageSizeChange","setFiltersState","clearFilterState","claimApplicationProjections","claimApplicationList","claimApplicationsById","claimantName","claimant","fullName","assignee","isBankDetailsVisible","claimApplicationApproval","isSurveyTabVisible","claimApplicationAnswersGroupedByStep","questionGroupStepsById","allQuestionIds","loadingClaimDetailsData","loadingClaimApplication","loadingQuestion","loadingQuestionType","loadingBankDetailsData","loadingQuestionValidationRule","initialBankDetailsFormValues","claimBankAccount","bankAccountTypeId","accountHolderName","sortcode","answersOfSpecificByGroup","draft","claimApplicationAnswersGroupedByStepExtended","groupStepWithQuestions","qroupStepAndQuestions","filterGroupStepAndQuestions","filterAnswers","ClaimsListContainer","fetchClaimApplicationsAction","clearAnswersStateAction","clearClaimTypesStateAction","CLAIM_TABS","ClaimTabs","handleTabClick","onNavItemSelect","Content","GroupButtons","secondary","rest","Filters","ErrorInsideForms","ClaimCommunicatorFilesArray","arrayHelpers","postCommunicatorMessageLoading","handleFileDrop","file1","uploading","hasMetaData","handleRemoveAttachment","removing","buttonLabel","event","onDropEvent","sizeOfNull","insert","ClaimCommunicatorForm","handleMessageSubmit","validateCommunicatorComments","validateOnBlur","communicatorTemplateModal","closeCommunicatorTemplate","communicatorTemplateOpen","paddingLeft","paddingRight","wordBreak","sanitizeHtml","templateContent","allowedTags","defaults","allowedSchemes","allowedAttributes","DownloadIcon","ClaimCommunicatorTemplate","clickDownloadHandler","isLoadingDownload","progressFileDownload","setCommunicatorTemplateOpen","to","pointerEvents","color","ClaimCommunicatorComments","comments","comment","createdBy","downloadFile","ClaimCommunicator","communicatorMessageProjections","communicatorMessageList","fieldsWithText","fieldsWithAttachments","previousTypeName","typeName","fields","fileContent","findAttachmentsToMessageCommunicator","multipleLog","repeat","timestamp","user","messageId","entityId","visibleToAragOnly","templateObject","stringContent","findTableContent","ClaimCommunicatorContainer","fetchCommunicatorMessages","setProgressFileDownload","setLoadingDownload","fetchCommunicatorHistoryAction","createCommunicatorMessageAction","EditableQuestionsWithAnswer","hasHorizontalRule","ClaimDetails","ClaimDetailsContainer","questionsWithAnswersGroupedByStepExtended","fetchQuestionsOfClaimTypeComboAction","fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationAction","ClaimBankDetailsForm","updatingClaimBankAccount","bankDetailsAnswers","setDisabledSubmitButton","setValues","areValuesCleared","setValuesCleared","ClaimBankDetails","handleBankUpdate","ClaimBankDetailsContainer","claimApplicationBankGroupId","fetchQuestionsByGroupAction","fetchClaimApplicationBankAccountAnswersAction","updateClaimApplicationBankAccountAction","claimApplicationBankDetailsGroupCode","filteredQuestions","claimDocumentProjections","documentList","claimDocumentById","anonymisedFields","anonymisedCodes","Attachment","namesToDecode","claimDocumentLoader","ClaimDocument","clickDownloadButton","formValidator","submissionDateStart","submissionDateEnd","ClaimDocumentListFiltersForm","handleFormReset","handleFormSubmit","toDateRestrictions","fieldName","formValues","now","resetForm","ClaimDocumentList","listItem","ClaimDocumentContainer","fetchClaimDocumentWithQueryParamsAction","submittedByAragUserOnlyValue","submittedByAragUserOnly","toString","attachmentFullFileNameLike","formikResetForm","SurveyViews","Accepted","surveyGuidId","Rejected","Solicitor","Confirmation","confirmationSurveyCode","SurveyProjections","surveyData","surveyTypes","isCompleted","CircleWrapper","ThumbUp","SurveyConfirmation","context","navigateToNextSurvey","hasUncompletedSurvey","SurveyForm","isSubmitting","isValidating","SurveyFormWrapper","onSubmitSurvey","heading","surveyRejectedType","SingleSurvey","SurveyList","surveysHandler","surveyTitle","surveyTypeDescription","surveyTypeName","MultipleSurvey","activeView","SurveyContainer","setActiveView","setHasUncompletedSurvey","fetchSurveyTypeAction","postSurveyAnswersAction","hasNextSurveys","questionsSurveyHandler","search","radioQuestions","nextSurvey","updatedSurveyState","TABS_MAPPING","TabRouter","Tab","ClaimTabArea","activeTabs","setActiveTabs","activeTabDisplayed","transformedTabs","hasOwnProperty","URLSearchParams","WithdrawClaimApplicationForm","withDrawQuestions","WithdrawnClaimApplicationBody","WithdrawClaimApplicationModal","isWithdrawnModalOpen","closeWithdrawModal","submittingWithdrawnClaim","onSubmitWithDrawnClaimApplication","DisplayDocumentClickedByEmailLink","openDocumentModal","onCloseDocumentModal","ExistingClaim","fetchingClaim","ExistingClaimContainer","setWithdrawnModalOpen","setOpenDocumentModal","fetchClaimApplicationAction","createWithdrawnClaimApplicationAction","fetchClaimApplicationTemplateAction","withAuthentication","WrappedComponent","authentication","getAccessToken","loginSucceededAction","updateTokenAction","exact","component","ContentRouter","ApplicationMessages","removeMessageAction","applicationMessageList","notifications","useWindowSize","isClient","getSize","innerWidth","innerHeight","windowSize","setWindowSize","handleResize","addEventListener","removeEventListener","applicationUserProjections","applicationUserFullName","selectIsModalOpen","selectAreTermsConsented","areTermsConsented","LanguageIcon","stroke","strokeWidth","aria-labelledby","strokeLinecap","strokeLinejoin","cx","cy","r","HeaderContent","menuItems","isSwitchingLanguageEnabled","divided","handleLogout","isO6391","language","updateLanguageApplicationUserAction","logoutAction","signOut","isEmpty","goToLocation","open","buttons","exists","parse","returnObjects","mainImage","aragImageHeroArea","mainCollapsedImage","aragCollapsedImageHeroArea","telephone","headerTitle","subTitle","isCollapsed","onLogoClick","button","mobileScreenSizeWidth","titleForBigScreens","titleForSmallScreens","isExternal","TermsAndConditionsModal","isModalOpen","userHasReviewed","setUserHasReviewed","termsAndConditions","currentCountry","useQuery","queryKey","queryFn","respone","enabled","canadaCode","useTermsAndConditions","updateApplicationTermsAndConditionsTermsConsentedAction","onScroll","scrollTop","scrollHeight","clientHeight","Layout","footerRef","socialArray","documentElement","setProperty","contentHeight","offsetHeight","country","envName","registrationText","CopyPasteIcon","CheckedIcon","PhoneNoFillIcon","fill","EmailIcon","InternalErrorsPage","copied","setCopied","backgroundImage","backgroundRepeat","backgroundSize","el","execCommand","copy","copyToClipboard","useOnlineStatus","onLine","onlineStatus","setOnlineStatus","logo","offlineImage","setOfflineImage","goOnline","goOffline","UnavailableWebAppPage","errorImage","unavailableErrors","unavailableBlankPage","unavailableContantIT","LayoutContainer","useIdleTimer","timeout","onIdle","checkTokenLogoutRedirection","fetchApplicationSettingsAction","fetchApplicationUserWordingsAction","fetchApplicationCustomerFeedbackAction","interval","setInterval","checkToRenewToken","clearInterval","ScrollToTop","scrollTo","MainRouter","RefreshPage","continueContactUs","ErrorBoundary","callToApi","Accept","call","hasError","Elmahio","application","ENV_NAME","errorInfo","msg","this","queryString","severity","detail","stack","Component","App","queryClient","QueryClient","defaultOptions","queries","retry","staleTime","refetchOnMount","refetchOnWindowFocus","refetchOnReconnect","client","initialize","instance","AUTH_TENANT_INSTANCE","AUTH_TENANT_NAME","AUTH_CLIENT_ID","AUTH_CLIENT_AUDIENCE_URI","AUTH_REDIRECT_URI","signIn","ReactDOM","StrictMode","getElementById","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","prototype","msal","__esModule","_interopRequireWildcard","_react","_react2","_authUtils","stopLoopingRedirect","launchApp","expiresOn","msalObj","msalApp","localConfig","localPolicyName","acquireToken","successCallback","getAccount","acquireTokenSilent","sessionStorage","setItem","isEditProfile","redirectResponse","idTokenClaims","tfp","isResetPassword","UserAgentApplication","loginRedirect","acquireTokenRedirect","currentUlr","handleRedirectCallback","renderLoading","_React$Component","_class","TypeError","_classCallCheck","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","signedIn","subClass","superClass","create","constructor","setPrototypeOf","_inherits","module"],"mappings":"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","file":"static/js/main.6501ee65.chunk.js","sourcesContent":["const unauthorizedRegularExpression={};\r\n\r\nunauthorizedRegularExpression.claimReview = \"(\\\\/action\\\\/reviewclaim\\\\/[0-9A-Fa-f\\\\-]{36}\\\\/[0-9A-Fa-f\\\\-]{36})\";\r\n\r\nexport { unauthorizedRegularExpression };","\"use strict\";\r\nconst { AUTH } = require('./authConstants');\r\n\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\nvar requiresInteraction = exports.requiresInteraction = function requiresInteraction(errorMessage) {\r\n if (!errorMessage || !errorMessage.length) {\r\n return false;\r\n }\r\n\r\n return errorMessage.indexOf(\"consent_required\") > -1 || errorMessage.indexOf(\"interaction_required\") > -1 || errorMessage.indexOf(\"login_required\") > -1;\r\n};\r\n\r\nvar isIE = exports.isIE = function isIE() {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \") > -1;\r\n var msie11 = ua.indexOf(\"Trident/\") > -1;\r\n\r\n // If you as a developer are testing using Edge InPrivate mode, please add \"isEdge\" to the if check\r\n // const isEdge = ua.indexOf(\"Edge/\") > -1;\r\n\r\n return msie || msie11;\r\n};\r\n\r\nvar initializeConfig = exports.initializeConfig = function initializeConfig(config, policyName) {\r\n var tenantSubdomain = config.tenant.split('.')[0];\r\n var instance = \"https://\" + tenantSubdomain + \".b2clogin.com/\";\r\n var authority = \"\" + instance + config.tenant + \"/\"\r\n\r\n if (policyName === AUTH.policyTypes.resetPassword.key) {\r\n authority = authority + config.resetPolicy;\r\n } else if (policyName === AUTH.policyTypes.editProfile.key) {\r\n authority = authority + config.profilePolicy;\r\n } else {\r\n authority = authority + config.signInPolicy;\r\n }\r\n\r\n msalAppConfig.auth.clientId = config.clientId;\r\n msalAppConfig.auth.authority = authority;\r\n msalAppConfig.auth.redirectUri = config.redirectUri;\r\n msalAppConfig.auth.postLogoutRedirectUri = config.postLogoutRedirectUri;\r\n msalAppConfig.auth.resetPolicy = config.resetPolicy;\r\n msalAppConfig.cache.cacheLocation = config.cacheLocation;\r\n\r\n B2C_SCOPES.API_ACCESS.scopes = config.scopes;\r\n};\r\n\r\nvar B2C_SCOPES = exports.B2C_SCOPES = {\r\n API_ACCESS: {\r\n scopes: []\r\n }\r\n};\r\n\r\nvar msalAppConfig = exports.msalAppConfig = {\r\n auth: {\r\n clientId: \"\",\r\n authority: \"\",\r\n redirectUri: \"\",\r\n validateAuthority: false,\r\n postLogoutRedirectUri: \"\"\r\n },\r\n cache: {\r\n cacheLocation: \"\",\r\n storeAuthStateInCookie: isIE()\r\n }\r\n};","// message\r\nexport const REMOVE_MESSAGE = 'REMOVE_MESSAGE';\r\nexport const HANDLE_BUSINESS_ERRORS = 'HANDLE_BUSINESS_ERRORS';\r\nexport const HANDLE_INTERNAL_ERRORS = 'HANDLE_INTERNAL_ERRORS';\r\nexport const HANDLE_SERVICE_ERRORS='HANDLE_SERVICE_ERRORS';\r\nexport const ADD_WARNING_MESSAGE='ADD_WARNING_MESSAGE';\r\nexport const HIDE_MESSAGE='HIDE_MESSAGE';\r\nexport const DISPLAY_DOWNLOAD_FILE_WARNING = 'DISPLAY_DOWNLOAD_FILE_WARNING';\r\n\r\n// applicationSettings\r\nexport const FETCH_APPLICATION_SETTINGS = 'FETCH_APPLICATION_SETTINGS';\r\nexport const FETCH_APPLICATION_SETTINGS_SUCCESS = 'FETCH_APPLICATION_SETTINGS_SUCCESS';\r\nexport const FETCH_APPLICATION_SETTINGS_FAILED = 'FETCH_APPLICATION_SETTINGS_FAILED';\r\n\r\n// applicationUser\r\nexport const LOGIN = 'LOGIN';\r\nexport const LOGIN_SUCCEEDED = 'LOGIN_SUCCEEDED';\r\nexport const LOGIN_FAILED = 'LOGIN_FAILED';\r\nexport const UPDATE_TOKEN = 'UPDATE_TOKEN';\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';\r\nexport const LOGOUT_FAILED = 'LOGOUT_FAILED';\r\nexport const FETCH_APPLICATION_USER_DETAILS = 'FETCH_APPLICATION_USER_DETAILS';\r\nexport const FETCH_APPLICATION_USER_DETAILS_SUCCESS = 'FETCH_APPLICATION_USER_DETAILS_SUCCESS';\r\nexport const FETCH_APPLICATION_USER_DETAILS_FAILED = 'FETCH_APPLICATION_USER_DETAILS_FAILED';\r\nexport const FETCH_APPLICATION_CUSTOMER_FEEDBACK='FETCH_APPLICATION_CUSTOMER_FEEDBACK';\r\nexport const FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS='FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS';\r\nexport const FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED='FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED';\r\nexport const FETCH_APPLICATION_USER_WORDINGS='FETCH_APPLICATION_USER_WORDINGS';\r\nexport const FETCH_APPLICATION_USER_WORDINGS_SUCCESS='FETCH_APPLICATION_USER_WORDINGS_SUCCESS';\r\nexport const FETCH_APPLICATION_USER_WORDINGS_FAILED='FETCH_APPLICATION_USER_WORDINGS_FAILED';\r\nexport const FETCH_UNAUTHORISED_WORDINGS='FETCH_UNAUTHORISED_WORDINGS';\r\nexport const FETCH_UNAUTHORISED_WORDINGS_SUCCESS='FETCH_UNAUTHORISED_WORDINGS_SUCCESS';\r\nexport const FETCH_UNAUTHORISED_WORDINGS_FAILED='FETCH_UNAUTHORISED_WORDINGS_FAILED';\r\nexport const UPDATE_LANGUAGE_APPLICATION_USER='UPDATE_LANGUAGE_APPLICATION_USER';\r\nexport const UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS='UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS';\r\nexport const UPDATE_LANGUAGE_APPLICATION_USER_FAILED='UPDATE_LANGUAGE_APPLICATION_USER_FAILED';\r\nexport const ADD_RESOURCE_FILE_TO_I18N='ADD_RESOURCE_FILE_TO_I18N';\r\nexport const ADD_RESOURCE_FILE_TO_I18N_SUCCESS='ADD_RESOURCE_FILE_TO_I18N_SUCCESS';\r\n\r\nexport const UPDATE_APPLICATION_TERMS_CONSENTED='UPDATE_APPLICATION_TERMS_CONSENTED';\r\nexport const UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS='UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS';\r\nexport const UPDATE_APPLICATION_TERMS_CONSENTED_FAILED='UPDATE_APPLICATION_TERMS_CONSENTED_FAILED';\r\n// question\r\nexport const FETCH_QUESTIONS = 'FETCH_QUESTIONS';\r\nexport const FETCH_QUESTIONS_SUCCESS = 'FETCH_QUESTIONS_SUCCESS';\r\nexport const FETCH_QUESTIONS_FAILED = 'FETCH_QUESTIONS_FAILED';\r\nexport const CLEAR_QUESTION_STATE = 'CLEAR_QUESTION_STATE';\r\nexport const FETCH_ALL_QUESTIONS = 'FETCH_ALL_QUESTIONS';\r\nexport const FETCH_ALL_QUESTIONS_SUCCESS = 'FETCH_ALL_QUESTIONS_SUCCESS';\r\nexport const FETCH_ALL_QUESTIONS_FAILED = 'FETCH_ALL_QUESTIONS_FAILED';\r\nexport const FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO = 'FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO';\r\nexport const FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS = 'FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS';\r\nexport const FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED = 'FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED';\r\nexport const FETCH_ALL_QUESTIONS_BY_GROUP = 'FETCH_ALL_QUESTIONS_BY_GROUP';\r\nexport const FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS = 'FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS';\r\nexport const FETCH_ALL_QUESTIONS_BY_GROUP_FAILED = 'FETCH_ALL_QUESTIONS_BY_GROUP_FAILED';\r\n\r\n// questionType\r\nexport const FETCH_QUESTION_TYPES = 'FETCH_QUESTION_TYPES';\r\nexport const FETCH_QUESTION_TYPES_SUCCESS = 'FETCH_QUESTION_TYPES_SUCCESS';\r\nexport const FETCH_QUESTION_TYPES_FAILED = 'FETCH_QUESTION_TYPES_FAILED';\r\n\r\n// claimType\r\nexport const FETCH_CLAIM_TYPES = 'FETCH_CLAIM_TYPES';\r\nexport const FETCH_CLAIM_TYPES_SUCCESS = 'FETCH_CLAIM_TYPES_SUCCESS';\r\nexport const FETCH_CLAIM_TYPES_FAILED = 'FETCH_CLAIM_TYPES_FAILED';\r\nexport const FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY = 'FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY';\r\nexport const FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS = 'FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS';\r\nexport const FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED = 'FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED';\r\nexport const CLEAR_CLAIM_TYPES_STATE = 'CLEAR_CLAIM_TYPES_STATE';\r\n\r\n// Currency\r\nexport const FETCH_CURRENCIES = 'FETCH_CURRENCIES';\r\nexport const FETCH_CURRENCIES_SUCCESS = 'FETCH_CURRENCIES_SUCCESS';\r\nexport const FETCH_CURRENCIES_FAILED = 'FETCH_CURRENCIES_FAILED';\r\n\r\n// questionGroupStep\r\nexport const FETCH_QUESTION_GROUP_STEP = 'FETCH_QUESTION_GROUP_STEP';\r\nexport const FETCH_QUESTION_GROUP_STEP_SUCCESS = 'FETCH_QUESTION_GROUP_STEP_SUCCESS';\r\nexport const FETCH_QUESTION_GROUP_STEP_FAILED = 'FETCH_QUESTION_GROUP_STEP_FAILED';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_ID';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_SUCCESS = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_ID_SUCCESS';\r\nexport const FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_FAILED = 'FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_ID_FAILED';\r\nexport const CLEAR_QUESTION_GROUP_STEP = 'CLEAR_QUESTION_GROUP_STEP';\r\n\r\n// claimCategory\r\nexport const FETCH_CLAIM_CATEGORIES = 'FETCH_CLAIM_CATEGORIES';\r\nexport const FETCH_CLAIM_CATEGORIES_SUCCESS = 'FETCH_CLAIM_CATEGORIES_SUCCESS';\r\nexport const FETCH_CLAIM_CATEGORIES_FAILED = 'FETCH_CLAIM_CATEGORIES_FAILED';\r\nexport const FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE = 'FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE';\r\nexport const FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS = 'FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS';\r\nexport const FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED = 'FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED';\r\nexport const CLEAR_CLAIM_CATEGORY_STATE = 'CLEAR_CLAIM_CATEGORY_STATE';\r\n\r\n\r\n// policyType\r\nexport const FETCH_POLICY_TYPES = 'FETCH_POLICY_TYPES';\r\nexport const FETCH_POLICY_TYPES_SUCCESS = 'FETCH_POLICY_TYPES_SUCCESS';\r\nexport const FETCH_POLICY_TYPES_FAILED = 'FETCH_POLICY_TYPES_FAILED';\r\nexport const CLEAR_POLICY_TYPE='CLEAR_POLICY_TYPE';\r\n\r\n// answer\r\nexport const CHANGE_ANSWER_STATE = 'CHANGE_ANSWER_STATE';\r\nexport const CLEAR_ANSWERS_FROM_GROUP_STEPS = 'CLEAR_ANSWERS_FROM_GROUP_STEPS';\r\nexport const GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER = 'GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER';\r\nexport const GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS = 'GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS';\r\nexport const GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED = 'GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_BY_USER = 'GET_DRAFT_CLAIM_APPLICATION_BY_USER';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS = 'GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED = 'GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER = 'GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS = 'GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS';\r\nexport const GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED = 'GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED';\r\nexport const CLEAR_ANSWERS_STATE = 'CLEAR_ANSWERS_STATE';\r\nexport const CLEAR_POLICY_TYPE_COMBINATION='CLEAR_POLICY_TYPE_COMBINATION';\r\n\r\n//questionValidationRule\r\nexport const FETCH_QUESTION_VALIDATION_RULE = 'FETCH_QUESTION_VALIDATION_RULE';\r\nexport const FETCH_QUESTION_VALIDATION_RULE_SUCCESS = 'FETCH_QUESTION_VALIDATION_RULE_SUCCESS';\r\nexport const FETCH_QUESTION_VALIDATION_RULE_FAILED = 'FETCH_QUESTION_VALIDATION_RULE_FAILED';\r\n\r\n// claimApplication\r\nexport const SEND_CLAIM_APPLICATION = 'SEND_CLAIM_APPLICATION';\r\nexport const SEND_CLAIM_APPLICATION_SUCCESS = 'SEND_CLAIM_CATEGORY_SUCCESS';\r\nexport const SEND_CLAIM_APPLICATION_FAILED = 'SEND_CLAIM_APPLICATION_FAILED';\r\nexport const UPDATE_CLAIM_APPLICATION = 'UPDATE_CLAIM_APPLICATION';\r\nexport const UPDATE_CLAIM_APPLICATION_SUCCESS = 'UPDATE_CLAIM_APPLICATION_SUCCESS';\r\nexport const UPDATE_CLAIM_APPLICATION_FAILED = 'UPDATE_CLAIM_APPLICATION_FAILED';\r\nexport const GET_CLAIM_APPLICATION_BY_ID = 'GET_CLAIM_APPLICATION_BY_ID';\r\nexport const GET_CLAIM_APPLICATION_BY_ID_SUCCESS = 'GET_CLAIM_APPLICATION_BY_ID_SUCCESS';\r\nexport const GET_CLAIM_APPLICATION_BY_ID_FAILED = 'GET_CLAIM_APPLICATION_BY_ID_FAILED';\r\nexport const GET_CLAIM_APPLICATIONS = 'GET_CLAIM_APPLICATIONS';\r\nexport const GET_CLAIM_APPLICATIONS_SUCCESS = 'GET_CLAIM_APPLICATIONS_SUCCESS';\r\nexport const GET_CLAIM_APPLICATIONS_FAILED = 'GET_CLAIM_APPLICATIONS_FAILED';\r\nexport const CHANGE_CLAIM_APPLICATION_STATE = 'CHANGE_CLAIM_APPLICATION_STATE';\r\nexport const REDIRECT_AFTER_CLAIM_SUBMIT = 'REDIRECT_AFTER_CLAIM_SUBMIT';\r\nexport const SEND_DRAFT_CLAIM_APPLICATION_BY_USER = 'SEND_DRAFT_CLAIM_APPLICATION_BY_USER';\r\nexport const SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS = 'SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS';\r\nexport const SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED = 'SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED';\r\nexport const CREATE_WITHDRAWN_CLAIM_APPLICATION = 'CREATE_WITHDRAWN_CLAIM_APPLICATION';\r\nexport const CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS = 'CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS';\r\nexport const CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED = 'CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED';\r\nexport const FETCH_CLAIM_APPLICATION_TEMPLATE='FETCH_CLAIM_APPLICATION_TEMPLATE';\r\nexport const FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS='FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS';\r\nexport const FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED='FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED';\r\n\r\n// documentType\r\nexport const FETCH_DOCUMENT_TYPES = 'FETCH_DOCUMENT_TYPES';\r\nexport const FETCH_DOCUMENT_TYPES_SUCCESS = 'FETCH_DOCUMENT_TYPES_SUCCESS';\r\nexport const FETCH_DOCUMENT_TYPES_FAILED = 'FETCH_DOCUMENT_TYPES_FAILED';\r\nexport const FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS = 'FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS';\r\nexport const FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS = 'FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS';\r\nexport const FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED = 'FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED';\r\n\r\n//claimApplicationBankAccount\r\nexport const UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT = 'UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT';\r\nexport const UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS = 'UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS';\r\nexport const UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED = 'UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED';\r\n\r\nexport const FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS = 'FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS';\r\nexport const FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS = 'FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS';\r\nexport const FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED = 'FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED';\r\n\r\n// communicator message\r\nexport const FETCH_COMMUNICATOR_MESSAGE = 'FETCH_COMMUNICATOR_MESSAGE';\r\nexport const FETCH_COMMUNICATOR_MESSAGE_SUCCESS = 'FETCH_COMMUNICATOR_MESSAGE_SUCCESS';\r\nexport const FETCH_COMMUNICATOR_MESSAGE_FAILED = 'FETCH_COMMUNICATOR_MESSAGE_FAILED';\r\nexport const CREATE_COMMUNICATOR_MESSAGE = 'CREATE_COMMUNICATOR_MESSAGE';\r\nexport const CREATE_COMMUNICATOR_MESSAGE_SUCCESS = 'CREATE_COMMUNICATOR_MESSAGE_SUCCESS';\r\nexport const CREATE_COMMUNICATOR_MESSAGE_FAILED = 'CREATE_COMMUNICATOR_MESSAGE_FAILED';\r\nexport const FETCH_COMMUNICATOR_HISTORY = 'FETCH_COMMUNICATOR_HISTORY';\r\nexport const FETCH_COMMUNICATOR_HISTORY_SUCCESS = 'FETCH_COMMUNICATOR_HISTORY_SUCCESS';\r\nexport const FETCH_COMMUNICATOR_HISTORY_FAILED = 'FETCH_COMMUNICATOR_HISTORY_FAILED';\r\n\r\n\r\n// claim review\r\nexport const FETCH_CLAIM_REVIEW_VALIDITY = 'FETCH_CLAIM_REVIEW_VALIDITY';\r\nexport const FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS = 'FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS';\r\nexport const FETCH_CLAIM_REVIEW_VALIDITY_FAILED = 'FETCH_CLAIM_REVIEW_VALIDITY_FAILED';\r\nexport const FETCH_CLAIM_REVIEW_DETAILS = 'FETCH_CLAIM_REVIEW_DETAILS';\r\nexport const FETCH_CLAIM_REVIEW_DETAILS_SUCCESS = 'FETCH_CLAIM_REVIEW_DETAILS_SUCCESS';\r\nexport const FETCH_CLAIM_REVIEW_DETAILS_FAILED = 'FETCH_CLAIM_REVIEW_DETAILS_FAILED';\r\nexport const ACCEPT_CLAIM_REVIEW = 'ACCEPT_CLAIM_REVIEW';\r\nexport const ACCEPT_CLAIM_REVIEW_SUCCESS = 'ACCEPT_CLAIM_REVIEW_SUCCESS';\r\nexport const ACCEPT_CLAIM_REVIEW_FAILED = 'ACCEPT_CLAIM_REVIEW_FAILED';\r\nexport const FETCH_REJECTION_FORM_CLAIM_REVIEW = 'FETCH_REJECTION_FORM_CLAIM_REVIEW';\r\nexport const FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS = 'FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS';\r\nexport const FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED = 'FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED';\r\nexport const REJECT_CLAIM_REVIEW_WITH_REASON = 'REJECT_CLAIM_REVIEW_WITH_REASON';\r\nexport const REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS = 'REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS';\r\nexport const REJECT_CLAIM_REVIEW_WITH_REASON_FAILED = 'REJECT_CLAIM_REVIEW_WITH_REASON_FAILED';\r\nexport const CHANGE_CLAIM_REVIEW_ANSWERS_STATE = 'CHANGE_CLAIM_REVIEW_ANSWERS_STATE';\r\nexport const CHANGE_CLAIM_REVIEW_STATE = 'CHANGE_CLAIM_REVIEW_STATE';\r\n\r\n//claim Documents\r\nexport const FETCH_CLAIM_DOCUMENT='FETCH_CLAIM_DOCUMENT';\r\nexport const FETCH_CLAIM_DOCUMENT_SUCCESS='FETCH_CLAIM_DOCUMENT_SUCCESS';\r\nexport const FETCH_CLAIM_DOCUMENT_FAILED='FETCH_CLAIM_DOCUMENT_FAILED';\r\n\r\n\r\n\r\n//form types\r\nexport const FETCH_FORM_TYPES='FETCH_FORM_TYPES';\r\nexport const FETCH_FORM_TYPES_SUCCESS='FETCH_FORM_TYPES_SUCCESS';\r\nexport const FETCH_FORM_TYPES_FAILED='FETCH_FORM_TYPES_FAILED';\r\nexport const FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE='FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE';\r\nexport const FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS='FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS';\r\nexport const FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED='FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED';\r\nexport const CLEAR_FORM_TYPES_STATE = 'CLEAR_FORM_TYPES_STATE';\r\n\r\n\r\n//survey\r\nexport const FETCH_SURVEY_TYPE = 'FETCH_SURVEY_TYPE';\r\nexport const FETCH_SURVEY_TYPE_SUCCESS = 'FETCH_SURVEY_TYPE_SUCCESS';\r\nexport const FETCH_SURVEY_TYPE_FAILED = 'FETCH_SURVEY_TYPE_FAILED';\r\nexport const POST_SURVEY_ANSWERS='POST_SURVEY_ANSWERS';\r\nexport const POST_SURVEY_ANSWERS_SUCCESS='POST_SURVEY_ANSWERS_SUCCESS';\r\nexport const POST_SURVEY_ANSWERS_FAILED='POST_SURVEY_ANSWERS_FAILED';","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface UserApplicationUserBody {\r\n accessTokenFromAuthentication: {\r\n accessToken: string,\r\n account: {\r\n accountIdentifier: string,\r\n environment: string,\r\n homeAccountIdentifier: string,\r\n idToken: {\r\n aud: string,\r\n auth_time: number,\r\n exp: number,\r\n iat: number,\r\n idp: number,\r\n iss: string,\r\n nbf: number,\r\n nonce: string,\r\n sub: string,\r\n tfp: string,\r\n ver: string,\r\n },\r\n idTokenClaims: {\r\n aud: string,\r\n auth_time: number,\r\n exp: number,\r\n iat: number,\r\n idp: number,\r\n iss: string,\r\n nbf: number,\r\n nonce: string,\r\n sub: string,\r\n tfp: string,\r\n ver: string,\r\n },\r\n name: undefined | string,\r\n sid: undefined | string | number,\r\n userName: undefined | string | number\r\n\r\n accountState: string,\r\n expiresOn: any | {},\r\n fromCache: boolean,\r\n scopes: Array,\r\n tenantId: string\r\n tokenType: string,\r\n uniqueId: string\r\n }\r\n }\r\n}\r\nexport interface ApplicationUserPayload {\r\n accessTokenFromAuthentication: {\r\n accessToken: string;\r\n }\r\n}\r\nexport interface ApplicationUsers {\r\n displayName: string,\r\n email: string,\r\n firstName: string,\r\n fullName: string,\r\n groups: Array,\r\n id: string,\r\n isClaimant: boolean,\r\n isSystem: boolean,\r\n lastName: string,\r\n areTermsConsented: boolean\r\n\r\n}\r\n\r\nexport interface GeneralResponse {\r\n data: ApplicationUsers\r\n}\r\n\r\nexport const login = createAction(ActionTypes.LOGIN);\r\nexport const loginSucceeded = createAction(ActionTypes.LOGIN_SUCCEEDED);\r\nexport const loginFailed = createAction(ActionTypes.LOGIN_FAILED);\r\nexport const updateToken = createAction(ActionTypes.UPDATE_TOKEN);\r\n\r\nexport const fetchApplicationUserDetails = createAction(ActionTypes.FETCH_APPLICATION_USER_DETAILS);\r\nexport const fetchApplicationUserDetailsSuccess = createAction(ActionTypes.FETCH_APPLICATION_USER_DETAILS_SUCCESS);\r\nexport const fetchApplicationUserDetailsFailed = createAction(ActionTypes.FETCH_APPLICATION_USER_DETAILS_FAILED);\r\n\r\nexport const logout = createAction(ActionTypes.LOGOUT);\r\nexport const logoutSuccess = createAction(ActionTypes.LOGOUT_SUCCESS);\r\nexport const logoutFailed = createAction(ActionTypes.LOGOUT_FAILED);\r\n\r\nexport const fetchApplicationCustomerFeedback=createAction(ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK);\r\nexport const fetchApplicationCustomerFeedbackSuccess=createAction(ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS);\r\nexport const fetchApplicationCustomerFeedbackFailed=createAction(ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED);\r\n\r\nexport const updateApplicationTermsAndConditionsTermsConsented=createAction(ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED);\r\nexport const updateApplicationTermsAndConditionsTermsConsentedSuccess=createAction(ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS);\r\nexport const updateApplicationTermsAndConditionsTermsConsentedFailed=createAction(ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_FAILED);\r\n\r\nexport const fetchApplicationUserWordings=createAction(ActionTypes.FETCH_APPLICATION_USER_WORDINGS);\r\nexport const fetchApplicationUserWordingsSuccess=createAction(ActionTypes.FETCH_APPLICATION_USER_WORDINGS_SUCCESS);\r\nexport const fetchApplicationUserWordingsFailed=createAction(ActionTypes.FETCH_APPLICATION_USER_WORDINGS_FAILED);\r\nexport const fetchUnauthorisedUserWordings=createAction(ActionTypes.FETCH_UNAUTHORISED_WORDINGS);\r\nexport const fetchUnauthorisedUserWordingsSuccess=createAction(ActionTypes.FETCH_UNAUTHORISED_WORDINGS_SUCCESS);\r\nexport const fetchUnauthorisedUserWordingsFailed=createAction(ActionTypes.FETCH_UNAUTHORISED_WORDINGS_FAILED);\r\nexport const addResourceToi18n=createAction(ActionTypes.ADD_RESOURCE_FILE_TO_I18N);\r\nexport const addResourceToi18nSuccess=createAction(ActionTypes.ADD_RESOURCE_FILE_TO_I18N_SUCCESS);\r\n\r\nexport const updateLanguageApplicationUser = createAction(ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER);\r\nexport const updateLanguageApplicationUserSuccess = createAction(ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS);\r\nexport const updateLanguageApplicationUserFailed = createAction(ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_FAILED);\r\n\r\nexport interface updateLanguageApplicationUserAction{\r\n type:typeof ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER;\r\n}\r\n\r\nexport interface updateLanguageApplicationUserSuccessAction{\r\n type:typeof ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS;\r\n}\r\n\r\nexport interface updateLanguageApplicationUserFailedAction{\r\n type:typeof ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_FAILED;\r\n}\r\n\r\nexport interface loginAction{\r\n type:typeof ActionTypes.LOGIN;\r\n payload:unknown;\r\n}\r\n\r\nexport interface loginSucceededAction{\r\n type:typeof ActionTypes.LOGIN_SUCCEEDED;\r\n payload:UserApplicationUserBody\r\n}\r\n\r\nexport interface loginFailedAction{\r\n type:typeof ActionTypes.LOGIN_FAILED;\r\n payload:UserApplicationUserBody\r\n}\r\n\r\n\r\nexport interface updateTokenAction{\r\n type:typeof ActionTypes.UPDATE_TOKEN;\r\n payload:ApplicationUserPayload;\r\n}\r\n\r\nexport interface fetchApplicationUserDetailsAction{\r\n type:typeof ActionTypes.FETCH_APPLICATION_USER_DETAILS;\r\n payload:undefined;\r\n}\r\n\r\nexport interface fetchApplicationUserDetailsSuccessAction{\r\n type:typeof ActionTypes.FETCH_APPLICATION_USER_DETAILS_SUCCESS;\r\n payload:GeneralResponse;\r\n body:GeneralResponse\r\n}\r\n\r\nexport interface fetchApplicationUserDetailsFailedAction{\r\n type:typeof ActionTypes.FETCH_APPLICATION_USER_DETAILS_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\nexport interface logoutAction{\r\n type:typeof ActionTypes.LOGOUT;\r\n payload:undefined;\r\n}\r\n\r\nexport interface logoutSuccessAction{\r\n type:typeof ActionTypes.LOGOUT_SUCCESS;\r\n payload:unknown;\r\n}\r\n\r\nexport interface logoutFailedAction{\r\n type:typeof ActionTypes.LOGOUT_FAILED;\r\n payload:unknown;\r\n}\r\nexport interface fetchApplicationCustomerFeedbackAction{\r\n type?:typeof ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK;\r\n}\r\nexport interface fetchApplicationCustomerFeedbackSuccessAction{\r\n body:{data:boolean};\r\n type:typeof ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS;\r\n payload:unknown;\r\n}\r\nexport interface fetchApplicationCustomerFeedbackFailedAction{\r\n type:typeof ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED;\r\n payload:unknown;\r\n}\r\nexport interface fetchApplicationUserWordingsAction{\r\n type?:typeof ActionTypes.FETCH_APPLICATION_USER_WORDINGS;\r\n payload:undefined;\r\n}\r\nexport interface fetchApplicationUserWordingsSuccessAction{\r\n payload:GeneralResponse;\r\n body:GeneralResponse\r\n type:typeof ActionTypes.FETCH_APPLICATION_USER_WORDINGS_SUCCESS;\r\n}\r\nexport interface fetchApplicationUserWordingsFailedAction{\r\n type:typeof ActionTypes.FETCH_APPLICATION_USER_WORDINGS_FAILED;\r\n}\r\nexport interface fetchUnauthorisedWordingsAction{\r\n type?:typeof ActionTypes.FETCH_UNAUTHORISED_WORDINGS;\r\n payload: fetchUnauthorisedWordingsPayload;\r\n}\r\nexport interface fetchUnauthorisedWordingsSuccessAction{\r\n payload:GeneralResponse;\r\n body:GeneralResponse\r\n type:typeof ActionTypes.FETCH_UNAUTHORISED_WORDINGS_SUCCESS;\r\n}\r\nexport interface fetchUnauthorisedWordingsFailedAction{\r\n type:typeof ActionTypes.FETCH_UNAUTHORISED_WORDINGS_FAILED;\r\n}\r\nexport interface addResourceToi18nAction{\r\n type?:typeof ActionTypes.ADD_RESOURCE_FILE_TO_I18N;\r\n}\r\n\r\nexport interface addResourceToi18nSuccessAction{\r\n type?:typeof ActionTypes.ADD_RESOURCE_FILE_TO_I18N_SUCCESS;\r\n}\r\n\r\nexport interface updateApplicationTermsAndConditionsTermsConsentedAction{\r\n type?:typeof ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED;\r\n payload: any;\r\n}\r\nexport interface updateApplicationTermsAndConditionsTermsConsentedSuccessAction{\r\n body:{data:boolean};\r\n type:typeof ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS;\r\n payload:unknown;\r\n}\r\nexport interface updateApplicationTermsAndConditionsTermsConsentedFailedAction{\r\n type:typeof ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_FAILED;\r\n payload:unknown;\r\n}\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\nimport codes from '../utils/constants/codes';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\n\r\nexport interface Questions {\r\n id: string,\r\n code: string,\r\n name: string,\r\n groupShape: boolean,\r\n}\r\n\r\nexport interface QuestionPayload {\r\n claimApplicationId: string\r\n claimCategoryCode: string\r\n claimTypeCode: string\r\n policyTypeCode: string\r\n groupCode: string\r\n questionGroupStepId: string\r\n}\r\nexport interface QuestionGroupPayload {\r\n claimApplicationId: string\r\n groupCode: string\r\n}\r\nexport interface QuestionSurveyPayload {\r\n claimApplicationId: string\r\n surveyTypeId: string\r\n}\r\n\r\nexport const fetchQuestions = createAction(ActionTypes.FETCH_QUESTIONS);\r\nexport const fetchQuestionsSuccess = createAction(ActionTypes.FETCH_QUESTIONS_SUCCESS);\r\nexport const fetchQuestionsFailed = createAction(ActionTypes.FETCH_QUESTIONS_FAILED);\r\nexport const clearQuestionState = createAction(ActionTypes.CLEAR_QUESTION_STATE);\r\nexport const fetchAllQuestions = createAction(ActionTypes.FETCH_ALL_QUESTIONS);\r\nexport const fetchAllQuestionsSuccess = createAction(ActionTypes.FETCH_ALL_QUESTIONS_SUCCESS);\r\nexport const fetchAllQuestionsFailed = createAction(ActionTypes.FETCH_ALL_QUESTIONS_FAILED);\r\nexport const fetchQuestionsOfClaimTypeCombo = createAction(ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO);\r\nexport const fetchQuestionsOfClaimTypeComboSuccess = createAction(ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS);\r\nexport const fetchQuestionsOfClaimTypeComboFailed = createAction(ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED);\r\nexport const fetchQuestionsByGroup = createAction(ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP);\r\nexport const fetchQuestionsByGroupSuccess = createAction(ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS);\r\nexport const fetchQuestionsByGroupFailed = createAction(ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_FAILED);\r\n\r\nexport interface fetchQuestionsAction{\r\n type?:typeof ActionTypes.FETCH_QUESTIONS;\r\n policyTypeCode: string,\r\n claimCategoryCode: string,\r\n formTypeCode: string,\r\n questionGroupStepId: string\r\n}\r\n\r\nexport interface fetchQuestionsSuccessAction{\r\n type:typeof ActionTypes.FETCH_QUESTIONS_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\n\r\nexport interface fetchQuestionsFailedAction{\r\n type:typeof ActionTypes.FETCH_QUESTIONS_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\n\r\nexport interface clearQuestionStateAction{\r\n type?:typeof ActionTypes.CLEAR_QUESTION_STATE;\r\n payload:null;\r\n}\r\n\r\nexport interface fetchAllQuestionsAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS;\r\n payload:QuestionPayload\r\n}\r\n\r\nexport interface fetchAllQuestionsSuccessAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS_SUCCESS;\r\n body:GeneralResponse\r\n}\r\n\r\nexport interface fetchAllQuestionsFailedAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS_FAILED;\r\n payload:GeneralResponse | any;\r\n}\r\nexport interface fetchQuestionsOfClaimTypeComboAction{\r\n type?:typeof ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO;\r\n policyTypeCode: string | null,\r\n claimCategoryCode: string | null,\r\n formTypeCode: string | null,\r\n claimApplicationId: string,\r\n\r\n}\r\nexport interface fetchQuestionsOfClaimTypeComboSuccessAction{\r\n type:typeof ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionsOfClaimTypeComboFailedAction{\r\n type:typeof ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED;\r\n payload:GeneralResponse;\r\n}\r\nexport interface fetchQuestionsByGroupAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP;\r\n payload:QuestionPayload\r\n}\r\n\r\nexport interface fetchQuestionsByGroupSuccessAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionsByGroupFailedAction{\r\n type:typeof ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\n\r\n\r\n\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\nexport interface QuestionType {\r\n id: string,\r\n code: string,\r\n name: string,\r\n}\r\nexport const fetchQuestionTypes = createAction(ActionTypes.FETCH_QUESTION_TYPES);\r\nexport const fetchQuestionTypesSuccess = createAction(ActionTypes.FETCH_QUESTION_TYPES_SUCCESS);\r\nexport const fetchQuestionTypesFailed = createAction(ActionTypes.FETCH_QUESTION_TYPES_FAILED);\r\n\r\nexport interface fetchQuestionTypesAction {\r\n type?: typeof ActionTypes.FETCH_QUESTION_TYPES;\r\n}\r\n\r\nexport interface fetchQuestionTypesSuccessAction {\r\n type: typeof ActionTypes.FETCH_QUESTION_TYPES_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionTypesFailedAction {\r\n type: typeof ActionTypes.FETCH_QUESTION_TYPES_FAILED;\r\n payload: GeneralResponse | any\r\n}","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n errors?: Array\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\nexport interface ClaimType {\r\n id: string,\r\n code: string,\r\n name: string,\r\n}\r\n\r\nexport interface ClaimTypePayload {\r\n policyTypeCode: string\r\n claimCategoryCode: string\r\n}\r\n\r\n\r\nexport const fetchClaimTypes = createAction(ActionTypes.FETCH_CLAIM_TYPES);\r\nexport const fetchClaimTypesSuccess = createAction(ActionTypes.FETCH_CLAIM_TYPES_SUCCESS);\r\nexport const fetchClaimTypesFailed = createAction(ActionTypes.FETCH_CLAIM_TYPES_FAILED);\r\nexport const fetchClaimTypesByPolicyTypeAndClaimCategory = createAction(ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY);\r\nexport const fetchClaimTypesByPolicyTypeAndClaimCategorySuccess = createAction(ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS);\r\nexport const fetchClaimTypesByPolicyTypeAndClaimCategoryFailed = createAction(ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED);\r\nexport const clearClaimTypesState = createAction(ActionTypes.CLEAR_CLAIM_TYPES_STATE);\r\n\r\nexport interface fetchClaimTypesAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES;\r\n}\r\n\r\nexport interface fetchClaimTypesSuccessAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES_SUCCESS;\r\n payload:GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimTypesFailedAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES_FAILED;\r\n payload: any;\r\n}\r\nexport interface fetchClaimTypesByPolicyTypeAndClaimCategoryAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY;\r\n payload:ClaimTypePayload;\r\n}\r\n\r\nexport interface fetchClaimTypesByPolicyTypeAndClaimCategorySuccessAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimTypesByPolicyTypeAndClaimCategoryFailedAction{\r\n type:typeof ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED;\r\n body:GeneralResponse\r\n}\r\n\r\nexport interface clearClaimCategoryStateAction{\r\n type:typeof ActionTypes.CLEAR_CLAIM_CATEGORY_STATE;\r\n}\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody;\r\n errors?: Array\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\n\r\nexport interface QuestionGroupStepType {\r\n id: string\r\n code: string\r\n name: string,\r\n rank: number\r\n}\r\n\r\nexport interface QuestionGroupStepPayload {\r\n policyTypeCode: string\r\n claimCategoryCode: string\r\n claimTypeCode: string\r\n claimApplicationId: string\r\n}\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType = createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE);\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccess =createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS);\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailed=createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED);\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplication=createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION);\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccess=createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_SUCCESS);\r\n\r\nexport const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailed= createAction\r\n \r\n (ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_FAILED);\r\n\r\nexport const clearGroupStep=createAction (ActionTypes.CLEAR_QUESTION_GROUP_STEP);\r\n\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeAction{\r\n type:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE;\r\n payload:QuestionGroupStepPayload;\r\n}\r\n\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccessAction{\r\n type:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailedAction{\r\n type:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationAction{\r\n type?:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION;\r\n policyTypeCode: string | null,\r\n claimCategoryCode: string | null,\r\n formTypeCode: string | null,\r\n claimApplicationId: string,\r\n}\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccessAction{\r\n type:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailedAction{\r\n type:typeof ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_FAILED;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface clearGroupStepAction{\r\n type:typeof ActionTypes.CLEAR_QUESTION_GROUP_STEP;\r\n payload:QuestionGroupStepPayload;\r\n}\r\n\r\n\r\n\r\n\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody;\r\n errors?: Array\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\n\r\nexport interface PolicyType {\r\n id: string,\r\n code: string,\r\n name: string,\r\n}\r\n\r\nexport const fetchPolicyTypes = createAction(ActionTypes.FETCH_POLICY_TYPES);\r\nexport const fetchPolicyTypesSuccess = createAction(ActionTypes.FETCH_POLICY_TYPES_SUCCESS);\r\nexport const fetchPolicyTypesFailed = createAction(ActionTypes.FETCH_POLICY_TYPES_FAILED);\r\nexport const clearPolicyType=createAction(ActionTypes.CLEAR_POLICY_TYPE);\r\n\r\nexport interface fetchPolicyTypesAction{\r\n type:typeof ActionTypes.FETCH_POLICY_TYPES;\r\n payload:null | undefined\r\n}\r\n\r\nexport interface fetchPolicyTypesSuccessAction{\r\n type:typeof ActionTypes.FETCH_POLICY_TYPES_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchPolicyTypesFailedAction{\r\n type:typeof ActionTypes.FETCH_POLICY_TYPES_FAILED;\r\n body:GeneralResponse;\r\n}\r\nexport interface clearPolicyTypeAction{\r\n type:typeof ActionTypes.CLEAR_POLICY_TYPE;\r\n payload: undefined;\r\n}\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\nimport {\r\n CHANGE_ANSWER_STATE,\r\n CLEAR_ANSWERS_FROM_GROUP_STEPS,\r\n CLEAR_ANSWERS_STATE,\r\n CLEAR_POLICY_TYPE_COMBINATION,\r\n GET_DRAFT_CLAIM_APPLICATION_BY_USER,\r\n GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED,\r\n GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS,\r\n GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER,\r\n GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED,\r\n GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS,\r\n GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER,\r\n GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED,\r\n GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS,\r\n} from './types';\r\nexport type ChangePayload = {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport const changeAnswerState = createAction(ActionTypes.CHANGE_ANSWER_STATE);\r\nexport const clearAnswersFromGroupSteps = createAction(ActionTypes.CLEAR_ANSWERS_FROM_GROUP_STEPS);\r\nexport const clearAnswersState = createAction(ActionTypes.CLEAR_ANSWERS_STATE);\r\nexport const clearPolicyTypeCombination = createAction(ActionTypes.CLEAR_POLICY_TYPE_COMBINATION);\r\nexport const fetchDraftClaimApplicationByUser = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER);\r\nexport const fetchDraftClaimApplicationByUserSuccess = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS);\r\nexport const fetchDraftClaimApplicationByUserFailed = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED);\r\nexport const fetchNoSubmittedDraftClaimApplicationByUser = createAction(ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER);\r\nexport const fetchNoSubmittedDraftClaimApplicationByUserSuccess = createAction(ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS);\r\nexport const fetchNoSubmittedDraftClaimApplicationByUserFailed = createAction(ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED);\r\nexport const fetchDraftClaimApplicationListByUser = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER);\r\nexport const fetchDraftClaimApplicationListByUserSuccess = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS);\r\nexport const fetchDraftClaimApplicationListByUserFailed = createAction(ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED);\r\n\r\n\r\n\r\nexport interface clearAnswersFromGroupStepsAction{\r\n type: typeof CLEAR_ANSWERS_FROM_GROUP_STEPS;\r\n}\r\n\r\nexport interface clearAnswersStateAction {\r\n type?: typeof CLEAR_ANSWERS_STATE;\r\n payload?: unknown;\r\n}\r\nexport interface changeAnswerStateAction{\r\n type:typeof CHANGE_ANSWER_STATE;\r\n payload:ChangePayload;\r\n}\r\n\r\nexport interface clearPolicyTypeCombinationAction{\r\n type:typeof CLEAR_POLICY_TYPE_COMBINATION;\r\n}\r\n\r\nexport interface fetchDraftClaimApplicationByUserAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_BY_USER;\r\n payload: string;\r\n}\r\n\r\nexport interface fetchDraftClaimApplicationByUserSuccessAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS;\r\n}\r\n\r\nexport interface fetchDraftClaimApplicationByUserFailedAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED;\r\n}\r\n\r\nexport interface fetchNoSubmittedDraftClaimApplicationByUserAction{\r\n type:typeof GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER;\r\n payload: undefined;\r\n}\r\n\r\nexport interface fetchNoSubmittedDraftClaimApplicationByUserSuccessAction{\r\n type:typeof GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS;\r\n}\r\n\r\nexport interface fetchNoSubmittedDraftClaimApplicationByUserFailedAction{\r\n type:typeof GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED;\r\n}\r\nexport interface fetchDraftClaimApplicationListByUserAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER;\r\n payload: unknown\r\n}\r\n\r\nexport interface fetchDraftClaimApplicationListByUserSuccessAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS;\r\n}\r\n\r\nexport interface fetchDraftClaimApplicationListByUserFailedAction{\r\n type:typeof GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED;\r\n}\r\n\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\nimport {fetchApplicationUserDetailsSuccessAction} from './applicationUser';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\nexport interface QuestionValidationRuleType {\r\n code: string,\r\n description: string,\r\n id: string,\r\n regExExpression: string,\r\n}\r\n\r\nexport const fetchQuestionValidationRule = createAction(ActionTypes.FETCH_QUESTION_VALIDATION_RULE);\r\nexport const fetchQuestionValidationRuleSuccess = createAction(ActionTypes.FETCH_QUESTION_VALIDATION_RULE_SUCCESS);\r\nexport const fetchQuestionValidationRuleFailed = createAction(ActionTypes.FETCH_QUESTION_VALIDATION_RULE_FAILED);\r\n\r\n\r\nexport interface fetchQuestionValidationRuleAction{\r\n type?: typeof ActionTypes.FETCH_QUESTION_VALIDATION_RULE;\r\n payload?: undefined;\r\n}\r\n\r\nexport interface fetchQuestionValidationRuleSuccessAction{\r\n type: typeof ActionTypes.FETCH_QUESTION_VALIDATION_RULE_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchQuestionValidationRuleFailedAction{\r\n type: typeof ActionTypes.FETCH_QUESTION_VALIDATION_RULE_FAILED;\r\n payload:GeneralResponse | any;\r\n}","import {createAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\n\r\nexport interface ClaimApplicationType {\r\n id: string,\r\n code: string,\r\n description: string,\r\n name: string,\r\n ClaimApplicationState: string\r\n}\r\n\r\nexport interface Answers {\r\n Amount: number | null,\r\n Date: string | null,\r\n Flag: boolean | string | null,\r\n OptionId: string | boolean | null,\r\n QuestionCode: string,\r\n SelectedUserId: null | string,\r\n Text: string,\r\n amount: number | null,\r\n date: string | null,\r\n flag: boolean | string | null,\r\n optionId: string | boolean | null,\r\n questionCode: string,\r\n selectedUserId: null | string,\r\n text: string,\r\n}\r\n\r\nexport interface DraftClaimApplicationPayload {\r\n PolicyTypeCode: string,\r\n ClaimCategoryCode: string,\r\n FormTypeCode: Array | string,\r\n ClaimApplicationId: string,\r\n Answers: Array,\r\n}\r\n\r\nexport interface ClaimTransitionStatusReasons {\r\n claimStatusReasonCode: string\r\n claimStatusReasonName: string\r\n claimTransitionId: string\r\n claimTransitionStatusReasonOptions: Array\r\n deletedId: string\r\n}\r\n\r\nexport interface ClaimApplicationPayload {\r\n data: {\r\n Answers: Array,\r\n ClaimCategoryCode: string,\r\n ClaimTypeCode: string,\r\n PolicyTypeCode: string,\r\n AssigneeId: string,\r\n claimApplicationId: string,\r\n claimApplicationTemplate: Array | string | null,\r\n claimCategoryCode: string\r\n claimStateCode: string,\r\n claimStateMoreInfo: undefined,\r\n claimStateReasonCodes: Array\r\n claimStateReasonOptionCodes: Array\r\n claimStatusCode: string,\r\n claimStatusMoreInfo: undefined,\r\n claimStatusReasonCodes: string,\r\n claimStatusReasonOptionCodes: Array,\r\n claimTypeCode: string,\r\n isBankDetailsTabVisible: boolean,\r\n isChallengedTabEditable: boolean,\r\n policyTypeCodes: string\r\n sendEmailToClaimant: boolean,\r\n visibleToAragOnly: boolean,\r\n ClaimApplicationId: string | undefined,\r\n assigneeId: string,\r\n claimReferenceLike: string | null,\r\n claimTypesCodes: string | null,\r\n claimantNameLike: string | null,\r\n limit: number,\r\n page: number,\r\n policyHolderNameLike: null | string\r\n submissionDateEnd: string,\r\n submissionDateStart: string,\r\n claimTransitionStateReasons: Array,\r\n claimTransitionStatusReasons: Array,\r\n id: string,\r\n settlementStageNumber: string\r\n } | string | Array,\r\n key: string,\r\n value: string\r\n}\r\n\r\nexport interface ClaimApplication {\r\n claimApplicationId: string;\r\n content: string;\r\n answers: Array,\r\n assignee: {\r\n displayName: string\r\n email: string\r\n firstName: string\r\n fullName: string\r\n id: string,\r\n isClaimant: boolean\r\n isPolicyHolder: boolean\r\n isSystem: boolean\r\n lastName: string\r\n },\r\n assigneeId: string,\r\n claimApplicationApproval: string\r\n claimCategory: { id: string, code: string, name: string }\r\n claimChallengeReviewerId: string\r\n claimDetailsMessage: string\r\n claimReference: string\r\n claimTransition: {\r\n id: string,\r\n assignee: string | null,\r\n assigneeId: string,\r\n claimState: Array,\r\n claimStatus: {\r\n code: string\r\n description: string\r\n id: string\r\n name: string\r\n },\r\n claimTransitionStateReasons: Array,\r\n claimTransitionStatusReasons: Array,\r\n importantNotes: string | null,\r\n\r\n }\r\n claimType: {\r\n id: string,\r\n code: string,\r\n name: string,\r\n }\r\n claimant: {\r\n claimantName: string\r\n displayName: string\r\n email: string | null\r\n firstName: string\r\n fullName: string\r\n id: string\r\n isClaimant: boolean\r\n isPolicyHolder: boolean\r\n isSystem: boolean\r\n lastName: string\r\n },\r\n claimantId: string\r\n claimantName: string\r\n communicationType: null | string\r\n communicationTypeNumber: number\r\n communicationTypeMessage: string\r\n createdDate: string\r\n dateCoverStartedAnswer: string | null\r\n dateFormSubmittedAnswer: string | null\r\n dateReportedAnswer: string | null\r\n entityId: string | null\r\n id: string\r\n isBankDetailsVisible: boolean\r\n isChallengedTabEditable: boolean\r\n isChallengedTabVisible: boolean\r\n isDraft: boolean\r\n isWithdrawn: boolean\r\n organisationNameAnswer: string\r\n permissionsForCurrentUser: { isClaimHandler: boolean, isClaimReviewer: boolean }\r\n policyHolder: null | string\r\n policyHolderName: string\r\n policyId: null | string\r\n policyNumber: null | number\r\n policyNumberAnswer: null | number\r\n policyType: { id: string, code: string, name: string }\r\n receivedType: null | string\r\n receivedTypeNumber: number\r\n receivedTypeMessage: string\r\n requiresAcceptance: boolean,\r\n currency?: null | string\r\n}\r\n\r\nexport interface GeneralResponse {\r\n data: ClaimApplication\r\n page: number,\r\n limit: number,\r\n totalPages: number,\r\n count: number,\r\n totalCount: number\r\n}\r\n\r\nexport interface ErrorResponse {\r\n body: {\r\n errors: Array\r\n }\r\n}\r\n\r\n\r\nexport const sendClaimApplication = createAction(ActionTypes.SEND_CLAIM_APPLICATION);\r\nexport const sendClaimApplicationSuccess = createAction(ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS);\r\nexport const sendClaimApplicationFailed = createAction(ActionTypes.SEND_CLAIM_APPLICATION_FAILED);\r\nexport const updateClaimApplication = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION);\r\nexport const updateClaimApplicationSuccess = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION_SUCCESS);\r\nexport const updateClaimApplicationFailed = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION_FAILED);\r\nexport const fetchClaimApplicationById = createAction(ActionTypes.GET_CLAIM_APPLICATION_BY_ID);\r\nexport const fetchClaimApplicationByIdSuccess = createAction(ActionTypes.GET_CLAIM_APPLICATION_BY_ID_SUCCESS);\r\nexport const fetchClaimApplicationByIdFailed = createAction(ActionTypes.GET_CLAIM_APPLICATION_BY_ID_FAILED);\r\nexport const fetchClaimApplications = createAction(ActionTypes.GET_CLAIM_APPLICATIONS);\r\nexport const fetchClaimApplicationsSuccess = createAction(ActionTypes.GET_CLAIM_APPLICATIONS_SUCCESS);\r\nexport const fetchClaimApplicationsFailed = createAction(ActionTypes.GET_CLAIM_APPLICATIONS_FAILED);\r\nexport const changeClaimApplicationState = createAction(ActionTypes.CHANGE_CLAIM_APPLICATION_STATE);\r\nexport const redirectAfterClaimSubmit = createAction(ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT);\r\nexport const sendDraftClaimApplicationByUser = createAction(ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER);\r\nexport const sendDraftClaimApplicationByUserSuccess = createAction(ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS);\r\nexport const sendDraftClaimApplicationByUserFailed = createAction(ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED);\r\nexport const fetchClaimApplicationBankAccountAnswers = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS);\r\nexport const fetchClaimApplicationBankAccountAnswersSuccess = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS);\r\nexport const fetchClaimApplicationBankAccountAnswersFailed = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED);\r\nexport const updateClaimApplicationBankAccount = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT);\r\nexport const updateClaimApplicationBankAccountSuccess = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS);\r\nexport const updateClaimApplicationBankAccountFailed = createAction(ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED);\r\nexport const createWithdrawnClaimApplication = createAction(ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION);\r\nexport const createWithdrawnClaimApplicationSuccess = createAction(ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS);\r\nexport const createWithdrawnClaimApplicationFailed = createAction(ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED);\r\nexport const fetchClaimApplicationTemplate = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE);\r\nexport const fetchClaimApplicationTemplateSuccess = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS);\r\nexport const fetchClaimApplicationTemplateFailed = createAction(ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED);\r\n\r\nexport interface sendClaimApplicationAction {\r\n type?: typeof ActionTypes.SEND_CLAIM_APPLICATION;\r\n data: {\r\n ReCaptchaResponseToken: string | null,\r\n PolicyTypeCode: string,\r\n ClaimCategoryCode: string,\r\n FormTypeCode: string,\r\n Answers: Array,\r\n },\r\n}\r\n\r\nexport interface sendClaimApplicationSuccessAction {\r\n type: typeof ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface sendClaimApplicationFailedAction {\r\n type: typeof ActionTypes.SEND_CLAIM_APPLICATION_FAILED;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface updateClaimApplicationAction {\r\n type?: typeof ActionTypes.UPDATE_CLAIM_APPLICATION;\r\n data: {\r\n ReCaptchaResponseToken: string | null,\r\n PolicyTypeCode: string,\r\n ClaimCategoryCode: string,\r\n FormTypeCode: string,\r\n Answers: Array,\r\n ClaimApplicationId: string,\r\n }\r\n}\r\n\r\nexport interface updateClaimApplicationSuccessAction {\r\n type: typeof ActionTypes.UPDATE_CLAIM_APPLICATION_SUCCESS;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface updateClaimApplicationFailedAction {\r\n type: typeof ActionTypes.UPDATE_CLAIM_APPLICATION_FAILED;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationByIdAction {\r\n type?: typeof ActionTypes.GET_CLAIM_APPLICATION_BY_ID;\r\n id: string;\r\n}\r\n\r\nexport interface fetchClaimApplicationByIdSuccessAction {\r\n type: typeof ActionTypes.GET_CLAIM_APPLICATION_BY_ID_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationByIdFailedAction {\r\n type: typeof ActionTypes.GET_CLAIM_APPLICATION_BY_ID_FAILED;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationsAction {\r\n type?: typeof ActionTypes.GET_CLAIM_APPLICATIONS;\r\n page: number;\r\n limit: number;\r\n}\r\n\r\nexport interface fetchClaimApplicationsSuccessAction {\r\n type: typeof ActionTypes.GET_CLAIM_APPLICATIONS_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationsFailedAction {\r\n type: typeof ActionTypes.GET_CLAIM_APPLICATIONS_FAILED;\r\n response: ErrorResponse;\r\n}\r\n\r\nexport interface changeClaimApplicationStateAction {\r\n type: typeof ActionTypes.CHANGE_CLAIM_APPLICATION_STATE;\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface redirectAfterClaimSubmitAction {\r\n type: typeof ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT;\r\n payload: ClaimApplicationPayload;\r\n}\r\n\r\nexport interface sendDraftClaimApplicationByUserAction {\r\n type?: typeof ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER;\r\n data: {\r\n PolicyTypeCode: string,\r\n ClaimCategoryCode: string,\r\n FormTypeCode: string,\r\n ClaimApplicationId: string,\r\n Answers: Array\r\n }\r\n}\r\n\r\nexport interface sendDraftClaimApplicationByUserSuccessAction {\r\n type: typeof ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface sendDraftClaimApplicationByUserFailedAction {\r\n type: typeof ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationBankAccountAnswersAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS;\r\n payload: string;\r\n}\r\n\r\nexport interface fetchClaimApplicationBankAccountAnswersSuccessAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS;\r\n body: GeneralResponse\r\n}\r\n\r\nexport interface fetchClaimApplicationBankAccountAnswersFailedAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED;\r\n}\r\n\r\nexport interface updateClaimApplicationBankAccountAction {\r\n type: typeof ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT;\r\n payload: {\r\n claimApplicationId: string;\r\n answers: Array\r\n }\r\n}\r\n\r\nexport interface updateClaimApplicationBankAccountSuccessAction {\r\n type: typeof ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS;\r\n}\r\n\r\nexport interface updateClaimApplicationBankAccountFailedAction {\r\n type: typeof ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED;\r\n}\r\n\r\nexport interface createWithdrawnClaimApplicationAction {\r\n type?: typeof ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION;\r\n data: {\r\n Answers: Array\r\n },\r\n claimApplicationId: string,\r\n\r\n}\r\n\r\nexport interface createWithdrawnClaimApplicationSuccessAction {\r\n type: typeof ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface createWithdrawnClaimApplicationFailedAction {\r\n type: typeof ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED;\r\n}\r\n\r\nexport interface fetchClaimApplicationTemplateAction {\r\n type?: typeof ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS;\r\n templateId: string,\r\n claimApplicationId: string,\r\n}\r\n\r\nexport interface fetchClaimApplicationTemplateSuccessAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimApplicationTemplateFailedAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED;\r\n}\r\n\r\n\r\nexport type ClaimApplicationProjections={\r\n id:string |null;\r\n formattedType:string|null;\r\n claimHandlerName:string |null;\r\n claimStatusName:string |null;\r\n claimStateName:string |null;\r\n createdDate: string | null;\r\n isBankDetailsVisible:boolean | null\r\n isSurveyTabVisible: boolean | null\r\n}\r\n\r\n\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n errors?: Array\r\n}\r\nexport interface DocumentTypeType {\r\n id: string,\r\n code: string\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\nexport interface DocumentTypePayload {\r\n policyTypeCode: string,\r\n claimCategoryCode: string,\r\n formTypeCode: string,\r\n}\r\nexport const fetchDocumentTypes = createAction(ActionTypes.FETCH_DOCUMENT_TYPES);\r\nexport const fetchDocumentTypesSuccess = createAction(ActionTypes.FETCH_DOCUMENT_TYPES_SUCCESS);\r\nexport const fetchDocumentTypesFailed = createAction(ActionTypes.FETCH_DOCUMENT_TYPES_FAILED);\r\n\r\nexport interface fetchDocumentTypesAction{\r\n type:typeof ActionTypes.FETCH_DOCUMENT_TYPES;\r\n payload:DocumentTypePayload\r\n}\r\n\r\n\r\nexport interface fetchDocumentTypesSuccessAction{\r\n type:typeof ActionTypes.FETCH_DOCUMENT_TYPES_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchDocumentTypesFailedAction{\r\n type:typeof ActionTypes.FETCH_DOCUMENT_TYPES_FAILED;\r\n body:GeneralResponse;\r\n}","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\nimport {\r\n FETCH_APPLICATION_SETTINGS,\r\n FETCH_APPLICATION_SETTINGS_FAILED,\r\n FETCH_APPLICATION_SETTINGS_SUCCESS,\r\n} from './types';\r\n\r\n interface GeneralResponse {\r\n body: {\r\n data: ApiApplicationSettings\r\n }\r\n}\r\nexport interface AragButtons {\r\n code: string,\r\n isExternal: boolean,\r\n position: number,\r\n titleForBigScreens: string,\r\n titleForSmallScreens: string,\r\n url: string,\r\n}\r\ninterface ApiApplicationSettings {\r\n mobileScreenSizeWidth: number,\r\n maxAttachmentSizeInMB: number,\r\n enableCaptcha: boolean,\r\n enableAutoSave: boolean,\r\n isSwitchingLanguageEnabled: boolean,\r\n aragTelephoneNumber: string,\r\n aragSubText: string,\r\n aragImageHeroArea: string,\r\n aragHeaderText: string,\r\n aragCollapsedImageHeroArea: string,\r\n aragButtons: Array\r\n}\r\nexport const fetchApplicationSettings = createAction(ActionTypes.FETCH_APPLICATION_SETTINGS);\r\nexport const fetchApplicationSettingsSuccess = createAction(ActionTypes.FETCH_APPLICATION_SETTINGS_SUCCESS);\r\nexport const fetchApplicationSettingsFailed = createAction(ActionTypes.FETCH_APPLICATION_SETTINGS_FAILED);\r\n\r\nexport interface fetchApplicationSettingsAction {\r\n type?: typeof FETCH_APPLICATION_SETTINGS;\r\n}\r\n\r\nexport interface fetchApplicationSettingsSuccessAction {\r\n type: typeof FETCH_APPLICATION_SETTINGS_SUCCESS;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchApplicationSettingsFailedAction {\r\n type: typeof FETCH_APPLICATION_SETTINGS_FAILED;\r\n}","import * as ActionTypes from './types';\r\nimport {createAction, PayloadAction} from '@reduxjs/toolkit';\r\n\r\nexport type Warnings = Array | string[];\r\nexport type Errors = Array | string;\r\nexport interface messagePayload {\r\n uuid: string,\r\n message: Array,\r\n response: {\r\n body: {\r\n warnings?: Warnings | any,\r\n errors?: Array | string | any\r\n data?: any\r\n }\r\n },\r\n\r\n customMessage: string;\r\n warnings: Warnings,\r\n errors: Errors\r\n isMediationPdfCreated?: boolean,\r\n data?: any\r\n}\r\n\r\nexport const removeMessage = createAction(ActionTypes.REMOVE_MESSAGE);\r\nexport const detectWarnings=createAction(ActionTypes.ADD_WARNING_MESSAGE);\r\nexport const handleBusinessErrors=createAction(ActionTypes.HANDLE_BUSINESS_ERRORS);\r\nexport const handleInternalErrors=createAction(ActionTypes.HANDLE_INTERNAL_ERRORS);\r\nexport const handleServiceErrors=createAction(ActionTypes.HANDLE_SERVICE_ERRORS);\r\nexport const hideMessage=createAction(ActionTypes.HIDE_MESSAGE);\r\nexport const displayDownloadFileWarning=createAction(ActionTypes.DISPLAY_DOWNLOAD_FILE_WARNING);\r\n\r\n\r\nexport interface removeMessageAction{\r\n type?:typeof ActionTypes.REMOVE_MESSAGE;\r\n payload?:{ uuid: string;}\r\n uuid: string\r\n}\r\n\r\nexport interface detectWarningsAction{\r\n type:typeof ActionTypes.ADD_WARNING_MESSAGE;\r\n body:messagePayload\r\n}\r\n\r\n\r\nexport interface handleBusinessErrorsAction{\r\n type:typeof ActionTypes.HANDLE_BUSINESS_ERRORS | any;\r\n payload: {customMessage:string} | any\r\n}\r\n\r\n\r\nexport interface handleInternalErrorsAction{\r\n type:typeof ActionTypes.HANDLE_INTERNAL_ERRORS | any;\r\n payload: {customMessage:string} | any\r\n}\r\n\r\n\r\nexport interface handleServiceErrorsAction{\r\n type:typeof ActionTypes.HANDLE_SERVICE_ERRORS | any;\r\n payload: {customMessage:string} | any\r\n}\r\n\r\nexport interface hideMessageAction{\r\n type?:typeof ActionTypes.HIDE_MESSAGE | any;\r\n payload?: undefined\r\n}\r\n\r\nexport interface displayDownloadFileWarningAction{\r\n type?:typeof ActionTypes.DISPLAY_DOWNLOAD_FILE_WARNING | any;\r\n payload:any\r\n}","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n totalCount: any;\r\n count: any;\r\n totalPages: any;\r\n limit: any;\r\n page: any;\r\n data: GeneralResponseBody\r\n}\r\nexport interface CommunicatorMessageType {\r\n id: string,\r\n code: string,\r\n}\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\n\r\nexport interface CommunicatorMessagePayload {\r\n attachments?: Array,\r\n claimApplicationId?: string,\r\n content?: string,\r\n visibleToAragOnly?: boolean,\r\n messageId?: string,\r\n}\r\nexport const fetchCommunicatorMessage = createAction(ActionTypes.FETCH_COMMUNICATOR_MESSAGE);\r\nexport const fetchCommunicatorMessageSuccess = createAction(ActionTypes.FETCH_COMMUNICATOR_MESSAGE_SUCCESS);\r\nexport const fetchCommunicatorMessageFailed = createAction(ActionTypes.FETCH_COMMUNICATOR_MESSAGE_FAILED);\r\nexport const createCommunicatorMessage = createAction(ActionTypes.CREATE_COMMUNICATOR_MESSAGE);\r\nexport const createCommunicatorMessageSuccess = createAction(ActionTypes.CREATE_COMMUNICATOR_MESSAGE_SUCCESS);\r\nexport const createCommunicatorMessageFailed = createAction(ActionTypes.CREATE_COMMUNICATOR_MESSAGE_FAILED);\r\nexport const fetchCommunicatorHistory = createAction(ActionTypes.FETCH_COMMUNICATOR_HISTORY);\r\nexport const fetchCommunicatorHistorySuccess = createAction(ActionTypes.FETCH_COMMUNICATOR_HISTORY_SUCCESS);\r\nexport const fetchCommunicatorHistoryFailed = createAction(ActionTypes.FETCH_COMMUNICATOR_HISTORY_FAILED);\r\n\r\nexport interface fetchCommunicatorMessageAction{\r\n type:typeof ActionTypes.FETCH_COMMUNICATOR_MESSAGE;\r\n payload:CommunicatorMessagePayload;\r\n}\r\n\r\nexport interface fetchCommunicatorMessageSuccessAction{\r\n type:typeof ActionTypes.FETCH_COMMUNICATOR_MESSAGE_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\n\r\nexport interface fetchCommunicatorMessageFailedAction{\r\n type:typeof ActionTypes.FETCH_COMMUNICATOR_MESSAGE_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\nexport interface createCommunicatorMessageAction{\r\n type?:typeof ActionTypes.CREATE_COMMUNICATOR_MESSAGE;\r\n content:string,\r\n claimApplicationId:string,\r\n attachments: Array<{id:string}>\r\n}\r\n\r\n\r\nexport interface createCommunicatorMessageSuccessAction{\r\n type:typeof ActionTypes.CREATE_COMMUNICATOR_MESSAGE_SUCCESS;\r\n payload:GeneralResponse;\r\n}\r\n\r\nexport interface createCommunicatorMessageFailedAction{\r\n type:typeof ActionTypes.CREATE_COMMUNICATOR_MESSAGE_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\n\r\nexport interface fetchCommunicatorHistoryAction{\r\n type?:typeof ActionTypes.FETCH_COMMUNICATOR_HISTORY;\r\n claimApplicationId: string\r\n filters: {\r\n page: number,\r\n limit: number,\r\n }\r\n}\r\n\r\nexport interface fetchCommunicatorHistorySuccessAction{\r\n type:typeof ActionTypes.FETCH_COMMUNICATOR_HISTORY_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\nexport interface fetchCommunicatorHistoryFailedAction{\r\n type:typeof ActionTypes.FETCH_COMMUNICATOR_HISTORY_FAILED;\r\n payload:GeneralResponse;\r\n}\r\n\r\n\r\n","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface ClaimReviewValidity{\r\n claimApplicationId: string | null;\r\n randomId: string | null;\r\n}\r\nexport interface ClaimReviewDetails extends ClaimReviewValidity{\r\n email: string | null,\r\n passCode:string | null,\r\n}\r\nexport interface ClaimRejectedReason extends ClaimReviewDetails{\r\n AcceptanceStatusReason: string\r\n}\r\n\r\nexport interface GeneralResponse {\r\n data: any;\r\n}\r\n\r\nexport const fetchClaimReviewValidity = createAction(ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY);\r\nexport const fetchClaimReviewValiditySuccess = createAction(ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS);\r\nexport const fetchClaimReviewValidityFailed = createAction(ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_FAILED);\r\nexport const fetchClaimReviewDetails = createAction(ActionTypes.FETCH_CLAIM_REVIEW_DETAILS);\r\nexport const fetchClaimReviewDetailsSuccess = createAction(ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_SUCCESS);\r\nexport const fetchClaimReviewDetailsFailed = createAction(ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_FAILED);\r\nexport const acceptClaimReview = createAction(ActionTypes.ACCEPT_CLAIM_REVIEW);\r\nexport const acceptClaimReviewSuccess = createAction(ActionTypes.ACCEPT_CLAIM_REVIEW_SUCCESS);\r\nexport const acceptClaimReviewFailed = createAction(ActionTypes.ACCEPT_CLAIM_REVIEW_FAILED);\r\nexport const fetchRejectionFormClaimReview = createAction(ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW);\r\nexport const fetchRejectionFormClaimReviewSuccess = createAction(ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS);\r\nexport const fetchRejectionFormClaimReviewFailed = createAction(ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED);\r\nexport const rejectClaimReviewWithReason = createAction(ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON);\r\nexport const rejectClaimReviewWithReasonSuccess = createAction(ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS);\r\nexport const rejectClaimReviewWithReasonFailed = createAction(ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_FAILED);\r\nexport const changeClaimReviewAnswerState = createAction(ActionTypes.CHANGE_CLAIM_REVIEW_ANSWERS_STATE);\r\nexport const changeClaimReviewState = createAction(ActionTypes.CHANGE_CLAIM_REVIEW_STATE);\r\n\r\n\r\nexport interface fetchClaimReviewValidityAction{\r\n type?: typeof ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY;\r\n claimApplicationId:string,\r\n randomId:string,\r\n}\r\nexport interface fetchClaimReviewValiditySuccessAction{\r\n type: typeof ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\nexport interface fetchClaimReviewValidityFailedAction{\r\n type: typeof ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_FAILED;\r\n payload: GeneralResponse;\r\n}\r\nexport interface fetchClaimReviewDetailsAction{\r\n type?: typeof ActionTypes.FETCH_CLAIM_REVIEW_DETAILS;\r\n ClaimApplicationId: string | null,\r\n RandomId: string | null,\r\n Email:string,\r\n Passcode: string,\r\n}\r\nexport interface fetchClaimReviewDetailsSuccessAction{\r\n type: typeof ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\nexport interface fetchClaimReviewDetailsFailedAction{\r\n type: typeof ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_FAILED;\r\n payload:GeneralResponse\r\n}\r\nexport interface acceptClaimReviewAction{\r\n type?: typeof ActionTypes.ACCEPT_CLAIM_REVIEW;\r\n ClaimApplicationId: string | null,\r\n RandomId:string | null,\r\n Email: string | null,\r\n Passcode: string | null,\r\n}\r\nexport interface acceptClaimReviewSuccessAction{\r\n type: typeof ActionTypes.ACCEPT_CLAIM_REVIEW_SUCCESS;\r\n body:GeneralResponse\r\n}\r\nexport interface acceptClaimReviewFailedAction{\r\n type: typeof ActionTypes.ACCEPT_CLAIM_REVIEW_FAILED;\r\n payload:GeneralResponse\r\n}\r\n\r\nexport interface fetchRejectionFormClaimReviewAction{\r\n type?: typeof ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW;\r\n ClaimApplicationId: string | null,\r\n RandomId:string | null,\r\n}\r\n\r\nexport interface fetchRejectionFormClaimReviewSuccessAction{\r\n type: typeof ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS;\r\n body:GeneralResponse\r\n}\r\nexport interface fetchRejectionFormClaimReviewFailedAction{\r\n type: typeof ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED;\r\n payload:GeneralResponse\r\n}\r\nexport interface rejectClaimReviewWithReasonAction{\r\n type?: typeof ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON;\r\n ClaimApplicationId: string | null,\r\n RandomId: string | null,\r\n Email: string | null,\r\n Passcode: string | null,\r\n AcceptanceStatusReason: any,\r\n}\r\nexport interface rejectClaimReviewWithReasonSuccessAction{\r\n type: typeof ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS;\r\n body:GeneralResponse\r\n}\r\nexport interface rejectClaimReviewWithReasonFailedAction{\r\n type: typeof ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_FAILED;\r\n payload:GeneralResponse\r\n}\r\nexport interface changeClaimReviewAnswerStateAction{\r\n type?: typeof ActionTypes.CHANGE_CLAIM_REVIEW_ANSWERS_STATE;\r\n email?:string | null,\r\n passCode?:string | null,\r\n claimApplicationId?: string | null,\r\n randomId?: string | null,\r\n}\r\nexport interface changeClaimReviewStateAction{\r\n type?: typeof ActionTypes.CHANGE_CLAIM_REVIEW_STATE;\r\n rejectedReasonClaimReview: string | null\r\n}\r\n","import {createAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\nimport moment from 'moment';\r\n\r\nexport interface CreatedBy {\r\n displayName: string,\r\n email: string,\r\n firstName: string\r\n fullName: string\r\n id: string\r\n isClaimant: boolean,\r\n isPolicyHolder: boolean,\r\n isSystem: boolean,\r\n lastName: string\r\n}\r\n\r\nexport interface DocumentType {\r\n id: string\r\n code: string,\r\n name: string,\r\n}\r\n\r\nexport interface ClaimDocument {\r\n id: string,\r\n createdById: string,\r\n createdBy: CreatedBy,\r\n documentTypes: Array,\r\n createdDate: string,\r\n fullFileName: string,\r\n fileName: string,\r\n fileExtension: string,\r\n fileContent: string,\r\n questionId: string,\r\n questionName: string,\r\n messageId: string,\r\n messageContent: string,\r\n documentType: Array | null,\r\n}\r\nexport interface GeneralResponse {\r\n data: ClaimDocument\r\n page: number,\r\n limit:number,\r\n totalPages:number,\r\n count:number,\r\n totalCount:number,\r\n}\r\nexport const fetchClaimDocument = createAction(ActionTypes.FETCH_CLAIM_DOCUMENT);\r\nexport const fetchClaimDocumentSuccess = createAction(ActionTypes.FETCH_CLAIM_DOCUMENT_SUCCESS);\r\nexport const fetchClaimDocumentFailed = createAction(ActionTypes.FETCH_CLAIM_DOCUMENT_FAILED);\r\nexport const fetchClaimDocumentWithQueryParams = createAction(ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS);\r\nexport const fetchClaimDocumentWithQueryParamsSuccess = createAction(ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS);\r\nexport const fetchClaimDocumentWithQueryParamsFailed = createAction(ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED);\r\n\r\nexport interface fetchClaimDocumentAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_DOCUMENT;\r\n}\r\n\r\nexport interface fetchClaimDocumentSuccessAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_DOCUMENT_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimDocumentFailedAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_DOCUMENT_FAILED;\r\n}\r\n\r\nexport interface fetchClaimDocumentWithQueryParamsAction {\r\n type?: typeof ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS;\r\n claimApplicationId:string;\r\n filters: {\r\n page: number,\r\n limit: number,\r\n submittedByAragUserOnly?: moment.MomentInput | null,\r\n submissionDateStart?:moment.MomentInput | null\r\n submissionDateEnd?: string | null\r\n attachmentFullFileNameLike?: string | null\r\n },\r\n\r\n}\r\nexport interface fetchClaimDocumentWithQueryParamsSuccessAction {\r\n type: typeof ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS;\r\n body: GeneralResponse\r\n}\r\nexport interface fetchClaimDocumentWithQueryParamsFailedAction {\r\n type: typeof ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED;\r\n payload: any;\r\n}\r\n","import {createAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody\r\n}\r\n\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\nexport interface FormType {\r\n id: string,\r\n code: string,\r\n name: string,\r\n}\r\n\r\nexport interface FormTypePayload {\r\n policyTypeCode: string\r\n claimCategoryCode: string\r\n}\r\n\r\nexport const fetchFormTypes=createAction(ActionTypes.FETCH_FORM_TYPES);\r\nexport const fetchFormTypesSuccess=createAction(ActionTypes.FETCH_FORM_TYPES_SUCCESS);\r\nexport const fetchFormTypesFailed=createAction(ActionTypes.FETCH_FORM_TYPES_FAILED);\r\nexport const fetchFormTypesByPolicyAndCategoryCode=createAction(ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE);\r\nexport const fetchFormTypesByPolicyAndCategoryCodeSuccess=createAction(ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS);\r\nexport const fetchFormTypesByPolicyAndCategoryCodeFailed=createAction(ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED);\r\nexport const clearFormTypes=createAction(ActionTypes.CLEAR_FORM_TYPES_STATE);\r\n\r\nexport interface fetchFormTypesAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES;\r\n payload:undefined;\r\n}\r\nexport interface fetchFormTypesSuccessAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES_SUCCESS;\r\n payload:GeneralResponse;\r\n}\r\nexport interface fetchFormTypesFailedAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES_FAILED;\r\n payload:GeneralResponse | any;\r\n}\r\nexport interface fetchFormTypesByPolicyAndCategoryCodeAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE;\r\n payload: FormTypePayload;\r\n}\r\nexport interface fetchFormTypesByPolicyAndCategoryCodeSuccessAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\nexport interface fetchFormTypesByPolicyAndCategoryCodeFailedAction{\r\n type: typeof ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED;\r\n payload: GeneralResponse | any;\r\n}\r\nexport interface clearFormTypesAction{\r\n type: typeof ActionTypes.CLEAR_FORM_TYPES_STATE;\r\n payload:undefined;\r\n}","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n request?: any;\r\n data?: any;\r\n body: GeneralResponseBody;\r\n}\r\n\r\nexport interface CurrencySchema {\r\n id: string,\r\n code: string,\r\n name: string,\r\n isDefault: boolean,\r\n symbol: string,\r\n symbolSeparated: string\r\n}\r\n\r\nexport interface GeneralResponseBody {\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n}\r\n\r\nexport const fetchCurrencies = createAction(ActionTypes.FETCH_CURRENCIES);\r\nexport const fetchCurrenciesSuccess = createAction(ActionTypes.FETCH_CURRENCIES_SUCCESS);\r\nexport const fetchCurrenciesFailed = createAction(ActionTypes.FETCH_CURRENCIES_FAILED);\r\n\r\n\r\nexport interface fetchCurrenciesAction{\r\n type:typeof ActionTypes.FETCH_CURRENCIES;\r\n}\r\n\r\nexport interface fetchCurrenciesSuccessAction{\r\n type:typeof ActionTypes.FETCH_CURRENCIES_SUCCESS;\r\n payload:GeneralResponse;\r\n}\r\n\r\nexport interface fetchCurrenciesFailedAction{\r\n type:typeof ActionTypes.FETCH_CURRENCIES_FAILED;\r\n}","import {createAction, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface ClaimCategoryPayload {\r\n policyTypeCode: string\r\n}\r\n\r\nexport interface GeneralResponse {\r\n data: ClaimCategory\r\n}\r\n\r\nexport interface ClaimCategory {\r\n id: string,\r\n code: string,\r\n name: string,\r\n}\r\nexport interface ErrorResponse{\r\n errors: Array\r\n}\r\n\r\n\r\n// @ts-ignore\r\nexport const fetchClaimCategories = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES);\r\n// @ts-ignore\r\nexport const fetchClaimCategoriesSuccess = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES_SUCCESS);\r\n// @ts-ignore\r\nexport const fetchClaimCategoriesFailed = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES_FAILED);\r\nexport const fetchClaimCategoriesByPolicyType = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE);\r\nexport const fetchClaimCategoriesByPolicyTypeSuccess = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS);\r\nexport const fetchClaimCategoriesByPolicyTypeFailed = createAction(ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED);\r\nexport const clearClaimCategoryState = createAction(ActionTypes.CLEAR_CLAIM_CATEGORY_STATE);\r\n\r\nexport interface fetchClaimCategoriesAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES;\r\n payload: ClaimCategoryPayload;\r\n}\r\n\r\nexport interface fetchClaimCategoriesSuccessAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES_SUCCESS;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimCategoriesFailedAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES_FAILED;\r\n payload: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimCategoriesByPolicyTypeAction extends PayloadAction{\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE;\r\n}\r\n\r\nexport interface fetchClaimCategoriesByPolicyTypeSuccessAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS;\r\n body: GeneralResponse;\r\n}\r\n\r\nexport interface fetchClaimCategoriesByPolicyTypeFailedAction {\r\n type: typeof ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED;\r\n body: ErrorResponse;\r\n}\r\n\r\nexport interface clearClaimCategoryStateAction {\r\n type?: typeof ActionTypes.CLEAR_CLAIM_CATEGORY_STATE;\r\n}","import { createAction } from '@reduxjs/toolkit';\r\nimport * as ActionTypes from './types';\r\n\r\nexport interface GeneralResponse {\r\n data: GeneralResponseBody |any;\r\n errors?: Array\r\n}\r\nexport interface GeneralResponseBody {\r\n length: Boolean;\r\n data: Array\r\n limit: number,\r\n message: string,\r\n page: number,\r\n totalCount: number,\r\n totalPages: number,\r\n warnings: Array,\r\n count: number,\r\n\r\n map(param: (survey: any) => any): any;\r\n}\r\n\r\n\r\nexport const fetchSurveyType = createAction(ActionTypes.FETCH_SURVEY_TYPE);\r\nexport const fetchSurveyTypeSuccess = createAction(ActionTypes.FETCH_SURVEY_TYPE_SUCCESS);\r\nexport const fetchSurveyTypeFailed = createAction(ActionTypes.FETCH_SURVEY_TYPE_FAILED);\r\n\r\nexport const postSurveyAnswers=createAction(ActionTypes.POST_SURVEY_ANSWERS);\r\nexport const postSurveyAnswersSuccess=createAction(ActionTypes.POST_SURVEY_ANSWERS_SUCCESS);\r\nexport const postSurveyAnswersFailed=createAction(ActionTypes.POST_SURVEY_ANSWERS_FAILED);\r\n\r\nexport interface fetchSurveyTypeAction{\r\n type?:typeof ActionTypes.FETCH_SURVEY_TYPE;\r\n claimApplicationId:string\r\n}\r\n\r\nexport interface fetchSurveyTypeSuccessAction{\r\n type:typeof ActionTypes.FETCH_SURVEY_TYPE_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface fetchSurveyTypeFailedAction{\r\n type:typeof ActionTypes.FETCH_SURVEY_TYPE_FAILED;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface postSurveyAnswersAction{\r\n type?:typeof ActionTypes.POST_SURVEY_ANSWERS;\r\n}\r\n\r\nexport interface postSurveyAnswersSuccessAction{\r\n type:typeof ActionTypes.POST_SURVEY_ANSWERS_SUCCESS;\r\n body:GeneralResponse;\r\n}\r\n\r\nexport interface postSurveyAnswersFailedAction{\r\n type:typeof ActionTypes.POST_SURVEY_ANSWERS_FAILED;\r\n body:GeneralResponse;\r\n}\r\n","const rules = {};\r\n\r\nrules.differentValues = {\r\n code: 'different-values',\r\n};\r\n\r\nrules.minAge = {\r\n code: 'min-age',\r\n};\r\n\r\nrules.maxAge = {\r\n code: 'max-age',\r\n};\r\n\r\nrules.minValue = {\r\n code: 'min-value',\r\n};\r\n\r\nrules.maxValue = {\r\n code: 'max-value',\r\n};\r\n\r\nrules.minLength = {\r\n code: 'min-length',\r\n};\r\n\r\nrules.maxLength = {\r\n code: 'max-length',\r\n};\r\n\r\nrules.futureDate = {\r\n code: 'future-date',\r\n};\r\n\r\nrules.pastDate = {\r\n code: 'past-date',\r\n};\r\n\r\nrules.todayFutureDate = {\r\n code: 'today-future-date',\r\n};\r\n\r\nrules.todayPastDate = {\r\n code: 'today-past-date',\r\n};\r\n\r\nrules.integer = {\r\n code: 'integer',\r\n};\r\nrules.afterEqualSpecificDate = {\r\n code: 'after-equal-specific-date',\r\n};\r\n\r\nrules.afterSpecificDate = {\r\n code: 'after-specific-date',\r\n};\r\n\r\nrules.beforeEqualSpecificDate = {\r\n code: 'before-equal-specific-date',\r\n};\r\n\r\nrules.beforeSpecificDate = {\r\n code: 'before-specific-date',\r\n};\r\n\r\nrules.pastSpecificDate = {\r\n code: 'past-specific-date',\r\n};\r\n\r\nrules.futureSpecificDate = {\r\n code: 'future-specific-date',\r\n};\r\n\r\n\r\nexport default rules;","const config = {};\r\n\r\nconfig.defaultListSize = 20;\r\n\r\nconfig.listSizeOptions = [\r\n { key: 5, label: 5 },\r\n { key: 10, label: 10 },\r\n { key: 20, label: 20 },\r\n { key: 50, label: 50 },\r\n];\r\n\r\nconfig.MAX_ALLOWED_SIZE_IN_BYTES = 30000000;\r\n\r\nconfig.CAPTCHA_SITE_KEY = '6LezZDYUAAAAAEKvD3eoTUsZLipBPrmCYc2OEMap';\r\n\r\nconfig.ACCEPTED_FILE_EXTENSIONS = [\r\n '.bmp',\r\n '.csv',\r\n '.doc',\r\n '.docx',\r\n '.eml',\r\n '.gif',\r\n '.jpe',\r\n '.jpeg',\r\n '.jpg',\r\n '.msg',\r\n '.pdf',\r\n '.png',\r\n '.ppt',\r\n '.pptx',\r\n '.rtf',\r\n '.tiff',\r\n '.txt',\r\n '.xls',\r\n '.xlsx'//,\r\n // '.odp',\r\n // '.ods',\r\n // '.odt'\r\n];\r\n\r\nconfig.ENV_NAME = process.env.REACT_APP_ENV_NAME;\r\n\r\nconfig.GA_TRACKING_ID = 'UA-134947277-1';\r\n\r\nconfig.StatusMessage = {\r\n SUCCESS: 'success',\r\n ERROR: 'error',\r\n WARNING: 'warning',\r\n INFO: 'info',\r\n\r\n};\r\n\r\nconfig.currencyPosition = {\r\n before: 'before',\r\n after: 'after',\r\n};\r\n\r\nconfig.AUTH_REDIRECT_URI = process.env.REACT_APP_AUTH_REDIRECT_URI;\r\nconfig.AUTH_TENANT_NAME = process.env.REACT_APP_AUTH_TENANT_NAME;\r\nconfig.AUTH_TENANT_INSTANCE = process.env.REACT_APP_AUTH_TENANT_INSTANCE;\r\nconfig.AUTH_CLIENT_ID = process.env.REACT_APP_AUTH_CLIENT_ID;\r\nconfig.AUTH_CLIENT_AUDIENCE_URI = process.env.REACT_APP_AUTH_CLIENT_AUDIENCE_URI;\r\n\r\nexport default config;","const ids = {};\r\n\r\nids.claimApplicationBankGroupId = '00000002-1fdd-49c5-99a2-000000000004';\r\n\r\nids.acceptedSurveyGroupId = '00000002-1fdd-49c5-99a2-000000000012';\r\n\r\nids.solicitorSurveyGroupId = '00000002-1fdd-49c5-99a2-000000000014';\r\n\r\nids.rejectedSurveyGroupId = '00000002-1fdd-49c5-99a2-000000000013';\r\n\r\nids.claimApplicationWithDrawnGroupId = '00000002-1fdd-49c5-99a2-000000000030';\r\n\r\nids.bankAccountTypeUkOption = '00000005-1fdd-49c5-99c2-000000000066';\r\n\r\nids.bankAccountTypeinternationalOption = '00000005-1fdd-49c5-99c2-000000000067';\r\n\r\nids.declarationQuestionGroupStep='00000002-1fdd-49c5-99c2-000000000008';\r\n\r\nids.questionTypeIdCheckboxId = '00000003-1fdd-49c5-99c2-000000000009';\r\n\r\n\r\nexport default ids;","import config from './config';\r\n\r\nconst currencies = {\r\n default: {sign: '£', code: 'GBP', position: config.currencyPosition.before},\r\n 'en-ie': {sign : '€', code: 'EUR', position: config.currencyPosition.after},\r\n 'en-gb': {sign: '£', code: 'GBP', position: config.currencyPosition.before},\r\n};\r\n\r\nexport default currencies;","import i18next from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\ni18next.use(initReactI18next).init({\r\n fallbackLng: \"en-GB\",\r\n resources: {\r\n 'en-GB': {\r\n translation: {\r\n blankPage: \"Oops! Something went wrong on our end.\",\r\n contactIT: \"Please try again, and contact support if the issue persists.\",\r\n email: \"Email\",\r\n emailContactEmail: \"servicedesk@arag.co.uk\",\r\n refreshPage: 'Please use the button below to return to the home page.',\r\n returnHomepage: 'Return to Home Page',\r\n }\r\n }\r\n }\r\n})\r\n\r\nexport default i18next;","import _ from 'lodash';\r\nimport GENERAL_FUNCTIONS from './functions';\r\nimport rules from '../constants/rules';\r\nimport moment from 'moment';\r\nimport currencies from '../constants/currencies';\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\nconst questionFunctions = {};\r\n\r\nquestionFunctions.mapQuestionTypeCodeToDateInputProps = (questionTypeCode, question) => {\r\n if (questionTypeCode === 'date') {\r\n return {\r\n dateFormat: 'dd/MM/yyyy',\r\n showYearDropdown: true,\r\n showMonthDropdown: true,\r\n dropdownMode: 'select',\r\n name: question.code,\r\n };\r\n }\r\n\r\n if (questionTypeCode === 'date-time') {\r\n return {\r\n dateFormat: 'MMMM d, yyyy h:mm aa',\r\n showYearDropdown: true,\r\n showMonthDropdown: true,\r\n showTimeSelect: true,\r\n dropdownMode: 'select',\r\n name: question.code,\r\n };\r\n }\r\n\r\n if (questionTypeCode === 'time') {\r\n return {\r\n dateFormat: 'h:mm aa',\r\n showTimeSelect: true,\r\n showTimeSelectOnly: true,\r\n dropdownMode: 'select',\r\n name: question.code,\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nquestionFunctions.mapQuestionTypeCodeToAsyncSearchableListInputProps = (questionTypeCode) => {\r\n\r\n if (questionTypeCode === 'post-code') {\r\n return {\r\n noOptionsMessage: () => {\r\n return 'No Results';\r\n },\r\n loadingMessage: () => null,\r\n placeholder: '',\r\n noOptionsText:'No results found'\r\n };\r\n }\r\n\r\n return null;\r\n};\r\n\r\nquestionFunctions.constructAnswerDto = (question, answer, questionType, restOptions) => {\r\n if (\r\n questionType.code === 'text-input'\r\n || questionType.code === 'text-area'\r\n || questionType.code === 'post-code'\r\n ) {\r\n return {\r\n QuestionCode: question.code,\r\n Text: answer,\r\n Amount: null,\r\n Date: null,\r\n OptionId: null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (questionType.code === 'amount') {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: parseFloat(answer),\r\n CurrencyId: restOptions?.currency?.id ?? null,\r\n Date: null,\r\n OptionId: null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (questionType.code === 'number') {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: parseFloat(answer),\r\n Date: null,\r\n OptionId: null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (\r\n questionType.code === 'date'\r\n || questionType.code === 'date-time'\r\n || questionType.code === 'time'\r\n ) {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: null,\r\n Date: answer ? moment(answer).format('YYYY-MM-DD') : null,\r\n OptionId: null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (questionType.code === 'list') {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: null,\r\n Date: null,\r\n OptionId: answer && answer.trim().length > 0 ? answer : null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (questionType.code === 'checkbox') {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: null,\r\n Date: null,\r\n OptionId: null,\r\n Flag: answer && answer.length > 0,\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n if (questionType.code === 'attachment') {\r\n return {\r\n QuestionCode: question.code,\r\n Text: null,\r\n Amount: null,\r\n Date: null,\r\n OptionId: null,\r\n Flag: null,\r\n Attachments: (answer && answer.length)\r\n ? answer.map(attachment => ({\r\n id: attachment.id,\r\n documentTypeCodes: (attachment.documentTypes && attachment.documentTypes.length)\r\n ? attachment.documentTypes.map(type => type.value)\r\n : [],\r\n }))\r\n : [],\r\n QuestionId: question.id,\r\n };\r\n }\r\n\r\n return {\r\n QuestionCode: question.code,\r\n Text: answer,\r\n Amount: null,\r\n Date: null,\r\n OptionId: null,\r\n Flag: null,\r\n QuestionId: question.id,\r\n };\r\n};\r\n\r\nquestionFunctions.requiredQuestionByOptionId = (question, values, questions) => {\r\n let valuesArrays = Object.values(values);\r\n let parentQuestion = Object.values(questions).find(value => value.id === question.requiredByQuestionId);\r\n return !!(question.requiredByOptionId && valuesArrays.find(value => value === question.requiredByOptionId)) && question.requiredByQuestionId === parentQuestion.id && values[parentQuestion.code];\r\n};\r\n\r\nquestionFunctions.validateAttachment = (attachment, question) => {\r\n if (\r\n attachment\r\n && (\r\n !attachment.documentTypes\r\n || attachment.documentTypes.length === 0\r\n )\r\n ) {\r\n return i18n.t('requiredField');\r\n }\r\n if (attachment && attachment.documentTypes && attachment.documentTypes.length > 0 && question && question.documentTypes.some(item => item.isRequired)) {\r\n\r\n return i18n.t('mandatoryDocType');\r\n }\r\n return null;\r\n};\r\n\r\nquestionFunctions.mapFormAnswersToDTOAnswers = (questions, questionTypes, answers, currency) => {\r\n // construct answer dtos from the form values\r\n const formAnswers = Object.keys(answers).map(key => {\r\n const answer = answers[key];\r\n const answerQuestion = questions[key];\r\n const questionType = questionTypes[answerQuestion.questionTypeId];\r\n return questionFunctions.constructAnswerDto(\r\n answerQuestion,\r\n answer,\r\n questionType,\r\n {currency: currency},\r\n );\r\n });\r\n\r\n\r\n // Get the ID of the checkbox question type\r\n const checkboxQuestionTypeId = _.find(questionTypes, type => type.code === 'checkbox').id;\r\n\r\n // Filter the required checkbox questions\r\n const requiredCheckboxQuestions = _.filter(questions, question => {\r\n const isRequiredCheckboxQuestion = question.isRequired && question.questionTypeId === checkboxQuestionTypeId;\r\n const isParentOrEnabled = question.isParent || formAnswers.some(answer => answer.OptionId === question.enabledByOptionId && question.enabledByQuestionId === answer.QuestionId);\r\n const hasAnswerInFormAnswers = formAnswers.some(answer => answer.QuestionCode === question.code);\r\n\r\n return isRequiredCheckboxQuestion && isParentOrEnabled && !hasAnswerInFormAnswers;\r\n });\r\n\r\n // add the required unanswered checkbox questions as false answers\r\n const checkBoxQuestionAnswers = requiredCheckboxQuestions.map(question => {\r\n const questionType = questionTypes[question.questionTypeId];\r\n return questionFunctions.constructAnswerDto(question, false, questionType, {currency: currency});\r\n });\r\n\r\n return [\r\n ...formAnswers,\r\n ...checkBoxQuestionAnswers,\r\n ];\r\n\r\n};\r\n\r\nquestionFunctions.constructAnswersDTO = (questions, questionTypes, answers, currency, draftAnswers) => {\r\n const dtoAnswers = questionFunctions.mapFormAnswersToDTOAnswers(\r\n questions,\r\n questionTypes,\r\n answers,\r\n currency,\r\n );\r\n\r\n const mappedValues = draftAnswers && draftAnswers.length\r\n ? draftAnswers.filter(e => !questions[e.questionCode]).map(item => ({\r\n QuestionCode: item.questionCode,\r\n Text: item.text,\r\n Amount: item.amount,\r\n Currency: currency && currency.code\r\n ? currency.code.toUpperCase()\r\n : item.currency,\r\n Date: item.date,\r\n OptionId: item.optionId,\r\n Flag: item.flag,\r\n Attachments: item.attachments && item.attachments.length > 0\r\n ? item.attachments\r\n : [],\r\n QuestionId: item.questionId,\r\n }))\r\n : [];\r\n\r\n return GENERAL_FUNCTIONS.mergeArraysOfObjects('QuestionCode', mappedValues, dtoAnswers);\r\n};\r\n\r\nquestionFunctions.isQuestionOfTypeIntegerRange = (question, questionTypeCode) => {\r\n if (!question) {\r\n return false;\r\n }\r\n\r\n return (\r\n questionTypeCode === 'number'\r\n && question.questionValidationRules\r\n && question.questionValidationRules[rules.integer.code]\r\n && question.questionValidationRules[rules.minValue.code]\r\n && question.questionValidationRules[rules.minValue.code].length === 1\r\n && question.questionValidationRules[rules.maxValue.code]\r\n && question.questionValidationRules[rules.maxValue.code].length === 1\r\n );\r\n};\r\n\r\nquestionFunctions.getQuestionIntegerRange = (question) => {\r\n const range = {minValue: null, maxValue: null};\r\n if (\r\n !question\r\n || !question.questionValidationRules\r\n || !question.questionValidationRules[rules.minValue.code]\r\n || question.questionValidationRules[rules.minValue.code].length !== 1\r\n || !question.questionValidationRules[rules.maxValue.code]\r\n || question.questionValidationRules[rules.maxValue.code].length !== 1\r\n ) {\r\n return null;\r\n }\r\n\r\n range.minValue = question.questionValidationRules[rules.minValue.code][0].value;\r\n range.maxValue = question.questionValidationRules[rules.maxValue.code][0].value ? parseInt(question.questionValidationRules[rules.maxValue.code][0].value) : question.questionValidationRules[rules.maxValue.code][0].value;\r\n\r\n return range;\r\n};\r\n\r\n\r\nquestionFunctions.getQuestionValidationRuleMinAndMaxValue = (question, ruleCode, questionsAnswers = {}) => {\r\n if (!question) {\r\n return {maxRestrictionValue: null, minRestrictionValue: null};\r\n }\r\n\r\n const valueRestrictions = question.questionValidationRules[ruleCode]\r\n ? question.questionValidationRules[ruleCode].map(rule => rule.value)\r\n : [];\r\n\r\n if (valueRestrictions.length === 0) {\r\n return {maxRestrictionValue: null, minRestrictionValue: null};\r\n }\r\n\r\n const maxRestrictionValue = valueRestrictions\r\n .reduce(\r\n (acc, curr) => {\r\n // check if validation rule is related to another question answer\r\n let restriction;\r\n if (questionsAnswers[curr]) {\r\n restriction = questionsAnswers[curr];\r\n } else {\r\n restriction = curr;\r\n }\r\n\r\n if (acc === null) {\r\n return restriction;\r\n }\r\n\r\n return restriction > acc ? restriction : acc;\r\n },\r\n null,\r\n );\r\n\r\n const minRestrictionValue = valueRestrictions\r\n .reduce(\r\n (acc, curr) => {\r\n // check if validation rule is related to another question answer\r\n let restriction;\r\n if (questionsAnswers[curr]) {\r\n restriction = questionsAnswers[curr];\r\n } else {\r\n restriction = curr;\r\n }\r\n\r\n if (acc === null) {\r\n return restriction;\r\n }\r\n\r\n return restriction < acc ? restriction : acc;\r\n },\r\n null,\r\n );\r\n\r\n return {maxRestrictionValue, minRestrictionValue};\r\n\r\n};\r\n\r\n// return the min and max dates allowed for question based on its\r\n// validation rules. It will search every validation rule of the question\r\nquestionFunctions.dateQuestionRestrictions = (question, values = {}) => {\r\n let minDate = null;\r\n let maxDate = null;\r\n\r\n if (!question || !question.questionValidationRules) {\r\n return {minDate, maxDate};\r\n }\r\n\r\n Object.entries(question.questionValidationRules).forEach(([ruleCode, rule]) => {\r\n let min, max;\r\n\r\n // get question answer restrictions values\r\n const {\r\n maxRestrictionValue,\r\n minRestrictionValue\r\n } = questionFunctions.getQuestionValidationRuleMinAndMaxValue(question, ruleCode, values);\r\n\r\n // handle future date validation rule\r\n if (ruleCode.toLowerCase() === rules.futureDate.code.toLowerCase()) {\r\n min = moment().add(1, 'day').toDate();\r\n max = null;\r\n }\r\n\r\n //handle past-date validation rule\r\n if (ruleCode.toLowerCase() === rules.pastDate.code.toLowerCase()) {\r\n min = null;\r\n max = moment().subtract(1, 'day').toDate();\r\n }\r\n\r\n // handle today - future date validation rule\r\n if (ruleCode.toLowerCase() === rules.todayFutureDate.code.toLowerCase()) {\r\n min = new Date();\r\n max = null;\r\n }\r\n\r\n // handle today - past date validation rule\r\n if (ruleCode.toLowerCase() === rules.todayPastDate.code.toLowerCase()) {\r\n min = null;\r\n max = new Date();\r\n }\r\n\r\n // handle specific - equal or past date related to another question date validation rule\r\n if (\r\n values\r\n && ruleCode.toLowerCase() === rules.beforeEqualSpecificDate.code.toLowerCase()\r\n && minRestrictionValue\r\n ) {\r\n min = null;\r\n max = moment(minRestrictionValue).toDate();\r\n }\r\n\r\n // handle past date validation rule\r\n if (\r\n ruleCode.toLowerCase() === rules.beforeSpecificDate.code.toLowerCase()\r\n && values\r\n && minRestrictionValue\r\n ) {\r\n min = null;\r\n max = moment(minRestrictionValue).subtract(1, 'day').toDate();\r\n }\r\n\r\n // handle future date validation rule\r\n if (\r\n ruleCode.toLowerCase() === rules.afterSpecificDate.code.toLowerCase()\r\n && values\r\n && maxRestrictionValue\r\n ) {\r\n min = moment(maxRestrictionValue).add(1, 'day').toDate();\r\n max = null;\r\n }\r\n\r\n // handle specific - future date validation rule\r\n if (\r\n ruleCode.toLowerCase() === rules.afterEqualSpecificDate.code.toLowerCase()\r\n && values\r\n && maxRestrictionValue\r\n ) {\r\n min = moment(maxRestrictionValue).toDate();\r\n max = null;\r\n }\r\n // handle specific - past date validation rule\r\n if (\r\n ruleCode.toLowerCase() === rules.pastSpecificDate.code.toLowerCase()\r\n && values\r\n && minRestrictionValue\r\n ) {\r\n min = null;\r\n max = moment().add(parseInt(minRestrictionValue), 'day').toDate();\r\n }\r\n // handle specific - future date validation rule\r\n if (\r\n ruleCode.toLowerCase() === rules.futureSpecificDate.code.toLowerCase()\r\n && values\r\n && maxRestrictionValue\r\n ) {\r\n min = moment().add(parseInt(maxRestrictionValue), 'day').toDate();\r\n max = null;\r\n }\r\n\r\n // update the global minimum and maximum acceptable values\r\n if (\r\n min\r\n && !minDate\r\n ) {\r\n minDate = min;\r\n } else if (\r\n min\r\n && minDate\r\n && moment(min).isBefore(minDate, 'day')\r\n ) {\r\n minDate = min;\r\n }\r\n\r\n if (\r\n max\r\n && !maxDate\r\n ) {\r\n maxDate = max;\r\n } else if (\r\n max\r\n && maxDate\r\n && moment(max).isAfter(maxDate, 'day')\r\n ) {\r\n maxDate = max;\r\n }\r\n });\r\n\r\n\r\n return {minDate, maxDate};\r\n};\r\n\r\nquestionFunctions.parseQuestionWithAnswer = (question, answer, questionType, currencyOptions) => {\r\n if (!answer) {\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: null,\r\n },\r\n };\r\n }\r\n\r\n if (\r\n questionType.code === 'text-input'\r\n || questionType.code === 'text-area'\r\n || questionType.code === 'post-code'\r\n ) {\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: answer.text,\r\n },\r\n };\r\n }\r\n\r\n if (questionType.code === 'amount') {\r\n const currency = currencyOptions?.find(c => c.id === answer.currencyId);\r\n const val = GENERAL_FUNCTIONS.appendCurrencySymbol(answer.amount, currency?.symbol);\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: val,\r\n },\r\n };\r\n }\r\n\r\n if (questionType.code === 'number') {\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: answer.amount,\r\n },\r\n };\r\n }\r\n\r\n if (\r\n questionType.code === 'date'\r\n || questionType.code === 'date-time'\r\n || questionType.code === 'time'\r\n ) {\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: moment(answer.date).format('DD/MM/YYYY'),\r\n },\r\n };\r\n\r\n }\r\n\r\n if (questionType.code === 'list') {\r\n const selectedOption = question.options.find(o => o.id === answer.optionId);\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: selectedOption ? selectedOption.name : null,\r\n },\r\n };\r\n }\r\n\r\n if (questionType.code === 'checkbox') {\r\n return {\r\n question: {\r\n ...question,\r\n _questionTypeCode: questionType.code,\r\n },\r\n answer: {\r\n ...answer,\r\n _parsedAnswerTextValue: answer.flag\r\n ? 'yes'\r\n : 'no',\r\n },\r\n };\r\n\r\n }\r\n\r\n return {\r\n question,\r\n answer,\r\n };\r\n};\r\n\r\nexport default questionFunctions;\r\n","const claimBankDetailsQuestionCodes = {};\r\n\r\nclaimBankDetailsQuestionCodes.bankAccountType = 'bank-account-type';\r\n\r\nclaimBankDetailsQuestionCodes.accoutnHolderNameUk = 'account-holder-name-uk';\r\n\r\nclaimBankDetailsQuestionCodes.accoutnHolderNameInternational = 'account-holder-name-inter';\r\n\r\nclaimBankDetailsQuestionCodes.accountNumber = 'account-number';\r\n\r\nclaimBankDetailsQuestionCodes.sortCode = 'sort-code';\r\n\r\nclaimBankDetailsQuestionCodes.iban = 'iban';\r\n\r\nexport default claimBankDetailsQuestionCodes;","const HEADER_FUNCTIONS = {};\r\n\r\nHEADER_FUNCTIONS.headersWithTokenJson = (token) => {\r\n return ({\r\n accept: 'application/json',\r\n \"CONTENT-TYPE\": \"application/json\",\r\n 'Authorization': `Bearer ${token}`,\r\n });\r\n};\r\n\r\n\r\nexport default HEADER_FUNCTIONS;","import ids from \"./ids\";\r\nimport i18n from '../../i18n/i18n';\r\n\r\nconst codes = {};\r\n\r\ncodes.attachments = 'attachments';\r\n\r\ncodes.claimAttachments = 'claim-attachments';\r\n\r\ncodes.jury = 'jury';\r\n\r\ncodes.landlord = 'landlord';\r\n\r\ncodes.claimApplicationBankDetailsGroupCode = 'upd-bank-dets';\r\n\r\ncodes.declarationGroupStep = 'declaration';\r\n\r\ncodes.claimant = 'CLAIMANT';\r\n\r\ncodes.addMultipleFiles=' Multiple files can be uploaded by clicking \\'Add another file\\' ';\r\n\r\ncodes.attachment='attachment';\r\n\r\ncodes.template='template';\r\n\r\ncodes.subscribeCustomer = 'Please click here to opt in to customer feedback emails.';\r\n\r\ncodes.unSubscribeCustomer = 'Please click here to opt out of customer feedback emails.';\r\n\r\ncodes.authorizedMessage = 'You do not have permissions to perform this action';\r\n\r\ncodes.blankPage= ' Oops! Something went wrong on our end.';\r\n\r\ncodes.refreshPage='Please use the button below to return to the home page.';\r\n\r\ncodes.continueContactUs='If you continue to experience problems please contact us.';\r\n\r\ncodes.emailContactNumberUK = '0117 917 1698';\r\n\r\ncodes.emailContactEmailUK = 'newclaims@arag.co.uk';\r\n\r\ncodes.emailContactNumberCA = '1-888-600-0709';\r\n\r\ncodes.emailContactEmailCA = 'claims@arag.ca';\r\n\r\ncodes.copyToClipboard = 'Copy to clipboard';\r\n\r\ncodes.contactIT = 'Please try again, and contact us if the isssue persists.';\r\n\r\ncodes.unavailableBlankPage = 'Our service is temporarily unavailable.';\r\n\r\ncodes.unavailableContantIT = 'Please try again later, if you continue to experience problems please contact us.';\r\n\r\ncodes.uploading = 'uploading';\r\n\r\ncodes.removing = 'removing';\r\n\r\ncodes.downloading = 'downloading';\r\n\r\n\r\ncodes.canadaCode = 'ca';\r\ncodes.ukCode = 'uk';\r\ncodes.ZcaRelease = 'ZcaRelease';\r\ncodes.newRelease = 'newRelease';\r\n\r\ncodes.enviromentsForIndicator = {\r\n 'Development': 'DEV',\r\n 'ZukTesting': 'SIT',\r\n 'ZukStaging': 'UAT',\r\n 'ZukSandbox': 'Sandbox',\r\n 'ZcaTesting': 'SIT',\r\n 'ZcaStaging': 'UAT',\r\n 'ZcaSandbox': 'Sandbox',\r\n};\r\n\r\ncodes.countries = {\r\n ca: 'Canada',\r\n uk: 'UK', \r\n};\r\n\r\ncodes.surveyTitle ='We would love to know what you think about your experience with ARAG, please answer the questions below, it should only take a few minutes!';\r\n\r\ncodes.surveyRejectedType = 'Rejected';\r\n\r\ncodes.thresholdMb = 4064;\r\n\r\ncodes.progressEnd = 100;\r\n\r\ncodes.attachmentTypeEnum = {\r\n ClaimForm: 1,\r\n ArchivedClaimForm: 2,\r\n ClaimFormQuestion: 3,\r\n Message: 4,\r\n ClaimTemplate: 5,\r\n MediationPdf: 6,\r\n UnderwriterFile: 7,\r\n};\r\ncodes.warnings ='warnings';\r\n\r\ncodes.fileNotFound ='File not found';\r\n\r\ncodes.blankPageFiles = ' We\\'re sorry, something went wrong, please try again later.';\r\n\r\ncodes.defaultPayloadPagination={page:1,limit:20};\r\ncodes.isReadOnlyOrEditableQuestion = {\r\n isEditable: 'isEditable',\r\n isReadOnly: 'isReadOnly',\r\n}\r\ncodes.isEditable = 'isEditable';\r\n\r\ncodes.isReadOnly = 'isReadOnly';\r\n\r\ncodes.Anonymised = 'Anonymised';\r\n\r\ncodes.anonymisedCodes={\r\n Attachments: 'Attachments',\r\n}\r\n\r\ncodes.namesToDecode={\r\n description: 'description',\r\n filename: 'filename',\r\n}\r\n\r\ncodes.Attachment = 'Attachment';\r\n\r\ncodes.dragDrop = 'dragDrop';\r\n\r\ncodes.acceptSurveyGroupCode = 'accept-surv';\r\n\r\ncodes.rejectSurveyGroupCode = \"reject-surv\";\r\n\r\ncodes.solicitorSurveyGroupCode = \"solic-surv\";\r\n\r\ncodes.updateWithdrawnDetailsGroupCode = \"upd-wthdr-dets\";\r\ncodes.checkbox = 'checkbox';\r\n\r\n\r\ncodes.surveysGroupCodesToGroupIds = {\r\n [codes.acceptSurveyGroupCode] : ids.acceptedSurveyGroupId,\r\n [codes.rejectSurveyGroupCode] : ids.rejectedSurveyGroupId,\r\n [codes.solicitorSurveyGroupCode] : ids.solicitorSurveyGroupId,\r\n}\r\n\r\ncodes.questionTypeIdForCheckboxes = '00000003-1fdd-49c5-99c2-000000000009';\r\nexport default codes;\r\n","import i18n from \"../../i18n/i18n\";\r\n\r\nexport const TABS = {\r\n communication: {\r\n key: 'communication',\r\n label: 'communication',\r\n },\r\n claimDetails: {\r\n key: 'claimDetails',\r\n label: 'claimForm',\r\n },\r\n documents: {\r\n key: 'documents',\r\n label: 'documents',\r\n },\r\n};\r\n\r\nexport const BANK_DETAILS_TAB = {\r\n key: 'bankDetails',\r\n label: 'Bank Details',\r\n};\r\n\r\nexport const SURVEY_TAB= {\r\n key: 'survey',\r\n label: 'Survey',\r\n};","import rules from '../constants/rules';\r\nimport moment from 'moment';\r\nimport config from '../constants/config';\r\nimport ids from '../constants/ids';\r\nimport questionFunctions from './question';\r\nimport claimBankDetailsQuestionCodes from '../constants/claimBankDetailsQuestionsCodes';\r\nimport {store} from '../../store/store';\r\nimport HEADER_FUNCTIONS from './headers';\r\nimport codes from '../constants/codes';\r\nimport {Attachment} from '../constants/interfaces';\r\nimport * as actions from '../../actions';\r\nimport {BANK_DETAILS_TAB, SURVEY_TAB, TABS} from '../constants/tabs';\r\nimport {BlobServiceClient} from '@azure/storage-blob';\r\nimport {ObjectOfAny, QuestionSchema} from '../../reducers/types';\r\nimport { CurrencySchema } from '../../actions';\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\n\r\ntype PropGeneralFunction = {\r\n adjustMinMaxToLocalTime: (date: Date) => Date;\r\n parseAnswerType: (question: { [p: string]: any }, answer: any, questionType: { [p: string]: any }, currencyOptions: CurrencySchema[]) => { [x: number]: any; } | undefined;\r\n getAnswersForm: (question: { [p: string]: any }, filterQuestionsById: { [p: string]: any }, claimApplication: { [p: string]: any }, questionTypesById: { [p: string]: any }, currencyOptions: CurrencySchema[]) => { [p: string]: any };\r\n getAnswersOfQuestionTree: (question: { [p: string]: any }, filteredQuestionsById: { [p: string]: any }, claimApplication: { [p: string]: any }, questionTypesById: { [p: string]: any }, currencyOptions: CurrencySchema[]) => { [p: string]: any }[];\r\n downloadURI: (blob: any | Blob, name: string) => void;\r\n progressDownloadIndicator: (response: any, setProgress: Function, id: string) => Promise;\r\n fileUploadAzureBlob: (attachment: any, file: any, setProgress: any, abortController: any, hasMetaDataSet: boolean) => Promise;\r\n requestToUploadFileToBlob: (attachment: any) => Promise;\r\n getEnvironmentByWindowUrl: () => string;\r\n findActiveTabToClaimTabArea: (query: any) => boolean | undefined;\r\n filterObjectBy: (obj: any, predicate: any) => { [p: string]: any };\r\n timeFormat: (time: string | any) => string;\r\n removeHyphens: (value: string) => string;\r\n addHyphenInEveryTwoCharacters: (value: any) => string;\r\n createClaimApplicationBankAccountDto: (answers: any, claimApplicationId: string) => any;\r\n appendCurrencySign: (amount: number | string, currency: { position: string, sign: string }) => (any | string);\r\n appendCurrencySymbol: (amount: number | string, symbol: string | undefined)=> (any | string);\r\n rangeArray: (start: any, end: any) => any[];\r\n mergeArraysUnique: (...input: any) => any[];\r\n normalizeById: (id: string, entity: any) => ({ byId: {} | any; allIds: any[] });\r\n isUndefined: (v: any) => boolean;\r\n toTitleCase: (value: any) => any;\r\n mergeArraysOfObjects: (key: any, ...arraysWithObjects: any) => any[];\r\n extractDataFromResponseObject: (response: any) => any;\r\n compressImageDimensions: (imageFile: any, sizeLimit?: number) => Promise;\r\n base64FileSizeInBytes: (base64String: any) => number;\r\n scaleImage: (encodedImage: File, fileType: string, scaleFactor: any) => Promise;\r\n datURLtoFile: (dataurl: string, filename: string, fileType: string) => File;\r\n objectKeepDiffsAndClearSameValuesForBankDetails: (newObj: any, prevObj: any) => {} | any;\r\n getDifferenceFromStrings: (str1: string, str2: string) => string;\r\n createUrlQueryParameters: (params: any) => string;\r\n constructSingleQueryParameter: ({key, value}: { key: any; value: any }) => (string | any);\r\n isBoolean: (v: any) => boolean;\r\n getBaseURL: () => string;\r\n validateFileExtensions: (file: string) => string;\r\n getInputItem: (variant: string, question: any, isReadOnlyOrEditableQuestion: string | undefined) => string;\r\n dateFormat: (date: moment.MomentInput) => string;\r\n validationCreatorForAttachments: (question: any) => (values: any, errors: any) => (value: any) => (string | any);\r\n validationCreator: (question: any) => (questionValidationRules: any, values?: {} | any, questions?: any[], isReadOnlyQuestionHandler?: boolean) => (value: any) => (null | any);\r\n getTimeDifference: (date: Date, date2: Date) => any;\r\n validateCommunicatorComments: (values: { files: { [p: string]: any } | Array; content: any }) => any;\r\n sizeOfFiles: (file: any, {option, setFieldError, formikBag, field, rejectedFile}: { option: any; setFieldError: any; formikBag: any; field: string; rejectedFile: any }) => number;\r\n fromCSharpRegexString: (regexString: string) => (null | any);\r\n findAttachmentsToMessageCommunicator: (field: string) => any;\r\n findTableContent: (field: string) => (any | null);\r\n readFileAsBase64Async: (file: any) => Promise;\r\n requestToDownloadFile: (id: string | any, name: string | undefined | null, type: string, setProgress?: Function) => Promise;\r\n downLoadFile: (name: string | null | undefined, data: any) => any;\r\n isAndroidDevice: () => boolean;\r\n requestToUploadFile: (attachment: Attachment) => Promise;\r\n requestToRemoveFile: (attachmentId: string) => Promise;\r\n matchClaimIdFromUrl: () => void;\r\n hasCompleteMetaData: (attachment: any, setProgress: any, hasMetaDataSet: boolean) => void;\r\n requestFileDownload: (data: any, name: string, setProgress: any, id: string) => Promise;\r\n isValidFileName: (fileName: string) => boolean;\r\n convertToParsedDateStringFormat: (inputDate: string) => string | Date;\r\n isValidDateFormat: (dateString: string) => boolean;\r\n capitalizeFirstLetter: (str: string) => string;\r\n formatValuesForRadioQuestion: (values: any, questions: QuestionSchema[]) => ObjectOfAny;\r\n checkIfParentQuestionCheckboxTickedToEnableQuestion: (findParentQuestion?: QuestionSchema, values?: any)=>Boolean | undefined\r\n checkIfParentQuestionCheckboxUntickedToClearChildQuestionValue: (findParentQuestion?: QuestionSchema, values?: any)=>Boolean | undefined, \r\n getCountryByWindowUrl :(countryCode:string) => string,\r\n fetchTermsAndConditions : () => Promise;\r\n}\r\nconst GENERAL_FUNCTIONS: PropGeneralFunction = {} as any;\r\n\r\n\r\nGENERAL_FUNCTIONS.getBaseURL = () => {\r\n const vpath = process.env.REACT_APP_API_VPATH ? (process.env.REACT_APP_API_VPATH + '/') : '';\r\n return process.env.REACT_APP_BASE_URL + vpath;\r\n};\r\nGENERAL_FUNCTIONS.validateFileExtensions = (file) => {\r\n let fileExtension = file.substr(file.lastIndexOf('.') + 1);\r\n return '.' + fileExtension;\r\n};\r\n\r\nGENERAL_FUNCTIONS.getInputItem = (variant, question, isReadOnlyOrEditableQuestion) => {\r\n if (isReadOnlyOrEditableQuestion === codes.isReadOnly) {\r\n return 'plain'\r\n }\r\n if (question.displayType === 'range') {\r\n return 'buttonRadioGroup';\r\n }\r\n\r\n if (variant === 'list' && (question.displayType === 'horizontal-radio' || question.displayType === 'vertical-radio')\r\n ) {\r\n return 'radioButtonGroup';\r\n }\r\n if (questionFunctions.isQuestionOfTypeIntegerRange(question, variant)) {\r\n return 'select';\r\n }\r\n\r\n if (\r\n variant === 'text-input'\r\n || variant === 'number'\r\n ) {\r\n return 'text';\r\n }\r\n\r\n if (variant === 'text-area') {\r\n return 'textarea';\r\n }\r\n\r\n if (\r\n variant === 'date'\r\n || variant === 'date-time'\r\n || variant === 'time'\r\n ) {\r\n return 'date';\r\n }\r\n\r\n if (variant === 'checkbox') {\r\n return 'checkbox-inline';\r\n }\r\n\r\n if (variant === 'list') {\r\n return 'select';\r\n }\r\n\r\n if (variant === 'amount') {\r\n return 'currency';\r\n }\r\n\r\n if (variant === 'post-code') {\r\n return 'postcodeSearchableList';\r\n }\r\n\r\n if (variant === 'range') {\r\n return 'select';\r\n }\r\n\r\n return 'text';\r\n};\r\n\r\nGENERAL_FUNCTIONS.dateFormat = (date: moment.MomentInput) => moment(date).format('DD/MM/YYYY');\r\n\r\n\r\nGENERAL_FUNCTIONS.validationCreatorForAttachments = question => (values, errors) => value => {\r\n if ((question && question.documentTypes &&\r\n question.documentTypes.some((i: { isRequired: boolean; }) => i.isRequired) &&\r\n !values[question.code] &&\r\n // eslint-disable-next-line no-mixed-operators\r\n !value) ||\r\n question && question.documentTypes &&\r\n question.documentTypes.some((i: { isRequired: any; }) => i.isRequired) &&\r\n values[question.code] &&\r\n values[question.code].length === 0 &&\r\n // eslint-disable-next-line no-mixed-operators\r\n errors && !errors['dragDrop']\r\n ) {\r\n return 'Please ensure the claim form is uploaded and labelled accordingly';\r\n } else {\r\n return errors['dragDrop'];\r\n\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.validationCreator = question => (questionValidationRules, values = {}, questions = [], isReadOnlyQuestionHandler) => value => {\r\n if (!questionValidationRules || isReadOnlyQuestionHandler) {\r\n return null;\r\n }\r\n if (\r\n !question.isRequired\r\n && !value\r\n ) {\r\n return null;\r\n }\r\n\r\n // return the required error message when the question is required and not\r\n // answered\r\n if (\r\n question.isRequired\r\n && question.requiredErrorMessage\r\n && !value\r\n ) {\r\n return question.requiredErrorMessage;\r\n }\r\n\r\n const invalidRule = questionValidationRules.find((rule: { regExExpression: string | RegExp; code: string; }) => {\r\n // regex described rule\r\n if (\r\n rule.regExExpression\r\n ) {\r\n // const regexString = GENERAL_FUNCTIONS\r\n // .fromCSharpRegexString(rule.regExExpression);\r\n return RegExp(rule.regExExpression).test(value) === false;\r\n }\r\n\r\n // get question answer restrictions\r\n const {\r\n maxRestrictionValue,\r\n minRestrictionValue,\r\n } = questionFunctions.getQuestionValidationRuleMinAndMaxValue(question, rule.code, values);\r\n\r\n // handle different values rule\r\n if (rule.code.toLowerCase() === rules.differentValues.code.toLowerCase()) {\r\n const valueRestrictions = question.questionValidationRules[rule.code]\r\n ? question.questionValidationRules[rule.code].map((rule: { value: any; }) => rule.value)\r\n : [];\r\n\r\n return valueRestrictions.every((code: string | number) => values[code] ? values[code] === value : true);\r\n }\r\n\r\n // handle min age validation rule\r\n if (rule.code.toLowerCase() === rules.minAge.code.toLowerCase()) {\r\n const diff = GENERAL_FUNCTIONS.getTimeDifference(new Date(), new Date(value));\r\n return diff.years < parseInt(maxRestrictionValue);\r\n }\r\n\r\n // handle max age validation rule\r\n if (rule.code.toLowerCase() === rules.maxAge.code.toLowerCase()) {\r\n const diff = GENERAL_FUNCTIONS.getTimeDifference(new Date(), new Date(value));\r\n return diff.years > parseInt(minRestrictionValue);\r\n }\r\n\r\n // handle min value validation rule\r\n if (rule.code.toLowerCase() === rules.minValue.code.toLowerCase()) {\r\n return parseFloat(value) < parseFloat(maxRestrictionValue);\r\n }\r\n\r\n // handle max value validation rule\r\n if (rule.code.toLowerCase() === rules.maxValue.code.toLowerCase()) {\r\n return parseFloat(value) > parseFloat(minRestrictionValue);\r\n }\r\n\r\n // handle min length validation rule\r\n if (rule.code.toLowerCase() === rules.minLength.code.toLowerCase()) {\r\n return value && value.length < parseInt(maxRestrictionValue);\r\n }\r\n\r\n // handle max length validation rule\r\n if (rule.code.toLowerCase() === rules.maxLength.code.toLowerCase()) {\r\n return value && value.length > parseInt(minRestrictionValue);\r\n }\r\n\r\n // handle future date validation rule\r\n if (rule.code.toLowerCase() === rules.futureDate.code.toLowerCase()) {\r\n return moment().isSameOrAfter(moment(value), 'day');\r\n }\r\n\r\n //handle past-date validation rule\r\n if (rule.code.toLowerCase() === rules.pastDate.code.toLowerCase()) {\r\n return moment().isSameOrBefore(moment(value), 'day');\r\n }\r\n\r\n // handle today - future date validation rule\r\n if (rule.code.toLowerCase() === rules.todayFutureDate.code.toLowerCase()) {\r\n return moment().isAfter(moment(value), 'day');\r\n }\r\n\r\n // handle today - past date validation rule\r\n if (rule.code.toLowerCase() === rules.todayPastDate.code.toLowerCase()) {\r\n return moment().isBefore(moment(value), 'day');\r\n }\r\n\r\n // handle specific - equal or past date related to another question date validation rule\r\n if (\r\n values\r\n && rule.code.toLowerCase() === rules.beforeEqualSpecificDate.code.toLowerCase()\r\n && minRestrictionValue\r\n ) {\r\n return moment(value).isAfter(minRestrictionValue, 'day');\r\n }\r\n\r\n // handle past date validation rule\r\n if (\r\n rule.code.toLowerCase() === rules.beforeSpecificDate.code.toLowerCase()\r\n && values\r\n && minRestrictionValue\r\n ) {\r\n return moment(value).isSameOrAfter(moment(minRestrictionValue), 'day');\r\n }\r\n\r\n // handle specific - equal or past date related to another question date validation rule\r\n if (\r\n values\r\n && rule.code.toLowerCase() === rules.afterEqualSpecificDate.code.toLowerCase()\r\n && maxRestrictionValue\r\n ) {\r\n return moment(value).isBefore(maxRestrictionValue, 'day');\r\n }\r\n\r\n // handle past date validation rule\r\n if (\r\n rule.code.toLowerCase() === rules.afterSpecificDate.code.toLowerCase()\r\n && values\r\n && maxRestrictionValue\r\n ) {\r\n return moment(value).isSameOrBefore(moment(maxRestrictionValue), 'day');\r\n }\r\n\r\n // handle future date validation rule\r\n if (\r\n rule.code.toLowerCase() === rules.pastSpecificDate.code.toLowerCase()\r\n && values\r\n && minRestrictionValue\r\n ) {\r\n return moment(value).isAfter(moment().add(parseInt(minRestrictionValue), 'days').format(), 'day');\r\n }\r\n\r\n // handle specific - future date validation rule\r\n if (\r\n rule.code.toLowerCase() === rules.futureSpecificDate.code.toLowerCase()\r\n && values\r\n && maxRestrictionValue\r\n ) {\r\n return moment(value).isBefore(moment().add(parseInt(maxRestrictionValue), 'days').format(), 'day');\r\n }\r\n\r\n\r\n return false;\r\n });\r\n\r\n if (!invalidRule) {\r\n return null;\r\n }\r\n\r\n // if answer is given and is invalid and there is a specific\r\n // error message associated with the question then display this message\r\n if (\r\n value\r\n && invalidRule\r\n && question.questionValidationRules\r\n && question.questionValidationRules[invalidRule.code]\r\n && question.questionValidationRules[invalidRule.code].length > 0\r\n && question.questionValidationRules[invalidRule.code].some((item: { errorMessage: string; }) => item.errorMessage)\r\n ) {\r\n return question.questionValidationRules[invalidRule.code]\r\n .find((item: { errorMessage: string; }) => item.errorMessage)\r\n .errorMessage;\r\n }\r\n\r\n // if answer is given and is invalid and there is not a specific\r\n // error message associated with the question then display the generic\r\n // question validation rule message\r\n if (\r\n value\r\n && invalidRule\r\n ) {\r\n return invalidRule.description;\r\n }\r\n\r\n return null;\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.validateCommunicatorComments = (values: any) => {\r\n let errors: { generals: string } = {} as any;\r\n let fileValidation: any = Object.values(values.files).filter((e: any) => e.file).map((e: any) => ({file: e.file.name}));\r\n\r\n if ((values.content && values.content.trim().length === 0) || (!fileValidation && fileValidation.length === 0)) {\r\n errors.generals = i18n.t('commounicatorEmtyContentWithoutImage');\r\n }\r\n if (values.content && values.content.trim().length === 0 && fileValidation.length > 0) {\r\n errors.generals = i18n.t('commounicatorEmtyContentWithImage');\r\n }\r\n if (!values.content || (!fileValidation && fileValidation.length === 0)) {\r\n errors.generals = i18n.t('commounicatorEmtyContentWithoutImage');\r\n }\r\n\r\n if (!values.content && fileValidation.length > 0) {\r\n errors.generals = i18n.t('commounicatorEmtyContentWithImage');\r\n }\r\n\r\n return errors;\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.getTimeDifference = (firstDate: any, secondDate: any) => {\r\n const elapsedTimeFromNow = Math.abs(firstDate - secondDate);\r\n const elapsedTimeInYears = (elapsedTimeFromNow / 1000 / 60 / 60 / 24) / 365.25;\r\n\r\n return {\r\n years: elapsedTimeInYears,\r\n };\r\n};\r\n\r\n// function that returns size of Files\r\n//the options are option: 0 or 1\r\n//the options are setFieldError function\r\n//the options are formikBag function\r\n//the options are field show the error\r\n// return rejectedFile\r\nGENERAL_FUNCTIONS.sizeOfFiles = (file, {option, setFieldError, formikBag, field, rejectedFile}) => {\r\n let numberOfFiles = 0;\r\n let FileSize = file.size;\r\n let isValidFile = GENERAL_FUNCTIONS.isValidFileName(file.name);\r\n if (FileSize === 0 && option === 1) {\r\n numberOfFiles++;\r\n rejectedFile.push(file);\r\n formikBag.setFieldError(`${field}`, i18n.t('emptyFilesMessage'));\r\n } else if (FileSize === 0 && option === 0) {\r\n rejectedFile.push(file);\r\n setFieldError(`${field}`, i18n.t('emptyFilesMessage'));\r\n numberOfFiles++;\r\n } else if (FileSize > 1024 * 1024 * 100 && option === 0) {\r\n numberOfFiles++;\r\n rejectedFile.push(file);\r\n setFieldError(`${field}`, i18n.t('fileSizeExceedMessage'));\r\n } else if (FileSize > 1024 * 1024 * 100 && option === 1) {\r\n numberOfFiles++;\r\n } else if (!isValidFile && option === 0) {\r\n numberOfFiles++;\r\n rejectedFile.push(file);\r\n setFieldError(`${field}`, i18n.t('fileInvalidMessage',{fileName: file.name})); \r\n } else if (!isValidFile && option === 1) {\r\n numberOfFiles++;\r\n rejectedFile.push(file);\r\n formikBag.setFieldError(`${formikBag.field.name}`, i18n.t('fileInvalidMessage',{fileName: file.name}));\r\n } else {\r\n numberOfFiles = 0;\r\n }\r\n return numberOfFiles;\r\n};\r\n\r\nGENERAL_FUNCTIONS.fromCSharpRegexString = (regexString) => {\r\n if (!regexString) return null;\r\n\r\n if (\r\n regexString\r\n && regexString.length > 3\r\n && regexString[0] === '@'\r\n && regexString[1] === '\"'\r\n && regexString[regexString.length - 1] === '\"'\r\n ) {\r\n return regexString.slice(2, regexString.length - 1);\r\n }\r\n\r\n return regexString;\r\n};\r\n\r\nGENERAL_FUNCTIONS.findAttachmentsToMessageCommunicator = (field: any) => {\r\n const pattern = new RegExp(/{(\\s*?.*?)*?}/g);\r\n const patternForAttachments = new RegExp(//m;\r\n let matchWhiteSpaces = regex.exec(field);\r\n if (matchWhiteSpaces) {\r\n [, filename, id, description] = matchWhiteSpaces;\r\n return {filename, id, description};\r\n }\r\n //in case the first match does not match special regex\r\n if (!matchWhiteSpaces && patternForAttachments.test(field)) {\r\n return {\r\n filename: field.match(pattern)[0]?.replace(/\\{|\\}/gi, ''),\r\n id: field.match(pattern)[1]?.replace(/\\{|\\}/gi, ''),\r\n description: field.match(pattern)[2]?.replace(/\\{|\\}/gi, ''),\r\n };\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.findTableContent = (field) => {\r\n let attachmentTable = new RegExp('table');\r\n if (attachmentTable.test(field)) {\r\n let test = /.*?/;\r\n let tables = field.match(test);\r\n for (let key in tables) {\r\n if (key === 'input') {\r\n return tables[key];\r\n }\r\n }\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.readFileAsBase64Async = (file) => {\r\n return new Promise((resolve, reject) => {\r\n let reader: any = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n resolve(reader.result.substring(reader.result.indexOf('base64,') + 7));\r\n };\r\n\r\n reader.onerror = reject;\r\n });\r\n};\r\n\r\nGENERAL_FUNCTIONS.requestToDownloadFile = async (id, name, type, setProgress) => {\r\n const token = store.getState().applicationUser.accessToken;\r\n let url = type === codes.attachment ? `${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment/download/${id}` :\r\n type === codes.template ? `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimApplicationTemplate/${id}` : null;\r\n if (url === null) {\r\n return null;\r\n }\r\n try {\r\n const result = await fetch(url, {\r\n method: 'GET',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n });\r\n const file = await result.json();\r\n\r\n if (file && file.data) {\r\n return await GENERAL_FUNCTIONS.requestFileDownload(file.data, name as string, setProgress, id);\r\n } else if (file && file.warnings) {\r\n // @ts-ignore\r\n store.dispatch(actions.displayDownloadFileWarning({body: {warnings: file.warnings}}));\r\n setTimeout(() => {\r\n // @ts-ignore\r\n store.dispatch(actions.hideMessage(undefined));\r\n }, 2000);\r\n return codes.warnings;\r\n\r\n } else if (result.status === 404) {\r\n store.dispatch(actions.displayDownloadFileWarning({body: {warnings: [codes.fileNotFound]}} as any));\r\n setTimeout(() => {\r\n // @ts-ignore\r\n store.dispatch(actions.hideMessage(undefined));\r\n }, 2000);\r\n\r\n return codes.fileNotFound;\r\n } else if (!result) {\r\n store.dispatch(actions.displayDownloadFileWarning({body: {warnings: [codes.fileNotFound]}} as any));\r\n return codes.fileNotFound;\r\n }\r\n } catch (e) {\r\n store.dispatch(actions.displayDownloadFileWarning({body: {warnings: [codes.blankPageFiles]}} as any));\r\n setTimeout(() => {\r\n // @ts-ignore\r\n store.dispatch(actions.hideMessage(undefined));\r\n }, 2000);\r\n return codes.fileNotFound;\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.requestFileDownload = async (data: any, name: string, setProgress: any, id: string): Promise => {\r\n // Download the file using the fetch API\r\n let sasUri = data && data?.uri ? data.uri : data;\r\n const response = await fetch(sasUri, {responseType: 'blob'} as any)\r\n await GENERAL_FUNCTIONS.progressDownloadIndicator(response?.clone(), setProgress, id as string);\r\n\r\n\r\n if (!response.ok) {\r\n throw new Error('Failed to download file');\r\n }\r\n return await response?.blob();\r\n};\r\n\r\nGENERAL_FUNCTIONS.downloadURI = (blob, name) => {\r\n // Create a temporary anchor element to trigger the download\r\n const a = document.createElement('a');\r\n a.href = window.URL.createObjectURL(blob);\r\n a.download = name as string;\r\n document.body.appendChild(a);\r\n a.click();\r\n // Clean up the temporary anchor element\r\n window.URL.revokeObjectURL(a.href);\r\n document.body.removeChild(a);\r\n\r\n};\r\n\r\nGENERAL_FUNCTIONS.progressDownloadIndicator = async (response, setProgress, id) => {\r\n if (response) {\r\n const contentLength = response.headers.get('content-length');\r\n const total = parseInt(contentLength, 10);\r\n let downloaded = 0;\r\n const reader = response.body.getReader();\r\n let receivedLength = 0;\r\n while (true) {\r\n const {done, value} = await reader.read();\r\n if (done) {\r\n break;\r\n }\r\n if(contentLength !== null) {\r\n receivedLength += value.length;\r\n downloaded = receivedLength;\r\n let currentProgress = (downloaded / total) * 100;\r\n setProgress(id, currentProgress);\r\n }\r\n }\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.requestToUploadFile = async (attachment: Attachment) => {\r\n const token = store.getState().applicationUser.accessToken;\r\n try {\r\n const result = await fetch(`${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment`, {\r\n method: 'POST',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n body: JSON.stringify(attachment),\r\n });\r\n const response = await result.json();\r\n if (response.errors) {\r\n // @ts-ignore\r\n store.dispatch(actions.handleBusinessErrors({customMessage: response.errors}));\r\n return;\r\n }\r\n return response.data;\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\nGENERAL_FUNCTIONS.requestToUploadFileToBlob = async (attachment: any) => {\r\n const token = store.getState().applicationUser.accessToken;\r\n try {\r\n const result = await fetch(`${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment/Prepare`, {\r\n method: 'POST',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n body: JSON.stringify(attachment),\r\n });\r\n const response = await result.json();\r\n if (response.errors) {\r\n // @ts-ignore\r\n store.dispatch(actions.handleBusinessErrors({customMessage: response.errors}));\r\n return;\r\n }\r\n return response.data;\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.requestToRemoveFile = async (attachmentId: string) => {\r\n const token = store.getState().applicationUser.accessToken;\r\n try {\r\n const result = await fetch(`${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment/${attachmentId}`, {\r\n method: 'DELETE',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n });\r\n const response = await result.json();\r\n if (response.errors) {\r\n // @ts-ignore\r\n store.dispatch(actions.handleBusinessErrors({customMessage: response.errors}));\r\n return;\r\n }\r\n return response.data;\r\n } catch (e) {\r\n return null;\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.downLoadFile = (name, base64Encoding) => {\r\n const src = `data:application/binary;base64,${base64Encoding}`;\r\n // @ts-ignore\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n const byteCharacters = atob(base64Encoding);\r\n const byteNumbers = new Array(byteCharacters.length);\r\n for (let i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n const blob = new Blob([byteArray], {type: 'application/binary'});\r\n // @ts-ignore\r\n window.navigator.msSaveOrOpenBlob(blob, name);\r\n } else {\r\n const downloadLink: any = document.createElement('a');\r\n document.body.appendChild(downloadLink);\r\n const fileName = name;\r\n downloadLink.href = src;\r\n downloadLink.download = fileName;\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.datURLtoFile = (dataurl, filename, fileType) => {\r\n let bstr = atob(dataurl),\r\n n = bstr.length,\r\n u8arr = new Uint8Array(n);\r\n\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], filename, {type: fileType});\r\n};\r\n\r\nGENERAL_FUNCTIONS.scaleImage = async (encodedImage, fileType, scaleFactor) => {\r\n return new Promise((resolve) => {\r\n const img = new Image();\r\n img.onload = () => {\r\n const scaledWidth = img.width * scaleFactor;\r\n const scaledHeight = img.height * scaleFactor;\r\n const canvasEl = document.createElement('canvas');\r\n canvasEl.width = scaledWidth;\r\n canvasEl.height = scaledHeight;\r\n const ctx: any = canvasEl.getContext('2d');\r\n ctx.drawImage(img, 0, 0, scaledWidth, scaledHeight);\r\n const dataUrlString = ctx.canvas.toDataURL(fileType, 1);\r\n resolve(\r\n dataUrlString.substring(dataUrlString.indexOf('base64,') + 7),\r\n );\r\n img.remove();\r\n canvasEl.remove();\r\n };\r\n img.src = `data:${fileType};base64,${encodedImage}`;\r\n });\r\n\r\n};\r\n\r\nGENERAL_FUNCTIONS.base64FileSizeInBytes = (base64String) => {\r\n return 4 * Math.ceil((base64String.length / 3)) * 0.5624896334383812;\r\n};\r\n\r\nGENERAL_FUNCTIONS.compressImageDimensions = async (imageFile, sizeLimit = config.MAX_ALLOWED_SIZE_IN_BYTES) => {\r\n let iterativeEncodedImage = await GENERAL_FUNCTIONS.readFileAsBase64Async(imageFile);\r\n let totalIter = 1;\r\n while (GENERAL_FUNCTIONS.base64FileSizeInBytes(iterativeEncodedImage) > sizeLimit) {\r\n iterativeEncodedImage = await GENERAL_FUNCTIONS.scaleImage(iterativeEncodedImage, imageFile.type, 1 / (Math.pow(2, totalIter)));\r\n totalIter = totalIter + 1;\r\n }\r\n return iterativeEncodedImage;\r\n};\r\n\r\nGENERAL_FUNCTIONS.extractDataFromResponseObject = (response) => {\r\n return (\r\n response\r\n && response.body\r\n && response.body.data\r\n )\r\n ? response.body.data\r\n : null;\r\n};\r\n\r\nGENERAL_FUNCTIONS.mergeArraysOfObjects = (key, ...arraysWithObjects) => {\r\n const map: any = {};\r\n arraysWithObjects.forEach((arg: any[]) => {\r\n arg.forEach((item: any) => map[item[key]] = item);\r\n });\r\n\r\n return Object.values(map).map(item => item);\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.toTitleCase = (string: any): any => {\r\n string = string.toLowerCase().split(' ');\r\n for (let i = 0; i < string.length; i++) {\r\n string[i] = string[i].charAt(0).toUpperCase() + string[i].slice(1);\r\n }\r\n return string.join(' ');\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.isUndefined = (v) => {\r\n return typeof v === 'undefined';\r\n};\r\n\r\nGENERAL_FUNCTIONS.normalizeById = (id, entity) => {\r\n if (!entity) {\r\n return {byId: {}, allIds: []};\r\n }\r\n\r\n let byId = {};\r\n let allIds: any[] = [];\r\n\r\n entity.forEach((item: { [x: string]: any; }) => {\r\n byId = {\r\n ...byId,\r\n [item[id]]: item,\r\n };\r\n allIds.push(item[id]);\r\n });\r\n\r\n return {\r\n byId: byId,\r\n allIds: allIds,\r\n };\r\n\r\n};\r\n\r\nGENERAL_FUNCTIONS.mergeArraysUnique = (...input) => {\r\n const merged = [].concat(...input);\r\n const newSet: any = new Set(merged);\r\n return [...newSet];\r\n};\r\n\r\nGENERAL_FUNCTIONS.rangeArray = (start, end) => {\r\n const range = [];\r\n for (let i = start; i <= end; i++) {\r\n range.push(i);\r\n }\r\n\r\n return range;\r\n};\r\n\r\nGENERAL_FUNCTIONS.appendCurrencySign = (amount, currency) => {\r\n if (!currency) {\r\n return amount;\r\n }\r\n\r\n if (currency.position === config.currencyPosition.after) {\r\n return `${amount} ${currency.sign}`;\r\n }\r\n\r\n if (currency.position === config.currencyPosition.before) {\r\n return `${currency.sign} ${amount}`;\r\n }\r\n\r\n return amount;\r\n};\r\n\r\nGENERAL_FUNCTIONS.appendCurrencySymbol = (amount, symbol) => {\r\n if (!symbol) {\r\n return amount;\r\n }\r\n\r\n return `${symbol} ${amount}`;\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.createClaimApplicationBankAccountDto = (answers, claimApplicationId) => {\r\n\r\n if (!answers) {\r\n return {};\r\n }\r\n if (answers[claimBankDetailsQuestionCodes.bankAccountType] === ids.bankAccountTypeUkOption) {\r\n return {\r\n BankAccountTypeId: answers[claimBankDetailsQuestionCodes.bankAccountType],\r\n AccountHolderName: answers[claimBankDetailsQuestionCodes.accoutnHolderNameUk],\r\n AccountNumber: answers[claimBankDetailsQuestionCodes.accountNumber],\r\n SortCode: answers[claimBankDetailsQuestionCodes.sortCode] ? answers[claimBankDetailsQuestionCodes.sortCode].replace(/-/g, '') : null,\r\n ClaimApplicationId: claimApplicationId,\r\n };\r\n }\r\n\r\n if (answers[claimBankDetailsQuestionCodes.bankAccountType] === ids.bankAccountTypeinternationalOption) {\r\n return {\r\n BankAccountTypeId: answers[claimBankDetailsQuestionCodes.bankAccountType],\r\n AccountHolderName: answers[claimBankDetailsQuestionCodes.accoutnHolderNameInternational],\r\n Iban: answers[claimBankDetailsQuestionCodes.iban],\r\n ClaimApplicationId: claimApplicationId,\r\n };\r\n }\r\n\r\n};\r\n\r\nGENERAL_FUNCTIONS.addHyphenInEveryTwoCharacters = (value) => {\r\n\r\n let removeAllDashesFromValue = value ? value.split('-').join('') : ''; // Remove dash (-) if mistakenly entered.\r\n\r\n return removeAllDashesFromValue ? removeAllDashesFromValue.match(/.{1,2}/g).join('-') : ''; //add dashes in every 2 characters\r\n};\r\n\r\nGENERAL_FUNCTIONS.removeHyphens = (value) => {\r\n\r\n return value ? value.replaceAll('-', '') : ''; // Remove dash (-) if mistakenly entered.\r\n};\r\n\r\nGENERAL_FUNCTIONS.filterObjectBy = (obj, predicate) => {\r\n return Object.keys(obj)\r\n .filter(key => predicate(obj[key]))\r\n .reduce((res, key) => Object.assign(res, {[key]: obj[key]}), {});\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.timeFormat = (time) => moment(time).format('HH:mm');\r\n\r\nGENERAL_FUNCTIONS.objectKeepDiffsAndClearSameValuesForBankDetails = (newObj, prevObj) => {\r\n let target = {};\r\n Object.keys(newObj).filter((i) => {\r\n if (newObj[i] && prevObj[i] && newObj[i] !== prevObj[i]) {\r\n let obj: any = {};\r\n //find diff char\r\n obj[i] = GENERAL_FUNCTIONS.getDifferenceFromStrings(prevObj[i], newObj[i]);\r\n target = Object.assign(target, obj);\r\n } else {\r\n }\r\n });\r\n return target;\r\n};\r\n\r\nGENERAL_FUNCTIONS.getDifferenceFromStrings = (str1, str2) => {\r\n let diff = '';\r\n str2.split('').forEach(function (val, i) {\r\n if (val != str1.charAt(i))\r\n diff += val;\r\n });\r\n return diff;\r\n};\r\n\r\nGENERAL_FUNCTIONS.createUrlQueryParameters = (params) => {\r\n return Object\r\n .entries(params)\r\n .reduce((acc, [key, value], index) => {\r\n if (!key || !value) {\r\n return acc;\r\n }\r\n\r\n const constructedQueryParam = GENERAL_FUNCTIONS.constructSingleQueryParameter({key, value});\r\n\r\n if (index === 0) {\r\n return acc + `?${constructedQueryParam}`;\r\n }\r\n\r\n return acc + `&${constructedQueryParam}`;\r\n }, '');\r\n};\r\n\r\nGENERAL_FUNCTIONS.constructSingleQueryParameter = ({key, value}) => {\r\n if (!key || !value) {\r\n return '';\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n return value\r\n .reduce((acc, curr, index) => {\r\n if (index === 0) {\r\n return acc + `${key}=${curr}`;\r\n }\r\n\r\n return acc + `&${key}=${curr}`;\r\n }, '');\r\n }\r\n\r\n return `${key}=${value}`;\r\n};\r\nGENERAL_FUNCTIONS.isBoolean = (v) => {\r\n return !!v === v;\r\n};\r\n\r\nGENERAL_FUNCTIONS.isAndroidDevice = () => {\r\n let ua = navigator.userAgent.toLowerCase();\r\n return ua.indexOf('android') > -1;\r\n};\r\n\r\nGENERAL_FUNCTIONS.getEnvironmentByWindowUrl = () => {\r\n // @ts-ignore\r\n const isEnvironmentIndicator = codes.enviromentsForIndicator[process.env.REACT_APP_ENV_NAME];\r\n return isEnvironmentIndicator ? isEnvironmentIndicator : '';\r\n};\r\n\r\nGENERAL_FUNCTIONS.getCountryByWindowUrl = (countryCode) => { \r\n const isCountryIndicator = codes.countries[countryCode as keyof typeof codes.countries]; \r\n return isCountryIndicator ? isCountryIndicator : 'Unknown'; \r\n};\r\n\r\nGENERAL_FUNCTIONS.findActiveTabToClaimTabArea = (query: any) => {\r\n let tabs: any = [TABS.communication.key, TABS.claimDetails.key, TABS.documents.key, BANK_DETAILS_TAB.key, SURVEY_TAB.key];\r\n if (tabs.includes(query))\r\n return true;\r\n};\r\n\r\n\r\nGENERAL_FUNCTIONS.matchClaimIdFromUrl = () => {\r\n const path = window.location.pathname; // get the current URL path\r\n const pattern = /\\/claims\\/([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})/;\r\n const match = path.match(pattern);\r\n return match && match.length > 1 ? match[1] : null;\r\n};\r\n\r\n// @ts-ignore\r\nGENERAL_FUNCTIONS.fileUploadAzureBlob = async (attachment: {\r\n attachmentId: string;\r\n blobURI: string,\r\n claimApplicationId: string\r\n fileName: string\r\n}, file: Blob, setProgress: any, abortController: any, hasMetaDataSet: boolean) => {\r\n try {\r\n const parts = attachment.blobURI.split(/\\s|\\?/);\r\n const sasToken = parts[1];\r\n const segments = parts[0].split('/');\r\n const storageAccount = segments[2];\r\n const containerName = segments[3];\r\n let metadata: any = {\r\n state: 'uploaded',\r\n // fullFileName:attachment.fileName,\r\n createdDate: moment().format('YYYY-MM-DDTHH:mm:ss'),\r\n createdById: store.getState().applicationUser.applicationUserDetails?.id,\r\n };\r\n if (attachment.claimApplicationId) {\r\n metadata = {...metadata, claimApplicationId: attachment.claimApplicationId};\r\n }\r\n\r\n const blobService = new BlobServiceClient(\r\n `https://${storageAccount}?${sasToken}`,\r\n );\r\n const containerClient = blobService.getContainerClient(containerName);\r\n const blobClient = containerClient.getBlockBlobClient(attachment.attachmentId);\r\n const options = {\r\n blobHTTPHeaders: {\r\n blobContentType: file.type,\r\n },\r\n blockSize: 4 * 1024 * 1024,\r\n concurrency: 20,\r\n onProgress: (progress: any) => {\r\n const currentProgress = (progress.loadedBytes / file.size) * 100;\r\n if (currentProgress < 100 && !hasMetaDataSet) {\r\n setProgress(\r\n currentProgress,\r\n attachment.attachmentId,\r\n hasMetaDataSet,\r\n );\r\n }\r\n },\r\n abortSignal: abortController.signal,\r\n };\r\n\r\n await blobClient.uploadData(file, options);\r\n\r\n // Try setting metadata\r\n try {\r\n await blobClient.setMetadata(metadata);\r\n hasMetaDataSet = true; // Set the flag to true\r\n } catch (metadataError) {\r\n //for metadata failure\r\n }\r\n GENERAL_FUNCTIONS.hasCompleteMetaData(attachment, setProgress, hasMetaDataSet);\r\n\r\n } catch (error: any) {\r\n console.log(`cannot upload file , it return error ${error}`);\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.hasCompleteMetaData = (attachment: any, setProgress: any, hasMetaDataSet: boolean) => {\r\n if (hasMetaDataSet) {\r\n // Do something when both the upload and metadata setting are done\r\n console.log('Upload and metadata setting are complete');\r\n setProgress(100, attachment?.attachmentId, hasMetaDataSet);\r\n } else {\r\n // Do something if metadata setting failed\r\n console.log('Upload complete, but metadata setting failed');\r\n setProgress(99, attachment?.attachmentId, hasMetaDataSet); // or some other indicator\r\n }\r\n};\r\n\r\nGENERAL_FUNCTIONS.isValidFileName = (fileName: string) => {\r\n let rg1 = /^[^\\\\/:\\*\\?\"<>\\|]+$/; // forbidden characters \\ / : * ? \" < > |\r\n let rg2 = /^\\./; // cannot start with dot (.)\r\n let rg3 = /^(nul|prn|con|lpt[0-9]|com[0-9])(\\.|$)/i; // forbidden file names\r\n return rg1.test(fileName) && !rg2.test(fileName) && !rg3.test(fileName);\r\n}\r\n\r\nGENERAL_FUNCTIONS.getAnswersOfQuestionTree = (\r\n question: { [key: string]: any }, \r\n filteredQuestionsById: { [key: string]: any }, \r\n claimApplication: { [key: string]: any }, \r\n questionTypesById: { [key: string]: any }, \r\n currencyOptions: CurrencySchema[]\r\n ) : { [key: string]: any }[] => {\r\n\r\n let items = [] as { [key: string]: any }[];\r\n const answerOfQuestion = claimApplication.answers.find((a: { [key: string]: any }) => a.questionCode === question.code);\r\n const questionType = questionTypesById[question.questionTypeId];\r\n items.push(\r\n questionFunctions\r\n .parseQuestionWithAnswer(question, answerOfQuestion, questionType, currencyOptions),\r\n );\r\n\r\n // if option is selected form a dropdown then we have to get all\r\n //sub question answers\r\n if (questionType && questionType.code === 'list' && answerOfQuestion) {\r\n const subQs = Object\r\n .values(filteredQuestionsById)\r\n .filter((q: { [key: string]: any }) => q.enabledByOptionId!==null)\r\n .filter(q => q.enabledByOptionId === answerOfQuestion.optionId && q.enabledByQuestionId===filteredQuestionsById[answerOfQuestion.questionCode].id);\r\n if (subQs && subQs.length > 0) {\r\n subQs.forEach(sq => {\r\n items = [\r\n ...items,\r\n ...GENERAL_FUNCTIONS.getAnswersOfQuestionTree(sq, filteredQuestionsById, claimApplication, questionTypesById, currencyOptions),\r\n ];\r\n });\r\n }\r\n }\r\n\r\n return items;\r\n};\r\nGENERAL_FUNCTIONS.getAnswersForm = (\r\n question: { [key: string]: any }, \r\n filterQuestionsById: { [key: string]: any }, \r\n claimApplication: { [key: string]: any }, \r\n questionTypesById: { [key: string]: any }, \r\n currencyOptions: CurrencySchema[]\r\n): { [key: string]: any } => {\r\n if (!question) return {};\r\n let items = {};\r\n const answerOfQuestion = claimApplication?.answers?.find((a: { [key: string]: any }) => a.questionCode === question.code);\r\n const questionType = questionTypesById[question.questionTypeId];\r\n if (answerOfQuestion?.questionCode) {\r\n items = {\r\n ...GENERAL_FUNCTIONS.parseAnswerType(question, answerOfQuestion, questionType, currencyOptions),\r\n }\r\n }\r\n // if option is selected form a dropdown then we have to get all\r\n //sub question answers\r\n if (questionType && questionType.code === 'list' && answerOfQuestion && answerOfQuestion.optionId) {\r\n const subQs = Object\r\n .values(filterQuestionsById)\r\n .filter((q: { [key: string]: any }) => q.enabledByOptionId === answerOfQuestion.optionId && q.enabledByQuestionId===filterQuestionsById[answerOfQuestion.questionCode].id)\r\n\r\n if (subQs) {\r\n subQs.forEach(sq => {\r\n items = {\r\n ...items,\r\n ...GENERAL_FUNCTIONS.getAnswersForm(sq, filterQuestionsById, claimApplication, questionTypesById, currencyOptions),\r\n };\r\n });\r\n }\r\n }\r\n return items;\r\n};\r\nGENERAL_FUNCTIONS.parseAnswerType = (\r\n question: ObjectOfAny, \r\n answer: ObjectOfAny | any, \r\n questionType: ObjectOfAny, \r\n currencyOptions: CurrencySchema[]\r\n): { [x: number]: any; } | undefined => {\r\n if (!answer && answer.questionCode) {\r\n return {[answer.questionCode]: null};\r\n }\r\n\r\n if (answer.isAnonymised) {\r\n return {[answer.questionCode]: codes.Anonymised };\r\n }\r\n\r\n if (\r\n questionType.code === 'text-input'\r\n || questionType.code === 'text-area'\r\n || questionType.code === 'post-code'\r\n ) {\r\n return {[answer.questionCode]: answer.text};\r\n }\r\n\r\n if (questionType.code === 'amount') {\r\n const currency = currencyOptions?.find(c => c.id === answer.currencyId)\r\n return {[answer.questionCode]: GENERAL_FUNCTIONS.appendCurrencySymbol(answer.amount, currency?.symbol)};\r\n }\r\n\r\n if (questionType.code === 'number') {\r\n return {[answer.questionCode]: answer.amount};\r\n }\r\n\r\n if (\r\n questionType.code === 'date'\r\n || questionType.code === 'date-time'\r\n || questionType.code === 'time'\r\n ) {\r\n return {[answer.questionCode]: moment(answer.date).format('DD/MM/YYYY')}\r\n\r\n }\r\n\r\n if (questionType.code === 'list') {\r\n const selectedOption = question.options.find((o: { id: string }) => o.id === answer.optionId);\r\n return {[answer.questionCode]: selectedOption ? selectedOption.name : null};\r\n }\r\n\r\n if (questionType.code === 'user-list') {\r\n const selectedOption = question.options.find((o: { id: string }) => o.id === answer.selectedUserId);\r\n return {[answer.questionCode]: selectedOption ? selectedOption.name : null};\r\n\r\n }\r\n\r\n if (questionType.code === 'checkbox') {\r\n return {[answer.questionCode]: answer.flag ? 'yes' : 'no'};\r\n }\r\n}\r\n\r\nGENERAL_FUNCTIONS.isValidDateFormat = (dateString: string): boolean => {\r\n // Regular expression for 'dd/MM/yyyy' format\r\n const dateFormatRegex = /^\\d{2}\\/\\d{2}\\/\\d{4}$/;\r\n return dateFormatRegex.test(dateString);\r\n};\r\n\r\nGENERAL_FUNCTIONS.convertToParsedDateStringFormat = (inputDate: string): string | Date => {\r\n // Parse the input date string\r\n if (GENERAL_FUNCTIONS.isValidDateFormat(inputDate)) {\r\n const [day, month, year] = inputDate.split('/');\r\n return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day)));\r\n } else {\r\n return inputDate;\r\n }\r\n}\r\nGENERAL_FUNCTIONS.adjustMinMaxToLocalTime = (date: Date) => {\r\n // Adjust maxDate to match the local time zone\r\n const convertedMaxDate = new Date();\r\n if (date) {\r\n const localTimeZoneOffset = (date as any).getTimezoneOffset();\r\n convertedMaxDate.setMinutes((date as any).getMinutes() - localTimeZoneOffset);\r\n }\r\n return date;\r\n}\r\n\r\nGENERAL_FUNCTIONS.capitalizeFirstLetter = (str: string) => {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\n\r\nGENERAL_FUNCTIONS.formatValuesForRadioQuestion = (values: any, questions: QuestionSchema[]) => {\r\n let formattedValues = {...values};\r\n // Only modify the values related to the questions\r\n questions.forEach((question: QuestionSchema) => {\r\n if (values[question.code]) {\r\n const splitValues = values[question.code].split('//');\r\n formattedValues[question.code] = splitValues.length > 1? splitValues[1]: null;\r\n }\r\n });\r\n return formattedValues;\r\n};\r\n\r\nGENERAL_FUNCTIONS.checkIfParentQuestionCheckboxTickedToEnableQuestion = (findParentQuestion?: QuestionSchema, values?: any): Boolean | undefined => {\r\n return findParentQuestion && findParentQuestion.questionTypeId === ids.questionTypeIdCheckboxId && values\r\n && ((Array.isArray(values[findParentQuestion.code]) && values[findParentQuestion.code].includes('on'))\r\n || (typeof values[findParentQuestion.code] == \"boolean\" && values[findParentQuestion.code] === true))\r\n};\r\n\r\nGENERAL_FUNCTIONS.checkIfParentQuestionCheckboxUntickedToClearChildQuestionValue = (findParentQuestion?: QuestionSchema, values?: any): Boolean | undefined => {\r\n return findParentQuestion && findParentQuestion.questionTypeId === ids.questionTypeIdCheckboxId && values\r\n && ((Array.isArray(values[findParentQuestion.code]) && !values[findParentQuestion.code].includes('on'))\r\n || (typeof values[findParentQuestion.code] == \"boolean\" && values[findParentQuestion.code] === false))\r\n};\r\n\r\n\r\ninterface TermsAndConditionsResponse {\r\n title: string;\r\n body: string;\r\n}\r\n\r\nGENERAL_FUNCTIONS.fetchTermsAndConditions = async () => {\r\n const token = store.getState().applicationUser.accessToken;\r\n const userId = store.getState().applicationUser.applicationUserDetails?.id;\r\n \r\n const result = await fetch(`${GENERAL_FUNCTIONS.getBaseURL()}api/ApplicationUser/${userId}/get-terms-and-conditions-login`, {\r\n method: 'GET',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n });\r\n return await result.json();\r\n \r\n \r\n \r\n};\r\n\r\nexport default GENERAL_FUNCTIONS;\r\n\r\n\r\n\r\n","import i18n from './i18n';\r\n\r\nexport const syncTranslationsFromRedux = (resources,lng,languages) => {\r\n const ietfbcP47 = languages.find(x=> x.id === lng).ietfbcP47;\r\n i18n.addResourceBundle(ietfbcP47, \"translation\", resources);\r\n i18n.changeLanguage(ietfbcP47);\r\n};","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport delay from 'xstream/extra/delay';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport authentication from '../utils/auth/react-azure-adb2c';\r\nimport {syncTranslationsFromRedux} from \"../i18n/syncTranslationsFromRedux\";\r\nimport {addResourceToi18n, addResourceToi18nSuccess} from \"../actions\";\r\nimport {store} from \"../store/store\";\r\nimport {UPDATE_LANGUAGE_APPLICATION_USER} from \"../actions/types\";\r\nconst REQUEST_LOGIN = 'requestLogin';\r\nconst REQUEST_LOGOUT = 'requestLogout';\r\nconst REQUEST_APPLICATION_USER_DETAILS = 'requestApplicationUserDetails';\r\nconst REQUEST_APPLICATION_CUSTOMER_FEEDBACK = 'requestApplicationCustomerFeedback';\r\nconst UPDATE_APPLICATION_TERMS_CONSENTED = 'updateApplicationUserTermsConsented';\r\nconst POST_APPLICATION_CUSTOMER_FEEDBACK = 'postApplicationCustomerFeedback';\r\nconst REQUEST_APPLICATION_USER_WORDINGS = 'requestApplicationUserWordings';\r\nconst REQUEST_UPDATE_LANGUAGE = 'requestUpdateLanguage';\r\nconst REQUEST_APPLICATION_USER_REVIEW_CLAIM_WORDINGS = 'requestApplicationUserReviewClaimWordings';\r\n\r\n\r\nexport function addResourceFileToi18n(sources) {\r\n const action$ = sources.ACTION\r\n .filter(action => {\r\n return ((action.type === ActionTypes.FETCH_APPLICATION_USER_WORDINGS_SUCCESS &&\r\n store.getState().applicationUser.applicationUserDetails.languageId &&\r\n store.getState().applicationSettings.apiApplicationSettings.languages)\r\n || (action.type === ActionTypes.FETCH_APPLICATION_USER_DETAILS_SUCCESS &&\r\n store.getState().applicationUser.wordings &&\r\n store.getState().applicationSettings.apiApplicationSettings.languages)\r\n || (action.type === ActionTypes.FETCH_APPLICATION_SETTINGS_SUCCESS &&\r\n store.getState().applicationUser.applicationUserDetails.languageId &&\r\n store.getState().applicationUser.wordings))\r\n })\r\n .map(action => {\r\n store.dispatch(actions.addResourceToi18n());\r\n syncTranslationsFromRedux(store.getState().applicationUser.wordings, store.getState().applicationUser.applicationUserDetails.languageId, store.getState().applicationSettings.apiApplicationSettings.languages);\r\n return actions.addResourceToi18nSuccess();\r\n });\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function changeWordingAfterUpdateLanguage(sources) {\r\n const action$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS\r\n })\r\n .map(action => {\r\n store.dispatch(actions.fetchApplicationUserWordings());\r\n store.dispatch(actions.fetchApplicationSettings());\r\n return actions.fetchApplicationUserDetails();\r\n });\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function requestUpdateLanguage(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => {\r\n return(\r\n {\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/ApplicationUser/me/change-language',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_UPDATE_LANGUAGE,\r\n method: 'PUT',\r\n send: action.payload,\r\n }\r\n )\r\n\r\n });\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_UPDATE_LANGUAGE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.updateLanguageApplicationUserSuccess(response)\r\n : actions.updateLanguageApplicationUserFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestApplicationUserDetails(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_APPLICATION_USER_DETAILS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/ApplicationUser/me/info',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_APPLICATION_USER_DETAILS,\r\n method: 'GET',\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_APPLICATION_USER_DETAILS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchApplicationUserDetailsSuccess(response)\r\n : actions.fetchApplicationUserDetailsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\nexport function requestApplicationUserWordings(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_APPLICATION_USER_WORDINGS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/ApplicationUser/me/wordings',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_APPLICATION_USER_WORDINGS,\r\n method: 'GET',\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_APPLICATION_USER_WORDINGS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchApplicationUserWordingsSuccess(response)\r\n : actions.fetchApplicationUserWordingsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestApplicationUserInfoAfterSuccessfulLogin(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.LOGIN_SUCCEEDED)\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => actions.fetchApplicationUserDetails() );\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function requestLogin(sources) {\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.LOGIN).map(action => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/login',\r\n category: REQUEST_LOGIN,\r\n method: 'POST',\r\n send: action.payload,\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_LOGIN)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response => (response.status === 200 ? actions.loginSucceeded(response) : actions.loginFailed(response)));\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestApplicationCustomerFeedback(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/ApplicationUser/me/customer-feedback',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_APPLICATION_CUSTOMER_FEEDBACK,\r\n method: 'GET',\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_APPLICATION_CUSTOMER_FEEDBACK)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchApplicationCustomerFeedbackSuccess(response)\r\n : actions.fetchApplicationCustomerFeedbackFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function updateApplicationUserTermsConsented(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => {\r\n\r\n const userId = action.payload?.userId;\r\n if (!userId) {\r\n throw new Error(\"User ID is missing!\");\r\n }\r\n\r\n return {\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ApplicationUser/${userId}/update-terms-consented`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: UPDATE_APPLICATION_TERMS_CONSENTED,\r\n method: 'PUT',\r\n send: action.payload,\r\n };\r\n });\r\n\r\n let httpResponse$ = sources.HTTP.select(UPDATE_APPLICATION_TERMS_CONSENTED)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.updateApplicationTermsAndConditionsTermsConsentedSuccess(response)\r\n : actions.updateApplicationTermsAndConditionsTermsConsentedFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n }\r\n\r\n\r\nexport function requestApplicationUserReviewClaimWordings(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_UNAUTHORISED_WORDINGS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/ApplicationUser/review-claim/language/${action.payload.payload.languageId}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_APPLICATION_USER_REVIEW_CLAIM_WORDINGS,\r\n method: 'GET',\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_APPLICATION_USER_REVIEW_CLAIM_WORDINGS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchUnauthorisedUserWordingsSuccess(response)\r\n : actions.fetchUnauthorisedUserWordingsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport delay from 'xstream/extra/delay';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_CLAIM_CATEGORIES = 'requestClaimCategories';\r\nconst REQUEST_CLAIM_CATEGORIES_BY_POLICYTYPE = 'requestClaimCategoriesByPolicyType';\r\n\r\nexport function requestClaimCategories(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_CATEGORIES)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/claimCategory',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_CATEGORIES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_CATEGORIES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimCategoriesSuccess(response)\r\n : actions.fetchClaimCategoriesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestClaimTypesWhenClaimCategoriesAreEmpty(sources) {\r\n const state$ = sources.STATE;\r\n const policyType$ = state$.map(state => state.answer.answer.policyType);\r\n\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS)\r\n .filter(action => action.payload && !action.payload.body.data)\r\n .compose(sampleCombine(policyType$))\r\n .map(([action, policyType]) => actions.fetchFormTypesByPolicyAndCategoryCode({\r\n policyTypeCode: policyType,\r\n claimCategoryCode: '___',\r\n }),\r\n );\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function requestClaimCategoriesByPolicyType(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/claimCategory/PolicyTypeCode/${action.payload.policyTypeCode}/claimApplication`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_CATEGORIES_BY_POLICYTYPE,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_CATEGORIES_BY_POLICYTYPE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimCategoriesByPolicyTypeSuccess(response)\r\n : actions.fetchClaimCategoriesByPolicyTypeFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport delay from 'xstream/extra/delay';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_CLAIM_TYPES = 'requestClaimTypes';\r\nconst REQUEST_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY = 'requestClaimTypesByPolicyTypeAndClaimCategory';\r\n\r\n\r\nexport function requestClaimTypes(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_CLAIM_TYPES)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/claimTypes',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_TYPES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_TYPES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimTypesSuccess(response)\r\n : actions.fetchClaimTypesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestQuestionGroupStepsWhenClaimTypesAreEmpty(sources) {\r\n const state$ = sources.STATE;\r\n const answers$ = state$.map(state => state.answer.answer);\r\n\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS)\r\n .filter(action => action.payload && !action.payload.body.data)\r\n .compose(sampleCombine(answers$))\r\n .map(([action, answers]) => actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType({\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n claimTypeCode: '___',\r\n }),\r\n );\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function requestClaimTypesByPolicyTypeAndClaimCategory(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimType/PolicyTypeCode/${action.payload.policyTypeCode}/ClaimCategoryCode/${action.payload.claimCategoryCode}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimTypesByPolicyTypeAndClaimCategorySuccess(response)\r\n : actions.fetchClaimTypesByPolicyTypeAndClaimCategoryFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\n\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport * as actions from '../actions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_QUESTION_GROUP_STEP= 'requestQuestionGroupStep';\r\nconst REQUEST_QUESTION_GROUP_STEP_BY_CLAIM_APPLICATION= 'requestQuestionGroupStepByClaimApplication';\r\n\r\nexport function requestQuestionGroupStep(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) =>\r\n {\r\n const policyTypeCode = action.payload.policyTypeCode\r\n ? action.payload.policyTypeCode\r\n : '___';\r\n const claimCategoryCode = action.payload.claimCategoryCode\r\n ? action.payload.claimCategoryCode\r\n : '___';\r\n const formTypeCode = action.payload.formTypeCode\r\n ? action.payload.formTypeCode\r\n : '___';\r\n return {\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/QuestionGroupStep/PolicyTypeCode/${policyTypeCode}/ClaimCategoryCode/${claimCategoryCode}/FormTypeCode/${formTypeCode}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTION_GROUP_STEP,\r\n method: 'GET',\r\n };\r\n },\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTION_GROUP_STEP)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccess(response)\r\n : actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestQuestionGroupStepByClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) =>\r\n {\r\n const policyTypeCode = action.payload.policyTypeCode\r\n ? action.payload.policyTypeCode\r\n : '___';\r\n const claimCategoryCode = action.payload.claimCategoryCode\r\n ? action.payload.claimCategoryCode\r\n : '___';\r\n const formTypeCode = action.payload.formTypeCode\r\n ? action.payload.formTypeCode\r\n : '___';\r\n const claimApplicationId = action.payload.claimApplicationId\r\n return {\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/QuestionGroupStep/ClaimApplication/${claimApplicationId}/PolicyTypeCode/${policyTypeCode}/ClaimCategoryCode/${claimCategoryCode}/FormTypeCode/${formTypeCode}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTION_GROUP_STEP_BY_CLAIM_APPLICATION,\r\n method: 'GET',\r\n };\r\n },\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTION_GROUP_STEP_BY_CLAIM_APPLICATION)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccess(response)\r\n : actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport {fetchQuestionsForSurveySuccess} from '../actions';\r\n\r\nconst REQUEST_QUESTIONS = 'requestQuestions';\r\nconst REQUEST_ALL_QUESTIONS = 'requestAllQuestions';\r\nconst REQUEST_QUESTIONS_BY_GROUP = 'requestQuestionsByGroup';\r\nconst REQUEST_QUESTIONS_OF_CLAIM_TYPE_COMBO = 'requestQuestionsOfClaimTypeCombo';\r\nconst REQUEST_QUESTIONS_FOR_SURVEY='requestQuestionsForSurvey';\r\n\r\nexport function requestQuestionsOfClaimTypeCombo(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => {\r\n const policyTypeCode = action.payload.policyTypeCode\r\n ? action.payload.policyTypeCode\r\n : '___';\r\n const claimCategoryCode = action.payload.claimCategoryCode\r\n ? action.payload.claimCategoryCode\r\n : '___';\r\n const formTypeCode = action.payload.formTypeCode\r\n ? action.payload.formTypeCode\r\n : '___';\r\n const claimApplicationId = action.payload.claimApplicationId;\r\n\r\n return {\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/question/ClaimApplication/${claimApplicationId}/PolicyTypeCode/${policyTypeCode}/ClaimCategoryCode/${claimCategoryCode}/FormTypeCode/${formTypeCode}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTIONS_OF_CLAIM_TYPE_COMBO,\r\n method: 'GET',\r\n };\r\n },\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTIONS_OF_CLAIM_TYPE_COMBO)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionsOfClaimTypeComboSuccess(response)\r\n : actions.fetchQuestionsOfClaimTypeComboFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestAllQuestions(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_ALL_QUESTIONS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/Question`,\r\n category: REQUEST_ALL_QUESTIONS,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_ALL_QUESTIONS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchAllQuestionsSuccess(response)\r\n : actions.fetchAllQuestionsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestQuestions(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_QUESTIONS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => {\r\n const policyTypeCode = action.payload.policyTypeCode\r\n ? action.payload.policyTypeCode\r\n : '___';\r\n const claimCategoryCode = action.payload.claimCategoryCode\r\n ? action.payload.claimCategoryCode\r\n : '___';\r\n const formTypeCode = action.payload.formTypeCode\r\n ? action.payload.formTypeCode\r\n : '___';\r\n\r\n return {\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/question/PolicyTypeCode/${policyTypeCode}/ClaimCategoryCode/${claimCategoryCode}/FormTypeCode/${formTypeCode}/QuestionGroupStepId/${action.payload.questionGroupStepId}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTIONS,\r\n method: 'GET',\r\n };\r\n },\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTIONS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionsSuccess(response)\r\n : actions.fetchQuestionsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestQuestionsByGroup(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/Question/ClaimApplication/${action.payload.claimApplicationId}/Group/${action.payload.groupCode}`,\r\n category: REQUEST_QUESTIONS_BY_GROUP,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'GET',\r\n }));\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTIONS_BY_GROUP)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionsByGroupSuccess(response)\r\n : actions.fetchQuestionsByGroupFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n};\r\n\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport delay from \"xstream/extra/delay\";\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\n\r\nconst REQUEST_QUESTION_TYPES= 'requestQuestionTypes';\r\n\r\n\r\nexport function requestQuestionsTypes(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_QUESTION_TYPES;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/QuestionType',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTION_TYPES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTION_TYPES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionTypesSuccess(response)\r\n : actions.fetchQuestionTypesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport * as actions from '../actions';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\n\r\nconst REQUEST_POLICYTYPES = 'requestPolicyTypes';\r\n\r\nexport function requestPolicyTypes(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_POLICY_TYPES;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/policyType/claimApplication',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_POLICYTYPES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_POLICYTYPES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchPolicyTypesSuccess(response)\r\n : actions.fetchPolicyTypesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport * as actions from '../actions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_QUESTION_VALIDATION_RULE = 'requestQuestionValidationRule';\r\n\r\nexport function requestQuestionValidationRule(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_QUESTION_VALIDATION_RULE;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/QuestionValidationRule',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_QUESTION_VALIDATION_RULE,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_QUESTION_VALIDATION_RULE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchQuestionValidationRuleSuccess(response)\r\n : actions.fetchQuestionValidationRuleFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport flattenSequentially from 'xstream/extra/flattenSequentially';\r\nimport * as actions from '../actions';\r\nimport { history } from '../store/store';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst POST_CLAIM_APPLICATION = 'postClaimApplication';\r\nconst UPDATE_CLAIM_APPLICATION = 'updateClaimApplication';\r\nconst POST_DRAFT_CLAIM_APPLICATION = 'postDraftClaimApplication';\r\nconst REQUEST_CLAIM_APPLICATION_BY_ID = 'requestClaimApplicationById';\r\nconst REQUEST_CLAIM_APPLICATIONS = 'requestClaimApplications';\r\nconst FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS = 'fetchClaimApplicationBankAccountAnswers';\r\nconst UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT = 'updateClaimApplicationBankAccount';\r\nconst POST_WITHDRAWN_CLAIM_APPLICATION = 'postWithdrawnClaimApplication';\r\nconst FETCH_CLAIM_APPLICATION_TEMPLATE='fetchClaimApplicationTemplate';\r\nconst FETCH_CUSTOMER_FEEDBACK_AFTER_SUCCESS_CLAIM='fetchCustomerFeedbackAfterSuccessClaim';\r\n\r\nexport function fetchClaimApplicationAfterMakingClaimBankAccount(sources) {\r\n const action$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS\r\n })\r\n .map(action => {\r\n return actions.fetchClaimApplicationById(action.payload.body.data.claimApplicationId);\r\n });\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function fetchCustomerFeedbackAfterSuccessClaim(sources){\r\n const action$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS\r\n })\r\n .map(action => {\r\n return actions.fetchApplicationCustomerFeedback();\r\n });\r\n return {\r\n ACTION: action$,\r\n };\r\n\r\n}\r\n\r\nexport function fetchClaimApplicationBankAccountAnswers(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimApplicationBankAccount/ClaimApplication/${action.payload.claimApplicationId}/Answers`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS,\r\n method: 'GET'\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimApplicationBankAccountAnswersSuccess(response)\r\n : actions.fetchClaimApplicationBankAccountAnswersFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function updateClaimApplicationBankAccount(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimApplicationBankAccount`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT,\r\n method: 'PUT',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.updateClaimApplicationBankAccountSuccess(response)\r\n : actions.updateClaimApplicationBankAccountFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function redirectAfterClaimSubmit(sources) {\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS ||\r\n action.type === ActionTypes.UPDATE_CLAIM_APPLICATION_SUCCESS)\r\n .map(action => {\r\n history.push(`/claim/${action.payload.body.data}/submitted`);\r\n return actions.redirectAfterClaimSubmit(action.payload.body.data);\r\n });\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function postClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.SEND_CLAIM_APPLICATION)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/claimApplication',\r\n category: POST_CLAIM_APPLICATION,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'POST',\r\n send: action.payload.data,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(POST_CLAIM_APPLICATION)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.sendClaimApplicationSuccess(response)\r\n : actions.sendClaimApplicationFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function updateClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.UPDATE_CLAIM_APPLICATION)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/claimApplication/${action.payload.data.ClaimApplicationId}`,\r\n category: UPDATE_CLAIM_APPLICATION,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'PUT',\r\n send: action.payload.data,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(UPDATE_CLAIM_APPLICATION)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.updateClaimApplicationSuccess(response)\r\n : actions.updateClaimApplicationFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.GET_CLAIM_APPLICATION_BY_ID)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/claimApplication/${action.payload}/claimant`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_APPLICATION_BY_ID,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_APPLICATION_BY_ID)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimApplicationByIdSuccess(response)\r\n : actions.fetchClaimApplicationByIdFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function postDraftClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/DraftClaimApplication',\r\n category: POST_DRAFT_CLAIM_APPLICATION,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'POST',\r\n send: action.payload.data,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(POST_DRAFT_CLAIM_APPLICATION)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .compose(flattenSequentially)\r\n .map(response =>\r\n response.status === 200\r\n ? actions.sendDraftClaimApplicationByUserSuccess(response)\r\n : actions.sendDraftClaimApplicationByUserFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\nexport function requestClaimApplications(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.GET_CLAIM_APPLICATIONS)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/claimApplication?page=${action.payload.page ? action.payload.page : 1}&limit=${action.payload.limit ? action.payload.limit : 20}`,\r\n category: REQUEST_CLAIM_APPLICATIONS,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_APPLICATIONS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimApplicationsSuccess(response)\r\n : actions.fetchClaimApplicationsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function postWithdrawnClaimApplication(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimTransition/${action.payload.claimApplicationId}/withdraw`,\r\n category: POST_WITHDRAWN_CLAIM_APPLICATION,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n method: 'POST',\r\n send: action.payload.data,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(POST_WITHDRAWN_CLAIM_APPLICATION)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.createWithdrawnClaimApplicationSuccess(response)\r\n : actions.createWithdrawnClaimApplicationFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\nexport function fetchClaimApplicationTemplate(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/ClaimApplicationTemplate/${action.payload.templateId}/ClaimApplication/${action.payload.claimApplicationId}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: FETCH_CLAIM_APPLICATION_TEMPLATE,\r\n method: 'GET',\r\n\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(FETCH_CLAIM_APPLICATION_TEMPLATE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimApplicationTemplateSuccess(response)\r\n : actions.fetchClaimApplicationTemplateFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_DOCUMENT_TYPES = 'requestDocumentTypes';\r\n\r\nexport function requestDocumentTypes(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => {\r\n return action.type === ActionTypes.FETCH_DOCUMENT_TYPES;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => {\r\n const policyTypeCode = action.payload.policyTypeCode\r\n ? action.payload.policyTypeCode\r\n : '___';\r\n const claimCategoryCode = action.payload.claimCategoryCode\r\n ? action.payload.claimCategoryCode\r\n : '___';\r\n const formTypeCode = action.payload.formTypeCode\r\n ? action.payload.formTypeCode\r\n : '___';\r\n\r\n return ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/DocumentType/PolicyTypeCode/${policyTypeCode}/ClaimCategoryCode/${claimCategoryCode}/FormTypeCode/${formTypeCode}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_DOCUMENT_TYPES,\r\n method: 'GET',\r\n })\r\n }\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_DOCUMENT_TYPES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchDocumentTypesSuccess(response)\r\n : actions.fetchDocumentTypesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\n\r\n\r\nconst REQUEST_APPLICATION_SETTINGS = 'requestApplicationSettings';\r\n\r\nexport function requestApplicationSettings(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_APPLICATION_SETTINGS;\r\n })\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/StaticApplicationSetting`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_APPLICATION_SETTINGS,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_APPLICATION_SETTINGS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchApplicationSettingsSuccess(response)\r\n : actions.fetchApplicationSettingsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\n\r\nconst REQUEST_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER = 'requestNoSubmittedDraftClaimApplicationByUser';\r\nconst REQUEST_DRAFT_CLAIM_APPLICATION_BY_USER = 'requestDraftClaimApplicationsByUser';\r\nconst REQUEST_DRAFT_CLAIM_APPLICATION_LIST_BY_USER = 'requestDraftClaimApplicationListByUser';\r\n\r\nexport function requestNoSubmittedDraftClaimApplicationByUser(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/DraftClaimApplication/last`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchDraftClaimApplicationByUserSuccess(response)\r\n : actions.fetchDraftClaimApplicationByUserFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestDraftClaimApplicationByUser(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/DraftClaimApplication/ClaimApplication/${action.payload}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_DRAFT_CLAIM_APPLICATION_BY_USER,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_DRAFT_CLAIM_APPLICATION_BY_USER)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchDraftClaimApplicationByUserSuccess(response)\r\n : actions.fetchDraftClaimApplicationByUserFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\nexport function requestDraftClaimApplicationListByUser(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/DraftClaimApplication`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_DRAFT_CLAIM_APPLICATION_LIST_BY_USER,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_DRAFT_CLAIM_APPLICATION_LIST_BY_USER)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchDraftClaimApplicationListByUserSuccess(response)\r\n : actions.fetchDraftClaimApplicationListByUserFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\nimport codes from '../utils/constants/codes';\r\n\r\nconst REQUEST_COMMUNICATOR_MESSAGE = 'requestCommunicatorMessage';\r\nconst REQUEST_COMMUNICATOR_HISTORY = 'requestCommunicatorHistory';\r\nconst REQUEST_CREATE_COMMUNICATOR_MESSAGE = 'requestCreateCommunicatorMessage';\r\n\r\n\r\n\r\nexport function requestCommunicatorMessageAftermakingMessage(sources) {\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.CREATE_COMMUNICATOR_MESSAGE_SUCCESS )\r\n .map(action => {\r\n return actions.fetchCommunicatorHistory({\r\n claimApplicationId: action.payload.request.send.claimApplicationId,\r\n });\r\n });\r\n\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\nexport function requestCommunicatorMessage(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_COMMUNICATOR_MESSAGE;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => (\r\n {\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/message/claimApplication/${action.payload.claimApplicationId}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_COMMUNICATOR_MESSAGE,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_COMMUNICATOR_MESSAGE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchCommunicatorMessageSuccess(response)\r\n : actions.fetchCommunicatorMessageFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestCreateCommunicatorMessage(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.CREATE_COMMUNICATOR_MESSAGE)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => (\r\n {\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/message',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CREATE_COMMUNICATOR_MESSAGE,\r\n method: 'POST',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CREATE_COMMUNICATOR_MESSAGE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.createCommunicatorMessageSuccess(response)\r\n : actions.createCommunicatorMessageFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestCommunicatorHistory(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => {\r\n return action.type === ActionTypes.FETCH_COMMUNICATOR_HISTORY;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => (\r\n {\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/Communicator/${action.payload.claimApplicationId}/history${action.payload?.filters?GENERAL_FUNCTIONS.createUrlQueryParameters(action.payload.filters): GENERAL_FUNCTIONS.createUrlQueryParameters(codes.defaultPayloadPagination)}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_COMMUNICATOR_HISTORY,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_COMMUNICATOR_HISTORY)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchCommunicatorHistorySuccess(response)\r\n : actions.fetchCommunicatorHistoryFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\n\r\nconst REQUEST_CLAIM_REVIEW_VALIDITY = 'requestClaimReviewValidity';\r\nconst REQUEST_CLAIM_REVIEW_DETAILS = 'requestClaimReviewDetails';\r\nconst REQUEST_ACCEPT_CLAIM_REVIEW = 'requestAcceptClaimReview';\r\nconst REQUEST_REJECTION_FORM_CLAIM_REVIEW = 'requestRejectionFormClaimReview';\r\nconst REQUEST_REJECT_CLAIM_REVIEW_WITH_REASON = 'requestRejectClaimReviewWithReason';\r\n\r\nexport function requestClaimReviewValidity(sources) {\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY)\r\n .map(action => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/action/reviewClaim/${action.payload.claimApplicationId}/${action.payload.randomId}`,\r\n category: REQUEST_CLAIM_REVIEW_VALIDITY,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_REVIEW_VALIDITY)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimReviewValiditySuccess(response)\r\n : actions.fetchClaimReviewValidityFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestClaimReviewDetails(sources) {\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_CLAIM_REVIEW_DETAILS)\r\n .map(action => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/action/reviewClaim/${action.payload.ClaimApplicationId}/${action.payload.RandomId}/claimDetails`,\r\n category: REQUEST_CLAIM_REVIEW_DETAILS,\r\n method: 'POST',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_REVIEW_DETAILS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimReviewDetailsSuccess(response)\r\n : actions.fetchClaimReviewDetailsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestAcceptClaimReview(sources) {\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.ACCEPT_CLAIM_REVIEW)\r\n .map(action => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/action/reviewClaim/${action.payload.ClaimApplicationId}/${action.payload.RandomId}/accept`,\r\n category: REQUEST_ACCEPT_CLAIM_REVIEW,\r\n method: 'PUT',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_ACCEPT_CLAIM_REVIEW)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.acceptClaimReviewSuccess(response)\r\n : actions.acceptClaimReviewFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestRejectionFormClaimReview(sources) {\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW)\r\n .map(action => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/action/reviewClaim/${action.payload.ClaimApplicationId}/${action.payload.RandomId}/rejectForm`,\r\n category: REQUEST_REJECTION_FORM_CLAIM_REVIEW,\r\n method: 'GET'\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_REJECTION_FORM_CLAIM_REVIEW)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchRejectionFormClaimReviewSuccess(response)\r\n : actions.fetchRejectionFormClaimReviewFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestRejectClaimReviewWithReason(sources) {\r\n\r\n const request$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON)\r\n .map(action => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/action/reviewClaim/${action.payload.ClaimApplicationId}/${action.payload.RandomId}/reject`,\r\n category: REQUEST_REJECT_CLAIM_REVIEW_WITH_REASON,\r\n method: 'PUT',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_REJECT_CLAIM_REVIEW_WITH_REASON)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.rejectClaimReviewWithReasonSuccess(response)\r\n : actions.rejectClaimReviewWithReasonFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\n","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_CLAIM_DOCUMENT = 'requestClaimDocument';\r\nconst REQUEST_DOCUMENT_WITH_QUERY_PARAMS = 'requestDocumentWithQueryParams';\r\n\r\nexport function requestDocumentWithQueryParams(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => {\r\n return action.type === ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS;\r\n })\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment/ClaimApplication/${action.payload.claimApplicationId}/claimant/search${GENERAL_FUNCTIONS.createUrlQueryParameters(action.payload.filters)}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_DOCUMENT_WITH_QUERY_PARAMS,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_DOCUMENT_WITH_QUERY_PARAMS)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimDocumentWithQueryParamsSuccess(response)\r\n : actions.fetchClaimDocumentWithQueryParamsFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestClaimDocument(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_CLAIM_DOCUMENT)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: `${GENERAL_FUNCTIONS.getBaseURL()}api/Attachment/ClaimApplication/${action.payload.claimApplicationId}/claimant`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CLAIM_DOCUMENT,\r\n method: 'GET',\r\n }),\r\n );\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CLAIM_DOCUMENT)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchClaimDocumentSuccess(response)\r\n : actions.fetchClaimDocumentFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}","import * as ActionTypes from \"../actions/types\";\r\nimport delay from \"xstream/extra/delay\";\r\nimport sampleCombine from \"xstream/extra/sampleCombine\";\r\nimport GENERAL_FUNCTIONS from \"../utils/functions/functions\";\r\nimport HEADER_FUNCTIONS from \"../utils/functions/headers\";\r\nimport xs from \"xstream\";\r\nimport * as actions from \"../actions\";\r\nconst REQUEST_FORM_TYPES='requestFormTypes';\r\nconst REQUEST_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE='requestFormTypesByPolicyAndCategoryCode';\r\n\r\n\r\nexport function requestFormTypes(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_FORM_TYPES)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/FormType',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_FORM_TYPES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_FORM_TYPES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchFormTypesSuccess(response)\r\n : actions.fetchFormTypesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function requestQuestionGroupStepsWhenFormTypesAreEmpty(sources) {\r\n const state$ = sources.STATE;\r\n const answers$ = state$.map(state => state.answer.answer);\r\n\r\n const action$ = sources.ACTION\r\n .filter(action => action.type === ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS)\r\n .filter(action => action.payload && !action.payload.body.data)\r\n .compose(sampleCombine(answers$))\r\n .map(([action, answers]) => actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType({\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n formTypeCode: '___',\r\n }),\r\n );\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\n\r\nexport function requestClaimFormTypesByPolicyAndCategoryCode(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + `api/FormType/PolicyTypeCode/${action.payload.policyTypeCode}/ClaimCategoryCode/${action.payload.claimCategoryCode}/claimApplication`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchFormTypesByPolicyAndCategoryCodeSuccess(response)\r\n : actions.fetchFormTypesByPolicyAndCategoryCodeFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import * as actions from '../actions';\r\nimport xs from 'xstream';\r\nimport {store} from '../store/store';\r\nimport codes from '../utils/constants/codes';\r\nimport flattenConcurrently from 'xstream/extra/flattenConcurrently';\r\n\r\n\r\nexport function handleBusinessErrors(sources) {\r\n\r\n let httpResponse$ = sources.HTTP\r\n .select()\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .compose(flattenConcurrently)\r\n .filter(response => {\r\n //business errors\r\n if (response.status === 400 && !response?.response?.request?.url?.includes('DraftClaimApplication') && response?.response?.request?.category!=='requestSurveyType') {\r\n store.dispatch(actions.handleBusinessErrors(response));\r\n }\r\n //authentication errors\r\n if (response.status === 401 || response.status === 403) {\r\n store.dispatch(actions.handleBusinessErrors({customMessage: codes.authorizedMessage}));\r\n }\r\n //internal errors\r\n if (response.status === 500 || response.status === 501) {\r\n store.dispatch(actions.handleInternalErrors(response));\r\n }\r\n //unavailable services from azure\r\n if(response.status === 502 || response.status === 503 || response.status === 504){\r\n store.dispatch(actions.handleServiceErrors(response));\r\n }\r\n return undefined;\r\n });\r\n return {\r\n ACTION: httpResponse$,\r\n };\r\n}","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport * as actions from '../actions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_SURVEY_TYPE = 'requestSurveyType';\r\nconst POST_SURVEY_ANSWERS = 'postSurveyAnswers';\r\nconst FETCH_SURVEY_TYPES_AFTER_SUCCESS_POST = 'fetchSurveyTypesAfterSuccessPost';\r\nconst FETCH_SURVEY_QUESTIONS = 'fetchSurveyQuestions';\r\n\r\nexport function requestSurveyType (sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map (state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION\r\n .filter (action => {\r\n return action.type === ActionTypes.FETCH_SURVEY_TYPE;\r\n })\r\n .compose (delay ())\r\n .compose (sampleCombine (token$))\r\n .map (([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL () + `api/ClaimApplicationSurvey/ClaimApplication/${action.payload.claimApplicationId}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson (token),\r\n category: REQUEST_SURVEY_TYPE,\r\n method: 'GET',\r\n send: action.payload,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select (REQUEST_SURVEY_TYPE)\r\n .map (response => response.replaceError (err => xs.of (err)))\r\n .flatten ()\r\n .map (response =>\r\n response.status === 200\r\n ? actions.fetchSurveyTypeSuccess (response)\r\n : actions.fetchSurveyTypeFailed (response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function postSurveyAnswers (sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map (state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter (action => action.type === ActionTypes.POST_SURVEY_ANSWERS)\r\n .compose (delay ())\r\n .compose (sampleCombine (token$))\r\n .map (([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL () + `api/ClaimApplicationSurvey/ClaimApplication/${action.payload.data.claimApplicationId}/SurveyType/${action.payload.data.surveyTypeGroupCode}`,\r\n category: POST_SURVEY_ANSWERS,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson (token),\r\n method: 'POST',\r\n send: action.payload.data,\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select (POST_SURVEY_ANSWERS)\r\n .map (response => response.replaceError (err => xs.of (err)))\r\n .flatten ()\r\n .map (response =>\r\n response.status === 200\r\n ? actions.postSurveyAnswersSuccess (response)\r\n : actions.postSurveyAnswersFailed (response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n\r\nexport function fetchSurveyQuestions (sources) {\r\n const action$ = sources.ACTION\r\n .filter (action => action.type === ActionTypes.FETCH_SURVEY_TYPE_SUCCESS && action?.payload?.body?.data?.length===1)\r\n .map (action => {\r\n let guid = GENERAL_FUNCTIONS.matchClaimIdFromUrl ();\r\n return actions.fetchQuestionsByGroup ({\r\n claimApplicationId:guid,\r\n groupCode: action?.payload?.body?.data[0]?.surveyTypeGroupCode,\r\n });\r\n });\r\n return {\r\n ACTION: action$,\r\n };\r\n}export function fetchSurveyTypesAfterSuccessPost (sources) {\r\n const action$ = sources.ACTION\r\n .filter (action => action.type === ActionTypes.POST_SURVEY_ANSWERS_SUCCESS)\r\n .map (action => {\r\n let guid = GENERAL_FUNCTIONS.matchClaimIdFromUrl ();\r\n return actions.fetchSurveyType ({\r\n claimApplicationId:guid,\r\n });\r\n });\r\n return {\r\n ACTION: action$,\r\n };\r\n}\r\n\r\n//Maybe we will need it later!!!\r\n\r\n// export function refetchSurveyType (sources) {\r\n// const action$ = sources.ACTION\r\n// .filter (action =>\r\n// action.type === ActionTypes.FETCH_SURVEY_TYPE_FAILED)\r\n// .map (action => {\r\n// let guid = GENERAL_FUNCTIONS.matchClaimIdFromUrl ();\r\n// return actions.fetchClaimApplicationById (guid);\r\n// });\r\n// return {\r\n// ACTION: action$,\r\n// };\r\n// }","import * as ActionTypes from '../actions/types';\r\nimport xs from 'xstream';\r\nimport * as actions from '../actions';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport delay from 'xstream/extra/delay';\r\nimport sampleCombine from 'xstream/extra/sampleCombine';\r\nimport HEADER_FUNCTIONS from '../utils/functions/headers';\r\n\r\nconst REQUEST_CURRENCIES = 'requestCurrencies';\r\n\r\nexport function requestCurrencies(sources) {\r\n const state$ = sources.STATE;\r\n const token$ = state$.map(state => state.applicationUser.accessToken);\r\n\r\n const request$ = sources.ACTION.filter(action => action.type === ActionTypes.FETCH_CURRENCIES)\r\n .compose(delay())\r\n .compose(sampleCombine(token$))\r\n .map(([action, token]) => ({\r\n url: GENERAL_FUNCTIONS.getBaseURL() + 'api/currency',\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n category: REQUEST_CURRENCIES,\r\n method: 'GET',\r\n }),\r\n );\r\n\r\n let httpResponse$ = sources.HTTP.select(REQUEST_CURRENCIES)\r\n .map(response => response.replaceError(err => xs.of(err)))\r\n .flatten()\r\n .map(response =>\r\n response.status === 200\r\n ? actions.fetchCurrenciesSuccess(response)\r\n : actions.fetchCurrenciesFailed(response),\r\n );\r\n\r\n return {\r\n ACTION: httpResponse$,\r\n HTTP: request$,\r\n };\r\n}\r\n","import { combineCycles } from 'redux-cycles';\r\nimport * as cycles from './cycles';\r\nimport _ from 'lodash';\r\n\r\nexport default combineCycles(..._.map(cycles, cycle => cycle));\r\n","import * as ActionTypes from '../actions/types';\r\n// @ts-ignore\r\nimport { v4 } from 'uuid';\r\nimport {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport config from '../utils/constants/config';\r\nimport {detectWarningsAction} from '../actions/message';\r\ntype State={\r\n byId: { [id: string]: any} | {},\r\n allIds:Array\r\n internalErrors: null | any,\r\n serviceErrors: null |any,\r\n} | any;\r\ntype Payload= { response: { body: { errors: any[]; title: string; }; }; customMessage: string; };\r\n\r\nconst createMessage = (type: string, message: string, description:string | null = null) => {\r\n const newId = v4();\r\n return {\r\n type: type,\r\n uuid: newId,\r\n message: message,\r\n created: new Date(),\r\n description: description,\r\n\r\n };\r\n};\r\n\r\nconst INITIAL_STATE:State = {\r\n byId: {},\r\n allIds: [],\r\n internalErrors: null,\r\n serviceErrors: null,\r\n};\r\n\r\nconst addSuccessMessage = (initialMessage = 'Action was successful') => (state:State) => {\r\n const message = createMessage(config.StatusMessage.SUCCESS, initialMessage);\r\n\r\n return {\r\n ...state,\r\n byId: {\r\n ...state.byId,\r\n [message.uuid]: message,\r\n },\r\n allIds: [\r\n ...state.allIds,\r\n message.uuid,\r\n ],\r\n };\r\n};\r\n\r\nconst addErrorMessage = (initialMessage: string | undefined) => (state:State, action: PayloadAction) => {\r\n let text: any[] | string;\r\n if(\r\n action.payload\r\n && action.payload.response\r\n && action.payload.response.body\r\n && action.payload.response.body.errors\r\n && action.payload.response.body.errors.map((error: any) => error)\r\n ) {\r\n text = action.payload.response.body.errors.map(error => error);\r\n } else if( action.payload && action.payload.customMessage){\r\n text = action.payload.customMessage;\r\n } else if (initialMessage){\r\n text = initialMessage;\r\n }\r\n else if(\r\n action.payload\r\n && action.payload.response\r\n && action.payload.response.body\r\n && action.payload.response.body.title){\r\n text = action.payload.response.body.title;\r\n }\r\n else{\r\n text='Action Failed';\r\n }\r\n\r\n const message = createMessage(config.StatusMessage.ERROR, text as string);\r\n return {\r\n ...state,\r\n byId: {\r\n ...state.byId,\r\n [message.uuid]: message,\r\n },\r\n allIds: [\r\n ...state.allIds,\r\n message.uuid,\r\n ],\r\n };\r\n};\r\n\r\nconst addWarningMessage = (initialMessage: string) => (state:State) =>{\r\n const message = createMessage(config.StatusMessage.WARNING, initialMessage);\r\n return {\r\n ...state,\r\n byId: {\r\n ...state.byId,\r\n [message.uuid]: message,\r\n },\r\n allIds: [\r\n ...state.allIds,\r\n message.uuid,\r\n ],\r\n };\r\n\r\n};\r\n\r\nconst removeMessage = (state: { byId: { [x: string]: any; }; }, action: { payload: { uuid: string; }; }) => {\r\n const { [action.payload.uuid]: value, ...newMessages } = state.byId;\r\n\r\n return {\r\n ...state,\r\n byId: {\r\n ...newMessages,\r\n },\r\n allIds: [\r\n ...Object\r\n .entries(newMessages)\r\n .map(([k, v]) => v.uuid),\r\n ],\r\n };\r\n};\r\n\r\nconst detectWarnings =(state:State, action:PayloadAction) => {\r\n let warnings: any[] = [];\r\n if (action.payload &&\r\n action.payload.body &&\r\n action.payload.body.warnings &&\r\n action.payload.body.warnings.map((warning: string) => warning)\r\n ) {\r\n warnings = action.payload.body.warnings.map((warning: string) => warning);\r\n\r\n }\r\n\r\n if(warnings.length === 0){\r\n return {\r\n ...state,\r\n };\r\n }else {\r\n const message=createMessage(config.StatusMessage.WARNING, warnings as any );\r\n\r\n return {\r\n ...state,\r\n byId: {\r\n ...state.byId,\r\n [message.uuid]: message,\r\n },\r\n allIds: [\r\n ...state.allIds,\r\n message.uuid,\r\n ],\r\n };\r\n }\r\n};\r\nconst addInternalError=(state: any, action: { payload: { response: { body: { title: string; }; }; }; }) => {\r\n return {\r\n ...state,\r\n internalErrors: action?.payload?.response?.body?.title,\r\n };\r\n};\r\n\r\nconst addIServiceError=(state: any, action: { payload: { response: { body: { traceId: string; }; }; }; }) => {\r\n return {\r\n ...state,\r\n serviceErrors: action.payload.response.body.traceId,\r\n };\r\n};\r\n\r\nconst hideMessage=(state:State, action:any) => {\r\n return {\r\n ...state,\r\n byId: {},\r\n allIds: [],\r\n };\r\n};\r\n\r\n\r\nconst message = createReducer(INITIAL_STATE, {\r\n [ActionTypes.REMOVE_MESSAGE]: removeMessage,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS]: addSuccessMessage('Bank details updated successfully'),\r\n [ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS]:detectWarnings,\r\n [ActionTypes.HANDLE_BUSINESS_ERRORS]:addErrorMessage(undefined),\r\n [ActionTypes.HANDLE_INTERNAL_ERRORS]: addInternalError,\r\n [ActionTypes.HANDLE_SERVICE_ERRORS]: addIServiceError,\r\n [ActionTypes.HIDE_MESSAGE]: hideMessage,\r\n [ActionTypes.DISPLAY_DOWNLOAD_FILE_WARNING]:detectWarnings,\r\n});\r\n\r\nexport default message;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport {\r\n ApplicationUsers,\r\n fetchApplicationCustomerFeedbackSuccessAction,\r\n fetchApplicationUserDetailsSuccessAction,\r\n fetchApplicationUserWordingsSuccessAction,\r\n updateApplicationTermsAndConditionsTermsConsentedSuccessAction,\r\n UserApplicationUserBody\r\n} from '../actions/applicationUser';\r\nimport {ADD_RESOURCE_FILE_TO_I18N} from \"../actions/types\";\r\n\r\ntype State={\r\n message: string\r\n accessToken: null | string,\r\n applicationUserDetails: ApplicationUsers | { } | any,\r\n unAuthorisedDetails: ApplicationUsers | { } | any,\r\n customerFeedback: null | string | boolean,\r\n updateConsent: null | string | boolean,\r\n requestHasFailed:boolean,\r\n wordings: null | any,\r\n loading: boolean,\r\n}\r\nconst INITIAL_STATE:State = {\r\n message: 'HellO MOTO',\r\n accessToken: null,\r\n applicationUserDetails: {},\r\n unAuthorisedDetails: {},\r\n customerFeedback: null,\r\n wordings:null,\r\n loading: false,\r\n updateConsent: null,\r\n requestHasFailed:false,\r\n};\r\n\r\nconst login = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst loginSucceeded = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n accessToken: action.payload &&\r\n action.payload.accessTokenFromAuthentication &&\r\n action.payload.accessTokenFromAuthentication.accessToken ?\r\n action.payload.accessTokenFromAuthentication.accessToken : null,\r\n };\r\n};\r\n\r\nconst loginFailed = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst updateToken = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n accessToken: action.payload.accessTokenFromAuthentication.accessToken,\r\n };\r\n};\r\n\r\nconst fetchApplicationUserDetails = (state:State):State => {\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst fetchApplicationUserDetailsSuccess = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n applicationUserDetails: action.payload.body.data,\r\n };\r\n};\r\n\r\nconst fetchApplicationUserDetailsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst fetchApplicationCustomerFeedBack= ( state:State):State =>{\r\n return {\r\n ...state,\r\n };\r\n};\r\nconst fetchApplicationCustomerFeedBackSuccess= ( state:State, action:PayloadAction):State =>{\r\n return {\r\n ...state,\r\n customerFeedback:action.payload.body.data,\r\n };\r\n};\r\nconst fetchApplicationCustomerFeedBackFailed= ( state:State):State =>{\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst updateApplicationTermsConsented= ( state:State):State =>{\r\n return {\r\n ...state,\r\n //requestHasFailed:false,\r\n\r\n };\r\n};\r\nconst updateApplicationTermsConsentedSuccess= ( state:State, action:PayloadAction):State =>{\r\n return {\r\n ...state,\r\n updateConsent:action.payload.body.data,\r\n requestHasFailed:false,\r\n };\r\n};\r\nconst updateApplicationTermsConsentedFailed= ( state:State):State =>{\r\n return {\r\n ...state,\r\n requestHasFailed:true,\r\n };\r\n};\r\nconst fetchApplicationUserWordings= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n};\r\nconst fetchApplicationUserWordingsSuccess= ( state:State, action:PayloadAction):State =>{\r\n return {\r\n ...state,\r\n wordings:action.payload.body.data,\r\n loading: false\r\n };\r\n};\r\nconst fetchApplicationUserWordingsFailed= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: false\r\n };\r\n};\r\n\r\nconst fetchUnauthorizedUserWordings= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n};\r\nconst fetchUnauthorizedUserWordingsSuccess= ( state:State, action:PayloadAction):State =>{\r\n // @ts-ignore\r\n const languageId = action.payload.request.url.split('/')[7];\r\n return {\r\n ...state,\r\n loading: false,\r\n wordings:action.payload.body.data,\r\n unAuthorisedDetails:{\r\n languageId:languageId\r\n }\r\n };\r\n};\r\nconst fetchUnauthorizedUserWordingsFailed= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst addResourceFileToI18n= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst addResourceFileToI18nSuccess= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst updateLanguageApplicationUser= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst updateLanguageApplicationUserSuccess= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\nconst updateLanguageApplicationUserFailed= ( state:State):State =>{\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\nconst applicationUser = createReducer(INITIAL_STATE, {\r\n [ActionTypes.LOGIN]: login,\r\n [ActionTypes.LOGIN_SUCCEEDED]: loginSucceeded,\r\n [ActionTypes.LOGIN_FAILED]: loginFailed,\r\n [ActionTypes.UPDATE_TOKEN]: updateToken,\r\n [ActionTypes.FETCH_APPLICATION_USER_DETAILS]: fetchApplicationUserDetails,\r\n [ActionTypes.FETCH_APPLICATION_USER_DETAILS_SUCCESS]: fetchApplicationUserDetailsSuccess,\r\n [ActionTypes.FETCH_APPLICATION_USER_DETAILS_FAILED]: fetchApplicationUserDetailsFailed,\r\n [ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK]: fetchApplicationCustomerFeedBack,\r\n [ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_SUCCESS]: fetchApplicationCustomerFeedBackSuccess,\r\n [ActionTypes.FETCH_APPLICATION_CUSTOMER_FEEDBACK_FAILED]: fetchApplicationCustomerFeedBackFailed,\r\n [ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED]: updateApplicationTermsConsented,\r\n [ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_SUCCESS]: updateApplicationTermsConsentedSuccess,\r\n [ActionTypes.UPDATE_APPLICATION_TERMS_CONSENTED_FAILED]: updateApplicationTermsConsentedFailed,\r\n [ActionTypes.FETCH_APPLICATION_USER_WORDINGS]: fetchApplicationUserWordings,\r\n [ActionTypes.FETCH_APPLICATION_USER_WORDINGS_SUCCESS]: fetchApplicationUserWordingsSuccess,\r\n [ActionTypes.FETCH_APPLICATION_USER_WORDINGS_FAILED]: fetchApplicationUserWordingsFailed,\r\n [ActionTypes.FETCH_UNAUTHORISED_WORDINGS]: fetchUnauthorizedUserWordings,\r\n [ActionTypes.FETCH_UNAUTHORISED_WORDINGS_SUCCESS]: fetchUnauthorizedUserWordingsSuccess,\r\n [ActionTypes.FETCH_UNAUTHORISED_WORDINGS_FAILED]: fetchUnauthorizedUserWordingsFailed,\r\n [ActionTypes.ADD_RESOURCE_FILE_TO_I18N]: addResourceFileToI18n,\r\n [ActionTypes.ADD_RESOURCE_FILE_TO_I18N_SUCCESS]: addResourceFileToI18nSuccess,\r\n [ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER]: updateLanguageApplicationUser,\r\n [ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_SUCCESS]: updateLanguageApplicationUserSuccess,\r\n [ActionTypes.UPDATE_LANGUAGE_APPLICATION_USER_FAILED]: updateLanguageApplicationUserFailed,\r\n});\r\n\r\nexport default applicationUser;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchAllQuestionsSuccessAction,\r\n fetchQuestionsByGroupSuccessAction,\r\n fetchQuestionsOfClaimTypeComboSuccessAction,\r\n fetchQuestionsSuccessAction,\r\n} from '../actions/question';\r\ntype State={\r\n question:{\r\n byId: { [id: string]: any} | {} | any,\r\n allIds:Array\r\n }\r\n loading: boolean,\r\n errorMessage: null | any,\r\n surveyQuestion?:{\r\n byId: { [id: string]: any} | {} | any,\r\n allIds:Array\r\n },\r\n\r\n}\r\nconst INITIAL_STATE:State = {\r\n question: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n surveyQuestion: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n\r\n};\r\n\r\nconst fetchQuestions = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionsSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n return {\r\n ...state,\r\n loading: false,\r\n question: {\r\n ...state.question,\r\n byId: {\r\n ...state.question.byId,\r\n ...byId,\r\n },\r\n allIds: GENERAL_FUNCTIONS.mergeArraysUnique(\r\n state.question.allIds,\r\n allIds,\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst fetchQuestionsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst fetchAllQuestions = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchAllQuestionsSuccess = (state:State, action:PayloadAction) => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n question: {\r\n ...state.question,\r\n byId,\r\n allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchAllQuestionsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst clearQuestionState = ():State => {\r\n return INITIAL_STATE;\r\n};\r\n\r\n\r\nconst fetchQuestionsOfClaimTypeCombo = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionsOfClaimTypeComboSuccess = (state:State, action:PayloadAction) => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n question: {\r\n ...state.question,\r\n byId: {\r\n ...state.question.byId,\r\n ...byId,\r\n },\r\n allIds: GENERAL_FUNCTIONS.mergeArraysUnique(\r\n state.question.allIds,\r\n allIds,\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst fetchQuestionsOfClaimTypeComboFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst fetchQuestionsByGroup = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionsByGroupSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n return {\r\n ...state,\r\n loading: false,\r\n question: {\r\n ...state.question,\r\n byId: {\r\n ...state.question.byId,\r\n ...byId,\r\n },\r\n allIds: GENERAL_FUNCTIONS.mergeArraysUnique(\r\n state.question.allIds,\r\n allIds,\r\n ),\r\n },\r\n };\r\n};\r\n\r\nconst fetchQuestionsByGroupFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\n\r\nconst question = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_QUESTIONS]: fetchQuestions,\r\n [ActionTypes.FETCH_QUESTIONS_SUCCESS]: fetchQuestionsSuccess,\r\n [ActionTypes.FETCH_QUESTIONS_FAILED]: fetchQuestionsFailed,\r\n [ActionTypes.CLEAR_QUESTION_STATE]: clearQuestionState,\r\n [ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT]: clearQuestionState,\r\n [ActionTypes.FETCH_ALL_QUESTIONS]: fetchAllQuestions,\r\n [ActionTypes.FETCH_ALL_QUESTIONS_SUCCESS]: fetchAllQuestionsSuccess,\r\n [ActionTypes.FETCH_ALL_QUESTIONS_FAILED]: fetchAllQuestionsFailed,\r\n [ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO]: fetchQuestionsOfClaimTypeCombo,\r\n [ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_SUCCESS]: fetchQuestionsOfClaimTypeComboSuccess,\r\n [ActionTypes.FETCH_QUESTIONS_OF_CLAIM_TYPE_COMBO_FAILED]: fetchQuestionsOfClaimTypeComboFailed,\r\n [ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP]: fetchQuestionsByGroup,\r\n [ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_SUCCESS]: fetchQuestionsByGroupSuccess,\r\n [ActionTypes.FETCH_ALL_QUESTIONS_BY_GROUP_FAILED]: fetchQuestionsByGroupFailed,\r\n});\r\n\r\nexport default question;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {fetchQuestionTypesSuccessAction} from '../actions/questionType';\r\ntype State={\r\n questionType:{\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | null\r\n }\r\n loading: boolean,\r\n errorMessage: null | any\r\n}\r\nconst INITIAL_STATE:State = {\r\n questionType: {\r\n byId: null,\r\n allIds: null,\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchQuestionTypes = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionTypesSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n questionType: {\r\n ...state.questionType,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchQuestionTypesFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst questionType = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_QUESTION_TYPES]: fetchQuestionTypes,\r\n [ActionTypes.FETCH_QUESTION_TYPES_SUCCESS]: fetchQuestionTypesSuccess,\r\n [ActionTypes.FETCH_QUESTION_TYPES_FAILED]: fetchQuestionTypesFailed,\r\n});\r\n\r\nexport default questionType;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchClaimTypesByPolicyTypeAndClaimCategoryFailedAction,\r\n fetchClaimTypesByPolicyTypeAndClaimCategorySuccessAction,\r\n} from '../actions/claimType';\r\ntype State={\r\n claimType: {\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | []\r\n },\r\n loading: boolean,\r\n errorMessage: null | any,\r\n claimFormType: {\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | []\r\n },\r\n}\r\nconst INITIAL_STATE:State = {\r\n claimType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n claimFormType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n};\r\n\r\nconst fetchClaimTypes = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimTypesSuccess = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimTypesFailed = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimTypesByPolicyTypeAndClaimCategory = (state:State) :State=> {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchClaimTypesByPolicyTypeAndClaimCategorySuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n claimType: {\r\n ...state.claimType,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchClaimTypesByPolicyTypeAndClaimCategoryFailed = (state:State, action:PayloadAction):State=> {\r\n return {\r\n ...state,\r\n errorMessage: action.payload.body,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst clearClaimTypesState = ():State => {\r\n return INITIAL_STATE;\r\n};\r\n\r\n\r\nconst claimType = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_CLAIM_TYPES]: fetchClaimTypes,\r\n [ActionTypes.FETCH_CLAIM_TYPES_SUCCESS]: fetchClaimTypesSuccess,\r\n [ActionTypes.FETCH_CLAIM_TYPES_FAILED]: fetchClaimTypesFailed,\r\n [ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY]: fetchClaimTypesByPolicyTypeAndClaimCategory,\r\n [ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_SUCCESS]: fetchClaimTypesByPolicyTypeAndClaimCategorySuccess,\r\n [ActionTypes.FETCH_CLAIM_TYPES_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_FAILED]: fetchClaimTypesByPolicyTypeAndClaimCategoryFailed,\r\n [ActionTypes.CLEAR_CLAIM_TYPES_STATE]: clearClaimTypesState,\r\n [ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT]: clearClaimTypesState,\r\n\r\n});\r\n\r\nexport default claimType;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailedAction,\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccessAction,\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailedAction,\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccessAction,\r\n} from '../actions/questionGroupStep';\r\ntype State={\r\n questionGroupStep:{\r\n byId: { [id: string]: string} | any,\r\n allIds:Array\r\n }\r\n loading: boolean,\r\n errorMessage: null | any\r\n}\r\nconst INITIAL_STATE :State= {\r\n questionGroupStep: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchQuestionGroupStep = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchQuestionGroupStepSuccess = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchQuestionGroupStepFailed = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n questionGroupStep: {\r\n ...state.questionGroupStep,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailed = (state:State, action:PayloadAction) => {\r\n return {\r\n ...state,\r\n errorMessage:action.payload.body,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplication = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccess = (state:State,\r\n action:PayloadAction)\r\n :State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n questionGroupStep: {\r\n ...state.questionGroupStep,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\nconst fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailed = (state:State,\r\n action: PayloadAction)\r\n :State => {\r\n return {\r\n ...state,\r\n errorMessage:action.payload.body,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst clearGroupStepState = ():State => {\r\n return INITIAL_STATE;\r\n};\r\n\r\nconst questionGroupStep = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP]:\r\n fetchQuestionGroupStep,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_SUCCESS]:\r\n fetchQuestionGroupStepSuccess,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_FAILED]:\r\n fetchQuestionGroupStepFailed,\r\n [ActionTypes.CLEAR_QUESTION_GROUP_STEP]:\r\n clearGroupStepState,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_SUCCESS]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeSuccess,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_FAILED]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeFailed,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplication,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_SUCCESS]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationSuccess,\r\n [ActionTypes.FETCH_QUESTION_GROUP_STEP_BY_POLICY_TYPE_AND_CLAIM_CATEGORY_AND_CLAIM_TYPE_BY_CLAIM_APPLICATION_FAILED]:\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationFailed,\r\n});\r\n\r\nexport default questionGroupStep;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchClaimCategoriesByPolicyTypeFailedAction,\r\n fetchClaimCategoriesByPolicyTypeSuccessAction,\r\n} from '../actions/claimCategory';\r\ntype State={\r\n claimCategory: {\r\n byId: { [id: string]: any},\r\n allIds: Array | [],\r\n }| any,\r\n loading: boolean,\r\n errorMessage: null | Array | any,\r\n}\r\nconst INITIAL_STATE:State = {\r\n claimCategory: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchClaimCategories = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimCategoriesSuccess = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimCategoriesFailed = (state:State):State => {\r\n return state;\r\n};\r\n\r\nconst fetchClaimCategoriesByPolicyType = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchClaimCategoriesByPolicyTypeSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n claimCategory: {\r\n ...state.claimCategory,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchClaimCategoriesByPolicyTypeFailed = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n errorMessage: action.payload.body,\r\n loading: false,\r\n };\r\n};\r\nconst clearClaimCategory = ():State => {\r\n return {\r\n ...INITIAL_STATE,\r\n };\r\n\r\n};\r\n\r\nconst claimCategory = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES]: fetchClaimCategories,\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES_SUCCESS]: fetchClaimCategoriesSuccess,\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES_FAILED]: fetchClaimCategoriesFailed,\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE]: fetchClaimCategoriesByPolicyType,\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_SUCCESS]: fetchClaimCategoriesByPolicyTypeSuccess,\r\n [ActionTypes.FETCH_CLAIM_CATEGORIES_BY_POLICY_TYPE_FAILED]: fetchClaimCategoriesByPolicyTypeFailed,\r\n [ActionTypes.CLEAR_CLAIM_CATEGORY_STATE]: clearClaimCategory,\r\n [ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT]: clearClaimCategory,\r\n});\r\n\r\nexport default claimCategory;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {fetchPolicyTypesFailedAction, fetchPolicyTypesSuccessAction} from '../actions/policyType';\r\ntype State={\r\n policyType:{\r\n byId: { [id: string]: any} | {},\r\n allIds:Array\r\n }\r\n loading: boolean,\r\n errorMessage: null | any\r\n}\r\nconst INITIAL_STATE:State = {\r\n policyType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchPolicyTypes = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchPolicyTypesSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n policyType: {\r\n ...state.policyType,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchPolicyTypesFailed = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n errorMessage:action.payload.body,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst clearPolicyTypes=():State=>{\r\n return {\r\n ...INITIAL_STATE,\r\n };\r\n\r\n};\r\n\r\nconst policyType = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_POLICY_TYPES]: fetchPolicyTypes,\r\n [ActionTypes.FETCH_POLICY_TYPES_SUCCESS]: fetchPolicyTypesSuccess,\r\n [ActionTypes.FETCH_POLICY_TYPES_FAILED]: fetchPolicyTypesFailed,\r\n [ActionTypes.CLEAR_POLICY_TYPE]:clearPolicyTypes,\r\n\r\n});\r\n\r\nexport default policyType;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\n\r\ntype AnswerState = {\r\n answer?: {\r\n policyType: string,\r\n claimCategory: string,\r\n formType: string,\r\n answerFromGroupSteps: any,\r\n activeGroupStepCode: any | string,\r\n currency: any | string,\r\n loadingAddresses: any | Array,\r\n policyTypeCode?: string;\r\n claimApplicationId?: string;\r\n answers?: Array;\r\n claimCategoryCode?: string;\r\n formTypeCode?: string;\r\n } | any,\r\n draftClaimApplicationList?: any | Array,\r\n loading?: boolean,\r\n submittedLoading?: boolean,\r\n errorMessage?: any | string,\r\n loadingNoSubmittedDraft?: boolean | undefined,\r\n};\r\ntype ChangePayload = {\r\n name: string;\r\n value: string;\r\n}\r\n\r\ntype DraftClaimApplicationByUsePayload ={\r\n body: {\r\n data: {\r\n policyType: string;\r\n policyTypeCode: string;\r\n claimCategory: string;\r\n formType: string;\r\n answerFromGroupSteps: Array;\r\n claimApplicationId: string;\r\n answers: Array;\r\n claimCategoryCode: string;\r\n formTypeCode: string;\r\n activeGroupStepCode: string;\r\n }\r\n }\r\n}\r\nconst INITIAL_STATE: AnswerState = {\r\n answer: {\r\n policyType: '',\r\n claimCategory: '',\r\n formType: '',\r\n answerFromGroupSteps: {},\r\n activeGroupStepCode: null,\r\n currency: null,\r\n loadingAddresses: null,\r\n },\r\n draftClaimApplicationList: null,\r\n loading: false,\r\n submittedLoading: false,\r\n errorMessage: null,\r\n loadingNoSubmittedDraft: false,\r\n};\r\n\r\nconst changeAnswerState = (state: AnswerState, action: PayloadAction):any => {\r\n return {\r\n ...state,\r\n answer: {\r\n ...state.answer,\r\n [action.payload.name]: action.payload.value,\r\n },\r\n };\r\n};\r\n\r\nconst redirectAfterClaimSubmit = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n answer: {...INITIAL_STATE.answer},\r\n };\r\n};\r\n\r\nconst fetchDraftClaimApplicationByUser = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n submittedLoading: true,\r\n loadingNoSubmittedDraft: true,\r\n };\r\n};\r\n\r\nconst fetchDraftClaimApplicationByUserSuccess = (state:AnswerState, action:PayloadAction) => {\r\n const {data} = action.payload.body;\r\n if (!data) {\r\n return {\r\n ...state,\r\n submittedLoading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n }\r\n const answerWithCurrency = data.answers.length > 0 ? data.answers.find((answer: { currency: string; }) => answer.currency) : null;\r\n const newState = {\r\n policyType: data && data.policyTypeCode ? data.policyTypeCode : '',\r\n claimCategory: data && data.claimCategoryCode ? data.claimCategoryCode : '___',\r\n formType: data && data.formTypeCode ? data.formTypeCode : '___',\r\n answerFromGroupSteps: data.answers,\r\n claimApplicationId: data.claimApplicationId,\r\n };\r\n\r\n return {\r\n ...state,\r\n answer: {\r\n ...newState,\r\n activeGroupStepCode: data && data.activeGroupStepCode ? data.activeGroupStepCode : null,\r\n currency: answerWithCurrency ? answerWithCurrency.currency : null,\r\n },\r\n submittedLoading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n\r\n }\r\n;\r\nconst fetchDraftClaimApplicationByUserFailed = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n};\r\n\r\nconst fetchNoSubmittedDraftClaimApplicationByUser = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n loadingNoSubmittedDraft: true,\r\n };\r\n};\r\n\r\nconst fetchNoSubmittedDraftClaimApplicationByUserSuccess = (state:AnswerState, action:PayloadAction) => {\r\n const {data} = action.payload.body;\r\n if (!data) {\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n }\r\n const answerWithCurrency = data.answers.length > 0 ? data.answers.find((answer: { currency: string; }) => answer.currency) : null;\r\n const newState = {\r\n policyType: data && data.policyTypeCode ? data.policyTypeCode : '',\r\n claimCategory: data && data.claimCategoryCode ? data.claimCategoryCode : '___',\r\n formType: data && data.formTypeCode ? data.formTypeCode : '___',\r\n answerFromGroupSteps: data.answers,\r\n claimApplicationId: data.claimApplicationId,\r\n };\r\n\r\n return {\r\n ...state,\r\n answer: {\r\n ...newState,\r\n activeGroupStepCode: data && data.activeGroupStepCode ? data.activeGroupStepCode : null,\r\n currency: answerWithCurrency ? answerWithCurrency.currency : null,\r\n },\r\n loading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n\r\n};\r\nconst fetchNoSubmittedDraftClaimApplicationByUserFailed = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n loading: false,\r\n loadingNoSubmittedDraft: false,\r\n };\r\n};\r\nconst clearAnswersFromGroupSteps = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n answer: {\r\n ...state.answer,\r\n answerFromGroupSteps: {},\r\n },\r\n };\r\n};\r\n\r\nconst fetchDraftClaimApplicationListByUser = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchDraftClaimApplicationListByUserSuccess = (state:any, action:PayloadAction) => {\r\n const {data} = action.payload.body;\r\n return {\r\n ...state,\r\n draftClaimApplicationList: data,\r\n loading: false,\r\n };\r\n\r\n};\r\n\r\nconst fetchDraftClaimApplicationListByUserFailed = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst clearAnswersState = (state:AnswerState ) => {\r\n return {\r\n ...state,\r\n answer: {\r\n policyType: '',\r\n claimCategory: '',\r\n formType: '',\r\n answerFromGroupSteps: {},\r\n activeGroupStepCode: null,\r\n currency: null,\r\n loadingAddresses: null,\r\n },\r\n };\r\n};\r\n\r\nconst clearPolicyTypeCombinationState = (state:AnswerState) => {\r\n return {\r\n ...state,\r\n answer: {\r\n policyType: '',\r\n claimCategory: '',\r\n formType: '',\r\n answerFromGroupSteps: {},\r\n activeGroupStepCode: null,\r\n currency: null,\r\n loadingAddresses: null,\r\n },\r\n };\r\n};\r\n\r\nconst answer = createReducer(INITIAL_STATE, {\r\n [ActionTypes.CHANGE_ANSWER_STATE]: changeAnswerState,\r\n [ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT]: redirectAfterClaimSubmit,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER]: fetchDraftClaimApplicationByUser,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS]: fetchDraftClaimApplicationByUserSuccess,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED]: fetchDraftClaimApplicationByUserFailed,\r\n [ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER]: fetchNoSubmittedDraftClaimApplicationByUser,\r\n [ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS]: fetchNoSubmittedDraftClaimApplicationByUserSuccess,\r\n [ActionTypes.GET_NO_SUBMITTED_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED]: fetchNoSubmittedDraftClaimApplicationByUserFailed,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER]: fetchDraftClaimApplicationListByUser,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_SUCCESS]: fetchDraftClaimApplicationListByUserSuccess,\r\n [ActionTypes.GET_DRAFT_CLAIM_APPLICATION_LIST_BY_USER_FAILED]: fetchDraftClaimApplicationListByUserFailed,\r\n [ActionTypes.CLEAR_ANSWERS_FROM_GROUP_STEPS]: clearAnswersFromGroupSteps,\r\n [ActionTypes.CLEAR_ANSWERS_STATE]: clearAnswersState,\r\n [ActionTypes.CLEAR_POLICY_TYPE_COMBINATION]: clearPolicyTypeCombinationState,\r\n});\r\n\r\nexport default answer;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {fetchQuestionValidationRuleSuccessAction} from '../actions/questionValidationRule';\r\ntype State={\r\n questionValidationRule:{\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | null\r\n }\r\n loading: boolean,\r\n errorMessage: null | any\r\n}\r\nconst INITIAL_STATE:State = {\r\n questionValidationRule: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchQuestionValidationRule = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchQuestionValidationRuleSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n questionValidationRule: {\r\n ...state.questionValidationRule,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchQuestionValidationRuleFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst questionValidationRule = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_QUESTION_VALIDATION_RULE]: fetchQuestionValidationRule,\r\n [ActionTypes.FETCH_QUESTION_VALIDATION_RULE_SUCCESS]: fetchQuestionValidationRuleSuccess,\r\n [ActionTypes.FETCH_QUESTION_VALIDATION_RULE_FAILED]: fetchQuestionValidationRuleFailed,\r\n});\r\n\r\nexport default questionValidationRule;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n changeClaimApplicationStateAction,\r\n createWithdrawnClaimApplicationSuccessAction,\r\n fetchClaimApplicationBankAccountAnswersSuccessAction,\r\n fetchClaimApplicationByIdSuccessAction,\r\n fetchClaimApplicationsFailedAction,\r\n fetchClaimApplicationsSuccessAction, fetchClaimApplicationTemplateSuccessAction,\r\n} from '../actions/claimApplication';\r\n\r\ninterface ClaimApplicationType {\r\n id: string,\r\n code?: string,\r\n description?: string,\r\n name?: string,\r\n ClaimApplicationState?: string\r\n}\r\n\r\ntype State = {\r\n claimApplication: {\r\n byId: {\r\n [id: string]: ClaimApplicationType | any\r\n } | {};\r\n allIds: Array | any;\r\n } | any;\r\n bankDetails: any,\r\n loading: boolean,\r\n loadingBankAccountAnswers: boolean,\r\n errorMessage: null | string | Array,\r\n pagination: null | any,\r\n submitting: boolean,\r\n isDraftApplicationRequestFinished: boolean,\r\n claimApplicationTemplate: {\r\n byId: {\r\n [id: string]: ClaimApplicationType | any\r\n } | {};\r\n allIds?: any[] | any;\r\n },\r\n}\r\n\r\ninterface Template extends State {\r\n bankDetails: any;\r\n submitting: boolean;\r\n pagination: any;\r\n loadingBankAccountAnswers: boolean;\r\n claimApplication: any;\r\n errorMessage: string | Array | null;\r\n loading: boolean;\r\n claimApplicationTemplate: { byId: { [p: string]: any } | {}; allIds?: any };\r\n isDraftApplicationRequestFinished: boolean;\r\n allIds: any[]\r\n}\r\n\r\n\r\nconst INITIAL_STATE: State = {\r\n claimApplication: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n bankDetails: [],\r\n loading: false,\r\n loadingBankAccountAnswers: false,\r\n errorMessage: null,\r\n pagination: null,\r\n submitting: false,\r\n isDraftApplicationRequestFinished: true,\r\n claimApplicationTemplate: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n};\r\n\r\nconst sendClaimApplication = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst sendClaimApplicationSuccess = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst sendClaimApplicationFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst updateClaimApplication = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst updateClaimApplicationSuccess = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst updateClaimApplicationFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationById = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationByIdSuccess = (state: State, action: PayloadAction): State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', [action.payload.body.data]);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n errorMessage: null,\r\n claimApplication: {\r\n byId,\r\n allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationByIdFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimApplications = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationsSuccess = (state: State, action: PayloadAction): State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n errorMessage: null,\r\n claimApplication: {\r\n byId,\r\n allIds,\r\n },\r\n pagination: {\r\n page: action.payload.body.page,\r\n limit: action.payload.body.limit,\r\n totalPages: action.payload.body.totalPages,\r\n count: action.payload.body.count,\r\n totalItems: action.payload.body.totalCount,\r\n },\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationsFailed = (state: State, action: PayloadAction): State => {\r\n const errorMessage = action.payload &&\r\n action.payload.response &&\r\n action.payload.response.body &&\r\n action.payload.response.body.errors &&\r\n action.payload.response.body.errors.length > 0 ?\r\n action.payload.response.body.errors.map((error: string) => error) : null;\r\n return {\r\n ...state,\r\n loading: false,\r\n errorMessage,\r\n };\r\n};\r\n\r\nconst changeClaimApplicationState = (state: State, action: PayloadAction): State => {\r\n return {\r\n ...state,\r\n [action.payload.key]: action.payload.value,\r\n };\r\n};\r\n\r\nconst sendDraftClaimApplicationByUser = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n isDraftApplicationRequestFinished: false,\r\n };\r\n};\r\n\r\nconst sendDraftClaimApplicationByUserSuccess = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n isDraftApplicationRequestFinished: true,\r\n };\r\n};\r\n\r\nconst sendDraftClaimApplicationByUserFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n isDraftApplicationRequestFinished: true,\r\n };\r\n};\r\n\r\nconst createClaimApplicationTransition = (state: State) => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n };\r\n};\r\n\r\nconst createClaimApplicationTransitionSuccess = (state: State) => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\nconst createClaimApplicationTransitionFailed = (state: State) => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationBankAccountAnswers = (state: State): State => {\r\n return {\r\n ...state,\r\n loadingBankAccountAnswers: true,\r\n bankDetails: [],\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationBankAccountAnswersSuccess = (state: State, action: PayloadAction): State => {\r\n return {\r\n ...state,\r\n loadingBankAccountAnswers: false,\r\n bankDetails: action.payload?.body?.data,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationBankAccountAnswersFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n loadingBankAccountAnswers: false,\r\n };\r\n};\r\n\r\nconst updateClaimApplicationTransition = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n };\r\n};\r\n\r\nconst updateClaimApplicationTransitionSuccess = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\nconst updateClaimApplicationTransitionFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\nconst createWithdrawnClaimApplication = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n };\r\n};\r\n\r\nconst createWithdrawnClaimApplicationSuccess = (state: State, action: PayloadAction): State => {\r\n let claimApplicationId: any = action.payload.body.data;\r\n\r\n return {\r\n ...state,\r\n submitting: false,\r\n\r\n claimApplication: {\r\n ...state.claimApplication,\r\n byId: {\r\n ...state.claimApplication.byId,\r\n [claimApplicationId]: {\r\n ...state.claimApplication.byId[claimApplicationId],\r\n withdrawn: true,\r\n },\r\n },\r\n allIds: state.claimApplication.allIds,\r\n },\r\n };\r\n};\r\n\r\nconst createWithdrawnClaimApplicationFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\n\r\nconst fetchClaimApplicationTemplate = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchClaimApplicationTemplateSuccess = (state: State, action: PayloadAction): Template => {\r\n let claimApplicationId = action.payload.body.data;\r\n\r\n if (!claimApplicationId) {\r\n return {\r\n ...state,\r\n loading: false,\r\n\r\n claimApplicationTemplate: {\r\n ...state.claimApplicationTemplate,\r\n },\r\n allIds: [...state.claimApplicationTemplate.allIds],\r\n };\r\n }\r\n\r\n return {\r\n allIds: [],\r\n ...state,\r\n loading: false,\r\n claimApplicationTemplate: {\r\n ...state.claimApplicationTemplate,\r\n byId: {\r\n ...state.claimApplicationTemplate.byId,\r\n [claimApplicationId.claimApplicationId]: {\r\n ...state.claimApplication.byId[claimApplicationId.claimApplicationId],\r\n content: claimApplicationId.content,\r\n },\r\n },\r\n allIds: [...state.claimApplicationTemplate.allIds, claimApplicationId.claimApplicationId],\r\n },\r\n\r\n };\r\n\r\n\r\n};\r\nconst fetchClaimApplicationTemplateFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n\r\n};\r\n\r\n\r\nconst claimApplication = createReducer(INITIAL_STATE, {\r\n [ActionTypes.SEND_CLAIM_APPLICATION]: sendClaimApplication,\r\n [ActionTypes.SEND_CLAIM_APPLICATION_SUCCESS]: sendClaimApplicationSuccess,\r\n [ActionTypes.SEND_CLAIM_APPLICATION_FAILED]: sendClaimApplicationFailed,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION]: updateClaimApplication,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_SUCCESS]: updateClaimApplicationSuccess,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_FAILED]: updateClaimApplicationFailed,\r\n [ActionTypes.GET_CLAIM_APPLICATION_BY_ID]: fetchClaimApplicationById,\r\n [ActionTypes.GET_CLAIM_APPLICATION_BY_ID_SUCCESS]: fetchClaimApplicationByIdSuccess,\r\n [ActionTypes.GET_CLAIM_APPLICATION_BY_ID_FAILED]: fetchClaimApplicationByIdFailed,\r\n [ActionTypes.GET_CLAIM_APPLICATIONS]: fetchClaimApplications,\r\n [ActionTypes.GET_CLAIM_APPLICATIONS_SUCCESS]: fetchClaimApplicationsSuccess,\r\n [ActionTypes.GET_CLAIM_APPLICATIONS_FAILED]: fetchClaimApplicationsFailed,\r\n [ActionTypes.CHANGE_CLAIM_APPLICATION_STATE]: changeClaimApplicationState,\r\n [ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER]: sendDraftClaimApplicationByUser,\r\n [ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_SUCCESS]: sendDraftClaimApplicationByUserSuccess,\r\n [ActionTypes.SEND_DRAFT_CLAIM_APPLICATION_BY_USER_FAILED]: sendDraftClaimApplicationByUserFailed,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS]: fetchClaimApplicationBankAccountAnswers,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_SUCCESS]: fetchClaimApplicationBankAccountAnswersSuccess,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_BANK_ACCOUNT_ANSWERS_FAILED]: fetchClaimApplicationBankAccountAnswersFailed,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT]: updateClaimApplicationTransition,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_SUCCESS]: updateClaimApplicationTransitionSuccess,\r\n [ActionTypes.UPDATE_CLAIM_APPLICATION_BANK_ACCOUNT_FAILED]: updateClaimApplicationTransitionFailed,\r\n [ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION]: createWithdrawnClaimApplication,\r\n [ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_SUCCESS]: createWithdrawnClaimApplicationSuccess,\r\n [ActionTypes.CREATE_WITHDRAWN_CLAIM_APPLICATION_FAILED]: createWithdrawnClaimApplicationFailed,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE]: fetchClaimApplicationTemplate,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_SUCCESS]: fetchClaimApplicationTemplateSuccess,\r\n [ActionTypes.FETCH_CLAIM_APPLICATION_TEMPLATE_FAILED]: fetchClaimApplicationTemplateFailed,\r\n});\r\n\r\nexport default claimApplication;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {fetchDocumentTypesFailedAction, fetchDocumentTypesSuccessAction} from '../actions/documentType';\r\ntype State={\r\n documentType: {\r\n byId: { [id: string]: any} | {},\r\n allIds:Array\r\n } | any,\r\n loading: boolean,\r\n errorMessage: null | Array | any,\r\n}\r\nconst INITIAL_STATE = {\r\n documentType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n errorMessage: null,\r\n};\r\n\r\nconst fetchDocumentTypes = (state:State) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchDocumentTypesSuccess = (state:State, action:PayloadAction) => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n documentType: {\r\n ...state.documentType,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchDocumentTypesFailed = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n errorMessage:action.payload.body,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst documentType = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_DOCUMENT_TYPES]: fetchDocumentTypes,\r\n [ActionTypes.FETCH_DOCUMENT_TYPES_SUCCESS]: fetchDocumentTypesSuccess,\r\n [ActionTypes.FETCH_DOCUMENT_TYPES_FAILED]: fetchDocumentTypesFailed,\r\n});\r\n\r\nexport default documentType;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {AragButtons} from '../actions/applicationSettings';\r\n\r\ninterface ApiApplicationSettings {\r\n mobileScreenSizeWidth: number,\r\n maxAttachmentSizeInMB: number,\r\n enableCaptcha: boolean,\r\n enableAutoSave: boolean,\r\n isSwitchingLanguageEnabled: boolean,\r\n aragTelephoneNumber: string,\r\n aragSubText: string,\r\n aragImageHeroArea: string,\r\n aragHeaderText: string,\r\n aragCollapsedImageHeroArea: string,\r\n aragButtons: Array\r\n}\r\n type State={\r\n apiApplicationSettings:ApiApplicationSettings | any;\r\n loading:boolean\r\n}\r\nconst INITIAL_STATE:State = {\r\n apiApplicationSettings: {},\r\n loading: false,\r\n};\r\n\r\nconst fetchApplicationSettings = (state:State) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchApplicationSettingsSuccess = (state:State, action:PayloadAction):State=> {\r\n return {\r\n ...state,\r\n loading: false,\r\n apiApplicationSettings: GENERAL_FUNCTIONS.extractDataFromResponseObject(action.payload),\r\n };\r\n};\r\n\r\nconst fetchApplicationSettingsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst applicationSettings = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_APPLICATION_SETTINGS]: fetchApplicationSettings,\r\n [ActionTypes.FETCH_APPLICATION_SETTINGS_SUCCESS]: fetchApplicationSettingsSuccess,\r\n [ActionTypes.FETCH_APPLICATION_SETTINGS_FAILED]: fetchApplicationSettingsFailed,\r\n});\r\n\r\nexport default applicationSettings;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchCommunicatorHistorySuccessAction,\r\n fetchCommunicatorMessageSuccessAction,\r\n} from '../actions/communicatorMessage';\r\n\r\ntype State={\r\n communicatorMessage:Array | any,\r\n loading: boolean,\r\n posting: boolean,\r\n errorMessage: null | any,\r\n pagination:any,\r\n\r\n}\r\nconst INITIAL_STATE :State= {\r\n communicatorMessage:[],\r\n loading: false,\r\n posting: false,\r\n errorMessage: null,\r\n pagination:{},\r\n\r\n};\r\n\r\nconst fetchCommunicatorMessage = (state:State) :State=> {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\n\r\nconst fetchCommunicatorMessageSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n communicatorMessage: {\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\n\r\nconst fetchCommunicatorMessageFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\n\r\nconst createCommunicatorMessage = (state:State):State => {\r\n return {\r\n ...state,\r\n posting: true,\r\n };\r\n};\r\n\r\n\r\nconst createCommunicatorMessageSuccess = (state:State):State => {\r\n return {\r\n ...state,\r\n posting: false,\r\n };\r\n};\r\n\r\n\r\nconst createCommunicatorMessageFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n posting: false,\r\n };\r\n};\r\n\r\nconst fetchCommunicatorHistory = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\n\r\nconst fetchCommunicatorHistorySuccess = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n communicatorMessage:action.payload.body.data,\r\n pagination: {\r\n page: action.payload.body?.page,\r\n limit: action.payload.body?.limit,\r\n totalPages: action.payload.body?.totalPages,\r\n count: action.payload.body?.count,\r\n totalCount: action.payload.body?.totalCount,\r\n },\r\n };\r\n};\r\nconst fetchCommunicatorHistoryFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\n\r\nconst communicatorMessage = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_COMMUNICATOR_MESSAGE]: fetchCommunicatorMessage,\r\n [ActionTypes.FETCH_COMMUNICATOR_MESSAGE_SUCCESS]: fetchCommunicatorMessageSuccess,\r\n [ActionTypes.FETCH_COMMUNICATOR_MESSAGE_FAILED]: fetchCommunicatorMessageFailed,\r\n [ActionTypes.CREATE_COMMUNICATOR_MESSAGE]: createCommunicatorMessage,\r\n [ActionTypes.CREATE_COMMUNICATOR_MESSAGE_SUCCESS]: createCommunicatorMessageSuccess,\r\n [ActionTypes.CREATE_COMMUNICATOR_MESSAGE_FAILED]: createCommunicatorMessageFailed,\r\n [ActionTypes.FETCH_COMMUNICATOR_HISTORY]: fetchCommunicatorHistory,\r\n [ActionTypes.FETCH_COMMUNICATOR_HISTORY_SUCCESS]: fetchCommunicatorHistorySuccess,\r\n [ActionTypes.FETCH_COMMUNICATOR_HISTORY_FAILED]: fetchCommunicatorHistoryFailed,\r\n});\r\n\r\nexport default communicatorMessage;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n acceptClaimReviewSuccessAction,\r\n ClaimReviewDetails,\r\n fetchClaimReviewDetailsSuccessAction,\r\n fetchClaimReviewValiditySuccessAction,\r\n fetchRejectionFormClaimReviewSuccessAction,\r\n rejectClaimReviewWithReasonSuccessAction,\r\n} from '../actions/claimReview';\r\ninterface ClaimOverview{\r\n claimReference: string,\r\n policyTypeName: string,\r\n claimCategoryName: string,\r\n claimTypeName: string,\r\n formTypeName: string,\r\n}\r\ntype State={\r\n claimReview:ClaimReviewDetails;\r\n claimReviewDetails:{\r\n question:{\r\n byId: { [id: string]: any},\r\n allIds: Array | [] ,\r\n }\r\n questionType:{\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | [] |null\r\n\r\n }\r\n questionGroupStep:{\r\n byId: { [id: string]: any} | null,\r\n allIds:Array | [] | null,\r\n }\r\n answers: null | Array,\r\n currencies: null | Array,\r\n overview: null| ClaimOverview;\r\n }\r\n claimReviewAcceptedRejectedWordings: null | Array,\r\n rejectedReasonClaimReview: null | Array,\r\n isClaimReviewValid: null | boolean,\r\n loading: boolean,\r\n errorMessage: null | any,\r\n submitting: boolean,\r\n rejectFormLoading:boolean,\r\n}\r\nconst INITIAL_STATE: State = {\r\n claimReview: {\r\n claimApplicationId: null,\r\n randomId: null,\r\n email: null,\r\n passCode: null,\r\n },\r\n claimReviewDetails: {\r\n question: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n questionType: {\r\n byId: null,\r\n allIds: null,\r\n },\r\n questionGroupStep: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n answers: null,\r\n overview: null,\r\n currencies: null\r\n },\r\n claimReviewAcceptedRejectedWordings: null,\r\n rejectedReasonClaimReview: null,\r\n isClaimReviewValid: null,\r\n loading: false,\r\n errorMessage: null,\r\n submitting: false,\r\n rejectFormLoading:false,\r\n};\r\n\r\nconst fetchClaimReviewValidity = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimReviewValiditySuccess = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n isClaimReviewValid: action.payload.body.data,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimReviewValidityFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n isClaimReviewValid: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchClaimReviewDetails = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n };\r\n};\r\n\r\nconst fetchClaimReviewDetailsSuccess = (state:State, action:PayloadAction):State => {\r\n let response = {\r\n question: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n questionType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n questionGroupStep: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n answers: null,\r\n currencies: []\r\n };\r\n\r\n if (action.payload.body.data.questions) {\r\n const { byId, allIds } = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data.questions);\r\n\r\n response = {\r\n ...response,\r\n question: {\r\n ...response.question,\r\n byId,\r\n allIds: allIds as any,\r\n },\r\n };\r\n }\r\n\r\n if (action.payload.body.data.questionGroupSteps) {\r\n const { byId, allIds } = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload.body.data.questionGroupSteps);\r\n\r\n response = {\r\n ...response,\r\n questionGroupStep: {\r\n ...response.questionGroupStep,\r\n byId,\r\n allIds: allIds as any,\r\n },\r\n };\r\n }\r\n\r\n if (action.payload.body.data.questionTypes) {\r\n const { byId, allIds } = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data.questionTypes);\r\n\r\n response = {\r\n ...response,\r\n questionType: {\r\n ...response.questionType,\r\n byId,\r\n allIds: allIds as any,\r\n },\r\n };\r\n }\r\n\r\n return {\r\n ...state,\r\n submitting: false,\r\n claimReviewDetails: {\r\n ...response,\r\n answers: action.payload.body.data.answers,\r\n currencies: action.payload.body.data.currencies,\r\n overview: {\r\n claimReference: action.payload.body.data.claimReference,\r\n policyTypeName: action.payload.body.data.policyTypeName,\r\n claimCategoryName: action.payload.body.data.claimCategoryName,\r\n claimTypeName: action.payload.body.data.claimTypeName,\r\n formTypeName: action.payload.body.data.formTypeName,\r\n },\r\n },\r\n };\r\n};\r\n\r\nconst fetchClaimReviewDetailsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\n\r\nconst acceptClaimReview = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst acceptClaimReviewSuccess = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n claimReviewAcceptedRejectedWordings: action.payload.body.data,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst acceptClaimReviewFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n };\r\n};\r\n\r\nconst fetchRejectionFormClaimReview = (state:State):State => {\r\n return {\r\n ...state,\r\n rejectFormLoading: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchRejectionFormClaimReviewSuccess = (state:State, action:PayloadAction) => {\r\n return {\r\n ...state,\r\n rejectFormLoading: false,\r\n rejectedReasonClaimReview: action.payload.body.data,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchRejectionFormClaimReviewFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n rejectFormLoading: false,\r\n };\r\n};\r\n\r\nconst rejectClaimReviewWithReason = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: true,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst rejectClaimReviewWithReasonSuccess = (state: State, action: PayloadAction) :State=> {\r\n return {\r\n ...state,\r\n submitting: false,\r\n claimReviewAcceptedRejectedWordings:action.payload.body.data,\r\n };\r\n};\r\n\r\nconst rejectClaimReviewWithReasonFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n submitting: false,\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst changeClaimReviewAnswerStateAction = (state:State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n claimReview: {\r\n ...state.claimReview,\r\n ...action.payload,\r\n },\r\n };\r\n};\r\n\r\nconst changeClaimReviewStateAction = (state: State, action:PayloadAction):State => {\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n};\r\n\r\n\r\nconst claimReview = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY]: fetchClaimReviewValidity,\r\n [ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_SUCCESS]: fetchClaimReviewValiditySuccess,\r\n [ActionTypes.FETCH_CLAIM_REVIEW_VALIDITY_FAILED]: fetchClaimReviewValidityFailed,\r\n [ActionTypes.FETCH_CLAIM_REVIEW_DETAILS]: fetchClaimReviewDetails,\r\n [ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_SUCCESS]: fetchClaimReviewDetailsSuccess,\r\n [ActionTypes.FETCH_CLAIM_REVIEW_DETAILS_FAILED]: fetchClaimReviewDetailsFailed,\r\n [ActionTypes.ACCEPT_CLAIM_REVIEW]: acceptClaimReview,\r\n [ActionTypes.ACCEPT_CLAIM_REVIEW_SUCCESS]: acceptClaimReviewSuccess,\r\n [ActionTypes.ACCEPT_CLAIM_REVIEW_FAILED]: acceptClaimReviewFailed,\r\n [ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW]: fetchRejectionFormClaimReview,\r\n [ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_SUCCESS]: fetchRejectionFormClaimReviewSuccess,\r\n [ActionTypes.FETCH_REJECTION_FORM_CLAIM_REVIEW_FAILED]: fetchRejectionFormClaimReviewFailed,\r\n [ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON]: rejectClaimReviewWithReason,\r\n [ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_SUCCESS]: rejectClaimReviewWithReasonSuccess,\r\n [ActionTypes.REJECT_CLAIM_REVIEW_WITH_REASON_FAILED]: rejectClaimReviewWithReasonFailed,\r\n [ActionTypes.CHANGE_CLAIM_REVIEW_ANSWERS_STATE]: changeClaimReviewAnswerStateAction,\r\n [ActionTypes.CHANGE_CLAIM_REVIEW_STATE]: changeClaimReviewStateAction,\r\n});\r\n\r\nexport default claimReview;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {\r\n fetchClaimDocumentSuccessAction,\r\n fetchClaimDocumentWithQueryParamsSuccessAction,\r\n} from '../actions/claimDocument';\r\n\r\ntype State = {\r\n claimDocument: {\r\n byId: { [id: string]: any },\r\n allIds: Array | [],\r\n } | any,\r\n pagination: {\r\n page: number,\r\n limit:number,\r\n totalPages:number,\r\n count:number,\r\n totalCount:number,\r\n\r\n } | null;\r\n loading: boolean\r\n}\r\nconst INITIAL_STATE :State = {\r\n claimDocument: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n pagination: null,\r\n loading: true,\r\n};\r\n\r\n\r\nconst fetchClaimDocument = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchClaimDocumentSuccess = (state:State, action:PayloadAction):State=> {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n return {\r\n ...state,\r\n loading: false,\r\n claimDocument: {\r\n byId,\r\n allIds,\r\n },\r\n\r\n };\r\n};\r\n\r\nconst fetchClaimDocumentFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst fetchClaimDocumentWithQueryParams = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchClaimDocumentWithQueryParamsSuccess = (state:State, action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n return {\r\n ...state,\r\n loading: false,\r\n claimDocument: {\r\n byId,\r\n allIds,\r\n },\r\n pagination: {\r\n page: action.payload.body.page,\r\n limit: action.payload.body.limit,\r\n totalPages: action.payload.body.totalPages,\r\n count: action.payload.body.count,\r\n totalCount: action.payload.body.totalCount,\r\n },\r\n\r\n };\r\n};\r\n\r\nconst fetchClaimDocumentWithQueryParamsFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst claimDocument = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_CLAIM_DOCUMENT]: fetchClaimDocument,\r\n [ActionTypes.FETCH_CLAIM_DOCUMENT_SUCCESS]: fetchClaimDocumentSuccess,\r\n [ActionTypes.FETCH_CLAIM_DOCUMENT_FAILED]: fetchClaimDocumentFailed,\r\n [ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS]: fetchClaimDocumentWithQueryParams,\r\n [ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_SUCCESS]: fetchClaimDocumentWithQueryParamsSuccess,\r\n [ActionTypes.FETCH_DOCUMENT_TYPES_WITH_QUERY_PARAMS_FAILED]: fetchClaimDocumentWithQueryParamsFailed,\r\n});\r\n\r\n\r\nexport default claimDocument;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport {fetchFormTypesByPolicyAndCategoryCodeSuccessAction} from '../actions/formType';\r\n\r\ntype State={\r\n loading: boolean;\r\n formType:{\r\n byId: { [id: string]: any} | any,\r\n allIds:Array\r\n }\r\n}\r\nconst INITIAL_STATE: State= {\r\n loading: false,\r\n formType: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n};\r\n\r\n\r\nconst fetchFormTypesByPolicyAndCategoryCode = (state:State) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchFormTypesByPolicyAndCategoryCodeSuccess = (state:State,action:PayloadAction):State => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('id', action.payload.body.data);\r\n return {\r\n ...state,\r\n loading: false,\r\n formType: {\r\n ...state.formType,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n};\r\n\r\nconst fetchFormTypesByPolicyAndCategoryCodeFailed = (state:State):State => {\r\n return {\r\n ...state,\r\n loading:false,\r\n };\r\n};\r\n\r\nconst fetchFormTypes=(state:State):State=>{\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst fetchFormTypesSuccess=(state:State):State=>{\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst fetchFormTypesFailed=(state:State):State=>{\r\n return {\r\n ...state,\r\n };\r\n};\r\n\r\nconst clearFormTypesState = ():State => {\r\n return INITIAL_STATE;\r\n};\r\n\r\nconst formType = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_FORM_TYPES]: fetchFormTypes,\r\n [ActionTypes.FETCH_FORM_TYPES_SUCCESS]: fetchFormTypesSuccess,\r\n [ActionTypes.FETCH_FORM_TYPES_FAILED]: fetchFormTypesFailed,\r\n [ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE]: fetchFormTypesByPolicyAndCategoryCode,\r\n [ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_SUCCESS]: fetchFormTypesByPolicyAndCategoryCodeSuccess,\r\n [ActionTypes.FETCH_FORM_TYPES_BY_POLICY_AND_CATEGORY_CODE_FAILED]: fetchFormTypesByPolicyAndCategoryCodeFailed,\r\n [ActionTypes.CLEAR_FORM_TYPES_STATE]: clearFormTypesState,\r\n [ActionTypes.REDIRECT_AFTER_CLAIM_SUBMIT]: clearFormTypesState,\r\n});\r\n\r\nexport default formType;\r\n","import {createReducer, PayloadAction} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport {fetchSurveyTypeSuccessAction} from '../actions/survey';\r\n\r\ntype State = {\r\n surveyType: any\r\n loading: boolean,\r\n posting: boolean,\r\n postingSuccessBody: {\r\n title: string;\r\n SurveyTypeId: string\r\n\r\n } | null\r\n errorMessage: any,\r\n}\r\nconst INITIAL_STATE: State = {\r\n surveyType: [],\r\n loading: false,\r\n posting: false,\r\n postingSuccessBody: null,\r\n errorMessage: null,\r\n\r\n};\r\n\r\nconst fetchSurveyType = (state: State): State => {\r\n return {\r\n ...state,\r\n loading: true,\r\n errorMessage: null,\r\n surveyType: [],\r\n };\r\n};\r\n\r\nconst fetchSurveyTypeSuccess = (state: State, action: PayloadAction): State => {\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n surveyType: action.payload.body.data && action.payload.body?.data?.length >=2 ?\r\n action.payload.body.data.map((survey: any) => {\r\n return {...survey, completed: false };\r\n }) : action.payload.body.data.map((survey: any) => {\r\n return {...survey, completed: false};\r\n }),\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst fetchSurveyTypeFailed = (state: State): State => {\r\n const mockErrorObject = {\r\n content: 'There are no surveys available for this Claim application.',\r\n link: null,\r\n surveyTypeId: null,\r\n title: ' ',\r\n error:true,\r\n } as any;\r\n return {\r\n ...state,\r\n loading: false,\r\n errorMessage: {\r\n ...mockErrorObject,\r\n },\r\n };\r\n};\r\n\r\nconst postSurveyAnswers = (state: State): State => {\r\n return {\r\n ...state,\r\n posting: true,\r\n errorMessage: null,\r\n\r\n };\r\n};\r\n\r\nconst postSurveyAnswersSuccess = (state: State, action: any): State => {\r\n const surveyTypeId = action.payload.body.data.surveyTypeId;\r\n return {\r\n ...state,\r\n posting: false,\r\n postingSuccessBody: action.payload.body.data,\r\n surveyType: state.surveyType.map((survey: any) => {\r\n if (survey.surveyTypeId === surveyTypeId) {\r\n return {...survey, completed: true};\r\n } else {\r\n return {...survey};\r\n }\r\n }),\r\n errorMessage: null,\r\n };\r\n};\r\n\r\nconst postSurveyAnswersFailed = (state: State): State => {\r\n return {\r\n ...state,\r\n posting: false,\r\n };\r\n};\r\n\r\nconst survey = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_SURVEY_TYPE]: fetchSurveyType,\r\n [ActionTypes.FETCH_SURVEY_TYPE_SUCCESS]: fetchSurveyTypeSuccess,\r\n [ActionTypes.FETCH_SURVEY_TYPE_FAILED]: fetchSurveyTypeFailed,\r\n [ActionTypes.POST_SURVEY_ANSWERS]: postSurveyAnswers,\r\n [ActionTypes.POST_SURVEY_ANSWERS_SUCCESS]: postSurveyAnswersSuccess,\r\n [ActionTypes.POST_SURVEY_ANSWERS_FAILED]: postSurveyAnswersFailed,\r\n});\r\n\r\nexport default survey;\r\n","import {createReducer} from '@reduxjs/toolkit';\r\nimport * as ActionTypes from '../actions/types';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport { \r\n CurrencySchema,\r\n fetchCurrenciesAction, \r\n fetchCurrenciesFailedAction, \r\n fetchCurrenciesSuccessAction \r\n} from '../actions';\r\n\r\ntype CurrencyState={\r\n currency: {\r\n byId: { [id: string]: CurrencySchema},\r\n allIds: Array\r\n },\r\n loading: boolean,\r\n}\r\n\r\nconst INITIAL_STATE:CurrencyState = {\r\n currency: {\r\n byId: {},\r\n allIds: [],\r\n },\r\n loading: false,\r\n};\r\n\r\nconst fetchCurrencies = (state:CurrencyState, action:fetchCurrenciesAction)\r\n :CurrencyState => {\r\n return {\r\n ...state,\r\n loading: true,\r\n };\r\n};\r\n\r\nconst fetchCurrenciesSuccess = (state:CurrencyState, action:fetchCurrenciesSuccessAction)\r\n :CurrencyState => {\r\n const {byId, allIds} = GENERAL_FUNCTIONS\r\n .normalizeById('code', action.payload?.body?.data);\r\n\r\n return {\r\n ...state,\r\n loading: false,\r\n currency: {\r\n ...state.currency,\r\n byId: byId,\r\n allIds: allIds,\r\n },\r\n };\r\n\r\n};\r\n\r\nconst fetchCurrenciesFailed = (state:CurrencyState, action:fetchCurrenciesFailedAction)\r\n :CurrencyState=> {\r\n return {\r\n ...state,\r\n loading: false,\r\n };\r\n};\r\n\r\nconst currency = createReducer(INITIAL_STATE, {\r\n [ActionTypes.FETCH_CURRENCIES]: fetchCurrencies,\r\n [ActionTypes.FETCH_CURRENCIES_SUCCESS]: fetchCurrenciesSuccess,\r\n [ActionTypes.FETCH_CURRENCIES_FAILED]: fetchCurrenciesFailed,\r\n});\r\n\r\nexport default currency;\r\n","import {combineReducers} from 'redux';\r\nimport * as ActionsTypes from '../actions/types';\r\nimport applicationUser from './applicationUser';\r\nimport question from './question';\r\nimport questionType from './questionType';\r\nimport claimType from './claimType';\r\nimport questionGroupStep from './questionGroupStep';\r\nimport claimCategory from './claimCatgegory';\r\nimport policyType from './policyType';\r\nimport answer from './answer';\r\nimport questionValidationRule from './questionValidationRule';\r\nimport claimApplication from './claimApplication';\r\nimport documentType from './documentType';\r\nimport applicationSettings from './applicationSettings';\r\nimport message from './message';\r\nimport communicatorMessage from './communicatorMessage';\r\nimport claimReview from './claimReview';\r\nimport claimDocument from './claimDocument';\r\nimport formType from './formType';\r\nimport survey from './survey';\r\nimport currency from './currency';\r\n\r\nconst reducers = combineReducers({\r\n communicatorMessage,\r\n message,\r\n applicationSettings,\r\n documentType,\r\n claimCategory,\r\n questionGroupStep,\r\n claimType,\r\n questionType,\r\n question,\r\n applicationUser,\r\n policyType,\r\n answer,\r\n questionValidationRule,\r\n claimApplication,\r\n claimReview,\r\n claimDocument,\r\n formType,\r\n survey,\r\n currency\r\n});\r\n\r\nconst resettableRootReducer = (state, action) => {\r\n if (action.type === ActionsTypes.LOGOUT) {\r\n return reducers(undefined, action);\r\n }\r\n return reducers(state, action);\r\n};\r\n\r\nexport default resettableRootReducer;\r\n","import { run } from '@cycle/run';\r\nimport { makeHTTPDriver } from '@cycle/http';\r\nimport { createCycleMiddleware } from 'redux-cycles';\r\nimport { createLogger } from 'redux-logger';\r\nimport main from '../cycles';\r\nimport { createBrowserHistory } from 'history';\r\nimport reducers from '../reducers';\r\nimport { configureStore } from '@reduxjs/toolkit';\r\nimport {persistStore, persistReducer} from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n\r\nconst logger = createLogger({});\r\n\r\nconst middleWare = [];\r\n\r\nconst cycleMiddleware = createCycleMiddleware();\r\n\r\nconst { makeActionDriver, makeStateDriver } = cycleMiddleware;\r\n\r\nmiddleWare.push(cycleMiddleware);\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n middleWare.push(logger);\r\n} else {\r\n}\r\nconst persistConfig={\r\n key:'root',\r\n version: 1,\r\n storage: storage,\r\n whitelist:['applicationSettings']\r\n};\r\n\r\nconst reducer=persistReducer(persistConfig, reducers );\r\n\r\nexport const store = configureStore({\r\n reducer,\r\n middleware: middleWare,\r\n devTools: process.env.NODE_ENV !== 'production',\r\n});\r\n\r\nrun(main, {\r\n ACTION: makeActionDriver(),\r\n STATE: makeStateDriver(),\r\n HTTP: makeHTTPDriver(),\r\n});\r\n\r\n\r\nexport const history = createBrowserHistory({basename: process.env.REACT_APP_UI_VPATH});\r\n\r\nexport const persistor = persistStore(store);\r\n\r\n// Infer the `RootState` and `AppDispatch` types from the store itself\r\nexport type RootState = ReturnType\r\n// Inferred type: {posts: PostsState, comments: CommentsState, users: UsersState}\r\nexport type AppDispatch = typeof store.dispatch\r\n","import { useEffect, useRef } from 'react';\r\n\r\nconst usePrevious = (value) => {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n};\r\n\r\nexport default usePrevious;","import { useLocation, useRouteMatch } from 'react-router-dom';\r\nimport { useEffect } from 'react';\r\nimport usePrevious from './usePrevious';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst usePageTracking = () => {\r\n const location = useLocation();\r\n const activeMatch = useRouteMatch('/claim/:step');\r\n const prevActiveMatch = usePrevious(activeMatch);\r\n const policyType = useSelector(state => state.answer.answer.policyType);\r\n const claimCategory = useSelector(state => state.answer.answer.claimCategory);\r\n const claimType = useSelector(state => state.answer.answer.claimType);\r\n\r\n const submittedClaimMatch = useRouteMatch('/claim/:id/submitted');\r\n const prevSubmittedClaimMatch = usePrevious(submittedClaimMatch);\r\n\r\n // general page track\r\n useEffect(\r\n () => {\r\n if(\r\n location.pathname.indexOf('/submitted') < 0\r\n && location.pathname.indexOf('claim/') < 0\r\n ){\r\n createNewDataLayer({\r\n 'event' : 'VirtualPageview',\r\n 'language': 'en',\r\n 'status' : 'signed out',\r\n 'virtualPageURL': location.pathname,\r\n });\r\n }\r\n\r\n },\r\n [location.pathname],\r\n );\r\n\r\n // custom track when creating new claim\r\n useEffect(\r\n () => {\r\n if(\r\n (\r\n location.pathname.indexOf('/submitted') < 0\r\n && location.pathname.indexOf('claim/') >= 0\r\n ) && (\r\n (\r\n activeMatch\r\n && prevActiveMatch\r\n && activeMatch.params.step !== prevActiveMatch.params.step\r\n ) || (\r\n activeMatch && !prevActiveMatch\r\n )\r\n )\r\n ){\r\n const virtualPageUrl = `${getClaimFormBaseVirtualPageUrl(policyType, claimCategory, claimType)}${activeMatch.params.step}/`;\r\n\r\n createNewDataLayer({\r\n 'event' : 'VirtualPageview',\r\n 'language': 'en',\r\n 'status' : 'signed out',\r\n 'virtualPageURL': virtualPageUrl,\r\n });\r\n }\r\n\r\n },\r\n [\r\n activeMatch,\r\n prevActiveMatch,\r\n location.pathname,\r\n policyType,\r\n claimCategory,\r\n claimType,\r\n ],\r\n );\r\n\r\n // custom track when user is on submitted page\r\n useEffect(\r\n () => {\r\n if(\r\n location.pathname.indexOf('/submitted') >= 0\r\n && location.pathname.indexOf('claim/') >= 0\r\n && (\r\n (\r\n submittedClaimMatch\r\n && !prevSubmittedClaimMatch\r\n ) || (\r\n submittedClaimMatch\r\n && prevSubmittedClaimMatch\r\n && submittedClaimMatch.params.step !== prevSubmittedClaimMatch.params.step\r\n )\r\n )\r\n ){\r\n const virtualPageUrl = `${getClaimFormBaseVirtualPageUrl(policyType, claimCategory, claimType)}abschluss/`;\r\n\r\n\r\n createNewDataLayer({\r\n 'event' : 'VirtualPageview',\r\n 'language': 'en',\r\n 'status' : 'signed out',\r\n 'virtualPageURL': virtualPageUrl,\r\n });\r\n }\r\n },\r\n [submittedClaimMatch, location.pathname],\r\n );\r\n\r\n const createNewDataLayer = (layer) => {\r\n if(window.dataLayer){\r\n window.dataLayer.push(layer);\r\n\r\n } else {\r\n window.dataLayer = [layer];\r\n }\r\n\r\n };\r\n\r\n const getClaimFormBaseVirtualPageUrl = (policyType, claimCategory, claimType) => {\r\n const finalPolicyType = policyType ? `${policyType}/` : '';\r\n const finalClaimCategory = claimCategory ? `${claimCategory}/` : '';\r\n const finalClaimType = claimType ? `${claimType}/` : '';\r\n return '/claims-form/' + finalPolicyType + finalClaimCategory + finalClaimType;\r\n\r\n };\r\n};\r\n\r\nexport default usePageTracking;","import React from 'react';\r\n\r\nconst Icon =(props: IconProps): JSX.Element =>{\r\n const {id, children, className} = props;\r\n return(\r\n
\r\n {children}\r\n
\r\n )\r\n}\r\n\r\ntype IconProps = {\r\n id: string | undefined,\r\n children: React.ReactNode,\r\n className: string | undefined\r\n}\r\n\r\nexport default Icon;","import React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst PencilIcon = (props) => {\r\n const { id, className } = props;\r\n return (\r\n \r\n \r\n pencil\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PencilIcon;","import React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst PhoneIcon = (props) => {\r\n const { id, className } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PhoneIcon;","import {TypedUseSelectorHook, useDispatch, useSelector} from 'react-redux';\r\nimport type {RootState, AppDispatch} from '../store/store';\r\n\r\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch: () => AppDispatch = useDispatch;\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;","import React from 'react';\r\nimport PencilIcon from '../icons/pencilIcon';\r\nimport style from './policyHolderClaimReviewAcceptedRejectedWordings.module.scss';\r\n// @ts-ignore\r\nimport { Heading } from 'arag-ui-lib';\r\nimport PhoneIcon from '../icons/phoneIcon';\r\nimport { useAppSelector } from '../../hooks/hooks';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props={\r\n acceptedRejectedWordings:{\r\n title:string;\r\n subtitle:string;\r\n contact:string;\r\n aragTelephoneNumber:string | number;\r\n }\r\n}\r\nconst PolicyHolderClaimReviewAcceptedRejectedWordings = (props: Props):JSX.Element => {\r\n const { acceptedRejectedWordings } = props;\r\n const appSettings = useAppSelector(state=>state.applicationSettings.apiApplicationSettings);\r\n const {t} = useTranslation();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {acceptedRejectedWordings.title &&\r\n
\r\n {acceptedRejectedWordings.title}\r\n
\r\n }\r\n {acceptedRejectedWordings.subtitle &&\r\n
\r\n {acceptedRejectedWordings.subtitle}\r\n
\r\n }\r\n {acceptedRejectedWordings.contact &&\r\n
\r\n {acceptedRejectedWordings.contact}\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ('textCallEmail')}/>\r\n
\r\n
{appSettings?.aragEmail}
\r\n
{acceptedRejectedWordings.aragTelephoneNumber}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ('textWrite')}/>\r\n
\r\n
{appSettings?.aragAddress}
\r\n
{appSettings?.aragStreet}
\r\n
{appSettings?.aragCounty}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PolicyHolderClaimReviewAcceptedRejectedWordings;","import React from 'react';\r\nimport { FormGroup, CheckboxInput } from 'arag-ui-lib';\r\nimport { Field, FormikErrors } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport styles from './formikFieldWrapper.module.scss';\r\n\r\n\r\ntype Props = {\r\n inputProps: any;\r\n inline?: boolean;\r\n labelSize?: string | undefined;\r\n inputSize?: string | undefined;\r\n label: string;\r\n variant?: string;\r\n helpText?: string | null;\r\n validator?: any;\r\n getInputProps?: any;\r\n groupShape?: string;\r\n customErrorMessage?: string | string[] | FormikErrors | FormikErrors[] | null | undefined;\r\n description?: string | null;\r\n infoText?: string | undefined;\r\n formGroupContainerStyle?: React.CSSProperties;\r\n hasInlineElements?: boolean;\r\n inlineGroupElements?: any;\r\n};\r\n\r\nconst FormikFieldWrapper = (props: Props):JSX.Element => {\r\n const {\r\n inputProps,\r\n inline,\r\n labelSize,\r\n inputSize,\r\n label,\r\n variant,\r\n helpText,\r\n validator,\r\n getInputProps,\r\n groupShape,\r\n customErrorMessage,\r\n description,\r\n infoText,\r\n formGroupContainerStyle,\r\n hasInlineElements,\r\n inlineGroupElements,\r\n } = props;\r\n\r\n return (\r\n \r\n {({ field, form: { touched, errors, setFieldValue, values,setFieldError,setFieldTouched }, meta }: any) => {\r\n\r\n let finalInputProps = {} as any;\r\n if (getInputProps) {\r\n finalInputProps = getInputProps({ field, values, setFieldValue,setFieldError,errors,meta,setFieldTouched });\r\n } else if (inputProps) {\r\n finalInputProps = inputProps;\r\n }\r\n return (\r\n
\r\n {description &&\r\n
}\r\n }\r\n variant={variant}\r\n groupShape={groupShape}\r\n infoText={infoText}\r\n maxCharacters={finalInputProps.maxCharacters\r\n ? finalInputProps.maxCharacters\r\n : null}\r\n inputProps={{\r\n ...field,\r\n ...finalInputProps,\r\n }}\r\n hasInlineElements={hasInlineElements}\r\n inlineGroupElements={inlineGroupElements}\r\n\r\n />\r\n
\r\n );\r\n }}\r\n \r\n );\r\n};\r\n\r\n\r\nexport default FormikFieldWrapper;\r\n","import React from 'react';\r\nimport { Form, Formik } from 'formik';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\n// @ts-ignore\r\nimport { Button, Loader } from 'arag-ui-lib';\r\nimport {useTranslation} from \"react-i18next\";\r\ntype Props= {\r\n submitting: boolean;\r\n handleUserInfoSubmit: (values: { email: string; passcode: string; })=>void\r\n}\r\n\r\nconst PolicyHolderReviewClaimForm = (props: Props):JSX.Element => {\r\n const { submitting, handleUserInfoSubmit } = props;\r\n const {t}= useTranslation();\r\n return (\r\n
\r\n
\r\n
\r\n To review the claim please enter your email address and passcode.\r\n
\r\n
\r\n \r\n {\r\n ({ values }) => {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n null}\r\n />\r\n {submitting && }\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 PolicyHolderReviewClaimForm;","import React from 'react';\r\n// @ts-ignore\r\nimport {Modal, ModalBody, ModalContent, ModalDialog} from 'arag-ui-lib';\r\nimport PolicyHolderReviewClaimForm from '../policyHolderReviewClaimForm/policyHolderReviewClaimForm';\r\n\r\ntype Props = {\r\n submitting: boolean;\r\n handleUserInfoSubmit: (values: { email: string; passcode: string; }) => void\r\n}\r\n\r\nconst PolicyHolderLoginModal = (props: Props): JSX.Element => {\r\n const {submitting, handleUserInfoSubmit} = props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n <>\r\n

Review claim

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PolicyHolderLoginModal;","import { createSelector } from '@reduxjs/toolkit';\r\nimport {decode} from 'html-entities';\r\nimport codes from \"../utils/constants/codes\";\r\n\r\nconst questionProjections = {};\r\n\r\nquestionProjections.questionsExists = createSelector(\r\n state => state.question.question.byId,\r\n (questionsById) => {\r\n return Object\r\n .keys(questionsById)\r\n .length > 0;\r\n },\r\n);\r\n\r\nquestionProjections.questionHelperText = (questionCode, formAnswers) => createSelector(\r\n state => state.question.question.byId[questionCode],\r\n state => state.question.question.byId,\r\n state => state.questionType.questionType.byId,\r\n (givenQuestion, questionsById, questionTypesById) => {\r\n if (!givenQuestion) {\r\n return null;\r\n }\r\n\r\n // logic for question with options - dropdown\r\n const formAnswer = formAnswers\r\n ? formAnswers[givenQuestion.code]\r\n : null;\r\n if (\r\n questionTypesById[givenQuestion.questionTypeId]\r\n && questionTypesById[givenQuestion.questionTypeId].code === 'list'\r\n ) {\r\n const answerOfGivenQuestion = formAnswer\r\n ? givenQuestion.options.find(o => o.id === formAnswer)\r\n : null;\r\n if (\r\n answerOfGivenQuestion\r\n && answerOfGivenQuestion.labelDisplayedWhenAnswered\r\n ) {\r\n return answerOfGivenQuestion.labelDisplayedWhenAnswered;\r\n }\r\n } else {\r\n if (formAnswer && givenQuestion.labelDisplayedWhenAnswered) {\r\n return givenQuestion.labelDisplayedWhenAnswered;\r\n }\r\n\r\n }\r\n\r\n return null;\r\n },\r\n);\r\n\r\nquestionProjections.attachmentsQuestionDocumentTypes = (attachmentQuestionCode, asnwerValues) => createSelector(\r\n state => state.question.question.byId[attachmentQuestionCode],\r\n (question) => {\r\n if (!question || !question.documentTypes) {\r\n return [];\r\n }\r\n return question.documentTypes.filter(type => type.isSuggested && (!type.enabledByOptionId || (type.enabledByOptionId && asnwerValues.includes(type.enabledByOptionId) === false)));\r\n },\r\n);\r\n\r\nquestionProjections.fitlerAnswersByQuestions = answers => createSelector(\r\n state => state.question.question.byId,\r\n state => state.documentType.documentType.byId,\r\n state => state.question.loading,\r\n (questions, documentsTypes, loadingQuestions) => {\r\n const arrayOfDocumentTypes = Object.values(documentsTypes);\r\n const arrayOfQuestions = Object.keys(questions);\r\n if (\r\n answers.length === 0\r\n || arrayOfQuestions.length === 0\r\n ) {\r\n return {};\r\n }\r\n let objOfAnswers = {};\r\n if (answers && answers.length > 0) {\r\n objOfAnswers = answers.reduce((obj, cur, i) => {\r\n if (cur.attachments && cur.attachments.length > 0) {\r\n let mappedAttachments = cur.attachments.map(attachment => {\r\n let documentTypesOfAttachment = [];\r\n if(arrayOfDocumentTypes.length > 0){\r\n attachment.documentTypeCodes.forEach(type => {\r\n let document = arrayOfDocumentTypes.find(item => item.code === type);\r\n if (document && Object.keys(document).length !== 0) {\r\n documentTypesOfAttachment.push({\r\n item: { ...document },\r\n label: document.name,\r\n value: document.code,\r\n });\r\n }\r\n });\r\n }\r\n\r\n return {\r\n name: attachment.fullFileName ? attachment.fullFileName : '',\r\n id: attachment.id ? attachment.id : '',\r\n documentTypes: documentTypesOfAttachment,\r\n };\r\n },\r\n );\r\n return {\r\n ...obj,\r\n [cur.questionCode]: mappedAttachments,\r\n };\r\n }\r\n if (cur.flag) {\r\n return {\r\n ...obj,\r\n [cur.questionCode]: ['on'],\r\n };\r\n }\r\n if (cur.date) {\r\n return {\r\n ...obj,\r\n [cur.questionCode]: new Date(cur.date),\r\n };\r\n }\r\n let answers = [cur.text, cur.amount, cur.optionId];\r\n let answer = answers.find(item => item !== null);\r\n if (answer) {\r\n return {\r\n ...obj,\r\n [cur.questionCode]: cur.text?decode(answer,{scope:'strict'}):answer,\r\n };\r\n } else {\r\n return {\r\n ...obj,\r\n };\r\n }\r\n }\r\n ,\r\n {},\r\n );\r\n }\r\n\r\n return objOfAnswers;\r\n },\r\n);\r\n\r\nquestionProjections.questionListOfGroupStep = (questionGroupStepCode) => createSelector(\r\n state => state.question.question.byId,\r\n state => state.questionGroupStep.questionGroupStep.byId[questionGroupStepCode],\r\n (questionById, groupStep) => {\r\n if (!groupStep) {\r\n return [];\r\n }\r\n\r\n return Object\r\n .entries(questionById)\r\n .filter(([key, value]) => value.questionGroupStepId === groupStep.id)\r\n .map(([ley, value]) => ({\r\n ...value,\r\n questionValidationRules: value.questionValidationRules\r\n ? value.questionValidationRules\r\n : {},\r\n }));\r\n },\r\n);\r\n\r\nquestionProjections.getAllRelatedQuestions = (postcodeLoader) => createSelector(\r\n state => state.question.question.byId,\r\n (questionsById) => {\r\n const questionValues = Object.values(questionsById);\r\n let questionsWithRelatedQuestions = [];\r\n if (questionValues.length > 0) {\r\n questionValues.forEach(question => {\r\n let relatedQuestions = question.relatedQuestions\r\n ? Object.values(question.relatedQuestions)\r\n : [];\r\n if (relatedQuestions.length > 0) {\r\n let questionWithRelatedQuestions = {\r\n code: question.code,\r\n questions: relatedQuestions,\r\n };\r\n questionsWithRelatedQuestions.push(questionWithRelatedQuestions);\r\n }\r\n });\r\n return questionsWithRelatedQuestions ? questionsWithRelatedQuestions.find(question => question.code === postcodeLoader) : null;\r\n } else {\r\n return null;\r\n }\r\n },\r\n);\r\n\r\nquestionProjections.filterQuestionsByGroup = (groupId) => createSelector(\r\n state => state.question.question.byId,\r\n (questionsById) => {\r\n return Object\r\n .values(questionsById)\r\n .filter(q=> q.groupId === groupId);\r\n\r\n },\r\n);\r\n\r\nquestionProjections.filterQuestionsByGroupCode = (groupCode) => createSelector(\r\n state => state.question.question.byId,\r\n (questionsByCode) => {\r\n return Object\r\n .values(questionsByCode)\r\n .filter(q=> q.groupCode === groupCode);\r\n\r\n },\r\n);\r\n\r\nquestionProjections.areQuestionsByGroupExist = (groupId) => createSelector(\r\n state => state.question.question.byId,\r\n (questionsById) => {\r\n return Object\r\n .values(questionsById)\r\n .filter(q=> q.groupId === groupId).length === 0;\r\n\r\n },\r\n);\r\n\r\nquestionProjections.areQuestionsByGroupCodeExist = (groupCode) => createSelector(\r\n state => state.question.question.byId,\r\n (questionsByCode) => {\r\n return Object\r\n .values(questionsByCode)\r\n .filter(q=> q.groupCode === groupCode).length === 0;\r\n\r\n },\r\n);\r\n\r\nquestionProjections.surveyQuestions = (groupId) =>\r\n createSelector(\r\n state => state.question.question.byId,\r\n state => state.questionType.questionType.byId,\r\n state => state.question.loading,\r\n state=>state.questionValidationRule.questionValidationRule,\r\n state=>state.question.question.allIds,\r\n (questionsById, questionTypeById,questionTypesLoading,questionValidationRules,questionsAllIds) => {\r\n if (!questionsById || groupId === null) {\r\n return {\r\n questions: [],\r\n questionTypes: {},\r\n questionsById: {},\r\n questionTypesLoading:false,\r\n questionValidationRules: {},\r\n questionsAllIds:[],\r\n };\r\n }\r\n let questions = Object\r\n .values(questionsById)\r\n .filter(q=> q.groupId === groupId)\r\n .map((item,index,arr)=>{\r\n return{\r\n ...item,\r\n addHorizontalLine: item.section !== arr[index+1]?.section && index!==arr.length-1,\r\n };\r\n });\r\n return {\r\n questions: questions.sort((a, b) => a.rank - b.rank),\r\n questionTypes: questionTypeById,\r\n questionsById: questionsById,\r\n questionTypesLoading:questionTypesLoading,\r\n questionValidationRules:questionValidationRules,\r\n questionsAllIds:questionsAllIds,\r\n };\r\n },\r\n);\r\n\r\n\r\nquestionProjections.questionsWithGroupId = (groupId) => createSelector(\r\n state => state.question.question.byId,\r\n state => state.questionType.questionType.byId,\r\n state => state.question.loading,\r\n state => state.questionValidationRule.questionValidationRule,\r\n state=>state.question.question.allIds,\r\n (questionsByGroupId, questionTypeById, questionTypesLoading, questionValidationRules,questionsAllIds) => {\r\n if (!questionsByGroupId || !questionTypeById || !questionValidationRules) {\r\n return {\r\n questions: [],\r\n questionsById: {},\r\n questionTypes: {},\r\n questionValidationRules: {},\r\n questionTypesLoading: questionTypesLoading,\r\n };\r\n }\r\n\r\n return {\r\n questions: Object.values(questionsByGroupId).filter(q => q?.groupId === groupId).map((question,index,arr) => {\r\n if (question?.questionTypeId === codes.questionTypeIdForCheckboxes && !question.isReadonly) {\r\n return {...question, groupShape: 'reverse'};\r\n } else {\r\n return question;\r\n }\r\n }).sort((a, b) => a.rank - b.rank),\r\n questionTypes: questionTypeById,\r\n questionsById: questionsByGroupId,\r\n questionTypesLoading: questionTypesLoading,\r\n questionValidationRules: questionValidationRules,\r\n questionsAllIds:questionsAllIds,\r\n };\r\n },\r\n);\r\n\r\n\r\nexport default questionProjections;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {Button} from 'arag-ui-lib';\r\nimport styles from './claimOverview.module.scss';\r\nimport ids from '../../utils/constants/ids';\r\nimport questionProjections from '../../projections/question';\r\nimport codes from '../../utils/constants/codes';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {ClaimApplicationProjections} from '../../actions/claimApplication';\r\nimport { useAppSelector } from '../../hooks/hooks';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport i18n from \"../../i18n/i18n\";\r\n// types\r\ntype ClaimOverviewRowProps={\r\n leftSide:()=>JSX.Element | boolean,\r\n rightSide:()=>JSX.Element | boolean\r\n}\r\ntype ClaimOverviewPros= { claimApplication: Partial; openWithdrawModal: ()=>void; }\r\n\r\nexport const ClaimOverviewRow = ({leftSide, rightSide}:ClaimOverviewRowProps):JSX.Element => {\r\n return (\r\n
\r\n
\r\n {leftSide && leftSide()}\r\n
\r\n
\r\n {rightSide && rightSide()}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst ClaimOverview = (props: ClaimOverviewPros ): JSX.Element | null => {\r\n const {claimApplication, openWithdrawModal} = props;\r\n const withDrawQuestionsExist = useAppSelector(questionProjections.areQuestionsByGroupCodeExist(codes.updateWithdrawnDetailsGroupCode));\r\nconst {t} = useTranslation();\r\n if(!claimApplication){\r\n return null;\r\n }\r\n return (\r\n
\r\n (\r\n
\r\n {`${t('formType')}:`}\r\n {claimApplication.formattedType}\r\n
\r\n )}\r\n rightSide={() => (\r\n
\r\n {`${t('claimHandlerName')}:`}\r\n {claimApplication.claimHandlerName?claimApplication.claimHandlerName:i18n.t('notYetAssigned') as string}\r\n
\r\n )}\r\n\r\n />\r\n (\r\n
\r\n {`${t('stage')}:`}\r\n {claimApplication.claimStatusName}\r\n
\r\n )}\r\n rightSide={() => (\r\n
\r\n
\r\n {`${t('dateCreated')}:`}\r\n {GENERAL_FUNCTIONS.dateFormat(claimApplication?.createdDate)}\r\n
\r\n
\r\n )}\r\n />\r\n (\r\n
\r\n {`${t('state')}:`} \r\n {claimApplication.claimStateName}\r\n
\r\n )}\r\n rightSide={() => (\r\n !withDrawQuestionsExist &&\r\n
\r\n
\r\n )}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default ClaimOverview;","import React from 'react';\r\nimport { ClaimOverviewRow } from '../claimOverview/claimOverview';\r\nimport {store} from '../../store/store';\r\nimport applicationSettingsProjections from '../../projections/applicationSettings';\r\nimport { useAppSelector } from '../../hooks/hooks';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype ClaimReviewOverviewObject={\r\n formattedType:string,\r\n claimReference: string\r\n createdDate: any\r\n}\r\nconst PolicyHolderReviewClaimOverview = (props: { claimReviewOverview: ClaimReviewOverviewObject | null; }):JSX.Element => {\r\n const { claimReviewOverview } = props;\r\n const {t} = useTranslation()\r\n return
\r\n (\r\n
\r\n
{t('address')}
\r\n
{t('street')}
\r\n
{t('county')}
\r\n
\r\n )}\r\n rightSide={() => (\r\n <>\r\n
\r\n Tel: \r\n {t('tel')}\r\n
\r\n
\r\n Fax: \r\n {t('fax')}\r\n
\r\n
\r\n Email: \r\n {t('aragEmail')}\r\n
\r\n \r\n )}\r\n />\r\n (\r\n <>\r\n
\r\n Policy Type: \r\n {claimReviewOverview?.formattedType}\r\n
\r\n
\r\n Reference: \r\n {claimReviewOverview?.claimReference}\r\n
\r\n \r\n )}\r\n rightSide={() => (\r\n <>\r\n Date: \r\n {claimReviewOverview?.createdDate}\r\n \r\n )}\r\n />\r\n {/*
*/}\r\n {/* (*/}\r\n {/*
*/}\r\n {/* window.print()}*/}\r\n {/* />*/}\r\n {/*
*/}\r\n\r\n {/* )}*/}\r\n {/* />*/}\r\n {/*
*/}\r\n
;\r\n\r\n};\r\n\r\nexport default PolicyHolderReviewClaimOverview;","import {FormGroup} from 'arag-ui-lib';\r\nimport ids from '../../utils/constants/ids';\r\nimport {decode} from 'html-entities';\r\nimport codes from '../../utils/constants/codes';\r\n\r\ntype Props = {\r\n questionWithAnswer: any;\r\n};\r\n\r\nconst QuestionWithAnswer = (props: Props) => {\r\n const {questionWithAnswer} = props;\r\n if(\r\n !questionWithAnswer\r\n || !questionWithAnswer.question\r\n || !questionWithAnswer.answer\r\n || !questionWithAnswer.answer._parsedAnswerTextValue\r\n ) {\r\n return null;\r\n }\r\n\r\n let answerLabel = questionWithAnswer.answer._parsedAnswerTextValue;\r\n if(questionWithAnswer.question._questionTypeCode === codes.checkbox){\r\n answerLabel = questionWithAnswer.answer._parsedAnswerTextValue\r\n ? (\r\n \r\n )\r\n : null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default QuestionWithAnswer;","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading,HorizontalRule} from 'arag-ui-lib';\r\nimport QuestionWithAnswer from '../questionWithAnswer/questionWithAnswer';\r\nimport generalStyle from '../../assets/styles/generalStyle.module.scss';\r\n\r\ntype Props={\r\n stepWithQuestionsAndAnswers:{\r\n name:string;\r\n questionsWithAnswers:Array\r\n }\r\n}\r\nconst StepWithQuestionsAndAnswers = (props:Props):JSX.Element => {\r\n const {stepWithQuestionsAndAnswers} = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {\r\n stepWithQuestionsAndAnswers.questionsWithAnswers\r\n .map(questionWithAnswer => (\r\n \r\n ))\r\n }\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default StepWithQuestionsAndAnswers;","import React from 'react';\r\nimport StepWithQuestionsAndAnswers from '../stepWithQuestionsAndAnswers/stepWithQuestionsAndAnswers';\r\n\r\nconst PolicyHolderReviewClaimQuestionsAnswers = (props: { questionsWithAnswersGroupedByStep: Array | null; }):JSX.Element | null => {\r\n const { questionsWithAnswersGroupedByStep } = props;\r\n\r\n if (!questionsWithAnswersGroupedByStep) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {\r\n questionsWithAnswersGroupedByStep\r\n .map(stepWithQuestionsAndAnswers => (\r\n \r\n ))\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default PolicyHolderReviewClaimQuestionsAnswers;","import React from 'react';\r\n// @ts-ignore\r\nimport { Button, Heading, HorizontalRule, Loader,Link } from 'arag-ui-lib';\r\nimport PolicyHolderReviewClaimOverview from '../policyHolderReviewClaimOverview/policyHolderReviewClaimOverview';\r\nimport PolicyHolderReviewClaimQuestionsAnswers\r\n from '../policyHolderReviewClaimQuestionsAnswers/policyHolderReviewClaimQuestionsAnswers';\r\nimport styles from './policyHolderClaimDetails.module.scss';\r\nimport moment from 'moment';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {useTranslation} from \"react-i18next\";\r\ntype ClaimReviewOverviewObject={\r\n formattedType:string,\r\n claimReference: string\r\n createdDate: moment.MomentInput | any\r\n}\r\ntype Props= {\r\n submitting: boolean;\r\n claimReviewOverview: ClaimReviewOverviewObject | null;\r\n claimReviewAnswersGroupedByStep: Array | null;\r\n acceptClaimReview: ()=>void;\r\n getRejectionFormClaimReview: ()=>void;\r\n rejectFormLoading: boolean;\r\n}\r\n\r\nconst PolicyHolderClaimDetails = (props:Props): JSX.Element => {\r\n const {\r\n submitting,\r\n claimReviewOverview,\r\n claimReviewAnswersGroupedByStep,\r\n acceptClaimReview,\r\n getRejectionFormClaimReview,\r\n rejectFormLoading,\r\n } = props;\r\n const {t} = useTranslation()\r\n return (\r\n
\r\n
\r\n \r\n {!GENERAL_FUNCTIONS.isAndroidDevice() &&
\r\n window.print()}\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 {submitting &&\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {rejectFormLoading &&\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default PolicyHolderClaimDetails;","import React from 'react';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\nimport styles from './policyholderClaimRejectedForm.module.scss';\r\nimport {FormikValues} from 'formik';\r\ntype Props= { rejectedReasonClaimReviewWordings: any; changeClaimReviewStateAction:any,formikProps:FormikValues }\r\nconst PolicyHolderClaimRejectedForm = (props:Props):JSX.Element => {\r\n const { rejectedReasonClaimReviewWordings} = props;\r\n\r\n return (\r\n\r\n
\r\n
\r\n {rejectedReasonClaimReviewWordings.title}\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 PolicyHolderClaimRejectedForm;","import React from 'react';\r\n// @ts-ignore\r\nimport generalStyles from '../../assets/styles/generalStyle.module.scss';\r\n\r\nexport const SmallModal = (props) => {\r\n return (\r\n <>\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nexport const LargeModal = (props) => {\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport const ButtonRelatedToRows = (props) => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n};\r\n\r\nexport const PrimaryButton = (props) => {\r\n return (\r\n <>\r\n
\r\n {props.children}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport const SecondaryButton = (props) => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n};\r\n\r\nexport const TertiaryButton = (props) => {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport const TabWrapper = (props) => {\r\n return (\r\n <>\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\n\r\nexport const TabButton = (props) => {\r\n return (\r\n <>\r\n
\r\n {props.children}\r\n
\r\n \r\n );\r\n};","import React from 'react';\r\n// @ts-ignore\r\nimport {Modal, ModalBody, ModalContent, ModalDialog, ModalHeader, ModalFooter, Link, Loader, Button} from 'arag-ui-lib';\r\nimport PolicyHolderClaimRejectedForm from '../policyHolderClaimRejectedForm/policyHolderClaimRejectedForm';\r\nimport {Form, Formik, FormikValues} from 'formik';\r\nimport {PrimaryButton, SecondaryButton, SmallModal} from '../../hosc/modals/modals';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n rejectClaimReviewWithReason: (values: { acceptanceStatusReason: any; })=>void;\r\n rejectedReasonClaimReviewWordings: any;\r\n submitting: boolean;\r\n changeClaimReviewStateAction: any;\r\n}\r\nconst PolicyHolderClaimRejectedModal = (props: Props): JSX.Element => {\r\n const {rejectClaimReviewWithReason, rejectedReasonClaimReviewWordings, submitting, changeClaimReviewStateAction} = props;\r\n const {t} = useTranslation()\r\n return (\r\n \r\n \r\n \r\n changeClaimReviewStateAction({rejectedReasonClaimReview: null})}/>\r\n \r\n {\r\n ({formikProps}: FormikValues) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n changeClaimReviewStateAction({rejectedReasonClaimReview: null})}\r\n label={t('goBack')}\r\n variant=\"tertiary\"\r\n arrowDirection=\"left\"\r\n />\r\n
\r\n {submitting && }\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 PolicyHolderClaimRejectedModal;","import React, {useEffect} from 'react';\r\nimport PolicyHolderClaimReviewAcceptedRejectedWordings\r\n from '../policyHolderClaimReviewAcceptedRejectedWordings/policyHolderClaimReviewAcceptedRejectedWordings';\r\nimport PolicyHolderLoginModal from '../policyHolderLoginModal/policyHolderLoginModal';\r\nimport PolicyHolderClaimDetails from '../policyHolderClaimDetails/policyHolderClaimDetails';\r\nimport PolicyHolderClaimRejectedModal from '../policyHolderClaimRejectedModal/policyHolderClaimRejectedModal';\r\nimport moment from 'moment';\r\n\r\ntype ClaimReviewOverviewObject={\r\n formattedType:string,\r\n claimReference: string\r\n createdDate: moment.MomentInput\r\n}\r\ntype AcceptRejectedObject ={\r\n title:string;\r\n subtitle:string;\r\n contact:string;\r\n aragTelephoneNumber:string | number;\r\n}\r\ntype Props = {\r\n claimReviewAnswersGroupedByStep: Array | null;\r\n claimReviewOverview: null | ClaimReviewOverviewObject ;\r\n submitting: boolean;\r\n handleUserInfoSubmit: (values: { email: string; passcode: string; })=>void;\r\n acceptClaimReview: ()=>void;\r\n getRejectionFormClaimReview: ()=>void;\r\n rejectClaimReviewWithReason: (values: { acceptanceStatusReason: any; })=>void;\r\n acceptedRejectedWordings: AcceptRejectedObject ;\r\n rejectedReasonClaimReviewWordings: any;\r\n changeClaimReviewStateAction: any;\r\n rejectFormLoading: boolean;\r\n claimReview: any\r\n}\r\nconst PolicyHolderReviewClaim = (props: Props): JSX.Element => {\r\n const {\r\n claimReviewAnswersGroupedByStep,\r\n claimReviewOverview,\r\n submitting,\r\n handleUserInfoSubmit,\r\n acceptClaimReview,\r\n getRejectionFormClaimReview,\r\n rejectClaimReviewWithReason,\r\n acceptedRejectedWordings,\r\n rejectedReasonClaimReviewWordings,\r\n changeClaimReviewStateAction,\r\n rejectFormLoading,\r\n } = props;\r\n\r\n return (\r\n
\r\n {acceptedRejectedWordings ?\r\n \r\n :\r\n claimReviewAnswersGroupedByStep &&\r\n claimReviewOverview &&\r\n !acceptedRejectedWordings ?\r\n \r\n :\r\n \r\n }\r\n\r\n {rejectedReasonClaimReviewWordings &&\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default PolicyHolderReviewClaim;","import { createSelector } from '@reduxjs/toolkit';\r\nimport questionFunctions from '../utils/functions/question';\r\nimport _ from 'lodash';\r\nimport codes from '../utils/constants/codes';\r\nimport moment from 'moment';\r\n\r\nconst claimReviewProjections = {};\r\n\r\n\r\nclaimReviewProjections.claimReviewOverview = createSelector(\r\n state => state.claimReview.claimReviewDetails.overview,\r\n (claimReviewDetailsOverview) => {\r\n if (!claimReviewDetailsOverview) {\r\n return null;\r\n }\r\n\r\n return {\r\n formattedType: `${claimReviewDetailsOverview.policyTypeName || ''} - \r\n ${claimReviewDetailsOverview.claimCategoryName ? claimReviewDetailsOverview.claimCategoryName + ' - ' : ''}\r\n ${claimReviewDetailsOverview.formTypeName || ''}`.replace(/\\s+-\\s+$/, ''), \r\n claimReference: claimReviewDetailsOverview.claimReference,\r\n createdDate: moment(claimReviewDetailsOverview.CreatedDate).format('DD/MM/YYYY'),\r\n };\r\n },\r\n);\r\n\r\nclaimReviewProjections.acceptedRejectedWordings = createSelector(\r\n state => state.claimReview.claimReviewAcceptedRejectedWordings,\r\n state => state.applicationSettings.apiApplicationSettings.aragTelephoneNumber,\r\n (acceptedClaimReview, aragTelephoneNumber) => {\r\n if (!acceptedClaimReview || !aragTelephoneNumber) {\r\n return null;\r\n }\r\n\r\n return {\r\n ...acceptedClaimReview,\r\n aragTelephoneNumber,\r\n };\r\n },\r\n);\r\n\r\n\r\nclaimReviewProjections.claimReviewAnswersGroupedByStep = () => createSelector(\r\n state => state.claimReview.claimReviewDetails,\r\n (claimReviewDetails) => {\r\n if (\r\n Object.keys(claimReviewDetails.question.byId).length === 0\r\n || claimReviewDetails.question.allIds.length === 0\r\n || Object.keys(claimReviewDetails.questionType.byId).length === 0\r\n || claimReviewDetails.questionType.allIds.length === 0\r\n || Object.keys(claimReviewDetails.questionGroupStep.byId).length === 0\r\n || claimReviewDetails.questionGroupStep.allIds.length === 0\r\n || claimReviewDetails.answers.length === 0\r\n || claimReviewDetails.currencies.length === 0\r\n ) {\r\n return null;\r\n }\r\n\r\n // recursive function\r\n const getAnswersOfQuestionTree = (question, questionsById, answers, questionTypesById, currencyOptions) => {\r\n let items = [];\r\n const answerOfQuestion = answers ?\r\n answers.find(a => a.questionCode === question.code)\r\n : null;\r\n const questionType = questionTypesById[question.questionTypeId];\r\n items.push(\r\n questionFunctions\r\n .parseQuestionWithAnswer(question, answerOfQuestion, questionType, currencyOptions),\r\n );\r\n\r\n // if option is selected form a dropdown then we have to get all\r\n //sub question answers\r\n if (questionType && questionType.code === 'list' && answerOfQuestion) {\r\n const subQs = Object\r\n .values(questionsById)\r\n .filter(q => q.enabledByOptionId === answerOfQuestion.optionId && q.id===question.enabledByQuestionId);\r\n if (subQs) {\r\n subQs.forEach(sq => {\r\n items = [\r\n ...items,\r\n ...getAnswersOfQuestionTree(sq,\r\n claimReviewDetails.question.byId,\r\n claimReviewDetails.answers,\r\n claimReviewDetails.questionType.byId,\r\n claimReviewDetails.currencies),\r\n ];\r\n });\r\n }\r\n }\r\n\r\n return items;\r\n };\r\n\r\n try {\r\n // construct the answers\r\n const answersGroupedByStep = [];\r\n Object\r\n .values(claimReviewDetails.question.byId)\r\n .forEach(question => {\r\n answersGroupedByStep.push(\r\n ...getAnswersOfQuestionTree(question,\r\n claimReviewDetails.question.byId,\r\n claimReviewDetails.answers,\r\n claimReviewDetails.questionType.byId,\r\n claimReviewDetails.currencies),\r\n );\r\n });\r\n\r\n // sort the question - answer objects\r\n const sortedAnswersGroupedByStep = _.sortBy(answersGroupedByStep, function(item) {\r\n return claimReviewDetails.question.allIds.indexOf(item.question.code);\r\n });\r\n\r\n // group by step and exclude the attachments step\r\n return _.chain(sortedAnswersGroupedByStep)\r\n .groupBy(s => s.question.questionGroupStepId)\r\n .map((s, stepId) => {\r\n const step = Object\r\n .values(claimReviewDetails.questionGroupStep.byId)\r\n .find(i => i.id === stepId);\r\n\r\n return {\r\n ...step,\r\n questionsWithAnswers: s,\r\n };\r\n })\r\n .filter(s => s.code !== codes.attachments)\r\n .sortBy(s => s.rank)\r\n .value();\r\n } catch (e) {\r\n return null;\r\n }\r\n },\r\n);\r\n\r\nexport default claimReviewProjections;","import React from 'react';\r\n// @ts-ignore\r\nimport { Heading } from 'arag-ui-lib';\r\nimport style from './pageNotFount.module.scss';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst PageNotFound =():JSX.Element=>{\r\n const {t} = useTranslation();\r\n return(\r\n
\r\n ('pageNotFound')}/>\r\n
{t('pageNotExist')}
\r\n
\r\n );\r\n};\r\n\r\nexport default PageNotFound;","import React, { useCallback, useEffect } from 'react';\r\nimport PolicyHolderReviewClaimModal from '../../components/policyHolderReviewClaim/policyHolderReviewClaim';\r\nimport * as action from '../../actions';\r\n\r\nimport { useParams } from 'react-router-dom';\r\nimport claimReviewProjections from '../../projections/claimReview';\r\nimport PageNotFound from '../../components/pageNotFound/pageNotFound';\r\n// @ts-ignore\r\nimport {Loader} from 'arag-ui-lib';\r\nimport {useAppDispatch,useAppSelector} from '../../hooks/hooks';\r\nimport {syncTranslationsFromRedux} from \"../../i18n/syncTranslationsFromRedux\";\r\nimport {store} from \"../../store/store\";\r\ntype AcceptRejectedObject ={\r\n title:string;\r\n subtitle:string;\r\n contact:string;\r\n aragTelephoneNumber:string | number;\r\n}\r\nconst PolicyHolderReviewClaimContainer = (): JSX.Element => {\r\n const dispatch = useAppDispatch();\r\n const isClaimReviewValid = useAppSelector(state => state.claimReview.isClaimReviewValid);\r\n const claimReview = useAppSelector(state => state.claimReview.claimReview);\r\n const languageId = useAppSelector(state => state.applicationUser.unAuthorisedDetails.languageId);\r\n const claimReviewAnswersGroupedByStep = useAppSelector(claimReviewProjections.claimReviewAnswersGroupedByStep()) as Array;\r\n const claimReviewOverview = useAppSelector(claimReviewProjections.claimReviewOverview);\r\n const acceptedRejectedWordings:AcceptRejectedObject = useAppSelector(claimReviewProjections.acceptedRejectedWordings);\r\n const rejectedReasonClaimReviewWordings = useAppSelector(state => state.claimReview.rejectedReasonClaimReview);\r\n const wordings = useAppSelector(state => state.applicationUser.wordings);\r\n const languages = useAppSelector(state => state.applicationSettings.apiApplicationSettings.languages);\r\n const submitting = useAppSelector(state => state.claimReview.submitting);\r\n const loading = useAppSelector(state => state.claimReview.loading);\r\n const rejectFormLoading = useAppSelector(state => state.claimReview.rejectFormLoading);\r\n let { claimApplicationId, randomId }: {claimApplicationId:string,randomId:string} = useParams();\r\n\r\n const fetchClaimReviewValidityAction = useCallback(\r\n (payload: action.fetchClaimReviewValidityAction) => dispatch(action.fetchClaimReviewValidity(payload)),\r\n [dispatch],\r\n );\r\n const fetchClaimReviewDetailsAction = useCallback(\r\n (payload: action.fetchClaimReviewDetailsAction) => dispatch(action.fetchClaimReviewDetails(payload)),\r\n [dispatch],\r\n );\r\n\r\n const acceptClaimReviewAction = useCallback(\r\n (payload: action.acceptClaimReviewAction) => dispatch(action.acceptClaimReview(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchRejectionFormClaimReviewAction = useCallback(\r\n (payload: action.fetchRejectionFormClaimReviewAction) => dispatch(action.fetchRejectionFormClaimReview(payload)),\r\n [dispatch],\r\n );\r\n\r\n const rejectClaimReviewWithReasonAction = useCallback(\r\n (payload: action.rejectClaimReviewWithReasonAction) => dispatch(action.rejectClaimReviewWithReason(payload)),\r\n [dispatch],\r\n );\r\n\r\n const changeClaimReviewAnswerStateAction = useCallback(\r\n (payload: action.changeClaimReviewAnswerStateAction) => dispatch(action.changeClaimReviewAnswerState(payload)),\r\n [dispatch],\r\n );\r\n\r\n const changeClaimReviewStateAction = useCallback(\r\n (payload: action.changeClaimReviewStateAction) => dispatch(action.changeClaimReviewState(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchUnauthorisedUserWordingsAction = useCallback(\r\n (payload: action.fetchUnauthorisedWordingsAction) => dispatch(action.fetchUnauthorisedUserWordings(payload)),\r\n [dispatch],\r\n );\r\n\r\n useEffect(() => {\r\n if (claimApplicationId && randomId) {\r\n changeClaimReviewAnswerStateAction({\r\n claimApplicationId,\r\n randomId,\r\n });\r\n fetchClaimReviewValidityAction({\r\n claimApplicationId,\r\n randomId,\r\n });\r\n }\r\n }, [\r\n randomId,\r\n claimApplicationId,\r\n changeClaimReviewAnswerStateAction,\r\n fetchClaimReviewValidityAction,\r\n ]);\r\n\r\n useEffect(() => {\r\n fetchUnauthorisedUserWordingsAction({payload:{languageId:'00000001-1fdd-0049-99c2-000000000003'}});\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if(wordings && languages){\r\n syncTranslationsFromRedux(store.getState().applicationUser.wordings, languageId, store.getState().applicationSettings.apiApplicationSettings.languages);\r\n }\r\n\r\n }, [wordings,languages,languageId]);\r\n\r\n const handleUserInfoSubmit = (values: { email: string; passcode: string; }) => {\r\n changeClaimReviewAnswerStateAction({\r\n email: values.email,\r\n passCode: values.passcode,\r\n });\r\n\r\n fetchClaimReviewDetailsAction({\r\n ClaimApplicationId: claimReview.claimApplicationId,\r\n RandomId: claimReview.randomId,\r\n Email: values.email,\r\n Passcode: values.passcode,\r\n });\r\n };\r\n\r\n const acceptClaimReview = () => {\r\n acceptClaimReviewAction({\r\n ClaimApplicationId: claimReview.claimApplicationId,\r\n RandomId: claimReview.randomId,\r\n Email: claimReview.email,\r\n Passcode: claimReview.passCode,\r\n });\r\n };\r\n\r\n const getRejectionFormClaimReview = () => {\r\n fetchRejectionFormClaimReviewAction({\r\n ClaimApplicationId: claimReview.claimApplicationId,\r\n RandomId: claimReview.randomId,\r\n });\r\n };\r\n\r\n const rejectClaimReviewWithReason = (values: { acceptanceStatusReason: any; }) => {\r\n rejectClaimReviewWithReasonAction({\r\n ClaimApplicationId: claimReview.claimApplicationId,\r\n RandomId: claimReview.randomId,\r\n Email: claimReview.email,\r\n Passcode: claimReview.passCode,\r\n AcceptanceStatusReason: values.acceptanceStatusReason,\r\n });\r\n\r\n changeClaimReviewStateAction(\r\n { rejectedReasonClaimReview: null},\r\n );\r\n\r\n };\r\n\r\n if(loading || isClaimReviewValid === null){\r\n return (\r\n \r\n );\r\n }\r\n\r\n if(isClaimReviewValid === false){\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default PolicyHolderReviewClaimContainer;","import React from 'react';\r\nimport {\r\n Modal,\r\n ModalDialog,\r\n ModalContent,\r\n ModalHeader,\r\n ModalBody,\r\n ModalFooter,\r\n Link,\r\n Button,\r\n} from 'arag-ui-lib';\r\nimport PropTypes from 'prop-types';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst ConfirmationDialog = (props) => {\r\n const {\r\n isOpen,\r\n handleClose,\r\n executeAction,\r\n action,\r\n title,\r\n } = props;\r\n const {t} =useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {action}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nConfirmationDialog.propTypes = {\r\n executeAction: PropTypes.func.isRequired,\r\n handleClose: PropTypes.func.isRequired,\r\n action: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n isOpen: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default ConfirmationDialog;","import {createSelector} from '@reduxjs/toolkit';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\n\r\nconst QuestionValidationRuleProjections = {} as ObjectOfAny;\r\n\r\nQuestionValidationRuleProjections.filteredRulesByCodes = (codes: ObjectOfAny[]) =>\r\n createSelector(\r\n (state: RootState) => state.questionValidationRule.questionValidationRule.byId,\r\n (rulesById) => {\r\n if (!codes || !rulesById) { // Handle the case when rulesById is null\r\n return [];\r\n }\r\n\r\n return Object\r\n .values(rulesById)\r\n .filter(rule => Object.keys(codes).includes(rule.code));\r\n },\r\n );\r\n\r\nexport default QuestionValidationRuleProjections;","import React, {useCallback, useMemo} from 'react';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport QuestionValidationRuleProjections from '../../projections/questionValidationRule';\r\nimport {useFormikContext} from 'formik';\r\nimport questionProjections from '../../projections/question';\r\nimport {getQuestionFieldInputProps} from './formikQuestionInputProps';\r\nimport * as action from '../../actions';\r\nimport codes from \"../../utils/constants/codes\";\r\nimport {ObjectOfAny, ObjectOfStrings, QuestionSchema} from '../../reducers/types';\r\nimport { useAppDispatch, useAppSelector } from '../../hooks/hooks';\r\nimport {useSelector} from \"react-redux\";\r\nimport { CurrencySchema } from '../../actions';\r\n\r\n\r\ntype Props = {\r\n question: QuestionSchema;\r\n questionTypes: ObjectOfAny;\r\n formGroupContainerStyle?: React.CSSProperties;\r\n labelSize?: string;\r\n inputSize?: string;\r\n infoText?: string;\r\n isReadOnlyOrEditableQuestion?: string;\r\n hasInlineElements?: boolean;\r\n inlineGroupElements?: ObjectOfAny;\r\n inlineReadOnlyElement?: ObjectOfAny;\r\n isDisabledQuestion?: boolean;\r\n currency?: ObjectOfStrings | undefined;\r\n currencyOptions?: CurrencySchema[] | null;\r\n onAutoSaveDraftClaim?: (values: any) => void;\r\n handleCurrencySelectWrapper?: (currency: ObjectOfStrings | undefined, values?: any) => void,\r\n\r\n};\r\n\r\ntype FormikArgsProps = {\r\n field: any,\r\n values: any,\r\n setFieldValue: Function,\r\n setValues: Function,\r\n handleCurrencySelectWrapper: () => {}\r\n \r\n};\r\n\r\nconst FormikQuestion = (props: Props) => {\r\n const {\r\n question,\r\n questionTypes,\r\n currency,\r\n currencyOptions,\r\n handleCurrencySelectWrapper,\r\n onAutoSaveDraftClaim,\r\n formGroupContainerStyle,\r\n labelSize,\r\n inputSize,\r\n infoText,\r\n isReadOnlyOrEditableQuestion,\r\n hasInlineElements,\r\n inlineGroupElements,\r\n inlineReadOnlyElement,\r\n isDisabledQuestion,\r\n } = props;\r\n const {values} = useFormikContext();\r\n const dispatch = useAppDispatch();\r\n\r\n const token = useAppSelector(state => state.applicationUser.accessToken);\r\n const questions =useAppSelector(state => state.question.question.byId);\r\n\r\n\r\n const questionHelpText = useAppSelector(questionProjections\r\n .questionHelperText(question.code, values),\r\n ) as string | null;\r\n const questionValidationRules = useAppSelector(\r\n QuestionValidationRuleProjections\r\n .filteredRulesByCodes(question.questionValidationRules),\r\n );\r\n const questionTypeCode = questionTypes[question.questionTypeId]\r\n ? questionTypes[question.questionTypeId].code\r\n : null;\r\n\r\n const formGroupVariant = GENERAL_FUNCTIONS.getInputItem(questionTypeCode, question, isReadOnlyOrEditableQuestion);\r\n\r\n const changeAnswerStateAction = useCallback(\r\n (payload: any) => dispatch(action.changeAnswerState(payload)),\r\n [dispatch],\r\n );\r\n const isReadOnlyQuestionHandler = useMemo(()=>{\r\n return isReadOnlyOrEditableQuestion === codes.isEditable || isReadOnlyOrEditableQuestion === codes.isReadOnly;\r\n },[isReadOnlyOrEditableQuestion])\r\n\r\n\r\n const getInputProps = (formikArgs: FormikArgsProps) => {\r\n return getQuestionFieldInputProps(\r\n formikArgs,\r\n {\r\n question,\r\n questionTypeCode,\r\n handleCurrencySelectWrapper,\r\n currency,\r\n currencyOptions,\r\n onAutoSaveDraftClaim,\r\n changeAnswerStateAction,\r\n token,\r\n inlineReadOnlyElement,\r\n formGroupVariant,\r\n inlineGroupElements,\r\n questions,\r\n },\r\n );\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n\r\n\r\nexport default FormikQuestion;","import GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport rules from '../../utils/constants/rules';\r\nimport claimBankDetailsQuestionCodes from '../../utils/constants/claimBankDetailsQuestionsCodes';\r\nimport HEADER_FUNCTIONS from '../../utils/functions/headers';\r\nimport moment from \"moment\";\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\nexport const getQuestionFieldInputProps = (formikArgs, restArgs) => {\r\n const {field, values, setFieldValue, errors, meta, setFieldTouched} = formikArgs;\r\n const {\r\n question,\r\n questionTypeCode,\r\n handleCurrencySelectWrapper,\r\n currency,\r\n currencyOptions,\r\n onAutoSaveDraftClaim,\r\n token,\r\n inlineReadOnlyElement,\r\n formGroupVariant,\r\n inlineGroupElements,\r\n questions\r\n } = restArgs;\r\n\r\n\r\n const questionOptions = [\r\n {\r\n key: '',\r\n label: '',\r\n },\r\n ...question.options.map(option => ({\r\n key: option.id,\r\n label: option.name,\r\n })),\r\n ];\r\n\r\n const isRequired = question.requiredByOptionId\r\n ? questionFunctions.requiredQuestionByOptionId(question, values,questions)\r\n : question.isRequired;\r\n\r\n const handleBlur = (field, {values}) => (evt) => {\r\n field.onBlur(evt);\r\n setFieldTouched(field, true);\r\n if (onAutoSaveDraftClaim) {\r\n onAutoSaveDraftClaim(values, meta);\r\n }\r\n };\r\n\r\n const handleAsyncSearchChange = (value) => { \r\n if (\r\n question.relatedQuestions &&\r\n question.relatedQuestions.Address1\r\n ) { \r\n setFieldValue(question.relatedQuestions.Address1, value.lines.addressline1);\r\n setFieldValue(question.relatedQuestions.Address2, value.lines.addressline2);\r\n setFieldValue(question.relatedQuestions.Address3, value.lines.addressline3);\r\n setFieldValue(question.relatedQuestions.County, value.county);\r\n setFieldValue(question.relatedQuestions.Town, value.town);\r\n\r\n if (question.relatedQuestions.Province) {\r\n const controlName = question.relatedQuestions.Province;\r\n const dropdownElement = document.querySelector(`select[name=\"${controlName}\"]`);\r\n if (dropdownElement) {\r\n const options = Array.from(dropdownElement.options);\r\n const selectedOption = options.find(option => option.text === value.province);\r\n\r\n if (selectedOption) {\r\n dropdownElement.value = selectedOption.value;\r\n dropdownElement.dispatchEvent(new Event('change', { bubbles: true }));\r\n }\r\n }\r\n }\r\n }\r\n setFieldValue(field.name, value.postcode);\r\n };\r\n\r\n const generalInputProps = {\r\n id: question.code.replace('-', '_'),\r\n name: question.code,\r\n options: questionOptions,\r\n required: isRequired,\r\n autoComplete: 'off',\r\n value: field.value || '',\r\n onBlur: handleBlur(field, {values}),\r\n checked: !!(field.value && field.value.length > 0),\r\n };\r\n\r\n if (formGroupVariant === 'plain') {\r\n return {\r\n id: '_question_' + question.code.replace('-', '_'),\r\n name: '_question' + question.code,\r\n label: inlineReadOnlyElement ? inlineReadOnlyElement : field?.value instanceof Date ? moment(field.value).format('DD/MM/YYYY') : field.value,\r\n };\r\n }\r\n\r\n if (formGroupVariant === 'radioButtonGroup' && question.displayType === 'horizontal-radio') {\r\n let options = question.options.map(item => {\r\n //handle overlapping options with the same ID in React\r\n return {\r\n id: `${question.id}//${item.id}`,\r\n label: item.name,\r\n };\r\n });\r\n return {\r\n ...generalInputProps,\r\n horizontal: true,\r\n name: question.code,\r\n options: options,\r\n onChange: (e) => setFieldValue(field.name, e),\r\n style: {height: '24px', width: '24px', flex: 1},\r\n labelStyle: {marginTop: '10px', height: '80%'},\r\n };\r\n }\r\n\r\n if (formGroupVariant === 'radioButtonGroup' && question.displayType === 'vertical-radio') {\r\n\r\n let options = question.options.map(item => {\r\n //handle overlapping options with the same ID in React\r\n return {\r\n label: item.name,\r\n id: `${question.id}//${item.id}`,\r\n };\r\n });\r\n return {\r\n ...generalInputProps,\r\n options: options,\r\n onChange: (e) => {\r\n setFieldValue(field.name, e)\r\n },\r\n id: question.code.replace('-', '_'),\r\n };\r\n }\r\n if (formGroupVariant === 'buttonRadioGroup') {\r\n const ranging = questionFunctions.getQuestionIntegerRange(question);\r\n const rangeOptions = [\r\n ...GENERAL_FUNCTIONS.rangeArray(ranging.minValue, ranging.maxValue).map(range => ({\r\n value: range,\r\n label: range,\r\n description: ranging.minValue === range ? question.startLabel : ranging.maxValue === range ? question.endLabel : null,\r\n }))];\r\n return {\r\n ...generalInputProps,\r\n onClick: value => setFieldValue(field.name, value.value),\r\n items: rangeOptions,\r\n style: {textAlign: 'center', width: '89px', marginTop: '10px'},\r\n value: field.value,\r\n };\r\n }\r\n\r\n if (formGroupVariant === 'postcodeSearchableList') {\r\n\r\n const setPostCodeValue = (value) => {\r\n setFieldValue(field.name, value);\r\n };\r\n\r\n return {\r\n ...generalInputProps,\r\n inputValue: field.value || '',\r\n timeOutInMilliseconds: 5000,\r\n inputId: question.code.replace('-', '_'),\r\n onChange: handleAsyncSearchChange,\r\n setInputValue: setPostCodeValue,\r\n url: `${process.env.REACT_APP_BASE_URL}api/Services/addresses/postCode/${field.value}`,\r\n headers: HEADER_FUNCTIONS.headersWithTokenJson(token),\r\n noOptionsMessage: i18n.t(''),\r\n placeholder: '',\r\n noOptionsMessage: i18n.t('noOptions'),\r\n };\r\n }\r\n\r\n if (formGroupVariant === 'date') {\r\n const dateInputProps = questionFunctions\r\n .mapQuestionTypeCodeToDateInputProps(questionTypeCode, question);\r\n\r\n const onDateTimeChange = (value) => {\r\n let newState = {\r\n ...values,\r\n [field.name]: value,\r\n };\r\n if (onAutoSaveDraftClaim) {\r\n onAutoSaveDraftClaim(newState, meta);\r\n }\r\n setFieldValue(field.name, value);\r\n };\r\n\r\n const {minDate, maxDate} = questionFunctions.dateQuestionRestrictions(question, values);\r\n return {\r\n ...generalInputProps,\r\n dateInputProps: {\r\n ...generalInputProps,\r\n ...dateInputProps,\r\n minDate: minDate ? GENERAL_FUNCTIONS.adjustMinMaxToLocalTime(minDate) : null,\r\n maxDate: maxDate ? GENERAL_FUNCTIONS.adjustMinMaxToLocalTime(maxDate) : null,\r\n dateFormat: 'dd/MM/yyyy',\r\n onChange: onDateTimeChange,\r\n selected: field.value ? new Date(GENERAL_FUNCTIONS.convertToParsedDateStringFormat(field.value)) : '',\r\n },\r\n };\r\n }\r\n\r\n if (formGroupVariant === 'textarea') {\r\n let maxLengthRule;\r\n let charLimit;\r\n if (question.questionValidationRules) {\r\n maxLengthRule = Object.entries(question.questionValidationRules)\r\n .find(([key, value]) => {\r\n return (\r\n key === rules.maxLength.code\r\n && value.length > 0\r\n );\r\n });\r\n }\r\n charLimit = maxLengthRule\r\n ? maxLengthRule[1].reduce((acc, curr) => {\r\n return parseInt(curr.value) > acc\r\n ? parseInt(curr.value)\r\n : curr;\r\n }, -1)\r\n : null;\r\n return (charLimit && charLimit >= 0)\r\n ? {...generalInputProps, isVertical: true, maxCharacters: charLimit}\r\n : {...generalInputProps, isVertical: true};\r\n }\r\n\r\n\r\n if (formGroupVariant === 'currency') {\r\n const menuoptions = currencyOptions?.map(x => ({code: x.name, sign: x.symbol}));\r\n const defaultCurrency = currencyOptions?.find(x => x.isDefault === true);\r\n const handleOptionSelect = (evt) => {\r\n handleCurrencySelectWrapper(evt, values);\r\n }\r\n return {\r\n ...generalInputProps,\r\n menuOptions: menuoptions,\r\n handleOptionSelect: handleOptionSelect,\r\n selectedCurrency: currency?.code ? currency : ({ code: defaultCurrency?.name, sign: defaultCurrency?.symbol}) \r\n };\r\n }\r\n \r\n\r\n if (questionFunctions.isQuestionOfTypeIntegerRange(question, questionTypeCode)) {\r\n const range = questionFunctions.getQuestionIntegerRange(question);\r\n const rangeOptions = [\r\n {\r\n key: '',\r\n label: '',\r\n },\r\n ...GENERAL_FUNCTIONS.rangeArray(range.minValue, range.maxValue).map(range => ({\r\n key: range,\r\n label: range,\r\n })),\r\n\r\n ];\r\n\r\n return {\r\n ...generalInputProps,\r\n isVertical: true,\r\n options: rangeOptions,\r\n };\r\n }\r\n\r\n //add dashes in every 2 characters for bank details question sort code\r\n if (question.code === claimBankDetailsQuestionCodes.sortCode) {\r\n let valueWithHyphens = GENERAL_FUNCTIONS.addHyphenInEveryTwoCharacters(field.value);\r\n const handleValueWithDashes = (e) => {\r\n setFieldValue(field.name, GENERAL_FUNCTIONS.removeHyphens(e.target.value));\r\n };\r\n\r\n return {\r\n ...generalInputProps,\r\n value: valueWithHyphens,\r\n onChange: handleValueWithDashes,\r\n };\r\n }\r\n\r\n return generalInputProps;\r\n\r\n};\r\n","import {ObjectOfStrings, QuestionSchema} from '../../reducers/types';\r\nimport codes from '../../utils/constants/codes';\r\n\r\nconst addStyleToSpecificQuestion = (question: QuestionSchema, specificStyleToQuestion: ObjectOfStrings): string => {\r\n return question.code === specificStyleToQuestion.code ? specificStyleToQuestion['style'] : specificStyleToQuestion['defaultStyle'];\r\n};\r\nconst findQuestionCode = (question: QuestionSchema, code: string | null | undefined): boolean => {\r\n return question?.code === code;\r\n};\r\nconst isDisableSpecificQuestion = (question: QuestionSchema, isDisabled: ObjectOfStrings | undefined): boolean => {\r\n return isDisabled && isDisabled.code ? question.code === isDisabled.code : false;\r\n};\r\n\r\n\r\nexport {findQuestionCode, addStyleToSpecificQuestion, isDisableSpecificQuestion};","import React from 'react';\r\n// @ts-ignore\r\nimport FormikQuestion from '../formikQuestion/formikQuestion';\r\nimport {\r\n addStyleToSpecificQuestion,\r\n isDisableSpecificQuestion,\r\n} from './utils';\r\nimport {ObjectOfStrings, QuestionSchema} from '../../reducers/types';\r\nimport styles from '../general/styles/generalLabels.module.scss';\r\nimport { FormikProps } from 'formik';\r\nimport GENERAL_FUNCTIONS from \"../../utils/functions/functions\";\r\nimport {decode} from \"html-entities\";\r\nimport { CurrencySchema } from '../../actions';\r\n\r\n\r\nconst GenericParentQuestion = (props:any): JSX.Element => {\r\n return (\r\n <>\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\n\r\nGenericParentQuestion.Form = (props: PropsType): JSX.Element => {\r\n const {\r\n question,\r\n questionTypes,\r\n defaultLabelSize,\r\n defaultInputSize,\r\n specificStyleToQuestion,\r\n handleCurrencySelectWrapper,\r\n currency,\r\n currencyOptions,\r\n isDisabled={},\r\n index,\r\n accQuestions,\r\n hasDynamicStyle,\r\n dynamicStyle,\r\n isReadOnlyOrEditableQuestion,\r\n hasInlineElements,\r\n inlineGroupElements,\r\n inlineReadOnlyElement,\r\n onAutoSaveDraftClaim,\r\n } = props;\r\n return (\r\n <>\r\n
\r\n \r\n
\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nGenericParentQuestion.ReadOnlyForm = (props: any): JSX.Element => {\r\n const {questionTypeCode, value,} = props;\r\n let isCheckboxLabel = questionTypeCode === 'checkbox' && value === 'yes';\r\n\r\n let answerCheckboxLabel = () => (\r\n <>\r\n \r\n {props.children}\r\n \r\n );\r\n let textAnswer = () => (\r\n
\r\n {value instanceof Date ? GENERAL_FUNCTIONS.dateFormat(value): decode(value,{scope:'strict'}) }\r\n {props.children}\r\n
\r\n );\r\n\r\n return(\r\n <>\r\n {isCheckboxLabel ? answerCheckboxLabel() : textAnswer()}\r\n \r\n );\r\n\r\n}\r\n\r\nGenericParentQuestion.Body = (props: { children: React.ReactNode,dynamicStyle?:string ,additionalStyle?:any, hasDynamicStyle?:boolean, }): JSX.Element => {\r\n const {dynamicStyle,additionalStyle,hasDynamicStyle} = props;\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n};\r\n\r\ntype PropsType = {\r\n index: number;\r\n accQuestions: QuestionSchema[];\r\n questionTypes: ObjectOfStrings;\r\n question: QuestionSchema,\r\n currency?: ObjectOfStrings | undefined;\r\n currencyOptions?: CurrencySchema[] | null;\r\n onAutoSaveDraftClaim?: (values: any) => void;\r\n reserveCalculationLoading?: boolean,\r\n handleCurrencySelectWrapper?: (currency: ObjectOfStrings | undefined, values?: any) => void,\r\n defaultInputSize?: string,\r\n defaultLabelSize?: string,\r\n specificStyleToQuestion?: { code: string, style: string, defaultStyle: string } | any,\r\n isHide?: string | null,\r\n isDisabled?: ObjectOfStrings,\r\n notUseFieldValidator: boolean,\r\n formGroupContainerStyle?: React.CSSProperties,\r\n hasHorizontalRule?: boolean\r\n dynamicStyle?: string\r\n children?: React.ReactNode\r\n hasDynamicStyle?:boolean,\r\n formikProps?:FormikProps,\r\n loading?:boolean | boolean[],\r\n isReadOnlyOrEditableQuestion?: string ,\r\n hasInlineElements?: boolean,\r\n inlineGroupElements?:JSX.Element,\r\n inlineReadOnlyElement?:JSX.Element,\r\n}\r\n\r\nexport default GenericParentQuestion;\r\n","import {createSelector} from '@reduxjs/toolkit';\r\n\r\nconst questionGroupStepProjections = {};\r\n\r\nquestionGroupStepProjections.tabs = createSelector(\r\n state => state.questionGroupStep.questionGroupStep.byId,\r\n (questionGroupStepById) => {\r\n return Object.keys(questionGroupStepById).map((item, index) => ({\r\n key: questionGroupStepById[item].code,\r\n label: questionGroupStepById[item].name,\r\n }));\r\n },\r\n);\r\n\r\nquestionGroupStepProjections.questionGroupStepWithSmallestRank = createSelector(\r\n state => state.questionGroupStep.questionGroupStep.byId,\r\n (questionGroupStepById) => {\r\n if (Object.keys(questionGroupStepById).length === 0) {\r\n return null;\r\n }\r\n\r\n return Object.values(questionGroupStepById).reduce((acc, curr) => {\r\n return curr.rank < acc.rank\r\n ? curr\r\n : acc;\r\n });\r\n },\r\n);\r\n\r\n\r\n// return the available steps in an array withs its codes\r\nquestionGroupStepProjections.availableSteps = (activeTab = null) => createSelector(\r\n state => state.questionGroupStep.questionGroupStep.byId,\r\n state => state.answer.answer.activeGroupStepCode,\r\n (questionGroupStepById, activeGroupStepCode) => {\r\n if (Object.keys(questionGroupStepById).includes(activeGroupStepCode) === false) {\r\n return [];\r\n }\r\n\r\n let hasReachedLastPartiallyGroupStep = false;\r\n const lastCompletedStep = Object.keys(questionGroupStepById).reduce((acc, curr) => {\r\n if (\r\n hasReachedLastPartiallyGroupStep === false\r\n && curr === activeGroupStepCode\r\n ) {\r\n hasReachedLastPartiallyGroupStep = true;\r\n return acc;\r\n }\r\n\r\n if (\r\n hasReachedLastPartiallyGroupStep\r\n && curr === activeTab\r\n ) {\r\n return activeTab;\r\n }\r\n\r\n return acc;\r\n }, activeGroupStepCode);\r\n\r\n const availableItems = [];\r\n\r\n Object.keys(questionGroupStepById).every((key) => {\r\n if (key !== lastCompletedStep) {\r\n availableItems.push(key);\r\n }\r\n\r\n if (key === lastCompletedStep) {\r\n availableItems.push(key);\r\n return false;\r\n }\r\n\r\n return true;\r\n });\r\n\r\n return availableItems;\r\n },\r\n);\r\n\r\nquestionGroupStepProjections.answerFromGroupSteps = createSelector(\r\n state => state.answer.answer.answerFromGroupSteps,\r\n state => state.answer.answer.activeGroupStepCode,\r\n (answerFromGroupSteps, activeGroupStepCode) => {\r\n if (activeGroupStepCode) {\r\n return answerFromGroupSteps\r\n }else{\r\n return [];\r\n }\r\n }\r\n)\r\nexport default questionGroupStepProjections;","import React, {useEffect, useMemo} from 'react';\r\nimport {useFormikContext} from 'formik';\r\nimport {ObjectOfAny, QuestionSchema} from '../../reducers/types';\r\nimport {useSelector} from \"react-redux\";\r\nimport questionGroupStepProjections from \"../../projections/questionGroupStep\";\r\nimport GENERAL_FUNCTIONS from \"../../utils/functions/functions\";\r\n\r\nexport const useChildQuestions = (props: ChildQuestionsProps) => {\r\n const {question, questions} = props;\r\n // in claim form when a claim is draft there is\r\n // a scenario that a question can be triggered by question groupstep that is not fetched yet\r\n const answerFromGroupSteps = useSelector(questionGroupStepProjections.answerFromGroupSteps);\r\n\r\n const {values, setFieldValue}: any = useFormikContext();\r\n let findParentQuestion = useMemo(() => questions.find((item: {\r\n id: string\r\n }) => item.id === question.enabledByQuestionId), [questions, question]);\r\n if (!findParentQuestion && answerFromGroupSteps.length > 0) {\r\n const findAnswerQuestion = answerFromGroupSteps.find((item: { questionCode: string, questionId: string }) => item.questionId === question.enabledByQuestionId)\r\n if (findAnswerQuestion) {\r\n // @ts-ignore\r\n findParentQuestion = {}\r\n // @ts-ignore\r\n findParentQuestion.code = findAnswerQuestion.questionCode;\r\n // @ts-ignore\r\n findParentQuestion.id = findAnswerQuestion.questionId;\r\n }\r\n }\r\n const isEnabledByOptionType = question.enabledByQuestionId === findParentQuestion?.id\r\n && findParentQuestion && values[findParentQuestion?.code] != null && values[findParentQuestion?.code] === question.enabledByOptionId;\r\n\r\n const isEnabledByCheckBoxType = GENERAL_FUNCTIONS.checkIfParentQuestionCheckboxTickedToEnableQuestion(findParentQuestion, values);\r\n\r\n const isEnabledQuestion = isEnabledByOptionType || isEnabledByCheckBoxType;\r\n\r\n //Clear field value if parent question is not selected (includes all options)\r\n const shouldClearFieldValue = question.enabledByOptionId\r\n && question.enabledByQuestionId === findParentQuestion?.id\r\n && findParentQuestion && values[findParentQuestion?.code] !== question.enabledByOptionId\r\n || (GENERAL_FUNCTIONS.checkIfParentQuestionCheckboxUntickedToClearChildQuestionValue(findParentQuestion, values));\r\n\r\n useEffect(() => {\r\n if (shouldClearFieldValue) {\r\n setFieldValue(question.code, undefined);\r\n }\r\n }, [shouldClearFieldValue]);\r\n\r\n return {\r\n isEnabledQuestion\r\n };\r\n};\r\n\r\nconst GenericChildQuestions = (props: any & { children: React.ReactNode }): JSX.Element | null => {\r\n const {isEnabledQuestion} = useChildQuestions(props);\r\n\r\n return (<>\r\n {isEnabledQuestion ?\r\n <>\r\n {props.children}\r\n : null}\r\n );\r\n};\r\n\r\n\r\ntype ChildQuestionsProps = {\r\n question: QuestionSchema;\r\n questions: QuestionSchema[];\r\n};\r\n\r\nexport default GenericChildQuestions;\r\n","import React from 'react';\r\nimport { Form } from 'formik';\r\nimport GenericParentQuestion from './genericParentQuestion';\r\n// @ts-ignore\r\nimport { Button, Loader } from 'arag-ui-lib';\r\nimport { ObjectOfAny, ObjectOfStrings, QuestionSchema } from '../../reducers/types';\r\nimport GenericChildQuestions from \"./genericChildQuestions\";\r\nimport FormikQuestion from \"../formikQuestion/formikQuestion\";\r\nimport { CurrencySchema } from '../../actions';\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\ntype ChildQuestionsProps = RemoveUnnecessaryAnswersProps & {\r\n questionTypes: ObjectOfAny;\r\n loading?: boolean;\r\n onAutoSaveDraftClaim?: (values: any) => void;\r\n\r\n}\r\ntype RemoveUnnecessaryAnswersProps = {\r\n question: QuestionSchema,\r\n questions: QuestionSchema[]\r\n currency?: ObjectOfStrings | undefined;\r\n currencyOptions?: CurrencySchema[] | null;\r\n handleCurrencySelectWrapper?: (currency: ObjectOfStrings | undefined, values?: any) => void,\r\n notUseFieldValidator?: boolean;\r\n defaultLabelSize?: string;\r\n defaultInputSize?: string;\r\n hasDynamicStyle?:boolean,\r\n dynamicStyle?:string,\r\n}\r\nconst GenericFormWithChildQuestions = (props: Props): JSX.Element | null => {\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n\r\n};\r\n\r\nGenericFormWithChildQuestions.Body = (props: Props): JSX.Element => {\r\n return (\r\n <>\r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nGenericFormWithChildQuestions.ParentElement = (props: Props): JSX.Element => {\r\n return (\r\n <>\r\n \r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nGenericFormWithChildQuestions.ChildrenElement = (props: ChildQuestionsProps): JSX.Element => {\r\n const {\r\n question,\r\n questions,\r\n questionTypes,\r\n notUseFieldValidator,\r\n handleCurrencySelectWrapper,\r\n currency,\r\n currencyOptions,\r\n defaultLabelSize,\r\n defaultInputSize,\r\n hasDynamicStyle,\r\n dynamicStyle,\r\n loading,\r\n onAutoSaveDraftClaim\r\n } = props;\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\n\r\nGenericFormWithChildQuestions.SubmitForm = (props:Props): JSX.Element => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n}\r\n\r\nGenericFormWithChildQuestions.SubmitButton = (props: { defaultInputSize: string, initialValues: any, disabledSubmitButton: boolean, hideSubmitButton: boolean }): JSX.Element => {\r\n const { defaultInputSize, initialValues, disabledSubmitButton } = props;\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n 0 ? i18n.t('update') : i18n.t('save')}\r\n type={'submit'}\r\n disabled={disabledSubmitButton}\r\n arrowDirection={'right'}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nGenericFormWithChildQuestions.Loading = (props: { loading: boolean }): JSX.Element => {\r\n const { loading } = props;\r\n return (\r\n <>\r\n {loading && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\n\r\ntype Props = {\r\n children: React.ReactNode | JSX.Element | JSX.Element[] | any\r\n}\r\n\r\n\r\nexport default GenericFormWithChildQuestions;","import React from 'react';\r\nimport {DefaultRootState, useSelector} from 'react-redux';\r\nimport questionProjections from '../../projections/question';\r\nimport {ObjectOfStrings, QuestionSchema} from \"../../reducers/types\";\r\nimport GenericFormWithChildQuestions from \"../genericFormWithChildrenQuestions/genericFormWithChildQuestion\";\r\nimport GenericParentQuestion from \"../genericFormWithChildrenQuestions/genericParentQuestion\";\r\nimport {useAppSelector} from \"../../hooks/hooks\";\r\nimport {RootState} from \"../../store/store\";\r\nimport { CurrencySchema } from '../../actions';\r\n\r\ntype Props = {\r\n activeTab: string | null;\r\n questionTypes?: ObjectOfStrings | any;\r\n selectedCurrency?: ObjectOfStrings | undefined;\r\n currencyOptions?: CurrencySchema[] | null;\r\n onAutoSaveDraftClaim?: (values: any) => void;\r\n handleCurrencySelectWrapper?: (currency: ObjectOfStrings | undefined, values?: any) => void,\r\n};\r\nconst ClaimFormStep = (props: Props): JSX.Element => {\r\n const {\r\n activeTab,\r\n questionTypes,\r\n selectedCurrency,\r\n currencyOptions,\r\n onAutoSaveDraftClaim,\r\n handleCurrencySelectWrapper,\r\n } = props;\r\n const questions = useAppSelector(questionProjections.questionListOfGroupStep(activeTab));\r\n const allQuestions = useAppSelector((state:RootState )=>state.question.question.byId);\r\n\r\n return (\r\n
\r\n <>\r\n {questions.map((question: QuestionSchema | any, index: number, accQuestions: QuestionSchema[]) => {\r\n if (question.isParent) {\r\n return (\r\n <>\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 );\r\n};\r\n\r\nexport default ClaimFormStep;","import {createSelector} from '@reduxjs/toolkit';\r\n\r\nconst documentTypeProjections = {};\r\n\r\ndocumentTypeProjections.attachmentAvailableDocumentTypesOptions = (\r\n attachment,\r\n uploadOnlyOnceDocumentTypesCodes,\r\n questionWithDocumentTypesCode,\r\n) => createSelector(\r\n state => state.documentType.documentType.byId,\r\n state => state.question.question.byId[questionWithDocumentTypesCode],\r\n (documentTypesById, question) => {\r\n const questionDocumentTypesById = question && question.documentTypes\r\n ? question.documentTypes\r\n .reduce((acc, curr) => ({\r\n ...acc,\r\n [curr.id]: curr,\r\n }), {})\r\n : {};\r\n const mergedDocumentTypesOptions= {\r\n ...documentTypesById,\r\n ...questionDocumentTypesById,\r\n };\r\n const documentTypesOptionsList = Object\r\n .entries(mergedDocumentTypesOptions)\r\n .map(([key, item]) => ({\r\n value: item.code,\r\n label: item.name,\r\n item: item,\r\n }));\r\n\r\n if(!attachment){\r\n return documentTypesOptionsList;\r\n }\r\n\r\n return documentTypesOptionsList\r\n .filter(option => (\r\n uploadOnlyOnceDocumentTypesCodes.includes(option.item.code) === false\r\n || (\r\n uploadOnlyOnceDocumentTypesCodes.includes(option.item.code) === true\r\n && (\r\n attachment.documentTypes\r\n && attachment.documentTypes.find(type => type.item.code === option.item.code)\r\n )\r\n )\r\n ));\r\n\r\n },\r\n);\r\n\r\nexport default documentTypeProjections;","import styles from './progressBar.module.scss';\r\n\r\ntype Props = {\r\n progress: {\r\n id: string,\r\n progress: number\r\n } ;\r\n mainStyles?: string;\r\n additionalStyles?: string;\r\n subProgressTitle?: string;\r\n hasInitialStyle?: boolean;\r\n}\r\nconst ProgressBar = (props:Props) => {\r\n const {progress,additionalStyles, mainStyles, subProgressTitle='',hasInitialStyle} = props;\r\n return (\r\n <>\r\n {additionalStyles ?
: ''}\r\n \r\n
\r\n
\r\n {progress.progress?.toFixed(0)}% {subProgressTitle}\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ProgressBar;\r\n","import {useEffect, useState} from 'react';\r\nimport {FormGroup, HorizontalRule, Link} from 'arag-ui-lib';\r\nimport documentTypeProjections from '../../projections/documentType';\r\nimport codes from '../../utils/constants/codes';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport {useAppSelector} from '../../hooks/hooks';\r\nimport ProgressBar from '../general/progressBar/progressBar';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\ntype Props = {\r\n attachment: { documentTypes: Array, name: string, id: string, abortController: any, fileToMB: number },\r\n handleTypeChange: (attachmentIndex: any) => any,\r\n uploadOnlyOnceDocumentTypesCodes: any,\r\n attachmentIndex: number | null | string,\r\n handleDownload: (attachment: { documentTypes: Array; name: string }) => any,\r\n removeAttachment: (attachmentIndex: number | string | null) => any,\r\n maxAttachmentsSizeInBytes: string | number | null,\r\n autoSaveAction: Function,\r\n fileUploadingProgress: any,\r\n cancelUpload: Function,\r\n isDownloadingFile: string | null,\r\n fileDownloadingProgress: any,\r\n}\r\nconst AttachmentItem = (props: Props): JSX.Element => {\r\n const {\r\n attachment,\r\n handleTypeChange,\r\n uploadOnlyOnceDocumentTypesCodes,\r\n attachmentIndex,\r\n handleDownload,\r\n removeAttachment,\r\n maxAttachmentsSizeInBytes,\r\n autoSaveAction,\r\n fileUploadingProgress,\r\n cancelUpload,\r\n isDownloadingFile,\r\n fileDownloadingProgress,\r\n } = props;\r\n const {t} = useTranslation()\r\n const [invalidAttachmentsMessage, setInvalidAttachmentsMessage] = useState(null);\r\n const documentTypesOptions = useAppSelector(\r\n documentTypeProjections.attachmentAvailableDocumentTypesOptions(\r\n attachment,\r\n uploadOnlyOnceDocumentTypesCodes,\r\n codes.claimAttachments,\r\n ),\r\n );\r\n const question = useAppSelector(state => state.question.question.byId['claim-attachments']);\r\n\r\n\r\n // individual attachment validation\r\n useEffect(\r\n () => {\r\n const attachmentValidationError = questionFunctions\r\n .validateAttachment(attachment, question);\r\n\r\n if (attachmentValidationError) {\r\n setInvalidAttachmentsMessage(attachmentValidationError);\r\n return;\r\n }\r\n\r\n setInvalidAttachmentsMessage(null);\r\n\r\n },\r\n [attachment, setInvalidAttachmentsMessage, maxAttachmentsSizeInBytes, question],\r\n );\r\n\r\n return (\r\n
\r\n {attachment.name === '' ? null :\r\n <>\r\n \r\n {\r\n e.preventDefault();\r\n await handleDownload(attachment);\r\n }}\r\n aria-disabled={fileUploadingProgress?.find((i: any) => i.id === attachment.id)?.progress < 100}\r\n >\r\n {attachment.name}\r\n \r\n ),\r\n }}\r\n\r\n />\r\n {isDownloadingFile === attachment?.id && !fileDownloadingProgress?.find ((i: { id: string; }) => i.id === attachment.id)?.id &&\r\n \r\n }\r\n {fileDownloadingProgress?.find ((i: { id: string; }) => i.id === attachment.id)?.id &&\r\n i.id === attachment.id)}\r\n additionalStyles={'col-sm-offset-2'} />\r\n }\r\n\r\n {fileUploadingProgress?.find((i: { id: string; }) => i.id === attachment.id)?.id &&\r\n
\r\n i.id === attachment.id)}\r\n additionalStyles={'col-sm-2'}\r\n mainStyles={'col-sm-6'}\r\n />\r\n
\r\n }\r\n\r\n
\r\n
\r\n
\r\n
\r\n i.id === attachment.id)?.progress < 100}\r\n variant=\"tertiary\"\r\n arrowDirection=\"left\"\r\n label={t('remove')}\r\n onClick={() => removeAttachment(attachmentIndex)}/>\r\n
\r\n
\r\n {attachment.abortController && attachment.fileToMB > codes.thresholdMb && fileUploadingProgress?.find((i: any) => i.id === attachment.id)?.progress < codes.progressEnd &&\r\n cancelUpload(attachment?.id,attachmentIndex)}\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 AttachmentItem;\r\n","import React from 'react';\r\nimport questionProjections from '../../projections/question';\r\nimport PropTypes from 'prop-types';\r\nimport { useAppSelector } from '../../hooks/hooks';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props={ questionCode: string | null; asnwerValues: Array; }\r\ntype Item ={ id: React.Key | null | undefined; name: string | number | boolean | React.ReactElement> | React.ReactFragment | React.ReactPortal | null | undefined; };\r\n\r\nconst QuestionDocumentTypes = (props:Props ): JSX.Element => {\r\n const {questionCode, asnwerValues} = props;\r\n const questionDocumentTypes = useAppSelector(questionProjections.attachmentsQuestionDocumentTypes(questionCode,asnwerValues));\r\n const {t} =useTranslation();\r\n return (\r\n
\r\n
\r\n {t('attachmentsSpecified') as string}\r\n \r\n {questionDocumentTypes.map((item: Item) => (\r\n
  • \r\n \r\n {item.name}\r\n
  • \r\n ))\r\n }\r\n \r\n {t('attachmentType') as string}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nQuestionDocumentTypes.propTypes = {\r\n questionCode: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default QuestionDocumentTypes;","import { createSelector } from '@reduxjs/toolkit';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\n\r\nconst applicationSettingsProjections = {} as ObjectOfAny;\r\n\r\napplicationSettingsProjections.maxAttachmentsSizeInBytes = createSelector(\r\n (state: RootState) => state.applicationSettings.apiApplicationSettings,\r\n (apiApplicationSettings) => {\r\n return apiApplicationSettings\r\n ? apiApplicationSettings.maxAttachmentSizeInMB * 1000 * 1000\r\n : null;\r\n });\r\n \r\n applicationSettingsProjections.getCountry = createSelector(\r\n (state: RootState) => state.applicationSettings.apiApplicationSettings,\r\n (apiApplicationSettings) => {\r\n if(apiApplicationSettings === null) {\r\n return null;\r\n }\r\n return apiApplicationSettings.currentCountryCode;\r\n });\r\n\r\napplicationSettingsProjections.getAragSocialMediaImages = createSelector(\r\n (state: RootState) => state.applicationSettings.apiApplicationSettings,\r\n (apiApplicationSettings) => {\r\n if (apiApplicationSettings === null) {\r\n return [];\r\n }\r\n return apiApplicationSettings.aragSocialMediaImages;\r\n });\r\n\r\n\r\nexport default applicationSettingsProjections;","import React from 'react';\r\nimport {Loader} from 'arag-ui-lib';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {useFormikContext} from 'formik';\r\nimport codes from '../../utils/constants/codes';\r\nimport config from '../../utils/constants/config';\r\nimport AttachmentItem from '../attachmentItem/attachmentItem';\r\nimport QuestionDocumentTypes from '../questionDocumentTypes/questionDocumentTypes';\r\nimport applicationSettingsProjections from '../../projections/applicationSettings';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\nimport {useAppSelector} from '../../hooks/hooks';\r\nimport {IsUploadingFile} from '../../utils/constants/interfaces';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\n\r\n\r\nconst extractUniqueSelectedDocumentTypesThatCanBeUploadedOnlyOnce = (attachments: any[]) => {\r\n if (!attachments) {\r\n return [];\r\n }\r\n return attachments\r\n .filter(attachment => attachment.documentTypes)\r\n .reduce((acc, curr) => {\r\n const uniqueAndNotAdded = curr.documentTypes\r\n .filter((type: { item: { code: string; uploadOnlyOnePerClaimApplication: boolean; }; }) => (type.item\r\n && acc.includes(type.item.code) === false && type.item.uploadOnlyOnePerClaimApplication))\r\n .map((unique: { item: { code: string; }; }) => unique.item.code);\r\n return [\r\n ...acc,\r\n ...uniqueAndNotAdded,\r\n ];\r\n }, []);\r\n};\r\n\r\nconst Attachments = (props: {\r\n onAutoSaveDraftClaim: (values: any, errors: any) => any;\r\n isUploadingFile: IsUploadingFile | null;\r\n setUploadingfile: Function; setFileUploadingProgress: any,\r\n fileUploadingProgress: any;\r\n setDownloadingFile: Function,\r\n isDownloadingFile: string | null,\r\n setFileDownloadingProgress: Function,\r\n fileDownloadingProgress:any,\r\n\r\n}) => {\r\n const {\r\n onAutoSaveDraftClaim,\r\n isUploadingFile,\r\n setUploadingfile,\r\n setFileUploadingProgress,\r\n fileUploadingProgress,\r\n setDownloadingFile,\r\n isDownloadingFile,\r\n setFileDownloadingProgress,\r\n fileDownloadingProgress,\r\n } = props;\r\n const {t} = useTranslation();\r\n const {values, setFieldValue, errors, setFieldError}: any = useFormikContext();\r\n const maxAttachmentsSizeInBytes = useAppSelector(applicationSettingsProjections.maxAttachmentsSizeInBytes) as number | null;\r\n const attachments = values && values[codes.claimAttachments] ? values[codes.claimAttachments] : [];\r\n\r\n const asnwerValues: Array = values && Object.keys(values).length > 0 ? Object.values(values) : [];\r\n const uploadOnlyOnceDocumentTypesCodes = extractUniqueSelectedDocumentTypesThatCanBeUploadedOnlyOnce(attachments);\r\n const question = useAppSelector(state => state.question.question.byId['claim-attachments']);\r\n\r\n const addAttachments = async (newAttachments: any[], rejectedFileIndexes: Array) => {\r\n if (rejectedFileIndexes.length > 0) {\r\n newAttachments = newAttachments.filter((x, index) => !rejectedFileIndexes.includes(index));\r\n }\r\n setUploadingfile(true);\r\n let uploadedAttachments: any[] = [];\r\n if (newAttachments.length > 0) {\r\n for (const attachment of newAttachments) {\r\n let uploadedAttachment = await GENERAL_FUNCTIONS.requestToUploadFileToBlob({\r\n fileName: attachment.name,\r\n type: codes.attachmentTypeEnum.ClaimFormQuestion,\r\n });\r\n // Create a new AbortController instance\r\n const abortController = new AbortController();\r\n // //2.1 here add additional data to object\r\n const fileSize = attachment.file?.size;\r\n const fileToMB = Math.round((fileSize / 1024));\r\n if (uploadedAttachment) {\r\n uploadedAttachments = [\r\n ...uploadedAttachments,\r\n {\r\n ...attachment,\r\n id: uploadedAttachment.attachmentId,\r\n abortController: abortController,\r\n fileToMB: fileToMB,\r\n uploadedAttachment: uploadedAttachment,\r\n hasMetaDataSet:false,\r\n }];\r\n }\r\n }\r\n }\r\n const updatedList = [...attachments, ...uploadedAttachments];\r\n setFieldValue(codes.claimAttachments, updatedList);\r\n setUploadingfile(null);\r\n await fileUploadingProgressHandler(uploadedAttachments);\r\n };\r\n\r\n const fileUploadingProgressHandler = async (updatedList: { uploadedAttachment: { size: number; }; file: any; abortController: any ,hasMetaDataSet: boolean;}[]) => {\r\n let uploadedAttachmentsProgress: any[] = [];\r\n //2. Handle promises of each progress bar of file uploading and update the state\r\n const uploadPromises = updatedList.map(async (item: {\r\n hasMetaDataSet: boolean;\r\n uploadedAttachment: { size: number; }; file: any; abortController: any } ) => {\r\n const progressPromise = new Promise((resolve) => {\r\n GENERAL_FUNCTIONS.fileUploadAzureBlob(\r\n item.uploadedAttachment,\r\n item.file,\r\n (progress: number, id: string,hasMetaDataSet:boolean) => {\r\n // Check if the file has been removed from the list before updating progress\r\n setFileUploadingProgress((prevProgress: any[]) => {\r\n const updatedProgress = { id, progress, hasMetaDataSet };\r\n const index = prevProgress.findIndex((item) => item.id === id);\r\n if (index !== -1) {\r\n return [\r\n ...prevProgress.slice(0, index),\r\n updatedProgress,\r\n ...prevProgress.slice(index + 1),\r\n ];\r\n } else {\r\n return [...prevProgress, updatedProgress];\r\n }\r\n });\r\n },\r\n item.abortController,\r\n item.hasMetaDataSet,\r\n ).then(() => resolve());\r\n });\r\n //check if the file has been removed from the list before updating progress\r\n const index = updatedList.findIndex((fileItem) => fileItem === item);\r\n if (index !== -1 || !item.abortController.signal.aborted) {\r\n uploadedAttachmentsProgress.push({\r\n ...item,\r\n }) ;\r\n }\r\n await progressPromise;\r\n });\r\n\r\n await Promise.all(uploadPromises);\r\n setUploadingfile(null);\r\n };\r\n\r\n const updateAttachment = (updatedAttachment: any, updatedAttachmentIndex: number) => {\r\n const updatedList = attachments\r\n .map((attachment: any, index: number) => {\r\n return updatedAttachmentIndex === index\r\n ? updatedAttachment\r\n : attachment;\r\n });\r\n setFieldValue(codes.claimAttachments, updatedList);\r\n };\r\n\r\n const removeAttachment = async (indexOfAttachmentToBeRemoved: number | any) => {\r\n setFileUploadingProgress((prevProgress: any[]) => (prevProgress.filter((item) => item.id !== attachments[indexOfAttachmentToBeRemoved].id)));\r\n const updatedList = attachments.filter((a: any, index: number) => index !== indexOfAttachmentToBeRemoved);\r\n setFieldValue(codes.claimAttachments, updatedList);\r\n setUploadingfile(null);\r\n await GENERAL_FUNCTIONS.requestToRemoveFile(attachments[indexOfAttachmentToBeRemoved].id);\r\n\r\n };\r\n const cancelUpload =async (fileId: string,indexOfAttachmentToBeRemoved:number) => {\r\n // Find the file with the corresponding fileId\r\n const file = attachments.find((item: { id: string; }) => item.id === fileId);\r\n // Remove the file from the progress array\r\n if (file && file.abortController) {\r\n // Cancel the file upload by aborting the controller signal\r\n file.abortController.abort();\r\n setFileUploadingProgress((prevProgress: any[]) => (prevProgress.filter((item) => item.id !== attachments[indexOfAttachmentToBeRemoved].id)));\r\n // Remove the file from the form values\r\n }\r\n const updatedList = attachments.filter((a: any, index: number) => index !== indexOfAttachmentToBeRemoved);\r\n setFieldValue(codes.claimAttachments, updatedList);\r\n await GENERAL_FUNCTIONS.requestToRemoveFile(attachments[indexOfAttachmentToBeRemoved].id);\r\n setUploadingfile(null);\r\n };\r\n const autoSaveAction = () => {\r\n onAutoSaveDraftClaim(values, errors);\r\n };\r\n const handleTypeChange = (attachmentIndex: any) => (values: any): any => {\r\n const updatedAttachment = {\r\n ...attachments[attachmentIndex],\r\n documentTypes: values,\r\n };\r\n updateAttachment(updatedAttachment, attachmentIndex);\r\n };\r\n const handleDownload = async (attachment: { id: string; name: string; } | any) => {\r\n setDownloadingFile(attachment.id);\r\n\r\n const blob = await GENERAL_FUNCTIONS.requestToDownloadFile(attachment.id, attachment.name, codes.attachment, (id: string, progress: number) => {\r\n setFileDownloadingProgress((prevProgress: (any | { name: string; progress: number })[]) => {\r\n // Find the index of the progress object with the matching fileId\r\n const index = prevProgress.findIndex((item) => item.id === id);\r\n // Create a new progress object with the updated progress value\r\n const updatedProgress = {id: id, progress: progress};\r\n // Update the progress array by replacing the old object with the updated one,\r\n // or appending the updated object if it doesn't exist yet\r\n if (index !== -1) {\r\n return [\r\n ...prevProgress.slice(0, index),\r\n updatedProgress,\r\n ...prevProgress.slice(index + 1),\r\n ];\r\n } else {\r\n return [...prevProgress, updatedProgress];\r\n }\r\n });\r\n });\r\n\r\n if (blob && blob !== codes.warnings && blob !== codes.fileNotFound) {\r\n GENERAL_FUNCTIONS.downloadURI(blob, attachment.name);\r\n setDownloadingFile(null);\r\n setFileDownloadingProgress((prevProgress: any[]) => [...prevProgress.filter((item) => item.id !== attachment.id)]);\r\n }\r\n if (blob === codes.warnings) {\r\n setFileDownloadingProgress((prevProgress: any[]) => [...prevProgress.filter((item) => item.id !== attachment.id)]);\r\n setDownloadingFile(null);\r\n }\r\n if(blob ===codes.fileNotFound){\r\n setDownloadingFile(null);\r\n }\r\n \r\n };\r\n const handleDrop = async (files: any[], rejectedFile: string | any[]) => {\r\n let rejectedFileIndexes: Array = [];\r\n if (rejectedFile && rejectedFile.length > 0) {\r\n setFieldError(codes.dragDrop, ` File type ${GENERAL_FUNCTIONS.validateFileExtensions(rejectedFile[0].name)} is not supported`);\r\n }\r\n const readFiles = await Promise\r\n .all(\r\n files\r\n .map(async (file, index) => {\r\n let rejectedFileIndex = GENERAL_FUNCTIONS.sizeOfFiles(file, {\r\n option: 0,\r\n setFieldError: setFieldError,\r\n formikBag: null,\r\n field: codes.dragDrop,\r\n rejectedFile: rejectedFile,\r\n });\r\n if (rejectedFileIndex === 1) {\r\n rejectedFileIndexes = [...rejectedFileIndexes, index];\r\n }\r\n\r\n return {\r\n file: file,\r\n name: file.name,\r\n hasMetaDataSet: false,\r\n };\r\n }),\r\n );\r\n await addAttachments(readFiles, rejectedFileIndexes);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n ({\r\n name: codes.claimAttachments,\r\n accepts: config.ACCEPTED_FILE_EXTENSIONS,\r\n allowMultiple: true,\r\n onDrop: (items: any[], rejectedFile: string | any[]) => handleDrop(items, rejectedFile),\r\n label:
    \r\n
    {t('dragAndDrop')as string}
    \r\n
    {t('maxFileSize') as string}
    \r\n {isUploadingFile && }\r\n
    ,\r\n\r\n })}\r\n inputProps={{\r\n name: codes.claimAttachments,\r\n }}\r\n label={''}\r\n />\r\n
    \r\n
    \r\n
    \r\n {attachments.map((attachment: { documentTypes: any[]; name: string; } | any, index: React.Key | null | number) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Attachments;\r\n","import React from 'react';\r\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\r\nimport ClaimFormStep from '../components/claimFormStep/claimFormStep';\r\nimport Attachments from '../components/attachments/attachments';\r\nimport codes from '../utils/constants/codes';\r\n\r\n\r\nconst StepsRouter = (props)=>{\r\n const match = useRouteMatch();\r\n return(\r\n \r\n }\r\n />\r\n ( )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default StepsRouter;","import { useEffect, useRef, useState } from 'react';\r\n\r\nconst useStateIfMounted = (initialState: T): [T, (newState: T) => void] => {\r\n const isMounted = useRef(true);\r\n const [state, setState] = useState(initialState);\r\n\r\n useEffect(() => {\r\n return () => {\r\n isMounted.current = false;\r\n };\r\n }, []);\r\n\r\n const setStateIfMounted = (newState: any) => {\r\n if (isMounted.current) {\r\n setState(newState);\r\n }\r\n };\r\n\r\n return [state, setStateIfMounted];\r\n};\r\n\r\n\r\nexport default useStateIfMounted;","import React, {RefObject, useEffect, useState} from 'react';\r\n// @ts-ignore\r\nimport {Button, Loader, NavigationBar, NavigationContent} from 'arag-ui-lib';\r\nimport {Form, Formik} from 'formik';\r\nimport StepsRouter from '../../routers/stepsRouter';\r\n// @ts-ignore\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport config from '../../utils/constants/config';\r\nimport questionProjections from '../../projections/question';\r\nimport style from './claimForm.module.scss';\r\nimport codes from '../../utils/constants/codes';\r\nimport {useAppSelector} from '../../hooks/hooks';\r\nimport useStateIfMounted from '../../hooks/useStateIfMounted';\r\nimport {CurrencySchema} from '../../actions';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n tabs: any;\r\n activeTab: string | null;\r\n onNextPage: (values: { [x: string]: any[]; }) => undefined\r\n onPreviousPage: () => void;\r\n onSubmitForm: (values: any) => void;\r\n setCaptchaValue: any;\r\n captchaValue: string | null;\r\n recaptchaRef: RefObject;\r\n fetchingQuestionGroupSteps: boolean;\r\n isDraftApplicationRequestFinished: boolean;\r\n questionGroupsStepsLoading: boolean;\r\n setQuestionGroupsStepsLoading: (b: boolean) => void;\r\n questionTypes: { id: string, code: string, name: string }[];\r\n handleCurrencySelectWrapper: (currency: {\r\n sign: string;\r\n code: string;\r\n position: string;\r\n } | undefined, values: any) => void;\r\n selectedCurrency: {\r\n sign: string;\r\n code: string;\r\n position: string;\r\n } | undefined;\r\n currencyOptions?: CurrencySchema[] | null;\r\n onAutoSaveDraftClaim: (values: any, currentCurrency: null) => void;\r\n loadingQuestionGroupStep: boolean;\r\n prevFetchingQuestionGroupSteps: boolean | undefined;\r\n}\r\nconst ClaimForm = (props: Props): JSX.Element => {\r\n const {\r\n tabs,\r\n activeTab,\r\n onNextPage,\r\n onPreviousPage,\r\n onSubmitForm,\r\n setCaptchaValue,\r\n captchaValue,\r\n recaptchaRef,\r\n fetchingQuestionGroupSteps,\r\n isDraftApplicationRequestFinished,\r\n questionGroupsStepsLoading,\r\n setQuestionGroupsStepsLoading,\r\n } = props;\r\n const isCaptchaEnabled = useAppSelector(state => state.applicationSettings.apiApplicationSettings.enableCaptcha) as boolean;\r\n const submittingClaim = useAppSelector(state => state.claimApplication.submitting) as boolean;\r\n const fetchingQuestions = useAppSelector(state => state.question.loading) as boolean;\r\n const claimFormAnswers = useAppSelector(state => state.answer.answer.answerFromGroupSteps) as any;\r\n const answerFromGroupSteps = useAppSelector(questionProjections.fitlerAnswersByQuestions(claimFormAnswers));\r\n const [isLastTab, setIsLastTab] = useState(false);\r\n //when user upload files disable buttons and handle loaders\r\n const [isUploadingFile, setUploadingfile] = useState(null);\r\n const [fileUploadingProgress, setFileUploadingProgress] = useStateIfMounted([]);\r\n const [fileDownloadingProgress, setFileDownloadingProgress] = useState(null);\r\n const [isDownloadingFile, setDownloadingFile] = useState(null);\r\n const {t} = useTranslation()\r\n useEffect(() => {\r\n if (\r\n tabs\r\n && tabs.length > 0\r\n && tabs.findIndex((tab: { key: string; }) => tab.key === activeTab) === tabs.length - 1\r\n ) {\r\n setIsLastTab(true);\r\n // setLoading(false)\r\n } else {\r\n setIsLastTab(false);\r\n\r\n }\r\n\r\n }, [activeTab, tabs]);\r\n\r\n useEffect(() => {\r\n if (!isLastTab) {\r\n setCaptchaValue(null);\r\n }\r\n }, [isLastTab]);\r\n\r\n const handleCaptcha = async (value: string) => {\r\n setCaptchaValue(value);\r\n };\r\n\r\n const handleCaptchaExpire = () => {\r\n setCaptchaValue(null);\r\n };\r\n// be sure the loader is set to false, when tabs are active.\r\n useEffect(() => {\r\n setQuestionGroupsStepsLoading(false);\r\n }, [setQuestionGroupsStepsLoading, questionGroupsStepsLoading, tabs]);\r\n\r\n\r\n return (\r\n
    \r\n {questionGroupsStepsLoading && fetchingQuestionGroupSteps ?\r\n :\r\n \r\n 0 ? tabs : []}\r\n variant={'wizard'}\r\n stepCounter\r\n />\r\n \r\n onSubmitForm(values)\r\n : (values) => onNextPage(values)\r\n }\r\n >\r\n
    \r\n {fetchingQuestions ?\r\n \r\n :\r\n \r\n \r\n {(isLastTab && isCaptchaEnabled) && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n item?.progress < 100) !== undefined\r\n }\r\n />\r\n {submittingClaim && (\r\n \r\n )}\r\n
    \r\n
    \r\n 0 &&\r\n tabs.findIndex((tab: {\r\n key: string;\r\n }) => tab.key === activeTab) === 0)\r\n || (isUploadingFile)\r\n }\r\n reversedArrow\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 ClaimForm;\r\n","import {createSelector} from '@reduxjs/toolkit';\r\nimport React from 'react';\r\nimport config from '../utils/constants/config';\r\nimport _ from 'lodash';\r\nconst messageProjections = {};\r\n\r\nmessageProjections.applicationMessageList = notificationCallback => createSelector(\r\n state => state.message.byId,\r\n messagesById => {\r\n\r\n return Object\r\n .entries(messagesById)\r\n .map(([key, value]) => {\r\n const notificationLabel = Array.isArray(value.message)\r\n ? (\r\n
      \r\n {value.message.map((error, index) =>\r\n
    • \r\n {error}\r\n
    • ,\r\n )}\r\n
    \r\n )\r\n :
    {value.message}
    ;\r\n\r\n if(notificationCallback){\r\n return {\r\n key: value.uuid,\r\n label: notificationLabel,\r\n callback: notificationCallback,\r\n variant: value.type,\r\n };\r\n }\r\n\r\n\r\n return {\r\n key: value.uuid,\r\n label: notificationLabel,\r\n };\r\n });\r\n },\r\n);\r\n\r\n\r\nmessageProjections.totalErrorMessages = createSelector(\r\n state => state.message.byId,\r\n messagesById => {\r\n return Object\r\n .entries(messagesById)\r\n .filter(([key, value]) => value.type === config.StatusMessage.ERROR)\r\n .length;\r\n },\r\n);\r\n\r\nexport default messageProjections;","import {createSelector} from '@reduxjs/toolkit';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\nimport { CurrencySchema } from '../actions';\r\n\r\nconst currencyProjections = {} as ObjectOfAny;\r\n\r\ncurrencyProjections.currencyOptionsList = createSelector(\r\n (state: RootState) => state.currency.currency,\r\n currencies => {\r\n if (currencies.allIds.length === 0) {\r\n return null;\r\n }\r\n return [\r\n ...currencies.allIds\r\n .map((code : string) => ({\r\n label: currencies.byId[code].name,\r\n key: currencies.byId[code].code,\r\n })),\r\n ];\r\n },\r\n);\r\n\r\ncurrencyProjections.currencies = createSelector(\r\n (state: RootState) => state.currency.currency,\r\n currencies => {\r\n if (currencies.allIds.length === 0) {\r\n return null;\r\n }\r\n return [\r\n ...currencies.allIds\r\n .map((code : string) => ({\r\n id: currencies.byId[code].id,\r\n code: code,\r\n name: currencies.byId[code].name,\r\n symbol: currencies.byId[code].symbol,\r\n isDefault: currencies.byId[code].isDefault,\r\n symbolSeparated: currencies.byId[code].symbolSeparated,\r\n })),\r\n ];\r\n },\r\n);\r\n\r\ncurrencyProjections.defaultCurrencies = createSelector(\r\n (state: RootState) => state.currency.currency,\r\n currencies => {\r\n if (currencies.allIds.length === 0) {\r\n return null;\r\n }\r\n return [\r\n ...currencies.allIds\r\n .map((code : string) => ({\r\n id: currencies.byId[code].id,\r\n code: code,\r\n name: currencies.byId[code].name,\r\n symbol: currencies.byId[code].symbol,\r\n isDefault: currencies.byId[code].isDefault,\r\n symbolSeparated: currencies.byId[code].symbolSeparated,\r\n }))\r\n .filter((c : CurrencySchema) => c.isDefault === true),\r\n ];\r\n },\r\n);\r\n\r\n\r\ncurrencyProjections.currencyOptionsListForm = createSelector(\r\n (state: RootState) => state.currency.currency,\r\n currencies => {\r\n if (currencies.allIds.length === 0) {\r\n return null;\r\n }\r\n return [\r\n ...currencies.allIds\r\n .map((code : string) => ({\r\n label: currencies.byId[code].name,\r\n value: currencies.byId[code].code,\r\n })),\r\n ];\r\n },\r\n);\r\n\r\n\r\nexport default currencyProjections;","import React, {RefObject, useCallback, useEffect, useState} from 'react';\r\nimport ClaimForm from '../../components/claimForm/claimForm';\r\nimport {useHistory, useRouteMatch} from 'react-router-dom';\r\nimport * as action from '../../actions';\r\nimport _ from 'lodash';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport questionGroupStepProjections from '../../projections/questionGroupStep';\r\nimport questionProjections from '../../projections/question';\r\nimport codes from '../../utils/constants/codes';\r\nimport messageProjections from '../../projections/message';\r\nimport usePrevious from '../../hooks/usePrevious';\r\nimport {\r\n clearClaimCategoryState,\r\n clearGroupStep,\r\n clearPolicyTypeCombination,\r\n CurrencySchema,\r\n} from '../../actions';\r\nimport {useAppDispatch,useAppSelector} from '../../hooks/hooks';\r\nimport { ObjectOfAny, QuestionSchema } from '../../reducers/types';\r\nimport currencyProjections from '../../projections/currency';\r\n\r\ntype Props = {\r\n setHasRouteChangedByModal: (b: boolean)=>void;\r\n hasRouteChangedByModal: boolean;\r\n fetchingQuestionGroupSteps:boolean;\r\n questionGroupsStepsLoading:boolean;\r\n setQuestionGroupsStepsLoading: (b: boolean)=> any;\r\n prevFetchingQuestionGroupSteps: boolean | undefined;\r\n}\r\n\r\nconst ClaimFormContainer = (props: Props):JSX.Element | null => {\r\n const {\r\n setHasRouteChangedByModal, hasRouteChangedByModal, fetchingQuestionGroupSteps, questionGroupsStepsLoading,\r\n setQuestionGroupsStepsLoading, prevFetchingQuestionGroupSteps,\r\n\r\n } = props;\r\n const match = useRouteMatch();\r\n const activeMatch:any = useRouteMatch(`${match.path}/:step`);\r\n const prevActiveMatch:any = usePrevious(activeMatch);\r\n let history = useHistory();\r\n const dispatch = useAppDispatch();\r\n const questionGroupSteps = useAppSelector(state => state.questionGroupStep.questionGroupStep.byId) as {id: string, code: string, name: string}[];\r\n const questionTypes = useAppSelector(state => state.questionType.questionType.byId) as {id: string, code: string, name: string}[];\r\n const answers = useAppSelector(state => state.answer.answer) as ObjectOfAny;\r\n const allAnswersFromGroupSteps = useAppSelector(state => state.answer.answer.answerFromGroupSteps) as any | string;\r\n const questions = useAppSelector(state => state.question.question.byId) as QuestionSchema[];\r\n const tabs:any = useAppSelector(questionGroupStepProjections.tabs);\r\n const submittingClaim = useAppSelector(state => state.claimApplication.submitting) as boolean;\r\n const isDraftApplicationRequestFinished = useAppSelector(state => state.claimApplication.isDraftApplicationRequestFinished) as boolean;\r\n const prevSubmittingClaim = usePrevious(submittingClaim) as boolean | undefined;\r\n const totalErrorMessages = useAppSelector(messageProjections.totalErrorMessages) as number;\r\n const enableAutoSave = useAppSelector(state => state.applicationSettings.apiApplicationSettings.enableAutoSave) as boolean;\r\n const prevTotalErrorMessages = usePrevious(totalErrorMessages) as number | undefined;\r\n const [activeTab, setActiveTab] = useState(null);\r\n const [captchaValue, setCaptchaValue] = useState(null);\r\n const recaptchaRef:RefObject = React.createRef();\r\n const activeGroupStepCode = useAppSelector(state => state.answer.answer.activeGroupStepCode) as string | null;\r\n const loadingQuestionGroupStep = useAppSelector(state => state.questionGroupStep.loading) as boolean;\r\n const prevLoadingQuestionGroupStep = usePrevious(loadingQuestionGroupStep) as boolean | undefined;\r\n const questionsExists = useAppSelector(questionProjections.questionsExists) as boolean;\r\n const currencyOptions = useAppSelector(currencyProjections.currencies) as CurrencySchema[] | null;\r\n const [selectedCurrency, setSelectedCurrency] = useState({code: '', sign: ''} as any);\r\n \r\n\r\n const fetchQuestionTypeAction = useCallback(\r\n () => dispatch(action.fetchQuestionTypes()),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionValidationRuleAction = useCallback(\r\n () => dispatch(action.fetchQuestionValidationRule()),\r\n [dispatch],\r\n );\r\n\r\n const fetchCurrenciesAction = useCallback(\r\n () => dispatch(action.fetchCurrencies()),\r\n [dispatch],\r\n );\r\n \r\n const sendClaimApplicationAction = useCallback(\r\n (payload: action.sendClaimApplicationAction) => dispatch(action.sendClaimApplication(payload)),\r\n [dispatch],\r\n );\r\n\r\n const updateClaimApplicationAction = useCallback(\r\n (payload: action.updateClaimApplicationAction) => dispatch(action.updateClaimApplication(payload)),\r\n [dispatch],\r\n );\r\n\r\n const sendDraftClaimApplicationByUserAction = useCallback(\r\n (payload: action.sendDraftClaimApplicationByUserAction) => dispatch(action.sendDraftClaimApplicationByUser(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchDocumentTypesAction = useCallback(\r\n (payload: action.fetchDocumentTypesAction) => dispatch(action.fetchDocumentTypes(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionAction = useCallback(\r\n (payload: action.fetchQuestionsAction) => dispatch(action.fetchQuestions(payload)),\r\n [dispatch],\r\n );\r\n\r\n\r\n const clearQuestionStateAction = useCallback(\r\n () => dispatch(action.clearQuestionState()),\r\n [dispatch],\r\n );\r\n\r\n const clearClaimCategoryStateAction = useCallback(\r\n () => dispatch(clearClaimCategoryState()),\r\n [dispatch],\r\n );\r\n\r\n\r\n const clearFormTypesStateAction=useCallback(\r\n ()=>dispatch(action.clearFormTypes()),\r\n [dispatch],\r\n );\r\n const clearPolicyTypeCombinationAction = useCallback((\r\n () => dispatch(clearPolicyTypeCombination())\r\n ), [dispatch],\r\n );\r\n\r\n const clearGroupStepAction = useCallback((\r\n () => dispatch(clearGroupStep())\r\n ), [dispatch],\r\n );\r\n\r\n\r\n // clear captcha token after failed submission\r\n useEffect(\r\n () => {\r\n if (\r\n (!submittingClaim && prevSubmittingClaim)\r\n && (totalErrorMessages !== prevTotalErrorMessages)\r\n && (\r\n recaptchaRef\r\n && recaptchaRef.current\r\n && recaptchaRef.current.reset\r\n )\r\n ) {\r\n setCaptchaValue(null);\r\n recaptchaRef.current.reset();\r\n }\r\n\r\n },\r\n [submittingClaim, prevSubmittingClaim, totalErrorMessages, prevTotalErrorMessages, recaptchaRef],\r\n );\r\n\r\n useEffect(() => {\r\n fetchQuestionValidationRuleAction();\r\n\r\n }, [fetchQuestionValidationRuleAction]);\r\n\r\n useEffect(() => {\r\n fetchQuestionTypeAction();\r\n }, [fetchQuestionTypeAction]);\r\n\r\n useEffect(() => {\r\n if (activeMatch && activeMatch.params &&\r\n activeMatch.params.step &&\r\n tabs && tabs.length > 0 &&\r\n tabs.some((e: { key: string; }) => e.key === activeMatch.params.step)) {\r\n setActiveTab(activeMatch.params.step);\r\n }\r\n }, [activeMatch, activeTab, questionGroupSteps]);\r\n\r\n\r\n //if modal has open one time to not clear all and after set it to true\r\n useEffect(() => {\r\n if (!activeMatch &&\r\n prevActiveMatch &&\r\n !hasRouteChangedByModal\r\n ) {\r\n clearQuestionStateAction();\r\n clearClaimCategoryStateAction();\r\n clearFormTypesStateAction();\r\n clearPolicyTypeCombinationAction();\r\n clearGroupStepAction();\r\n } else {\r\n setHasRouteChangedByModal(false);\r\n }\r\n }, [activeMatch, prevActiveMatch]);\r\n\r\n\r\n // fetch questions of group after changing tab\r\n useEffect(() => {\r\n if (\r\n (\r\n activeMatch\r\n && prevActiveMatch\r\n && activeMatch.params.step !== prevActiveMatch.params.step\r\n && questionGroupSteps[activeMatch.params.step]\r\n ) || (\r\n activeMatch && !prevActiveMatch\r\n && questionGroupSteps[activeMatch.params.step]\r\n ) || (\r\n activeMatch\r\n && prevLoadingQuestionGroupStep && !loadingQuestionGroupStep\r\n && activeGroupStepCode\r\n && questionGroupSteps[activeMatch.params.step]\r\n )\r\n ) {\r\n fetchQuestionAction({\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n formTypeCode: answers.formType,\r\n questionGroupStepId: questionGroupSteps[activeMatch.params.step].id,\r\n });\r\n\r\n fetchDocumentTypesAction({\r\n // @ts-ignore\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n formTypeCode: answers.formType,\r\n });\r\n }\r\n }, [activeMatch, answers, prevActiveMatch, questionGroupSteps, activeGroupStepCode, loadingQuestionGroupStep, prevLoadingQuestionGroupStep, fetchQuestionAction],\r\n );\r\n\r\n // everytime the questions have loaded and store to state,ensure that the loader is false anyway.\r\n useEffect(() => {\r\n setQuestionGroupsStepsLoading(false);\r\n }, [fetchQuestionAction]);\r\n\r\n useEffect(() => {\r\n if (currencyOptions === null){\r\n fetchCurrenciesAction();\r\n }\r\n }, [currencyOptions, fetchCurrenciesAction]);\r\n\r\n useEffect(() => {\r\n if (currencyOptions !== null) {\r\n const defaultCurrency = currencyOptions.find(c => c.isDefault === true);\r\n setSelectedCurrency(({code: defaultCurrency?.name, sign: defaultCurrency?.symbol}));\r\n }\r\n }, [currencyOptions])\r\n\r\n const onNextPage = (values: { [x: string]: any[]; }):undefined => {\r\n if (\r\n activeTab === codes.attachments\r\n && values\r\n && values[codes.claimAttachments]\r\n && values[codes.claimAttachments].some(attachment => (\r\n questionFunctions.validateAttachment(attachment)\r\n ))\r\n ) {\r\n return;\r\n }\r\n\r\n const index = tabs.findIndex((tab: { key: string | null; }) => tab.key === activeTab);\r\n const nextTabCode = tabs[index + 1].key;\r\n history.push(nextTabCode);\r\n };\r\n\r\n\r\n const onPreviousPage = ():void => {\r\n const index = tabs.findIndex((tab: { key: string | null; }) => tab.key === activeTab);\r\n setActiveTab(tabs[index - 1].code );\r\n history.push(tabs[index - 1].key);\r\n };\r\n\r\n\r\n const onAutoSaveDraftClaim = (values: any, errors:any) => {\r\n if (!enableAutoSave || !isDraftApplicationRequestFinished ||\r\n (activeTab && activeTab === codes.declarationGroupStep)) {\r\n return;\r\n }\r\n const currency = currencyOptions?.find(c => c.code.toLowerCase() === selectedCurrency.code.toLowerCase());\r\n const answersArray = questionFunctions.constructAnswersDTO(\r\n questions,\r\n questionTypes,\r\n _.pickBy(values, (val, key: number) => !!questions[key]),\r\n currency,\r\n allAnswersFromGroupSteps,\r\n );\r\n\r\n if(errors && !errors.error){\r\n sendDraftClaimApplicationByUserAction({\r\n data: {\r\n PolicyTypeCode: answers.policyType,\r\n ClaimCategoryCode: answers.claimCategory && answers.claimCategory.length > 0 ? answers.claimCategory : '___',\r\n FormTypeCode: answers.formType && answers.formType.length > 0 ? answers.formType : '___',\r\n ClaimApplicationId: answers.claimApplicationId,\r\n Answers: answersArray,\r\n },\r\n });\r\n }\r\n };\r\n\r\n const onSubmitForm = (values: any) => {\r\n const currency = currencyOptions?.find(c => c.code.toLowerCase() === selectedCurrency.code.toLowerCase());\r\n const answersArray = questionFunctions.constructAnswersDTO(\r\n questions,\r\n questionTypes,\r\n _.pickBy(values, (val, key: number) => !!questions[key]),\r\n currency,\r\n allAnswersFromGroupSteps\r\n );\r\n\r\n if (answers.claimApplicationId) {\r\n updateClaimApplicationAction({\r\n data: {\r\n ReCaptchaResponseToken: captchaValue,\r\n PolicyTypeCode: answers.policyType,\r\n ClaimCategoryCode: answers.claimCategory && answers.claimCategory.length > 0 ? answers.claimCategory : '___',\r\n FormTypeCode: answers.formType && answers.formType.length > 0 ? answers.formType : '___',\r\n Answers: answersArray,\r\n ClaimApplicationId: answers.claimApplicationId,\r\n },\r\n });\r\n } else {\r\n sendClaimApplicationAction({\r\n data: {\r\n ReCaptchaResponseToken: captchaValue,\r\n PolicyTypeCode: answers.policyType,\r\n ClaimCategoryCode: answers.claimCategory && answers.claimCategory.length > 0 ? answers.claimCategory : '___',\r\n FormTypeCode: answers.formType && answers.formType.length > 0 ? answers.formType : '___',\r\n Answers: answersArray,\r\n },\r\n });\r\n }\r\n };\r\n\r\n const handleCurrencySelectWrapper = (currency: null | string | any, values: any) => {\r\n setSelectedCurrency(currency);;\r\n onAutoSaveDraftClaim(values, currency);\r\n };\r\n\r\n if (!questionsExists) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n\r\n );\r\n};\r\n\r\nexport default ClaimFormContainer;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport { FormGroup, Heading,Loader} from 'arag-ui-lib';\r\nimport _ from 'lodash';\r\nimport ConfirmationDialog from '../general/confirmationDialog/confirmationDialog';\r\nimport ClaimFormContainer from '../../containers/claimForm/claimFormContainer';\r\n\r\nimport { ObjectOfAny } from '../../reducers/types';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n policyTypes: {code: string, name:string}[] | any;\r\n claimCategories: {code: string, name:string}[];\r\n formTypes: {code: string, name:string}[];\r\n answers: ObjectOfAny;\r\n handleClaimBasicQuestionChange: (evt: { target: { name: string; value: string; }; }) => void;\r\n handleConfirm: ()=> void;\r\n closeConfirmationModal: ()=>any;\r\n confirmationModalOpen: boolean;\r\n arePoliciesLoading: boolean;\r\n areClaimCategoriesLoading: boolean;\r\n areFormTypesLoading: boolean;\r\n fetchingQuestionGroupSteps: boolean;\r\n hasRouteChangedByModal: boolean;\r\n setHasRouteChangedByModal: (b:boolean)=>void;\r\n refillClaimId: string;\r\n setQuestionGroupsStepsLoading:(b:boolean)=>void;\r\n prevFetchingQuestionGroupSteps: boolean | undefined;\r\n loadingNoSubmittedDraft: boolean;\r\n questionGroupsStepsLoading:boolean;\r\n}\r\nconst Claim = (props:Props) => {\r\n const {\r\n policyTypes,\r\n claimCategories,\r\n formTypes,\r\n answers,\r\n handleClaimBasicQuestionChange,\r\n handleConfirm,\r\n closeConfirmationModal,\r\n confirmationModalOpen,\r\n arePoliciesLoading,\r\n areClaimCategoriesLoading,\r\n areFormTypesLoading,\r\n fetchingQuestionGroupSteps,\r\n hasRouteChangedByModal,\r\n setHasRouteChangedByModal,\r\n refillClaimId,\r\n setQuestionGroupsStepsLoading,\r\n prevFetchingQuestionGroupSteps,\r\n loadingNoSubmittedDraft,\r\n questionGroupsStepsLoading,\r\n } = props;\r\n const {t} = useTranslation();\r\n return (\r\n
    \r\n \r\n \r\n ('refillClaim') : null}\r\n inputProps={{\r\n name: 'policyType',\r\n options: [\r\n { key: '', label: '' },\r\n ..._.map(policyTypes, (policyType: {code: string, name:string}) => ({\r\n key: policyType.code,\r\n label: policyType.name,\r\n }))],\r\n onChange: handleClaimBasicQuestionChange,\r\n value: answers.policyType,\r\n isLoading: arePoliciesLoading\r\n || areClaimCategoriesLoading\r\n || (areFormTypesLoading\r\n && Object.keys(claimCategories).length === 0)\r\n || loadingNoSubmittedDraft,\r\n //disable inputs in cases: there are not submitted drafts or policyType/claimCategory/formTypes/questions which are fetching\r\n disabled: refillClaimId || loadingNoSubmittedDraft || arePoliciesLoading || areClaimCategoriesLoading || areFormTypesLoading\r\n || questionGroupsStepsLoading || fetchingQuestionGroupSteps,\r\n }}\r\n />\r\n {Object.keys(claimCategories).length > 0 && (\r\n ('refillClaim') : null}\r\n inputProps={{\r\n name: 'claimCategory',\r\n options: [\r\n { key: '', label: '' },\r\n ..._.map(claimCategories, (claimCategory: {code: string, name:string}) => ({\r\n key: claimCategory.code,\r\n label: claimCategory.name,\r\n }))],\r\n onChange: handleClaimBasicQuestionChange,\r\n value: answers.claimCategory,\r\n isLoading: areFormTypesLoading\r\n || (fetchingQuestionGroupSteps\r\n && Object.keys(formTypes).length === 0),\r\n //disable inputs in cases: there are formTypes/questions/questionGroupSteps which are fetching\r\n disabled: refillClaimId || areFormTypesLoading || questionGroupsStepsLoading ||fetchingQuestionGroupSteps,\r\n\r\n }}\r\n />\r\n )}\r\n {\r\n Object.keys(formTypes).length > 0 && (\r\n ('refillClaim') : null}\r\n inputProps={{\r\n name: 'formType',\r\n options: [\r\n { key: '', label: '' },\r\n ..._.map(formTypes, (formType: {code: string, name:string}) => ({\r\n key: formType.code,\r\n label: formType.name,\r\n }))],\r\n onChange: handleClaimBasicQuestionChange,\r\n value: answers.formType,\r\n isLoading: fetchingQuestionGroupSteps,\r\n //disable inputs in cases: there are questions/questionGroupSteps which are fetching\r\n disabled: refillClaimId || questionGroupsStepsLoading || fetchingQuestionGroupSteps,\r\n }}\r\n />\r\n )}\r\n {(!fetchingQuestionGroupSteps && prevFetchingQuestionGroupSteps || questionGroupsStepsLoading ) && }\r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default Claim;\r\n","const CLAIM_TYPES_STATES: any = {\r\n policyType: (name: string, answers: { policyType: string; }, value: string, clearClaimCategoryStateAction: () => void, clearFormTypesStateAction: () => void, clearQuestionStateAction: () => void, changeAnswerStateAction: (arg0: { name: string; value: string; }) => void, history: { replace: (arg0: string) => void; }) => {\r\n if (answers.policyType !== value) {\r\n clearClaimCategoryStateAction();\r\n clearFormTypesStateAction();\r\n clearQuestionStateAction();\r\n changeAnswerStateAction({\r\n name: 'claimCategory',\r\n value: '',\r\n });\r\n changeAnswerStateAction({\r\n name: 'formType',\r\n value: '',\r\n });\r\n history.replace('/claim');\r\n }\r\n },\r\n claimCategory: (name: string, answers: { claimCategory: string; }, value: string, clearClaimCategoryStateAction: any, clearFormTypesStateAction: () => void, clearQuestionStateAction: () => void, changeAnswerStateAction: (arg0: { name: string; value: string; }) => void, history: { replace: (arg0: string) => void; })=>{\r\n if (answers.claimCategory!== value) {\r\n clearFormTypesStateAction();\r\n clearQuestionStateAction();\r\n changeAnswerStateAction({\r\n name: 'formType',\r\n value: '',\r\n });\r\n history.replace('/claim');\r\n }\r\n },\r\n formType: (name: string, answers: string, value: string, clearClaimCategoryStateAction: any, clearClaimFormTypesStateAction: any, clearQuestionStateAction: () => void, changeAnswerStateAction: (arg0: { name: string; value: string; }) => void, history: { replace: (arg0: string) => void; })=>{\r\n if(!value) {\r\n clearQuestionStateAction();\r\n changeAnswerStateAction({\r\n name: 'formType',\r\n value: '',\r\n });\r\n history.replace('/claim');\r\n\r\n }\r\n },\r\n};\r\n\r\n\r\nexport default CLAIM_TYPES_STATES;","import {useCallback, useEffect, useState} from 'react';\r\nimport * as action from '../../actions';\r\nimport Claim from '../../components/claim/claim';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\nimport questionProjections from '../../projections/question';\r\nimport usePrevious from '../../hooks/usePrevious';\r\nimport questionGroupStepProjections from '../../projections/questionGroupStep';\r\nimport claimTypesStates from '../../utils/constants/claimTypesStates';\r\nimport {useAppSelector, useAppDispatch} from '../../hooks/hooks';\r\nimport {ChangePayload} from '../../actions/answer';\r\n\r\nconst ClaimContainer = () => {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n const {refillClaimId}: { refillClaimId: string } = useParams();\r\n const [confirmationModalOpen, setConfirmationModalOpen] = useState(false);\r\n const [hasRouteChangedByModal, setHasRouteChangedByModal] = useState(false);\r\n const [storedInputChange, setStoredInputChange] = useState(null);\r\n const questionsExists = useAppSelector(questionProjections.questionsExists);\r\n const policyTypes = useAppSelector(state => state.policyType.policyType.byId);\r\n const answers = useAppSelector(state => state.answer.answer);\r\n const claimCategories = useAppSelector(state => state.claimCategory.claimCategory.byId);\r\n const formTypes = useAppSelector(state => state.formType.formType.byId);\r\n const fetchingQuestionGroupSteps = useAppSelector(state => state.questionGroupStep.loading);\r\n const arePoliciesLoading = useAppSelector(state => state.policyType.loading);\r\n const enableAutoSave = useAppSelector(state => state.applicationSettings.apiApplicationSettings.enableAutoSave);\r\n const areClaimCategoriesLoading = useAppSelector(state => state.claimCategory.loading);\r\n const areFormTypesLoading = useAppSelector(state => state.formType.loading);\r\n const prevFetchingQuestionGroupSteps:any = usePrevious(fetchingQuestionGroupSteps);\r\n const questionGroupStepWithSmallestRank = useAppSelector(questionGroupStepProjections.questionGroupStepWithSmallestRank);\r\n const activeGroupStepCode = useAppSelector(state => state.answer.answer.activeGroupStepCode);\r\n const loadingNoSubmittedDraft: any = useAppSelector(state => state.answer.loadingNoSubmittedDraft);\r\n const [questionGroupsStepsLoading, setQuestionGroupsStepsLoading] = useState(false);\r\n\r\n const fetchPolicyTypesAction = useCallback(\r\n (payload: any) => dispatch(action.fetchPolicyTypes(payload)),\r\n [dispatch],\r\n );\r\n\r\n // the draft\r\n const fetchNoSubmittedDraftClaimApplicationByUserAction = useCallback(\r\n (payload: any) => dispatch(action.fetchNoSubmittedDraftClaimApplicationByUser(payload)),\r\n [dispatch],\r\n );\r\n\r\n const clearAnswersFromGroupStepsAction = useCallback(\r\n (payload: action.clearAnswersFromGroupStepsAction | any) => dispatch(action.clearAnswersFromGroupSteps(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchClaimCategoriesByPolicyTypeAction = useCallback(\r\n (payload: action.fetchClaimCategoriesByPolicyTypeAction | any) => dispatch(action.fetchClaimCategoriesByPolicyType(payload)),\r\n [dispatch],\r\n );\r\n const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeAction = useCallback(\r\n (payload: {\r\n policyTypeCode: string,\r\n claimCategoryCode: string,\r\n formTypeCode: string,\r\n }) => dispatch(action.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimType(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n const changeAnswerStateAction = useCallback(\r\n (payload: ChangePayload) => dispatch(action.changeAnswerState(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n const clearFormTypesStateAction = useCallback(\r\n (payload: action.clearFormTypesAction) => dispatch(action.clearFormTypes(payload)),\r\n [dispatch],\r\n );\r\n\r\n const clearClaimCategoryStateAction = useCallback(\r\n (payload: action.clearClaimCategoryStateAction) => dispatch(action.clearClaimCategoryState(payload)),\r\n [dispatch],\r\n );\r\n\r\n const clearQuestionStateAction = useCallback(\r\n (payload: any) => dispatch(action.clearQuestionState(payload)),\r\n [dispatch],\r\n );\r\n const clearAnswerStateAction = useCallback(\r\n () => dispatch(action.clearAnswersState()),\r\n [dispatch],\r\n );\r\n\r\n const fetchDraftClaimApplicationByUserActionAction = useCallback((\r\n (payload: string | any) => dispatch(action.fetchDraftClaimApplicationByUser(payload))\r\n ), [dispatch],\r\n );\r\n\r\n const fetchFormTypesByPolicyAndCategoryCodeAction = useCallback((\r\n (payload:\r\n {\r\n policyTypeCode: string,\r\n claimCategoryCode: string,\r\n },\r\n ) => dispatch(action.fetchFormTypesByPolicyAndCategoryCode(payload as any))\r\n ), [dispatch]);\r\n\r\n useEffect(() => {\r\n // only if this condition is done, the loading wil be load, and it will depends only of those 2 conditions too.activeTab\r\n if (!fetchingQuestionGroupSteps && prevFetchingQuestionGroupSteps) {\r\n setQuestionGroupsStepsLoading(true);\r\n }\r\n\r\n }, [fetchingQuestionGroupSteps, prevFetchingQuestionGroupSteps]);\r\n\r\n\r\n //on initial mount clear questions in order for the form to be auto\r\n // populated correctly\r\n useEffect(\r\n () => {\r\n clearQuestionStateAction(undefined);\r\n },\r\n [],\r\n );\r\n\r\n useEffect(() => {\r\n fetchPolicyTypesAction(undefined);\r\n }, [fetchPolicyTypesAction]);\r\n\r\n //fetch the last non submitted draft claim application\r\n useEffect(() => {\r\n if (enableAutoSave) {\r\n if (!refillClaimId) {\r\n fetchNoSubmittedDraftClaimApplicationByUserAction(undefined);\r\n //if the route is in a group step go to the root\r\n history.replace('/claim');\r\n } else {\r\n fetchDraftClaimApplicationByUserActionAction(refillClaimId);\r\n }\r\n }\r\n else {\r\n if (refillClaimId) {\r\n fetchDraftClaimApplicationByUserActionAction(refillClaimId);\r\n }\r\n }\r\n\r\n }, [\r\n fetchNoSubmittedDraftClaimApplicationByUserAction,\r\n enableAutoSave,\r\n refillClaimId,\r\n fetchDraftClaimApplicationByUserActionAction]);\r\n\r\n\r\n useEffect(() => {\r\n if (answers.policyType) {\r\n fetchClaimCategoriesByPolicyTypeAction({policyTypeCode: answers.policyType});\r\n }\r\n }, [answers.policyType,\r\n fetchClaimCategoriesByPolicyTypeAction]);\r\n\r\n useEffect(() => {\r\n if (answers.claimCategory) {\r\n fetchFormTypesByPolicyAndCategoryCodeAction({\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n });\r\n }\r\n }, [answers.claimCategory,\r\n fetchFormTypesByPolicyAndCategoryCodeAction]);\r\n\r\n\r\n useEffect(() => {\r\n if (answers.formType) {\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeAction({\r\n policyTypeCode: answers.policyType,\r\n claimCategoryCode: answers.claimCategory,\r\n formTypeCode: answers.formType,\r\n });\r\n\r\n }\r\n\r\n }, [answers.formType, fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeAction]);\r\n\r\n //clear answer state on clean up\r\n useEffect(() => {\r\n return () => {\r\n clearAnswerStateAction()\r\n };\r\n }, [clearAnswerStateAction]);\r\n\r\n// upon receiving the new question groups redirect to the first tab\r\n useEffect(() => {\r\n if (\r\n !fetchingQuestionGroupSteps && prevFetchingQuestionGroupSteps\r\n ) {\r\n if (activeGroupStepCode) {\r\n history.replace(`/claim${refillClaimId ? '/' + refillClaimId : ''}/${activeGroupStepCode}`);\r\n } else {\r\n history.replace(`/claim${refillClaimId ? '/' + refillClaimId : ''}/${questionGroupStepWithSmallestRank ? questionGroupStepWithSmallestRank.code : ''}`);\r\n }\r\n }\r\n\r\n }, [\r\n fetchingQuestionGroupSteps,\r\n prevFetchingQuestionGroupSteps,\r\n questionGroupStepWithSmallestRank,\r\n activeGroupStepCode,\r\n ]);\r\n\r\n const onSelectChange = (inputChange: { name: string, value: string }) => {\r\n const name: string = inputChange.name;\r\n const value = inputChange.value;\r\n claimTypesStates[name](\r\n name,\r\n answers,\r\n value,\r\n clearClaimCategoryStateAction,\r\n clearFormTypesStateAction,\r\n clearQuestionStateAction,\r\n changeAnswerStateAction,\r\n history,\r\n );\r\n changeAnswerStateAction({\r\n name: 'activeGroupStepCode',\r\n value: '',\r\n });\r\n\r\n changeAnswerStateAction({\r\n name: name,\r\n value: value,\r\n });\r\n };\r\n\r\n\r\n const handleConfirm = () => {\r\n //check if the route has change of the modal.\r\n setHasRouteChangedByModal(true);\r\n onSelectChange(storedInputChange);\r\n closeConfirmationModal();\r\n };\r\n\r\n const closeConfirmationModal = () => {\r\n setConfirmationModalOpen(false);\r\n setStoredInputChange(null);\r\n clearAnswersFromGroupStepsAction(undefined);\r\n };\r\n\r\n const handleClaimBasicQuestionChange = (evt: { target: { name: string; value: string; }; }) => {\r\n const inputChange = {\r\n name: evt.target.name,\r\n value: evt.target.value,\r\n };\r\n if (!questionsExists) {\r\n return onSelectChange(inputChange);\r\n }\r\n setStoredInputChange(inputChange);\r\n setConfirmationModalOpen(true);\r\n\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ClaimContainer;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading, Link} from 'arag-ui-lib';\r\nimport {useHistory} from 'react-router-dom';\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\n\r\ntype Props = {\r\n claimApplication: {\r\n claimReference: string;\r\n id: string\r\n }\r\n onClaimList?: () => any\r\n}\r\nconst SubmittedClaim = (props: Props): JSX.Element | null => {\r\n const {claimApplication} = props;\r\n const history = useHistory();\r\n\r\n if (!claimApplication) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n {i18n.t('claimSubmittedMessageLine1') as string}\r\n history.replace(`/claims/${claimApplication?.id}`)}\r\n variant=\"tertiary\"\r\n label={claimApplication?.claimReference || \"\"}\r\n />\r\n {i18n.t('claimSubmittedMessageLine2') as string}\r\n
    \r\n
    \r\n\r\n {/*{claimApplication &&*/}\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 SubmittedClaim;","import React, { useCallback, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport SubmittedClaim from '../../components/submittedClaim/submittedClaim';\r\nimport { fetchClaimApplicationById, fetchClaimApplicationByIdAction} from '../../actions';\r\n// @ts-ignore\r\nimport {Loader} from 'arag-ui-lib';\r\nimport {useAppSelector, useAppDispatch} from '../../hooks/hooks';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst SubmittedClaimContainer = () => {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n const {id}: any = useParams();\r\n const claimApplication = useAppSelector(state => state.claimApplication.claimApplication.byId[id]);\r\n const loading = useAppSelector(state => state.claimApplication.loading);\r\n const {t} = useTranslation();\r\n const fetchClaimApplicationByIdAction = useCallback(\r\n (payload: fetchClaimApplicationByIdAction) => dispatch(fetchClaimApplicationById(payload)),\r\n [dispatch],\r\n );\r\n\r\n useEffect(() => {\r\n fetchClaimApplicationByIdAction(id);\r\n }, [history, id, fetchClaimApplicationByIdAction]);\r\n\r\n const onClaimList = () => history.push('/claims/list');\r\n\r\n if(loading){\r\n return
    ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SubmittedClaimContainer;","import React, {useTransition} from 'react';\r\n// @ts-ignore\r\nimport {Button, Heading, Table, Link, Loader} from 'arag-ui-lib';\r\nimport moment from 'moment';\r\nimport config from '../../utils/constants/config';\r\nimport styles from '../../assets/styles/generalStyle.module.scss';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\ntype ClaimListTable = {\r\n claimReference: string;\r\n formattedType: string;\r\n createdDate: moment.MomentInput;\r\n claimStatusName: string;\r\n} | any;\r\ntype Props = {\r\n claimApplicationsList: Array;\r\n onClickResumeClaim: (arg0: string) => void;\r\n onClickViewDetails: (arg0: string) => void;\r\n onCreateNewClaim: () => void;\r\n onPageSizeChange: (evt: React.ChangeEvent) => void;\r\n pager: {\r\n limit: number\r\n totalItems: number | null\r\n totalPages: number | null\r\n page: number\r\n };\r\n goAtPage: () => void;\r\n goAtStart: () => void;\r\n goAtEnd: () => void;\r\n goAtNext: () => void;\r\n goAtPrevious: () => void;\r\n loading: boolean;\r\n}\r\nconst columns = (onClickResumeClaim: (arg0: string) => void, onClickViewDetails: (arg0: string) => void) => ([\r\n {\r\n propertyName: 'claimReference',\r\n header: i18n.t('claimReference'),\r\n id: 'claimReference',\r\n sortable: false,\r\n },\r\n {\r\n propertyName: 'formattedType',\r\n header: i18n.t('formType'),\r\n id: 'formattedType',\r\n sortable: false,\r\n },\r\n {\r\n propertyName: 'createdDate',\r\n header: i18n.t('date'),\r\n id: 'createdDate',\r\n sortable: false,\r\n formatter: (row: { createdDate: moment.MomentInput; }) => `${moment(row.createdDate).format('DD/MM/YYYY')}`,\r\n },\r\n {\r\n propertyName: 'claimStatusName',\r\n header: i18n.t('stage'),\r\n id: 'Stage',\r\n sortable: false,\r\n },\r\n {\r\n propertyName: '',\r\n header: i18n.t('actions'),\r\n id: '',\r\n sortable: false,\r\n formatter: (row: { id: string; isDraft: boolean; }) => (\r\n
    \r\n
    \r\n onClickViewDetails(`/claims/${row.id}`)}/>
    \r\n {row.isDraft &&\r\n
    \r\n onClickResumeClaim(row.id)}/>\r\n
    }\r\n
    \r\n ),\r\n },\r\n]);\r\n\r\nconst ClaimsList = (props: Props): JSX.Element => {\r\n const {\r\n claimApplicationsList,\r\n onClickResumeClaim,\r\n onClickViewDetails,\r\n onCreateNewClaim,\r\n pager,\r\n onPageSizeChange,\r\n goAtPage,\r\n goAtStart,\r\n goAtEnd,\r\n goAtNext,\r\n goAtPrevious,\r\n loading,\r\n } = props;\r\n const {t} = useTranslation()\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n

    \r\n {loading ? :\r\n

    \r\n {pager && pager.totalItems ?\r\n \r\n (
    {`${row.claimReference} ${row.claimStatusName}`}
    )\r\n }\r\n pageSize={pager.limit || 0}\r\n totalRecords={pager.totalItems || 0}\r\n totalPages={pager.totalPages || 0}\r\n page={pager.page}\r\n pageSizeOptions={config.listSizeOptions}\r\n goAtPrevious={goAtPrevious}\r\n goAtNext={goAtNext}\r\n goAtStart={goAtStart}\r\n goAtEnd={goAtEnd}\r\n goAtPage={goAtPage}\r\n onPageSizeChange={onPageSizeChange}\r\n noResultsMessage={'No results matching filter criteria found'}\r\n /> : null\r\n }\r\n
    \r\n }\r\n
    \r\n );\r\n};\r\n\r\n\r\nexport default ClaimsList;","import {useReducer} from 'react';\r\nimport config from '../utils/constants/config';\r\nimport _ from 'lodash';\r\n\r\nconst initialState = (state) => {\r\n return {\r\n page: 1,\r\n limit: state && state.limit ? state.limit : config.defaultListSize,\r\n totalPages: null,\r\n count: null,\r\n totalCount: null,\r\n isFetching:true,\r\n totalItems:null,\r\n filters:{},\r\n };\r\n};\r\n\r\nconst GO_AT_PREVIOUS = 'GO_AT_PREVIOUS';\r\nconst GOT_AT_NEXT = 'GOT_AT_NEXT';\r\nconst GO_AT_END = 'GO_AT_END';\r\nconst GO_AT_START = 'GO_AT_START';\r\nconst GO_AT_PAGE = 'GO_AT_PAGE';\r\nconst HANDLE_PAGE_SIZE_CHANGE = 'HANDLE_PAGE_SIZE_CHANGE';\r\nconst SET_STATE = 'SET_STATE';\r\nconst SET_STATE_FILTERS='SET_STATE_FILTERS';\r\nconst CLEAR_FILTER='CLEAR_FILTER';\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case GO_AT_PREVIOUS:\r\n if (state.page === 1) {\r\n return state;\r\n }\r\n\r\n return {\r\n ...state,\r\n page: state.page - 1,\r\n isFetching:true,\r\n };\r\n case GOT_AT_NEXT:\r\n if (state.page === state.totalPages) {\r\n return {\r\n ...state,\r\n isFetching:true,\r\n };\r\n\r\n }\r\n return {\r\n ...state,\r\n page: state.page + 1,\r\n isFetching:true,\r\n };\r\n case GO_AT_END:\r\n return {\r\n ...state,\r\n page: state.totalPages,\r\n isFetching:true,\r\n };\r\n case GO_AT_START:\r\n return {\r\n page: 1,\r\n limit:state.limit,\r\n isFetching:true,\r\n };\r\n case GO_AT_PAGE:\r\n return {\r\n ...state,\r\n page: action.payload,\r\n isFetching:true,\r\n };\r\n case HANDLE_PAGE_SIZE_CHANGE:\r\n return {\r\n ...state,\r\n limit: parseInt(action.payload),\r\n page: 1,\r\n isFetching:true,\r\n };\r\n case SET_STATE:\r\n return {\r\n ...action.payload,\r\n filters: state.filters? state.filters :null,\r\n isFetching:false,\r\n filterState:false,\r\n };\r\n case SET_STATE_FILTERS:{\r\n return {\r\n ...state,\r\n page: !_.isEqual(state.filters, action.payload) && state.page !== 1 ? 1 : state.page,\r\n filters: action.payload,\r\n isFetching:true,\r\n };\r\n }\r\n case CLEAR_FILTER:{\r\n return {\r\n ...state,\r\n filters:null,\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst usePagination = (props) => {\r\n\r\n const [state, dispatch] = useReducer(reducer, initialState(props));\r\n const goAtPrevious = () => dispatch({type: GO_AT_PREVIOUS});\r\n const goAtNext = () => dispatch({type: GOT_AT_NEXT});\r\n const goAtEnd = () => dispatch({type: GO_AT_END});\r\n const goAtStart = () => dispatch({type: GO_AT_START});\r\n const goAtPage = (page) => dispatch({type: GO_AT_PAGE, payload: page});\r\n const handlePageSizeChange = (limit) => dispatch({type: HANDLE_PAGE_SIZE_CHANGE, payload: limit});\r\n const setState = (state) => dispatch({type: SET_STATE, payload: state});\r\n const setFiltersState=(filters)=>dispatch({type:SET_STATE_FILTERS,payload:filters});\r\n const clearFilterState=()=>dispatch({type:CLEAR_FILTER});\r\n\r\n return {\r\n pagerState: state,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtEnd,\r\n goAtStart,\r\n goAtPage,\r\n handlePageSizeChange,\r\n setState,\r\n setFiltersState,\r\n clearFilterState,\r\n };\r\n};\r\n\r\n\r\nexport default usePagination;","import {createSelector} from '@reduxjs/toolkit';\r\nimport _ from 'lodash';\r\nimport questionFunctions from '../utils/functions/question';\r\nimport codes from '../utils/constants/codes';\r\nimport ids from '../utils/constants/ids';\r\nimport claimBankDetailsQuestionCodes from '../utils/constants/claimBankDetailsQuestionsCodes';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\n\r\nconst claimApplicationProjections = {};\r\n\r\nclaimApplicationProjections.claimApplicationList = createSelector(\r\n state => state.claimApplication.claimApplication.byId,\r\n (claimApplicationsById) => {\r\n return Object\r\n .entries(claimApplicationsById)\r\n .map(([key, value]) => ({\r\n ...value,\r\n formattedType: `${value.policyTypeName ?\r\n value.policyTypeName : ''} - \r\n ${value.claimCategoryName ?\r\n value.claimCategoryName : ''} \r\n ${value.formTypeName ?\r\n ' - ' + value.formTypeName : ''}`,\r\n }));\r\n },\r\n);\r\n\r\nclaimApplicationProjections.claimApplication = (claimApplicationId) => createSelector(\r\n state => state.claimApplication.claimApplication.byId[claimApplicationId],\r\n (claimApplication) => {\r\n if (!claimApplication) {\r\n return null;\r\n }\r\n return {\r\n claimCategory: claimApplication.claimCategory,\r\n claimReference: claimApplication.claimReference,\r\n claimStatusName: claimApplication.claimStatusName,\r\n claimStateName: claimApplication.claimStateName,\r\n claimType: claimApplication.claimType,\r\n createdDate: claimApplication.createdDate,\r\n id: claimApplication.id,\r\n policyType: claimApplication.policyType,\r\n formType: claimApplication.formType,\r\n withdrawn: claimApplication.withdrawn ? claimApplication.withdrawn : false,\r\n formattedType: `${claimApplication.policyType ?\r\n claimApplication.policyType.name : ''} - \r\n ${claimApplication.claimCategory ?\r\n claimApplication.claimCategory.name : ''}\r\n ${claimApplication.formType ?\r\n ' - ' + claimApplication.formType.name : ''}`,\r\n claimantName: claimApplication.claimant && claimApplication.claimant.fullName\r\n ? claimApplication.claimant.fullName\r\n : null,\r\n claimHandlerName: claimApplication.assignee && claimApplication.assignee.fullName\r\n ? claimApplication.assignee.fullName\r\n : null,\r\n isBankDetailsVisible: claimApplication ? claimApplication.isBankDetailsVisible : false,\r\n claimApplicationApproval: claimApplication.claimApplicationApproval ?\r\n claimApplication.claimApplicationApproval : null,\r\n isSurveyTabVisible: claimApplication ? claimApplication.isSurveyTabVisible : false,\r\n isAnonymised: claimApplication.isAnonymised\r\n };\r\n },\r\n);\r\n\r\nclaimApplicationProjections.claimApplicationTemplate = (claimApplicationId) => createSelector(\r\n state => state.claimApplication.claimApplicationTemplate.byId[claimApplicationId],\r\n (claimApplicationTemplate) => {\r\n\r\n if (!claimApplicationTemplate) {\r\n return null;\r\n }\r\n\r\n return {\r\n content: claimApplicationTemplate.content,\r\n };\r\n\r\n },\r\n);\r\n\r\nclaimApplicationProjections.claimApplicationAnswersGroupedByStep = (claimApplicationId, currencyOptions, groupId = undefined) => createSelector(\r\n state => state.claimApplication.claimApplication.byId[claimApplicationId],\r\n state => state.question.question.byId,\r\n state => state.questionGroupStep.questionGroupStep.byId,\r\n state => state.questionType.questionType.byId,\r\n state => state.question.question.allIds,\r\n (claimApplication, questionsById, questionGroupStepsById, questionTypesById, allQuestionIds) => {\r\n if (\r\n !claimApplication\r\n || Object.keys(questionsById).length === 0\r\n || Object.keys(questionGroupStepsById).length === 0\r\n ) {\r\n return [];\r\n }\r\n\r\n let filteredQuestionsById = GENERAL_FUNCTIONS.filterObjectBy(questionsById, q => q.groupId === groupId);\r\n // recursive function\r\n const getAnswersOfQuestionTree = (question, filteredQuestionsById, claimApplication, questionTypesById, currencyOptions) => {\r\n let items = [];\r\n const answerOfQuestion = claimApplication.answers.find(a => a.questionCode === question.code);\r\n const questionType = questionTypesById[question.questionTypeId];\r\n items.push(\r\n questionFunctions\r\n .parseQuestionWithAnswer(question, answerOfQuestion, questionType, currencyOptions),\r\n );\r\n\r\n // if option is selected form a dropdown then we have to get all\r\n //sub question answers\r\n if (questionType && questionType.code === 'list' && answerOfQuestion) {\r\n const subQs = Object\r\n .values(filteredQuestionsById)\r\n .filter(q => q.enabledByOptionId === answerOfQuestion.optionId);\r\n if (subQs) {\r\n subQs.forEach(sq => {\r\n items = [\r\n ...items,\r\n ...getAnswersOfQuestionTree(sq, filteredQuestionsById, claimApplication, questionTypesById, currencyOptions),\r\n ];\r\n });\r\n }\r\n }\r\n\r\n return items;\r\n };\r\n\r\n try {\r\n // construct the answers\r\n const answersGroupedByStep = [];\r\n Object\r\n .values(filteredQuestionsById)\r\n .filter(q => q.isParent)\r\n .forEach(question => {\r\n answersGroupedByStep.push(\r\n ...getAnswersOfQuestionTree(question, filteredQuestionsById, claimApplication, questionTypesById, currencyOptions),\r\n );\r\n });\r\n\r\n // sort the question - answer objects\r\n const sortedAnswersGroupedByStep = _.sortBy(answersGroupedByStep, function (item) {\r\n return allQuestionIds.indexOf(item.question.code);\r\n });\r\n\r\n // group by step and exclude the attachments step\r\n return _.chain(sortedAnswersGroupedByStep)\r\n .groupBy(s => s.question.questionGroupStepId)\r\n .map((s, stepId) => {\r\n const step = Object\r\n .values(questionGroupStepsById)\r\n .find(i => i.id === stepId);\r\n\r\n return {\r\n ...step,\r\n questionsWithAnswers: s,\r\n };\r\n })\r\n .filter(s => s.code !== codes.attachments)\r\n .sortBy(s => s.rank)\r\n .value();\r\n } catch (e) {\r\n return [];\r\n }\r\n },\r\n);\r\n\r\nclaimApplicationProjections.loadingClaimDetailsData = createSelector(\r\n state => state.claimApplication.loading,\r\n state => state.question.loading,\r\n state => state.questionType.loading,\r\n (loadingClaimApplication, loadingQuestion, loadingQuestionType) => {\r\n return loadingClaimApplication || loadingQuestion || loadingQuestionType;\r\n },\r\n);\r\n\r\nclaimApplicationProjections.loadingBankDetailsData = createSelector(\r\n state => state.question.loading,\r\n state => state.questionValidationRule.loading,\r\n state => state.questionType.loading,\r\n state => state.claimApplication.loadingBankAccountAnswers,\r\n (loadingQuestion, loadingQuestionValidationRule, loadingQuestionType, loadingBankAccountAnswers) => {\r\n return loadingQuestion || loadingQuestionValidationRule || loadingQuestionType || loadingBankAccountAnswers;\r\n },\r\n);\r\n\r\nclaimApplicationProjections.initialBankDetailsFormValues = (claimApplicationId) => createSelector(\r\n state => state.claimApplication.claimApplication.byId[claimApplicationId],\r\n (claimApplication) => {\r\n if (!claimApplication) {\r\n return {};\r\n }\r\n let values = {};\r\n if (claimApplication && claimApplication.claimBankAccount &&\r\n claimApplication.claimBankAccount.bankAccountTypeId === ids.bankAccountTypeUkOption) {\r\n values = {\r\n [claimBankDetailsQuestionCodes.bankAccountType]: claimApplication.claimBankAccount.bankAccountTypeId,\r\n [claimBankDetailsQuestionCodes.accoutnHolderNameUk]: claimApplication.claimBankAccount.accountHolderName,\r\n [claimBankDetailsQuestionCodes.accountNumber]: claimApplication.claimBankAccount.accountNumber,\r\n [claimBankDetailsQuestionCodes.sortCode]: claimApplication.claimBankAccount.sortcode,\r\n };\r\n }\r\n if (claimApplication && claimApplication.claimBankAccount &&\r\n claimApplication.claimBankAccount.bankAccountTypeId === ids.bankAccountTypeinternationalOption) {\r\n values = {\r\n [claimBankDetailsQuestionCodes.bankAccountType]: claimApplication.claimBankAccount.bankAccountTypeId,\r\n [claimBankDetailsQuestionCodes.accoutnHolderNameInternational]: claimApplication.claimBankAccount.accountHolderName,\r\n [claimBankDetailsQuestionCodes.iban]: claimApplication.claimBankAccount.iban,\r\n };\r\n }\r\n\r\n return values;\r\n },\r\n);\r\n\r\nclaimApplicationProjections.answersOfSpecificByGroup = (claimApplicationId, groupId) => createSelector(\r\n state => state.claimApplication.claimApplication.byId[claimApplicationId],\r\n (claimApplication) => {\r\n if (!claimApplication || !claimApplication.answers) {\r\n return {};\r\n }\r\n return claimApplication.answers.filter(answer => answer.groupId === groupId);\r\n\r\n },\r\n);\r\n\r\nclaimApplicationProjections.draftClaimApplicationList = () => createSelector(\r\n state => state.answer.draftClaimApplicationList,\r\n (draftClaimApplicationList) => {\r\n if (!draftClaimApplicationList) {\r\n return null;\r\n }\r\n return draftClaimApplicationList.map(draft => ({\r\n ...draft,\r\n text: draft.claimReference ? `Claim with Reference ${draft.claimReference} needs more information.` :\r\n 'Not submitted Claim Application. Continue where you left off.',\r\n }));\r\n\r\n },\r\n);\r\n\r\n\r\nclaimApplicationProjections.claimApplicationAnswersGroupedByStepExtended = (claimApplicationId, currencyOptions, groupId = undefined) => createSelector(\r\n state => state.claimApplication.claimApplication.byId[claimApplicationId],\r\n state => state.question.question.byId,\r\n state => state.questionGroupStep.questionGroupStep.byId,\r\n state => state.questionType.questionType.byId,\r\n state => state.question.question.allIds,\r\n state => state.questionValidationRule.questionValidationRule,\r\n (claimApplication, questionsById, questionGroupStepsById, questionTypesById, allQuestionIds,questionValidationRules) => {\r\n if (\r\n !claimApplication\r\n || Object.keys(questionsById).length === 0\r\n || Object.keys(questionGroupStepsById).length === 0\r\n || !currencyOptions\r\n ) {\r\n return {\r\n answers: null,\r\n groupStepWithQuestions: [],\r\n }\r\n }\r\n\r\n let filteredQuestionsById = GENERAL_FUNCTIONS.filterObjectBy(questionsById, q => q.groupId === groupId);\r\n const answersGroupedByStep = [];\r\n Object\r\n .values(filteredQuestionsById)\r\n .filter(q => q.isParent)\r\n .forEach(question => {\r\n answersGroupedByStep.push(\r\n ...GENERAL_FUNCTIONS.getAnswersOfQuestionTree(question, filteredQuestionsById, claimApplication, questionTypesById, currencyOptions),\r\n );\r\n });\r\n\r\n // construct the questions\r\n let questionsFormat = answersGroupedByStep.map((answer) => {\r\n return answer.question\r\n }).sort((a, b) => {\r\n return allQuestionIds.indexOf(a.code) - allQuestionIds.indexOf(b.code);\r\n })\r\n // group by step and exclude the attachments step\r\n let qroupStepAndQuestions = questionsFormat\r\n .reduce((acc, question) => {\r\n const stepId = question?.questionGroupStepId;\r\n const step = Object.values(questionGroupStepsById).find((i) => i.id === stepId);\r\n if (!acc[stepId]) {\r\n acc[stepId] = {...step, questions: []};\r\n }\r\n\r\n acc[stepId].questions.push(question);\r\n return acc;\r\n }, {});\r\n\r\n let filterGroupStepAndQuestions = Object.values(qroupStepAndQuestions).filter((s) => s.code !== codes.attachments)\r\n .sort((a, b) => a.rank - b.rank)\r\n\r\n let filterAnswers = claimApplication.answers? claimApplication.answers.map((answer) => {\r\n return GENERAL_FUNCTIONS.getAnswersForm(filteredQuestionsById[answer.questionCode], filteredQuestionsById,claimApplication, questionTypesById, currencyOptions);\r\n }).reduce((acc, curr) => ({...acc, ...curr}), {}) : null;\r\n\r\n\r\n return {\r\n answers: filterAnswers && Object.values(filterAnswers).length>0? filterAnswers : {},\r\n groupStepWithQuestions: filterGroupStepAndQuestions,\r\n questionTypes: questionTypesById,\r\n questionValidationRules: questionValidationRules,\r\n }\r\n },\r\n);\r\n\r\nexport default claimApplicationProjections;","import React, { useCallback, useEffect } from 'react';\r\nimport ClaimsList from '../../components/claimsList/claimsList';\r\nimport {\r\n clearAnswersState, clearClaimCategoryState, clearClaimTypesState,\r\n fetchClaimApplications,\r\n} from '../../actions';\r\nimport { useHistory } from 'react-router-dom';\r\nimport usePagination from '../../hooks/usePagination';\r\nimport claimApplicationProjections from '../../projections/claimApplication';\r\nimport * as action from '../../actions';\r\nimport {useAppSelector,useAppDispatch} from '../../hooks/hooks';\r\n\r\nimport { LocationDescriptor } from 'history';\r\n\r\nconst ClaimsListContainer = () => {\r\n const dispatch = useAppDispatch();\r\n const history = useHistory();\r\n const claimApplicationsList = useAppSelector(claimApplicationProjections.claimApplicationList);\r\n const pagination = useAppSelector(state => state.claimApplication.pagination);\r\n const loading = useAppSelector(state => state.claimApplication.loading);\r\n const {\r\n pagerState,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtEnd,\r\n goAtStart,\r\n goAtPage,\r\n handlePageSizeChange,\r\n setState,\r\n } = usePagination();\r\n\r\n const fetchClaimApplicationsAction = useCallback(\r\n (payload: action.fetchClaimApplicationsAction) => dispatch(fetchClaimApplications(payload)),\r\n [dispatch],\r\n );\r\n\r\n const clearAnswersStateAction = useCallback(\r\n () => dispatch(clearAnswersState()),\r\n [dispatch],\r\n );\r\n\r\n const clearClaimCategoryStateAction = useCallback(\r\n () => dispatch(clearClaimCategoryState()),\r\n [dispatch],\r\n );\r\n\r\n const clearClaimTypesStateAction = useCallback(\r\n () => dispatch(clearClaimTypesState()),\r\n [dispatch],\r\n );\r\n\r\n const clearQuestionStateAction = useCallback(\r\n () => dispatch(action.clearQuestionState()),\r\n [dispatch],\r\n );\r\n useEffect(() => {\r\n clearQuestionStateAction();\r\n }, [clearQuestionStateAction]);\r\n\r\n useEffect(() => {\r\n fetchClaimApplicationsAction({\r\n page: pagerState.page,\r\n limit: pagerState.limit,\r\n });\r\n }, [fetchClaimApplicationsAction, pagerState.page, pagerState.limit]);\r\n\r\n useEffect(() => {\r\n if (pagination) {\r\n setState(pagination);\r\n }\r\n }, [pagination]);\r\n\r\n const onCreateNewClaim = () => {\r\n clearAnswersStateAction();\r\n clearClaimCategoryStateAction();\r\n clearClaimTypesStateAction();\r\n history.push('/claim');\r\n };\r\n\r\n const onClickViewDetails = (url: LocationDescriptor) => {\r\n history.push(url);\r\n };\r\n\r\n const onClickResumeClaim = (claimApplicationId: string) => {\r\n history.push(`/claim/${claimApplicationId}`);\r\n };\r\n\r\n const onPageSizeChange = (evt:React.ChangeEvent) => handlePageSizeChange(evt.target.value);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ClaimsListContainer;","import React from 'react';\r\nimport {NavigationBar} from 'arag-ui-lib';\r\nimport styles from './claimTabs.module.scss';\r\n\r\n\r\nconst CLAIM_TABS = (navItems) => {\r\n return Object.entries(navItems).map(([key, tab]) => ({\r\n key: tab.key,\r\n label: tab.label,\r\n }));\r\n};\r\n\r\nconst ClaimTabs = (props) => {\r\n const {\r\n activeTab,\r\n handleTabClick,\r\n navItems,\r\n } = props;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ClaimTabs;","import React from 'react';\r\nimport generalStyle from '../../assets/styles/generalStyle.module.scss';\r\n\r\nexport const Content=(props)=>{return
    {props.children}
    ;};\r\n\r\nexport const GroupButtons=(props)=>{\r\n const {main,secondary,rest}=props;\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {main}\r\n
    \r\n {secondary}\r\n\r\n
    \r\n
    \r\n
    \r\n {rest &&
    \r\n
    \r\n {rest}\r\n
    \r\n
    \r\n }\r\n \r\n );\r\n};\r\n\r\nexport const Filters = (props) => {\r\n return (\r\n <>\r\n {props.children}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const ErrorInsideForms = (props) =>{\r\n return (\r\n
    \r\n
    \r\n
    \r\n {props.children}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {Button, FormGroup, HorizontalRule, Link, Loader} from 'arag-ui-lib';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\nimport config from '../../utils/constants/config';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {IsUploadingFile} from '../../utils/constants/interfaces';\r\nimport codes from '../../utils/constants/codes';\r\nimport ProgressBar from '../general/progressBar/progressBar';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\n// If we keep this solution we need to remove claimCommunicatorFiles.js and ClaimCommunicatorFilesContainer.js and comments from GENERAL_FUNCTIONS.validateCommunicatorComments\r\ntype File = {\r\n hasMetaData: boolean;\r\n abortController: any;\r\n file: {\r\n name: string,\r\n encodedFile: string\r\n } | null,\r\n id: string,\r\n name: string,\r\n}\r\ntype Props = {\r\n index: number,\r\n file: {\r\n file: File | null\r\n id: string,\r\n abortController: any;\r\n fileToMB: number,\r\n\r\n },\r\n arrayHelpers: any,\r\n error: any,\r\n setFieldValue: Function,\r\n files: Array,\r\n setUploadingfile: Function,\r\n isUploadingFile: IsUploadingFile | any,\r\n postCommunicatorMessageLoading: boolean,\r\n claimApplication: any\r\n progress: any,\r\n setProgress: Function,\r\n}\r\n\r\nfunction ClaimCommunicatorFilesArray(props: Props): JSX.Element {\r\n const {\r\n index,\r\n file,\r\n arrayHelpers,\r\n error,\r\n setFieldValue,\r\n files,\r\n setUploadingfile,\r\n isUploadingFile,\r\n postCommunicatorMessageLoading,\r\n claimApplication,\r\n progress,\r\n setProgress,\r\n } = props;\r\n\r\n const {t} = useTranslation();\r\n const handleFileDrop = async (file: any, fileId: string, file1: any) => {\r\n // Create a new AbortController instance\r\n const abortController = new AbortController();\r\n let result = files?.find(\r\n (item: File) => {\r\n if (item?.id === fileId) {\r\n return item;\r\n\r\n }\r\n return false;\r\n },\r\n );\r\n\r\n //check if file already exists\r\n //and if exists remove it\r\n //and replace it with the new\r\n if (result?.file) {\r\n await GENERAL_FUNCTIONS.requestToRemoveFile(result.id);\r\n }\r\n setFieldValue(\r\n `files.${index}`,\r\n {\r\n file: file,\r\n },\r\n );\r\n\r\n const fileSize = file1?.size;\r\n const fileToMB = Math.round((fileSize / 1024));\r\n const attachmentId = await GENERAL_FUNCTIONS.requestToUploadFileToBlob({\r\n fileName: file1?.name,\r\n claimApplicationId: claimApplication.id,\r\n type: codes.attachmentTypeEnum['Message'],\r\n });\r\n setUploadingfile({fileId: attachmentId?.attachmentId, type: codes.uploading});\r\n\r\n if (attachmentId) {\r\n setFieldValue(\r\n `files.${index}`,\r\n {\r\n id: attachmentId.attachmentId,\r\n file: file,\r\n blobURI: attachmentId.blobURI,\r\n abortController: abortController,\r\n fileToMB: fileToMB,\r\n hasMetaData: false,\r\n },\r\n );\r\n }\r\n // Add the abortController instance to the file object\r\n\r\n await GENERAL_FUNCTIONS.fileUploadAzureBlob(attachmentId, file1, (progress: number, id: any,hasMetaData:boolean) => {\r\n setProgress((prevProgress: any) => {\r\n // Find the index of the progress object with the matching fileId\r\n const index = prevProgress.findIndex((item: { id: string; }) => item.id === id);\r\n // Create a new progress object with the updated progress value\r\n const updatedProgress = {id: id, progress: progress};\r\n // Update the progress array by replacing the old object with the updated one,\r\n // or appending the updated object if it doesn't exist yet\r\n if (index !== -1) {\r\n return [\r\n ...prevProgress.slice(0, index),\r\n updatedProgress,\r\n ...prevProgress.slice(index + 1),\r\n ];\r\n } else {\r\n return [...prevProgress, updatedProgress];\r\n }\r\n });\r\n },\r\n abortController,\r\n files[index].hasMetaData,\r\n );\r\n setUploadingfile(null);\r\n };\r\n\r\n const handleRemoveAttachment = async () => {\r\n if (files[index].file) {\r\n setUploadingfile({fileId: files[index].id, type: codes.removing});\r\n await GENERAL_FUNCTIONS.requestToRemoveFile(files[index].id);\r\n setUploadingfile(null);\r\n }\r\n if (files.length === 1) {\r\n setFieldValue(\r\n `files.${index}`,\r\n {\r\n file: null,\r\n id: null,\r\n },\r\n );\r\n } else {\r\n arrayHelpers.remove(index);\r\n }\r\n };\r\n const cancelUpload =async (fileId: string) => {\r\n // Find the file with the corresponding fileId\r\n const file = files.find((item: File) => item.id === fileId);\r\n // Remove the file from the progress array\r\n await GENERAL_FUNCTIONS.requestToRemoveFile(fileId);\r\n setProgress((prevProgress: any) => [...prevProgress.filter((item: { id: string; }) => item.id !== fileId)]);\r\n if (file && file.abortController) {\r\n // Cancel the file upload by aborting the controller signal\r\n file.abortController.abort();\r\n\r\n // Remove the file from the form values\r\n if (files.length === 1) {\r\n setFieldValue(\r\n `files.${index}`,\r\n {\r\n file: null,\r\n id: null,\r\n },\r\n );\r\n } else {\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n }\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n void; }) => ({\r\n name: `files.${index}.file`,\r\n label: file?.file\r\n ? file.file.name\r\n : t('browse'),\r\n buttonLabel:t('chooseFile'),\r\n disabled: postCommunicatorMessageLoading,\r\n accepts: config.ACCEPTED_FILE_EXTENSIONS,\r\n allowMultiple: false,\r\n onDrop: async (\r\n files:any,\r\n rejectedFile: string | any[], event: any) =>{\r\n\r\n if (rejectedFile && rejectedFile.length === 1) {\r\n formikBag.setFieldError(`files.${index}.file`, ` File type ${GENERAL_FUNCTIONS.validateFileExtensions(rejectedFile[0].name)} is not supported`);\r\n } else if (rejectedFile && rejectedFile.length > 1) {\r\n formikBag.setFieldError(`files.${index}.file`, 'Please click \\'Add another\\' to add multiple files');\r\n } else {\r\n formikBag.setFieldError(`files.${index}.file`, null);\r\n }\r\n\r\n const onDropEvent =event?.target?.files? event.target.files[0] : files[0];\r\n const readFiles = files?.map((file:any) => {\r\n const sizeOfNull = GENERAL_FUNCTIONS.sizeOfFiles(file, {\r\n option: 1,\r\n setFieldError: null,\r\n formikBag: formikBag,\r\n field: 'file',\r\n rejectedFile: rejectedFile,\r\n });\r\n\r\n return {\r\n name: sizeOfNull ? 'Browse' : file?.name,\r\n error: sizeOfNull ,\r\n size: file?.size,\r\n } as any;\r\n });\r\n if(readFiles[0]?.size>1024 * 1024 * 100 ){\r\n formikBag.setFieldError(`files.${index}.file`, 'File should be less than 100MB') ;\r\n }\r\n\r\n if (readFiles?.length === 1 && !readFiles[0]?.error) {\r\n await handleFileDrop(readFiles[0],file.id,onDropEvent);\r\n }\r\n\r\n },\r\n })}\r\n inputProps={{\r\n name: `files.${index}.file`,\r\n }}\r\n />\r\n
    \r\n {isUploadingFile?.fileId === files[index]?.id && !progress?.find((i: any) => i.id === file?.id)?.id &&\r\n
    \r\n \r\n
    \r\n }\r\n {progress?.find((i: any) => i.id === file.id)?.id &&\r\n
    \r\n i.id === file.id)} \r\n mainStyles={'col-sm-7'}\r\n additionalStyles={'col-sm-3'}\r\n />\r\n
    \r\n }\r\n
    \r\n \r\n arrayHelpers.insert(files.length, {\r\n id: file.id + 1,\r\n file: null,\r\n })}\r\n />\r\n i.id === file.id)?.progress < codes.progressEnd}\r\n onClick={handleRemoveAttachment}\r\n />\r\n {file.abortController && file.fileToMB > codes.thresholdMb && progress?.find((i: any) => i.id === file.id)?.progress < codes.progressEnd &&\r\n cancelUpload(file?.id)}\r\n />\r\n }\r\n
    \r\n ),\r\n }}\r\n />\r\n \r\n );\r\n}\r\n\r\nexport default ClaimCommunicatorFilesArray;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {FieldArray, Form, Formik} from 'formik';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\n// @ts-ignore\r\nimport {Button, Loader} from 'arag-ui-lib';\r\nimport styles from './claimCommunicatorForm.module.scss';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport codes from '../../utils/constants/codes';\r\nimport {Content, ErrorInsideForms, Filters, GroupButtons} from '../../hosc/filters/filters';\r\n\r\nimport ClaimCommunicatorFilesArray from './ClaimCommunicatorFilesArray';\r\nimport useStateIfMounted from '../../hooks/useStateIfMounted';\r\nimport {AbortController} from '@azure/abort-controller';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n postCommunicatorMessageLoading: boolean;\r\n handleMessageSubmit: (values: any) => any;\r\n claimApplication: any,\r\n}\r\n\r\n\r\nconst ClaimCommunicatorForm = (props: Props) => {\r\n const {postCommunicatorMessageLoading, handleMessageSubmit, claimApplication} = props;\r\n const [isUploadingFile, setUploadingfile] = useState(null);\r\n const [progress, setProgress] = useStateIfMounted | any[]>([]);\r\n const {t} = useTranslation();\r\n return (\r\n
    \r\n
    \r\n \r\n {\r\n ({values, setFieldValue, errors}: any) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n (\r\n
    \r\n {values['files'] && values['files'].length > 0 ?\r\n values['files']\r\n .map((file: any, index: number) => {\r\n return ;\r\n }) : null\r\n }\r\n
    \r\n )}\r\n />\r\n {errors && errors.generals && \r\n {errors.generals}\r\n \r\n }\r\n
    \r\n i.progress)?.progress < codes.progressEnd}\r\n type={'submit'}/>}\r\n rest={postCommunicatorMessageLoading &&\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 ClaimCommunicatorForm;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {Modal, ModalDialog, ModalContent, ModalHeader, ModalBody} from 'arag-ui-lib';\r\n// @ts-ignore\r\nimport sanitizeHtml from 'sanitize-html';\r\ntype Props={ closeCommunicatorTemplate: ()=>any;\r\n communicatorTemplateOpen: boolean;\r\n log: {\r\n fileId:any; fileName: any; template: any;\r\n templateContent: any\r\n }\r\n};\r\nconst communicatorTemplateModal = (props: Props):JSX.Element=> {\r\n const {closeCommunicatorTemplate, communicatorTemplateOpen, log} = 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\n};\r\n\r\n\r\nexport default communicatorTemplateModal;","import React from \"react\";\r\nimport Icon from './icon';\r\n\r\n\r\nconst DownloadIcon=(props)=>{\r\n const {id,className}=props;\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\nexport default DownloadIcon;\r\n","import React, {useState} from 'react';\r\nimport CommunicatorTemplateModal from './communicatorTemplateModal';\r\n// @ts-ignore\r\nimport { Link as UILinkAragUILib, Loader } from 'arag-ui-lib';\r\nimport {Link} from 'react-router-dom';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport DownloadIcon from '../icons/downloadIcon';\r\nimport codes from '../../utils/constants/codes';\r\nimport ProgressBar from \"../general/progressBar/progressBar\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props={\r\n log: {\r\n fileId:string | null; fileName: string | null; template: string | null;\r\n templateContent: any\r\n }\r\n isDisabled: boolean;\r\n clickDownloadHandler: Function;\r\n isLoadingDownload: string | null;\r\n progressFileDownload: any;\r\n}\r\n\r\nconst ClaimCommunicatorTemplate = (props: Props):JSX.Element => {\r\n const {t} = useTranslation()\r\n const {log, isDisabled, clickDownloadHandler, isLoadingDownload, progressFileDownload}=props;\r\n const [communicatorTemplateOpen, setCommunicatorTemplateOpen] = useState(false);\r\n const openCommunicatorTemplate=()=>{\r\n setCommunicatorTemplateOpen(true);\r\n };\r\n const closeCommunicatorTemplate = () => {\r\n setCommunicatorTemplateOpen(false);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n

    Document Added

    \r\n {\r\n e.preventDefault();\r\n openCommunicatorTemplate();\r\n }} \r\n to={undefined as any}\r\n style={{pointerEvents: isDisabled ? 'none' : 'auto', color: isDisabled ? '#000' : 'default'}}\r\n >\r\n {log.fileName}\r\n \r\n
    \r\n
    \r\n {\r\n\r\n await clickDownloadHandler(log.fileId, log.fileName, codes.template);\r\n\r\n }}\r\n label={
    {t('download')}
    }\r\n disabled={isDisabled} \r\n />\r\n {isLoadingDownload === log.fileId && !progressFileDownload?.find((item: { id: string; }) => item.id === log.fileId)?.id &&\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 ClaimCommunicatorTemplate;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {HistoryLog, Link, Pager} from 'arag-ui-lib';\r\nimport ClaimCommunicatorTemplate from '../claimCommunicationTemplate/claimCommunicatorTemplate';\r\nimport styles from './claimCommunicatorCommentsDeleteButton.module.scss';\r\nimport codes from '../../utils/constants/codes';\r\nimport {decode} from 'html-entities';\r\nimport ProgressBar from '../general/progressBar/progressBar';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nexport type Comments = {\r\n id: string,\r\n createdDate: string,\r\n createdBy: string,\r\n title: string,\r\n type: number,\r\n log: any,\r\n attachments: null | Array,\r\n messageId: string,\r\n isDeletable: boolean,\r\n visibleToAragOnly: boolean,\r\n subtitle: string,\r\n}\r\ntype Props = {\r\n comments: Array;\r\n clickDownloadHandler: Function,\r\n progressFileDownload: any,\r\n isLoadingDownload: string | null,\r\n pagerState: any,\r\n goAtPrevious: Function,\r\n goAtNext: Function,\r\n goAtStart: Function,\r\n goAtEnd: Function,\r\n goAtPage: Function,\r\n isDisabled: boolean,\r\n}\r\n\r\nconst ClaimCommunicatorComments = (props: Props) => {\r\n const {\r\n comments,\r\n clickDownloadHandler,\r\n isLoadingDownload,\r\n progressFileDownload,\r\n pagerState,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtStart,\r\n goAtEnd,\r\n goAtPage,\r\n isDisabled\r\n } = props;\r\n const {t} = useTranslation();\r\n return (\r\n <>\r\n
    \r\n
    \r\n {comments.map(comment => {\r\n return (\r\n
    \r\n \r\n : comment.log.map((item: any) => decode(item, {scope: 'strict'})).join(' ')\r\n }\r\n attachments={comment.attachments?.map((i: { name: string; id: string; }) => {\r\n return {\r\n name: i.name,\r\n downloadFile: \r\n <> \r\n {\r\n await clickDownloadHandler(i.id, i.name, codes.attachment);\r\n }}\r\n disabled={isDisabled}\r\n />\r\n {isLoadingDownload === i.id && !progressFileDownload?.find((item: { id: string; }) => item.id === i.id)?.id &&\r\n
    \r\n \r\n
    \r\n }\r\n {progressFileDownload?.find((item: { id: string; }) => item.id === i.id)?.id &&\r\n
    \r\n item.id === i.id)}\r\n mainStyles={'col-sm-9'}\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 {comments?.length > 0 ?
    \r\n \r\n
    : null}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default ClaimCommunicatorComments;","import React from 'react';\r\n// @ts-ignore\r\nimport {HorizontalRule} from 'arag-ui-lib';\r\nimport ClaimCommunicatorForm from './claimCommunicatorForm';\r\nimport ClaimCommunicatorComments, { Comments } from './claimCommunicatorComments';\r\n\r\ntype Props = {\r\n postCommunicatorMessageLoading: boolean;\r\n comments: Comments[];\r\n handleMessageSubmit: (values: any) => any;\r\n claimApplication: any\r\n progressFileDownload: any\r\n isLoadingDownload: null | string\r\n clickDownloadHandler: Function\r\n pagerState:any,\r\n goAtPrevious :Function,\r\n goAtNext:Function,\r\n goAtStart:Function,\r\n goAtEnd:Function,\r\n goAtPage:Function,\r\n}\r\nconst ClaimCommunicator = (props: Props) => {\r\n const {\r\n postCommunicatorMessageLoading, \r\n comments, \r\n handleMessageSubmit, \r\n claimApplication,\r\n clickDownloadHandler,\r\n isLoadingDownload,\r\n progressFileDownload, \r\n pagerState,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtStart,\r\n goAtEnd,\r\n goAtPage\r\n } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ClaimCommunicator;","import {createSelector} from '@reduxjs/toolkit';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\n\r\n\r\nconst communicatorMessageProjections = {} as ObjectOfAny;\r\n\r\ncommunicatorMessageProjections.communicatorMessageList = createSelector(\r\n (state: RootState) => state.communicatorMessage.communicatorMessage,\r\n (communicatorMessage) => {\r\n if (!communicatorMessage) {\r\n return [];\r\n }\r\n \r\n\r\n\r\n return communicatorMessage\r\n .map((message:{items: any, user:{fullName: string}, visibleToAragOnly: string}) => {\r\n if (message.items && Object.values(message.items).length > 1) {\r\n let fieldsWithText:any[] = [];\r\n let fieldsWithAttachments:any[] = [];\r\n return message.items.reduce((obj:any, cur:{fields:string[], typeName: string, id: string, timestamp: any, type: number, entityId: string}) => {\r\n let previousTypeName = '';\r\n let typeName = message.items.find((i:{typeName: string}) => i.typeName)?.typeName;\r\n if (cur.fields && cur.fields.length > 0) {\r\n cur.fields.forEach(field => {\r\n let fileContent = GENERAL_FUNCTIONS.findAttachmentsToMessageCommunicator(field);\r\n if (fileContent && Object.values(fileContent).length > 2) {\r\n fieldsWithAttachments.push({\r\n name:fileContent.filename,\r\n id:fileContent.id,\r\n });\r\n } else {\r\n if (cur.typeName !== previousTypeName) {\r\n let multipleLog = '\\xa0'.repeat(5) + `
    ${cur?.typeName.replace(/<[^>]*>?/gm, '')}
    ` + field;\r\n fieldsWithText.push(multipleLog);\r\n previousTypeName = cur.typeName;\r\n } else {\r\n fieldsWithText.push(field);\r\n }\r\n }\r\n });\r\n }\r\n return {\r\n ...obj,\r\n id: cur.id,\r\n createdDate: GENERAL_FUNCTIONS.dateFormat(cur.timestamp),\r\n createdBy: message.user.fullName,\r\n title: typeName.replace(/<[^>]*>?/gm, ''),\r\n type: cur.type,\r\n log: fieldsWithText,\r\n attachments: fieldsWithAttachments && fieldsWithAttachments.length > 0 ?\r\n fieldsWithAttachments : null,\r\n messageId: cur.entityId,\r\n visibleToAragOnly: message.visibleToAragOnly,\r\n };\r\n }, {});\r\n\r\n } else {\r\n return message.items.reduce((obj: any, cur:{fields:string[], typeName: string, id: string, timestamp: any, type: number, entityId: string}) => {\r\n let fieldsWithText:any[] = [];\r\n let fieldsWithAttachments:any[] = [];\r\n\r\n if (cur.type === 15 || cur.type === 14 || cur.type === 13) {\r\n let templateObject = {\r\n fileName: null,\r\n fileId: null,\r\n name: null,\r\n };\r\n if (cur.fields && cur.fields.length > 0) {\r\n cur.fields.forEach(field => {\r\n let fileContent = GENERAL_FUNCTIONS.findAttachmentsToMessageCommunicator(field);\r\n let stringContent = GENERAL_FUNCTIONS.findTableContent(field);\r\n templateObject = Object.assign(templateObject, {templateContent: stringContent});\r\n if (fileContent && Object.values(fileContent).length > 0) {\r\n return templateObject = {\r\n ...templateObject,\r\n name:fileContent.filename,\r\n fileName:fileContent.filename,\r\n fileId:fileContent.id,\r\n };\r\n }\r\n },\r\n );\r\n }\r\n return {\r\n ...obj,\r\n id: cur.id,\r\n createdDate: GENERAL_FUNCTIONS.dateFormat(cur.timestamp),\r\n createdBy: message.user.fullName,\r\n title: cur?.typeName.replace(/<[^>]*>?/gm, ''),\r\n log: templateObject,\r\n type: cur.type,\r\n messageId: cur.entityId,\r\n };\r\n }\r\n if (cur.fields && cur.fields.length > 0) {\r\n cur.fields.forEach(field => {\r\n let fileContent = GENERAL_FUNCTIONS.findAttachmentsToMessageCommunicator(field);\r\n if (fileContent && Object.values(fileContent).length > 0) {\r\n fieldsWithAttachments.push({\r\n name: fileContent.filename,\r\n id: fileContent.id,\r\n });\r\n } else {\r\n fieldsWithText.push(field);\r\n }\r\n });\r\n }\r\n return {\r\n ...obj,\r\n id: cur.id,\r\n createdDate: GENERAL_FUNCTIONS.dateFormat(cur.timestamp),\r\n createdBy: message.user.fullName,\r\n title: cur?.typeName.replace(/<[^>]*>?/gm, ''),\r\n type: cur.type,\r\n log: fieldsWithText,\r\n attachments: fieldsWithAttachments && fieldsWithAttachments.length > 0 ?\r\n fieldsWithAttachments : null,\r\n messageId:cur.entityId,\r\n };\r\n\r\n }, {});\r\n\r\n }\r\n });\r\n });\r\n\r\nexport default communicatorMessageProjections;","import React, {useCallback, useEffect, useState} from 'react';\r\nimport ClaimCommunicator from '../../components/claimCommunicator/claimCommunicator';\r\nimport * as actions from '../../actions';\r\n// @ts-ignore\r\nimport {Loader} from 'arag-ui-lib';\r\nimport communicatorMessageProjections from '../../projections/communicatorMessage';\r\nimport {useAppDispatch, useAppSelector} from '../../hooks/hooks';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport useStateIfMounted from '../../hooks/useStateIfMounted';\r\nimport codes from '../../utils/constants/codes';\r\nimport usePagination from '../../hooks/usePagination';\r\nimport { Comments } from '../../components/claimCommunicator/claimCommunicatorComments';\r\n\r\ntype Props = {\r\n claimApplication: { id: string }\r\n}\r\nconst ClaimCommunicatorContainer = (props: Props) => {\r\n const {claimApplication} = props;\r\n const dispatch = useAppDispatch();\r\n const fetchCommunicatorMessages = useAppSelector(state => state.communicatorMessage.loading);\r\n const postCommunicatorMessageLoading = useAppSelector(state => state.communicatorMessage.posting);\r\n const comments = useAppSelector(communicatorMessageProjections.communicatorMessageList) as Comments[];\r\n const pagination = useAppSelector (state => state.communicatorMessage.pagination);\r\n const [progressFileDownload, setProgressFileDownload] = useStateIfMounted ([]) as any[];\r\n const [isLoadingDownload, setLoadingDownload] = useState (null);\r\n\r\n const {\r\n pagerState,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtEnd,\r\n goAtStart,\r\n goAtPage,\r\n setState,\r\n } = usePagination ();\r\n\r\n\r\n const fetchCommunicatorHistoryAction = useCallback(\r\n (payload: actions.fetchCommunicatorHistoryAction) => dispatch(actions.fetchCommunicatorHistory(payload)),\r\n [dispatch],\r\n );\r\n\r\n const createCommunicatorMessageAction = useCallback(\r\n (payload: actions.createCommunicatorMessageAction) => dispatch(actions.createCommunicatorMessage(payload)),\r\n [dispatch],\r\n );\r\n\r\n\r\n useEffect(() => {\r\n if (pagerState.isFetching) {\r\n fetchCommunicatorHistoryAction ({\r\n claimApplicationId: claimApplication.id,\r\n filters: {\r\n page: pagerState.page,\r\n limit: pagerState.limit,\r\n },\r\n });\r\n }\r\n }, [pagerState.page, pagerState.limit, pagerState.isFetching]);\r\n\r\n\r\n useEffect (() => {\r\n if (pagination) {\r\n setState (pagination);\r\n }\r\n }, [pagination]);\r\n\r\n const handleMessageSubmit = async (values: any) => {\r\n createCommunicatorMessageAction(\r\n {\r\n content: values.content,\r\n claimApplicationId: claimApplication.id,\r\n attachments: Object.values(values.files)\r\n .filter((e: any) => e.file)\r\n .map((e: any) => ({id: e.id})),\r\n },\r\n );\r\n };\r\n\r\n const clickDownloadHandler = async (id: any ,name:string, type=codes.attachment) => {\r\n setLoadingDownload (id);\r\n const blob = await GENERAL_FUNCTIONS.requestToDownloadFile(id, name, type, (id: string, progress: any) => {\r\n setProgressFileDownload((prevProgress: any[]) => {\r\n // Find the index of the progress object with the matching fileId\r\n const index = prevProgress.findIndex((item: { id: string; }) => item.id === id);\r\n // Create a new progress object with the updated progress value\r\n const updatedProgress = {id: id, progress: progress};\r\n // Update the progress array by replacing the old object with the updated one,\r\n // or appending the updated object if it doesn't exist yet\r\n if (index !== -1) {\r\n return [\r\n ...prevProgress.slice(0, index),\r\n updatedProgress,\r\n ...prevProgress.slice(index + 1),\r\n ];\r\n } else {\r\n return [...prevProgress, updatedProgress];\r\n }\r\n });\r\n });\r\n\r\n if (blob && blob !== codes.warnings && blob !== codes.fileNotFound) {\r\n GENERAL_FUNCTIONS.downloadURI (blob, name);\r\n setLoadingDownload (null);\r\n setProgressFileDownload ((prevProgress: any[]) => [...prevProgress.filter ((item: { id: string; }) => item.id !== id)]);\r\n }\r\n if (blob === codes.warnings) {\r\n setProgressFileDownload ((prevProgress: any[]) => [...prevProgress.filter ((item: { id: string; }) => item.id !== id)]);\r\n setLoadingDownload (null);\r\n }\r\n if (blob === codes.fileNotFound ) {\r\n setLoadingDownload (null);\r\n }\r\n };\r\n if (fetchCommunicatorMessages) {\r\n return ();\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ClaimCommunicatorContainer;\r\n","import React from \"react\";\r\nimport ids from \"../../utils/constants/ids\";\r\nimport codes from \"../../utils/constants/codes\";\r\nimport GenericFormWithChildQuestions from \"../genericFormWithChildrenQuestions/genericFormWithChildQuestion\";\r\nimport { ObjectOfStrings, QuestionSchema } from \"../../reducers/types\";\r\nimport GenericParentQuestion from \"../genericFormWithChildrenQuestions/genericParentQuestion\";\r\nimport { FormikProps } from \"formik\";\r\n\r\n\r\n\r\ntype Props = {\r\n questions: QuestionSchema[],\r\n formikProps: FormikProps;\r\n questionTypes: ObjectOfStrings;\r\n}\r\n\r\nconst EditableQuestionsWithAnswer = (props: Props) => {\r\n const { questions, formikProps, questionTypes } = props;\r\n\r\n return (\r\n <>\r\n \r\n {questions.map((question: QuestionSchema | any, index: number, accQuestions: QuestionSchema[]) => {\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\nexport default EditableQuestionsWithAnswer;","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading,HorizontalRule} from 'arag-ui-lib';\r\n// @ts-ignore\r\nimport {FormikProps} from \"formik\";\r\nimport EditableQuestionsWithAnswer from \"../editableQuestionWithAnswer/editableQuestionWithAnswer\";\r\nimport {ObjectOfStrings} from \"../../reducers/types\";\r\n\r\ntype Props={\r\n groupStepWithQuestions:{\r\n questions: Array\r\n name:string,\r\n };\r\n questionTypes: ObjectOfStrings\r\n formikProps:FormikProps;\r\n}\r\nconst ClaimDetails = (props:Props):JSX.Element => {\r\n const {groupStepWithQuestions,formikProps,questionTypes} = props;\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\nexport default ClaimDetails;","import React, {useCallback, useEffect} from 'react';\r\nimport ClaimDetails from '../../components/claimDetails/claimDetails';\r\nimport * as actions from '../../actions';\r\nimport claimApplicationProjections from '../../projections/claimApplication';\r\nimport {useAppSelector, useAppDispatch} from '../../hooks/hooks';\r\n// @ts-ignore\r\nimport {Loader} from \"arag-ui-lib\";\r\nimport {Formik, FormikProps} from \"formik\";\r\nimport currencyProjections from '../../projections/currency';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n claimApplication: {\r\n id: string;\r\n policyType: {\r\n code: string\r\n };\r\n claimCategory: {\r\n code: string\r\n };\r\n formType: {\r\n code: string\r\n },\r\n answers: {\r\n [key: string]: any\r\n }\r\n }\r\n}\r\n\r\nconst ClaimDetailsContainer = (props: Props) => {\r\n const {claimApplication} = props;\r\n const dispatch = useAppDispatch();\r\n const currencyOptions: actions.CurrencySchema[] | null = useAppSelector(currencyProjections.currencies);\r\n const questionsWithAnswersGroupedByStepExtended = useAppSelector(claimApplicationProjections\r\n .claimApplicationAnswersGroupedByStepExtended(claimApplication.id, currencyOptions));\r\n const loading = useAppSelector(claimApplicationProjections.loadingClaimDetailsData);\r\n const {t} = useTranslation()\r\n const fetchQuestionsOfClaimTypeComboAction = useCallback(\r\n (payload: actions.fetchQuestionsOfClaimTypeComboAction) => dispatch(actions.fetchQuestionsOfClaimTypeCombo(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationAction = useCallback(\r\n (payload: actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationAction) => dispatch(actions.fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplication(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionTypeAction = useCallback(\r\n (payload: actions.fetchQuestionTypesAction) => dispatch(actions.fetchQuestionTypes(payload)),\r\n [dispatch],\r\n );\r\n useEffect(() => {\r\n fetchQuestionTypeAction({});\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n if (claimApplication) {\r\n fetchQuestionGroupStepByPolicyTypeAndClaimCategoryAndClaimTypeByClaimApplicationAction({\r\n policyTypeCode: claimApplication.policyType && claimApplication.policyType.code\r\n ? claimApplication.policyType.code\r\n : null,\r\n claimCategoryCode: claimApplication.claimCategory && claimApplication.claimCategory.code\r\n ? claimApplication.claimCategory.code\r\n : null,\r\n formTypeCode: claimApplication.formType && claimApplication.formType.code\r\n ? claimApplication.formType.code\r\n : null,\r\n claimApplicationId: claimApplication.id,\r\n });\r\n fetchQuestionsOfClaimTypeComboAction({\r\n policyTypeCode: claimApplication.policyType && claimApplication.policyType.code\r\n ? claimApplication.policyType.code\r\n : null,\r\n claimCategoryCode: claimApplication.claimCategory && claimApplication.claimCategory.code\r\n ? claimApplication.claimCategory.code\r\n : null,\r\n formTypeCode: claimApplication.formType && claimApplication.formType.code\r\n ? claimApplication.formType.code\r\n : null,\r\n claimApplicationId: claimApplication.id,\r\n });\r\n }\r\n }, [claimApplication.id]);\r\n\r\n\r\n if (loading || !claimApplication || (!questionsWithAnswersGroupedByStepExtended.answers ||\r\n (questionsWithAnswersGroupedByStepExtended?.answers &&\r\n Object.values(questionsWithAnswersGroupedByStepExtended.answers).length === 0))) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n {}}\r\n >\r\n {(formikProps: FormikProps) => {\r\n return (\r\n <>\r\n {questionsWithAnswersGroupedByStepExtended?.groupStepWithQuestions?.map((groupStepWithQuestions: any) => {\r\n return (\r\n );\r\n })}\r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n\r\nexport default ClaimDetailsContainer;","import React, {useEffect, useState} from 'react';\r\nimport _ from 'lodash';\r\n// @ts-ignore\r\nimport {Button, Loader} from 'arag-ui-lib';\r\nimport {useFormikContext} from 'formik';\r\nimport claimBankDetailsQuestionCodes from '../../utils/constants/claimBankDetailsQuestionsCodes';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {ObjectOfAny, QuestionSchema} from \"../../reducers/types\";\r\nimport GenericFormWithChildQuestions from \"../genericFormWithChildrenQuestions/genericFormWithChildQuestion\";\r\nimport GenericParentQuestion from \"../genericFormWithChildrenQuestions/genericParentQuestion\";\r\nimport {TabButton, TabWrapper} from \"../../hosc/modals/modals\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype ClaimBankDetailsFormProps = {\r\n questions: ObjectOfAny;\r\n updatingClaimBankAccount: boolean;\r\n initialValues: ObjectOfAny;\r\n bankDetailsAnswers: ObjectOfAny;\r\n setDisabledSubmitButton: (b: boolean) => any;\r\n disabledSubmitButton: boolean;\r\n}\r\n\r\nconst ClaimBankDetailsForm = (props: ClaimBankDetailsFormProps): JSX.Element => {\r\n const {\r\n questions,\r\n updatingClaimBankAccount,\r\n initialValues,\r\n bankDetailsAnswers,\r\n setDisabledSubmitButton,\r\n disabledSubmitButton,\r\n } = props;\r\n const {t} = useTranslation()\r\n const {values, setValues}: any = useFormikContext();\r\n const [areValuesCleared, setValuesCleared] = useState(false);\r\n\r\n useEffect(() => {\r\n setDisabledSubmitButton(_.isEqual(initialValues, values));\r\n if (!_.isEqual(initialValues, values) && !areValuesCleared) {\r\n setValues({\r\n ...GENERAL_FUNCTIONS.objectKeepDiffsAndClearSameValuesForBankDetails(values, initialValues),\r\n [claimBankDetailsQuestionCodes.bankAccountType]: values[claimBankDetailsQuestionCodes.bankAccountType],\r\n });\r\n setValuesCleared(true);\r\n }\r\n }, [values, initialValues, areValuesCleared]);\r\n\r\n return (\r\n
    \r\n \r\n {questions?.questions?.map((question: QuestionSchema | any, index: number, accQuestions: QuestionSchema[]) => {\r\n if (question.isParent) {\r\n return (\r\n <>\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 \r\n 0 ?\r\n 'Update Bank Details'\r\n :\r\n 'Submit Bank Details'}\r\n type={'submit'}\r\n disabled={disabledSubmitButton || updatingClaimBankAccount}\r\n />\r\n {updatingClaimBankAccount && (\r\n )}\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default ClaimBankDetailsForm;","import React, {useState} from 'react';\r\n// @ts-ignore\r\nimport {Loader} from 'arag-ui-lib';\r\nimport {Formik} from 'formik';\r\nimport ClaimBankDetailsForm from '../claimBankDetailsForm/claimBankDetailsForm';\r\nimport {ObjectOfAny} from \"../../reducers/types\";\r\n\r\ntype Props = {\r\n loading: boolean;\r\n handleBankUpdate: () => any;\r\n questions: ObjectOfAny;\r\n updatingClaimBankAccount: boolean;\r\n initialValues: ObjectOfAny;\r\n bankDetailsAnswers: ObjectOfAny;\r\n};\r\n\r\nconst ClaimBankDetails = (props: Props): JSX.Element => {\r\n const {\r\n loading,\r\n questions,\r\n initialValues,\r\n bankDetailsAnswers,\r\n handleBankUpdate,\r\n updatingClaimBankAccount,\r\n } = props;\r\n\r\n const [disabledSubmitButton, setDisabledSubmitButton] = useState(false);\r\n\r\n if (loading) {\r\n return ();\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ClaimBankDetails;","import { useCallback, useEffect } from 'react';\r\nimport * as actions from '../../actions';\r\nimport codes from '../../utils/constants/codes';\r\nimport ids from '../../utils/constants/ids';\r\nimport ClaimBankDetails from '../../components/claimBankDetails/claimBankDetails';\r\nimport claimApplicationProjections from '../../projections/claimApplication';\r\nimport questionProjections from '../../projections/question';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport _ from 'lodash';\r\nimport {useAppSelector, useAppDispatch} from '../../hooks/hooks';\r\nimport GENERAL_FUNCTIONS from \"../../utils/functions/functions\";\r\n\r\ntype Props= { claimApplication: {id:string; }};\r\n\r\nconst ClaimBankDetailsContainer = (props:Props):JSX.Element=> {\r\n const { claimApplication } = props;\r\n const dispatch = useAppDispatch();\r\n const loading = useAppSelector(claimApplicationProjections.loadingBankDetailsData);\r\n const updatingClaimBankAccount:boolean = useAppSelector(state => state.claimApplication.submitting);\r\n const bankDetailsAnswers = useAppSelector(state => state.claimApplication.bankDetails);\r\n const initialValues = useAppSelector(questionProjections.fitlerAnswersByQuestions(bankDetailsAnswers));\r\n const questions = useAppSelector(questionProjections.questionsWithGroupId(ids.claimApplicationBankGroupId));\r\n\r\n const fetchQuestionsByGroupAction = useCallback(\r\n (payload: any) => dispatch(actions.fetchQuestionsByGroup(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionValidationRuleAction = useCallback(\r\n (payload: undefined) => dispatch(actions.fetchQuestionValidationRule(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionTypeAction = useCallback(\r\n (payload: any) => dispatch(actions.fetchQuestionTypes(payload)),\r\n [dispatch],\r\n );\r\n\r\n const fetchClaimApplicationBankAccountAnswersAction = useCallback(\r\n (payload:any) => dispatch(actions.fetchClaimApplicationBankAccountAnswers(payload)),\r\n [dispatch],\r\n );\r\n\r\n const updateClaimApplicationBankAccountAction = useCallback(\r\n (payload:any) => dispatch(actions.updateClaimApplicationBankAccount(payload)),\r\n [dispatch],\r\n );\r\n\r\n useEffect(() => {\r\n fetchQuestionsByGroupAction({\r\n claimApplicationId: claimApplication.id,\r\n groupCode: codes.claimApplicationBankDetailsGroupCode,\r\n });\r\n fetchClaimApplicationBankAccountAnswersAction({\r\n claimApplicationId: claimApplication.id,\r\n });\r\n }, [fetchQuestionsByGroupAction,fetchClaimApplicationBankAccountAnswersAction]);\r\n\r\n useEffect(() => {\r\n fetchQuestionTypeAction(undefined);\r\n }, [fetchQuestionTypeAction]);\r\n\r\n useEffect(() => {\r\n fetchQuestionValidationRuleAction(undefined);\r\n }, [fetchQuestionValidationRuleAction]);\r\n\r\n const handleBankUpdate:any = (formAnswers: any) => {\r\n let filteredQuestions = GENERAL_FUNCTIONS.filterObjectBy(questions.questionsById, (q: { groupId: string; })=> q.groupId === ids.claimApplicationBankGroupId);\r\n const answers = questionFunctions.constructAnswersDTO(\r\n filteredQuestions,\r\n questions.questionTypes,\r\n _.pickBy(formAnswers, (val, key) => !!filteredQuestions[key]),\r\n null,\r\n [],\r\n );\r\n updateClaimApplicationBankAccountAction({\r\n answers,\r\n ClaimApplicationId: claimApplication.id,\r\n });\r\n };\r\n\r\n return ();\r\n};\r\n\r\nexport default ClaimBankDetailsContainer;","import {createSelector} from '@reduxjs/toolkit';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\nimport codes from '../utils/constants/codes';\r\n\r\nconst claimDocumentProjections = {} as ObjectOfAny;\r\n\r\ntype ClaimDocument = {\r\n id: string;\r\n fullFileName: string;\r\n createdDate: string;\r\n fullName: string;\r\n documentTypes: any;\r\n};\r\n\r\nclaimDocumentProjections.documentList = createSelector(\r\n (state: RootState) => state.claimDocument.claimDocument.byId,\r\n (state: RootState) => state.applicationSettings.apiApplicationSettings,\r\n (claimDocumentById, apiApplicationSettings) => {\r\n if (!claimDocumentById || !apiApplicationSettings) {\r\n return [];\r\n }\r\n let anonymisedFields =apiApplicationSettings?.anonymisedFields && apiApplicationSettings?.anonymisedFields[codes.anonymisedCodes.Attachments]? apiApplicationSettings?.anonymisedFields[codes.anonymisedCodes.Attachments][codes.Attachment] : [];\r\n\r\n return Object\r\n .values(claimDocumentById as ClaimDocument)\r\n .map((claimDocument) => ({\r\n fullName: claimDocument.createdBy.fullName,\r\n createdDate: GENERAL_FUNCTIONS.dateFormat(claimDocument.createdDate),\r\n id: claimDocument.id,\r\n fullFileName: claimDocument.isAnonymised && anonymisedFields.includes(GENERAL_FUNCTIONS.capitalizeFirstLetter(codes.namesToDecode.filename)) ? codes.Anonymised : claimDocument.fullFileName,\r\n documentTypes: claimDocument.documentTypes && claimDocument.documentTypes.length > 0 \r\n ? ' ' + '(' + claimDocument.documentTypes.map((item: {name: string}) => item.name).join(',') + ')' \r\n : '',\r\n }));\r\n },\r\n);\r\n\r\nclaimDocumentProjections.claimDocumentLoader= createSelector(\r\n (state: RootState) => state.claimDocument,\r\n claimDocumentLoader=> {\r\n return claimDocumentLoader.loading;\r\n\r\n },\r\n);\r\n\r\nexport default claimDocumentProjections;\r\n\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {HistoryLog, Link, Loader} from 'arag-ui-lib';\r\nimport DownloadIcon from '../icons/downloadIcon';\r\nimport './downloadIcon.scss';\r\nimport codes from '../../utils/constants/codes';\r\nimport ProgressBar from '../general/progressBar/progressBar';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n createdDate?: any;\r\n fullName?: string;\r\n fullFileName?: string;\r\n clickDownloadButton: (id: string | any, fullFileName: string | undefined, type: string) => Promise | any;\r\n documentTypes?: string;\r\n id: string;\r\n isLoadingDownload: string | null;\r\n progressFileDownload: any;\r\n isDisabled: boolean;\r\n}\r\nconst ClaimDocument = (props: Props): JSX.Element => {\r\n const {\r\n createdDate,\r\n fullName,\r\n fullFileName,\r\n clickDownloadButton,\r\n documentTypes,\r\n id,\r\n isLoadingDownload,\r\n progressFileDownload,\r\n isDisabled\r\n } = props;\r\n const {t} = useTranslation();\r\n return (\r\n <>\r\n \r\n {\r\n await clickDownloadButton(id, fullFileName, codes.attachment);\r\n }}\r\n label={\r\n
    \r\n {t('download')}\r\n
    \r\n }\r\n disabled={isDisabled}\r\n />\r\n {isLoadingDownload === id && !progressFileDownload?.find((i: {\r\n id: string;\r\n }) => i.id === id)?.id &&\r\n
    \r\n \r\n
    \r\n }\r\n {progressFileDownload?.find((i: { id: string | undefined; }) => i.id === id)?.id &&\r\n
    \r\n i.id === id)}\r\n mainStyles={'col-sm-9'}\r\n />\r\n
    \r\n }\r\n \r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ClaimDocument;\r\n","import React from 'react';\r\nimport {Form, Formik} from 'formik';\r\nimport FormikFieldWrapper from '../general/formikFieldWrapper/formikFieldWrapper';\r\n// @ts-ignore\r\nimport {Button} from 'arag-ui-lib';\r\nimport moment from 'moment';\r\nimport styles from '../general/styles/generalLabels.module.scss';\r\nimport {GroupButtons, Content, Filters} from '../../hosc/filters/filters';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport i18n from \"../../i18n/i18n\";\r\n\r\ntype Props = {\r\n handleFormSubmit: (formValues: any) => any;\r\n handleFormReset: (formikResetForm: () => void) => any;\r\n}\r\n\r\nconst submittedByList =()=> [\r\n {key: '', label: ''},\r\n {\r\n label: 'ARAG',\r\n key: 'ARAG',\r\n },\r\n {\r\n label: i18n.t('claimant'),\r\n key: 'CLAIMANT',\r\n },\r\n];\r\nconst formValidator = (values: {\r\n submissionDateStart: moment.MomentInput;\r\n submissionDateEnd: moment.MomentInput;\r\n}): any => {\r\n const errors: {\r\n submissionDateStart: string,\r\n submissionDateEnd: string\r\n } = {\r\n submissionDateStart: '',\r\n submissionDateEnd: '',\r\n };\r\n if (\r\n values.submissionDateStart\r\n && values.submissionDateEnd\r\n && moment(values.submissionDateStart).isAfter(values.submissionDateEnd)\r\n ) {\r\n errors.submissionDateStart = 'Submission date cannot be after to date';\r\n errors.submissionDateEnd = 'To date cannot be prior to submission date';\r\n }\r\n\r\n return errors;\r\n};\r\n\r\nconst dateQuestionRestrictions = (fieldName: string, formValues: {\r\n [x: string]: moment.MomentInput;\r\n submissionDateStart?: moment.MomentInput;\r\n submissionDateEnd?: moment.MomentInput;\r\n}) => {\r\n let min, max;\r\n\r\n if (\r\n fieldName === 'submissionDateStart'\r\n && formValues['submissionDateEnd']\r\n ) {\r\n min = null;\r\n max = moment(formValues['submissionDateEnd']).toDate();\r\n }\r\n\r\n\r\n if (\r\n fieldName === 'submissionDateEnd'\r\n && formValues['submissionDateStart']\r\n ) {\r\n min = moment(formValues['submissionDateStart']).toDate();\r\n max = null;\r\n }\r\n\r\n return {min, max};\r\n};\r\n\r\nconst ClaimDocumentListFiltersForm = (props: Props): JSX.Element => {\r\n const {\r\n handleFormReset,\r\n handleFormSubmit,\r\n } = props;\r\n const {t} = useTranslation()\r\n return (\r\n
    \r\n \r\n {(formikProps) => {\r\n const toDateRestrictions = dateQuestionRestrictions('submissionDateEnd', formikProps.values);\r\n return (\r\n \r\n \r\n \r\n ({\r\n ...formikBag,\r\n name: 'submittedByAragUserOnly',\r\n value: formikBag.field.value || '',\r\n options: submittedByList(),\r\n onChange: (evt: React.ChangeEvent) => formikProps.setFieldValue('submittedByAragUserOnly', evt.target.value),\r\n })}\r\n inputProps={{\r\n name: 'submittedByAragUserOnly',\r\n }}\r\n />\r\n ({\r\n ...formikBag,\r\n name: 'attachmentFullFileNameLike',\r\n value: formikBag.field.value || '',\r\n })}\r\n inputProps={{\r\n name: 'attachmentFullFileNameLike',\r\n placeholder: 'Please type the name of the document',\r\n }}\r\n />\r\n
    \r\n
    \r\n any;\r\n }) => ({\r\n ...formikBag,\r\n dateInputProps: {\r\n showYearDropdown: true,\r\n showMonthDropdown: true,\r\n dropdownMode: 'select',\r\n dateFormat: 'dd/MM/yyyy',\r\n selected: formikBag.field.value ? new Date(formikBag.field.value) : '',\r\n name: 'submissionDateStart',\r\n onChange: (value: any) => formikBag.setFieldValue(formikBag.field.name, value),\r\n minDate: new Date(2020, 12, 1),\r\n maxDate: Date.now(),\r\n },\r\n })}\r\n inputProps={{\r\n name: 'submissionDateStart',\r\n }}\r\n />\r\n
    \r\n
    \r\n any;\r\n }) => ({\r\n dateInputProps: {\r\n showYearDropdown: true,\r\n showMonthDropdown: true,\r\n dropdownMode: 'select',\r\n dateFormat: 'dd/MM/yyyy',\r\n selected: formikBag.field.value ? new Date(formikBag.field.value) : '',\r\n name: 'submissionDateEnd',\r\n onChange: (value: any) => formikBag.setFieldValue(formikBag.field.name, value),\r\n minDate: toDateRestrictions.min,\r\n maxDate: Date.now(),\r\n },\r\n })}\r\n inputProps={{\r\n name: 'submissionDateEnd',\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n handleFormSubmit(formikProps.values)}\r\n />}\r\n secondary={\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 ClaimDocumentListFiltersForm;","import ClaimDocument from './claimDocument';\r\nimport ClaimDocumentListFiltersForm from '../claimDocumentListFiltersForm/claimDocumentListFiltersForm';\r\n// @ts-ignore\r\nimport {Pager, Loader} from 'arag-ui-lib';\r\ntype Props= {\r\n claimDocument: any[];\r\n clickDownloadButton: (id:string | any, fullFileName: string | undefined, type: string)=>Promise | any ;\r\n pager: {\r\n limit:number\r\n totalCount:number | null\r\n totalPages: number | null\r\n page: number\r\n };\r\n goAtPage: ()=>void;\r\n goAtStart: ()=>void;\r\n goAtEnd: ()=>void;\r\n goAtNext: ()=>void;\r\n goAtPrevious: ()=>void;\r\n handleFormSubmit: (formValues:any)=>any;\r\n handleFormReset: (formikResetForm: () => void)=>any;\r\n claimDocumentLoader: boolean;\r\n isLoadingDownload: string | null;\r\n progressFileDownload:any,\r\n isDisabled: boolean;\r\n}\r\nconst ClaimDocumentList = (props:Props):JSX.Element=> {\r\n const {\r\n claimDocument,\r\n clickDownloadButton,\r\n pager,\r\n goAtPage,\r\n goAtStart,\r\n goAtEnd,\r\n goAtNext,\r\n goAtPrevious,\r\n handleFormSubmit,\r\n handleFormReset,\r\n claimDocumentLoader,\r\n isLoadingDownload,\r\n progressFileDownload,\r\n isDisabled\r\n } = props;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {claimDocumentLoader ?\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n :\r\n claimDocument.map((listItem: { id: string; }) =>\r\n )}\r\n
    \r\n {!claimDocumentLoader && claimDocument && claimDocument.length > 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\nexport default ClaimDocumentList;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport * as actions from '../../actions';\r\nimport claimDocumentProjections from '../../projections/claimDocument';\r\nimport ClaimDocumentList from '../../components/claimDocuments/claimDocumentList';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport usePagination from '../../hooks/usePagination';\r\nimport moment from 'moment';\r\nimport codes from '../../utils/constants/codes';\r\nimport {useAppDispatch, useAppSelector} from '../../hooks/hooks';\r\nimport useStateIfMounted from '../../hooks/useStateIfMounted';\r\nimport { ObjectOfAny } from '../../reducers/types';\r\n\r\ntype Props = {\r\n claimApplication: any;\r\n}\r\nconst ClaimDocumentContainer = (props: Props): JSX.Element => {\r\n const {claimApplication} = props;\r\n const dispatch = useAppDispatch();\r\n const [isLoadingDownload, setLoadingDownload] = useState(null);\r\n const claimDocument = useAppSelector(claimDocumentProjections.documentList) as ObjectOfAny[];\r\n const claimDocumentLoader = useAppSelector(state => state.claimDocument.loading);\r\n const pagination = useAppSelector(state => state.claimDocument.pagination);\r\n const [progressFileDownload, setProgressFileDownload] = useStateIfMounted ([]) as any[];\r\n const fetchClaimDocumentWithQueryParamsAction = useCallback(\r\n (payload: actions.fetchClaimDocumentWithQueryParamsAction) => dispatch(actions.fetchClaimDocumentWithQueryParams(payload)),\r\n [dispatch],\r\n );\r\n\r\n const {\r\n pagerState,\r\n goAtPrevious,\r\n goAtNext,\r\n goAtEnd,\r\n goAtStart,\r\n goAtPage,\r\n setState,\r\n setFiltersState,\r\n clearFilterState,\r\n } = usePagination();\r\n\r\n\r\n useEffect(() => {\r\n if (pagerState.isFetching) {\r\n const submittedByAragUserOnlyValue = pagerState.filters && pagerState.filters['submittedByAragUserOnly'] ?\r\n pagerState.filters['submittedByAragUserOnly'] !== codes.claimant\r\n : null;\r\n fetchClaimDocumentWithQueryParamsAction({\r\n claimApplicationId: claimApplication.id,\r\n filters: {\r\n page: pagerState.page,\r\n limit: pagerState.limit,\r\n submittedByAragUserOnly: submittedByAragUserOnlyValue !== null ? submittedByAragUserOnlyValue.toString() : null,\r\n submissionDateStart: pagerState.filters && pagerState.filters['submissionDateStart']\r\n ? moment(pagerState.filters['submissionDateStart']).format('YYYY-MM-DD')\r\n : null,\r\n submissionDateEnd: pagerState.filters && pagerState.filters['submissionDateEnd']\r\n ? moment(pagerState.filters['submissionDateEnd']).format('YYYY-MM-DD')\r\n : null,\r\n attachmentFullFileNameLike: pagerState.filters && pagerState.filters['attachmentFullFileNameLike'] ? pagerState.filters['attachmentFullFileNameLike'] : null,\r\n },\r\n });\r\n }\r\n }, [pagerState.page, pagerState.limit, pagerState.filters]);\r\n\r\n useEffect(() => {\r\n if (pagination) {\r\n setState(pagination);\r\n }\r\n }, [pagination]);\r\n\r\n const handleFormReset = (formikResetForm: () => void) => () => {\r\n formikResetForm();\r\n clearFilterState();\r\n fetchClaimDocumentWithQueryParamsAction({\r\n claimApplicationId: claimApplication.id,\r\n filters: {\r\n page: pagerState.page,\r\n limit: pagerState.limit,\r\n },\r\n });\r\n };\r\n\r\n const handleFormSubmit = (formValues: { submissionDateStart: moment.MomentInput; submissionDateEnd: moment.MomentInput; submittedByAragUserOnly: any; attachmentFullFileNameLike: any; }) => {\r\n setFiltersState({\r\n submissionDateStart: formValues.submissionDateStart\r\n ? moment(formValues.submissionDateStart).format('YYYY-MM-DD')\r\n : null,\r\n submissionDateEnd: formValues.submissionDateEnd\r\n ? moment(formValues.submissionDateEnd).format('YYYY-MM-DD')\r\n : null,\r\n submittedByAragUserOnly: formValues.submittedByAragUserOnly,\r\n attachmentFullFileNameLike: formValues.attachmentFullFileNameLike,\r\n });\r\n\r\n };\r\n\r\n const clickDownloadButton = async (id: string, name: string | undefined | null, type: string) => {\r\n // setLoadingDownload(id);\r\n // await GENERAL_FUNCTIONS.requestToDownloadFile(id, fullFileName, type);\r\n // setLoadingDownload(null);\r\n setLoadingDownload (id);\r\n\r\n const blob = await GENERAL_FUNCTIONS.requestToDownloadFile(id, name, type, (id: any, progress: any) => {\r\n setProgressFileDownload((prevProgress: any[]) => {\r\n // Find the index of the progress object with the matching fileId\r\n const index = prevProgress.findIndex((item: { id: string; }) => item.id === id);\r\n // Create a new progress object with the updated progress value\r\n const updatedProgress = {id: id, progress: progress};\r\n // Update the progress array by replacing the old object with the updated one,\r\n // or appending the updated object if it doesn't exist yet\r\n if (index !== -1) {\r\n return [\r\n ...prevProgress.slice(0, index),\r\n updatedProgress,\r\n ...prevProgress.slice(index + 1),\r\n ];\r\n } else {\r\n return [...prevProgress, updatedProgress];\r\n }\r\n });\r\n });\r\n\r\n if (blob && blob !== codes.warnings && blob !==codes.fileNotFound) {\r\n GENERAL_FUNCTIONS.downloadURI (blob, name as string);\r\n setLoadingDownload (null);\r\n setProgressFileDownload ((prevProgress: any[]) => [...prevProgress.filter ((item: { id: string; }) => item.id !== id)]);\r\n }\r\n if (blob === codes.warnings) {\r\n setProgressFileDownload ((prevProgress: any[]) => [...prevProgress.filter ((item: { id: string; }) => item.id !== id)]);\r\n setLoadingDownload (null);\r\n }\r\n if(blob ===codes.fileNotFound){\r\n setLoadingDownload(null);\r\n }\r\n };\r\n\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n\r\nexport default ClaimDocumentContainer;\r\n","import codes from \"./codes\";\r\n\r\nexport const SurveyViews:any = {\r\n Accepted:{\r\n id:1,\r\n surveyTypeId:'Accepted',\r\n surveyGuidId:'00000029-1FDD-49C5-99C2-000000000001',\r\n surveyTypeGroupCode: codes.acceptSurveyGroupCode,\r\n title:'Accepted',\r\n },\r\n Rejected:{\r\n id:2,\r\n surveyTypeId:'Rejected',\r\n surveyGuidId:'00000029-1FDD-49C5-99C2-000000000002',\r\n surveyTypeGroupCode:codes.rejectSurveyGroupCode,\r\n title:' ',\r\n },\r\n Solicitor:{\r\n id:3,\r\n surveyTypeId:'Solicitor',\r\n surveyGuidId:'00000029-1FDD-49C5-99C2-000000000003',\r\n surveyTypeGroupCode:codes.solicitorSurveyGroupCode,\r\n title:'Solicitor',\r\n },\r\n Confirmation:{\r\n id:4,\r\n surveyTypeId:'Confirmation',\r\n },\r\n};\r\n\r\n\r\nexport const acceptedSurveyCode='Accepted';\r\nexport const confirmationSurveyCode='Confirmation';\r\nexport const rejectedSurveyCode='Rejected';\r\nexport const solicitorSurveyCode='Solicitor';","import {createSelector} from '@reduxjs/toolkit';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\n\r\nlet SurveyProjections = {} as ObjectOfAny;\r\n\r\nSurveyProjections.surveyData = createSelector(\r\n (state: RootState) => state.survey.surveyType,\r\n (state: RootState) => state.survey.posting,\r\n (state: RootState) => state.survey.postingSuccessBody,\r\n (state: RootState) => state.survey.loading,\r\n (state: RootState) => state.survey.errorMessage,\r\n (surveyTypes,posting,postingSuccessBody,loading,errorMessage) => {\r\n\r\n return {\r\n surveyTypes: surveyTypes?surveyTypes:[],\r\n posting,\r\n postingSuccessBody,\r\n loading,\r\n isCompleted:postingSuccessBody ?postingSuccessBody.title:null,\r\n errorMessage:errorMessage,\r\n };\r\n },\r\n);\r\n\r\n\r\nexport default SurveyProjections;\r\n","import React from 'react';\r\nimport styles from './circleWrapper.module.scss';\r\nconst CircleWrapper=(props:any)=> {\r\n return (\r\n
    \r\n {props.children}\r\n
    \r\n );\r\n};\r\n\r\nexport default CircleWrapper;\r\n","import React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst ThumbUp = (props) => {\r\n const {id, className} = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ThumbUp;","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading, Link, Loader, Button} from 'arag-ui-lib';\r\nimport CircleWrapper from '../general/circleWrapper/circleWrapper';\r\nimport ThumbUp from '../icons/thumbUp';\r\nimport styles from './surveyConfirmation.module.scss';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n context: {\r\n title: any;\r\n link: string,\r\n content: string;\r\n surveyTypes: Array,\r\n posting: boolean;\r\n loading: boolean;\r\n error?: any;\r\n },\r\n navigateToNextSurvey?: () => void,\r\n surveyTypes?: Array,\r\n hasUncompletedSurvey?: boolean,\r\n}\r\nconst SurveyConfirmation = (props: Props): JSX.Element | null => {\r\n const {context, navigateToNextSurvey, hasUncompletedSurvey} = props;\r\n const {t} = useTranslation()\r\n if (!context || context.posting || context.loading || hasUncompletedSurvey === null) {\r\n return ();\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n !context?.error &&\r\n \r\n \r\n \r\n }\r\n
    \r\n\r\n
    \r\n {context?.title}\r\n
    \r\n
    \r\n {context?.content}\r\n {context?.link &&\r\n link}\r\n
    \r\n
    \r\n
    \r\n {\r\n hasUncompletedSurvey ?\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n : null}\r\n
    \r\n );\r\n};\r\n\r\nexport default SurveyConfirmation;","import React from 'react';\r\nimport {TabButton, TabWrapper} from '../../hosc/modals/modals';\r\n// @ts-ignore\r\nimport {Button,Loader} from 'arag-ui-lib';\r\nimport GenericFormWithChildQuestions from \"../genericFormWithChildrenQuestions/genericFormWithChildQuestion\";\r\nimport {ObjectOfAny, QuestionSchema} from \"../../reducers/types\";\r\nimport GenericParentQuestion from \"../genericFormWithChildrenQuestions/genericParentQuestion\";\r\nimport {useTranslation} from \"react-i18next\";\r\ntype Props={\r\n questions:any,\r\n formikProps:any,\r\n posting:boolean\r\n}\r\nconst SurveyForm=(props:Props):JSX.Element=> {\r\n const {questions,formikProps,posting}=props;\r\n const {t} = useTranslation();\r\n if(questions.questionTypesLoading){\r\n return ;\r\n }\r\n return (\r\n
    \r\n \r\n {questions.questions.map((question: QuestionSchema | any, index: number, accQuestions: QuestionSchema[]) => {\r\n if (question.isParent) {\r\n return (\r\n <>\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 \r\n \r\n {posting && }\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default SurveyForm;\r\n","import React from 'react';\r\nimport {Formik} from 'formik';\r\n// @ts-ignore\r\nimport {Heading,Loader} from 'arag-ui-lib';\r\nimport SurveyForm from './surveyForm';\r\nimport generalStyle from '../../assets/styles/generalStyle.module.scss';\r\nimport codes from '../../utils/constants/codes';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props={\r\n questions:any,\r\n onSubmitSurvey: (values:any)=>void,\r\n posting:boolean,\r\n heading:string;\r\n\r\n\r\n}\r\nconst SurveyFormWrapper=(props:Props)=>{\r\n const {questions,onSubmitSurvey, posting,heading}=props;\r\n const {t} = useTranslation();\r\n if((questions && questions.questions?.length===0 )){\r\n return ();\r\n }\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n {\r\n onSubmitSurvey(values);\r\n }}\r\n >\r\n {(formikProps) => {\r\n return (\r\n \r\n );\r\n }}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SurveyFormWrapper;\r\n","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading, Loader} from 'arag-ui-lib';\r\nimport SurveyFormWrapper from '../surveyForm/surveyFormWrapper';\r\n\r\n\r\ntype Props={\r\n questions:any\r\n onSubmitSurvey:any\r\n heading:string;\r\n posting:boolean;\r\n}\r\nconst SingleSurvey=(props:Props):JSX.Element=> {\r\n const {questions,heading,onSubmitSurvey,posting} = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SingleSurvey;","import React from 'react';\r\n// @ts-ignore\r\nimport {Button, Loader, HorizontalRule} from 'arag-ui-lib';\r\nimport SurveyFormWrapper from '../surveyForm/surveyFormWrapper';\r\nimport generalStyle from '../../assets/styles/generalStyle.module.scss';\r\nimport codes from '../../utils/constants/codes';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n surveyData: any\r\n surveysHandler: (item: any) => void\r\n activeView: any\r\n questions: any\r\n onSubmitSurvey: (values: any) => void,\r\n posting: boolean\r\n heading?: string;\r\n}\r\n\r\nconst SurveyList = (props:any): any => {\r\n const {surveyData, surveysHandler} = props;\r\n const {t} = useTranslation();\r\n return (\r\n <>\r\n
    \r\n
    \r\n

    {codes.surveyTitle}

    \r\n \r\n
    \r\n
    \r\n
    \r\n {surveyData?.surveyTypes?.map((item: any, index: number) => {\r\n return (\r\n
    \r\n
    \r\n

    {item.surveyTypeDescription}

    \r\n surveysHandler(item)}\r\n />\r\n
    \r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n );\r\n};\r\nconst MultipleSurvey = (props: Props): JSX.Element => {\r\n const {surveyData, surveysHandler, activeView, questions, onSubmitSurvey, posting} = props;\r\n return (\r\n
    \r\n {(!activeView) && }\r\n {activeView && \r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default MultipleSurvey;","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {Loader} from 'arag-ui-lib';\r\nimport {\r\n SurveyViews,\r\n confirmationSurveyCode,\r\n} from '../../utils/constants/surveyViews';\r\nimport * as actions from '../../actions';\r\nimport {useAppDispatch, useAppSelector} from '../../hooks/hooks';\r\nimport {useHistory} from 'react-router-dom';\r\nimport questionProjections from '../../projections/question';\r\nimport SurveyProjections from '../../projections/survey';\r\nimport SurveyConfirmation from '../../components/surveyConfirmation/surveyConfirmation';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport _ from 'lodash';\r\nimport SingleSurvey from '../../components/survey/singleSurvey';\r\nimport MultipleSurvey from '../../components/survey/multipleSurvey';\r\nimport codes from \"../../utils/constants/codes\";\r\nimport {useSelector} from \"react-redux\";\r\nimport ids from \"../../utils/constants/ids\";\r\nimport {ObjectOfAny, QuestionSchema} from \"../../reducers/types\";\r\nimport GENERAL_FUNCTIONS from \"../../utils/functions/functions\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\n//Views are handle with history & location state of react router inside the survey tab\r\ntype Props = {\r\n claimApplication: any\r\n}\r\n\r\nconst SurveyContainer = (props: Props) => {\r\n const {claimApplication} = props;\r\n const history = useHistory();\r\n const dispatch = useAppDispatch();\r\n const [activeView, setActiveView] = useState(null);\r\n const [hasUncompletedSurvey, setHasUncompletedSurvey] = useState(null) as any;\r\n const surveyData = useAppSelector(SurveyProjections.surveyData);\r\n const questions: any = useSelector(questionProjections.surveyQuestions(activeView?.surveyTypeGroupCode ? codes.surveysGroupCodesToGroupIds[activeView?.surveyTypeGroupCode] : null));\r\n const {t} = useTranslation();\r\n const fetchQuestionTypeAction = useCallback(\r\n () => dispatch(actions.fetchQuestionTypes()),\r\n [dispatch],\r\n );\r\n const fetchSurveyTypeAction = useCallback(\r\n (payload: actions.fetchSurveyTypeAction) => dispatch(actions.fetchSurveyType(payload)),\r\n [dispatch],\r\n );\r\n const fetchQuestionsByGroupAction = useCallback(\r\n (payload: any) => dispatch(actions.fetchQuestionsByGroup(payload)),\r\n [dispatch],\r\n );\r\n const postSurveyAnswersAction = useCallback(\r\n (payload: any) => dispatch(actions.postSurveyAnswers(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n\r\n useEffect(() => {\r\n fetchQuestionTypeAction();\r\n fetchSurveyTypeAction({\r\n claimApplicationId: claimApplication.id,\r\n });\r\n }, [claimApplication.id]);\r\n\r\n\r\n useEffect(() => {\r\n if (surveyData.surveyTypes.length === 1 && !activeView) {\r\n setActiveView(SurveyViews[surveyData.surveyTypes[0]?.surveyTypeName]);\r\n }\r\n if (surveyData.surveyTypes.length > 1 && activeView?.surveyTypeId !== confirmationSurveyCode) {\r\n setActiveView(null);\r\n }\r\n let hasNextSurveys = surveyData.surveyTypes?.find(\r\n (survey: any) => !survey.completed,\r\n );\r\n if (hasNextSurveys) {\r\n setHasUncompletedSurvey(true);\r\n } else {\r\n setHasUncompletedSurvey(false);\r\n }\r\n }, [surveyData.surveyTypes]);\r\n\r\n\r\n //helper for questions\r\n const questionsSurveyHandler = (item: {\r\n surveyTypeId: string,\r\n surveyTypeName: string,\r\n surveyTypeGroupCode: string\r\n }) => {\r\n fetchQuestionsByGroupAction({\r\n claimApplicationId: claimApplication.id,\r\n groupCode: item.surveyTypeGroupCode,\r\n });\r\n history.push({\r\n pathname: history.location.pathname,\r\n search: history.location.search,\r\n state: item.surveyTypeName,\r\n });\r\n };\r\n\r\n //helper for surveys\r\n const surveysHandler = (item: { surveyTypeId: string, surveyTypeName: string, surveyTypeGroupCode: string }) => {\r\n questionsSurveyHandler(item);\r\n const updatedSurveyState = {\r\n [item.surveyTypeName]: {\r\n ...SurveyViews[item.surveyTypeName],\r\n surveyGuidId: item.surveyTypeId,\r\n },\r\n };\r\n setActiveView(updatedSurveyState[item.surveyTypeName]);\r\n };\r\n\r\n\r\n // on Submit survey handler\r\n const onSubmitSurvey = (values: any) => {\r\n const radioQuestions = questions.questions.filter((question: QuestionSchema) => question.displayType === 'vertical-radio' || question.displayType === 'horizontal-radio');\r\n let formattedValues = GENERAL_FUNCTIONS.formatValuesForRadioQuestion(values, radioQuestions) as ObjectOfAny;\r\n let filteredQuestions = GENERAL_FUNCTIONS.filterObjectBy(questions.questionsById, (q: { groupId: string; })=> q.groupId === codes.surveysGroupCodesToGroupIds[activeView?.surveyTypeGroupCode]);\r\n const answersArray = questionFunctions.constructAnswersDTO(\r\n filteredQuestions,\r\n questions.questionTypes,\r\n _.pickBy(formattedValues, (_, key) => !!filteredQuestions[key]),\r\n null,\r\n [],\r\n );\r\n postSurveyAnswersAction({\r\n data: {\r\n Answers: answersArray,\r\n claimApplicationId: claimApplication.id,\r\n surveyTypeGroupCode: activeView.surveyTypeGroupCode,\r\n },\r\n });\r\n setActiveView(SurveyViews[confirmationSurveyCode]);\r\n };\r\n\r\n\r\n //next survey handler\r\n const navigateToNextSurvey = () => {\r\n const nextSurvey = surveyData?.surveyTypes.find((survey: any) => !survey.completed);\r\n if (nextSurvey) {\r\n questionsSurveyHandler(nextSurvey);\r\n setActiveView(SurveyViews[nextSurvey.surveyTypeName]);\r\n setHasUncompletedSurvey(null);\r\n\r\n }\r\n };\r\n\r\n //State: Loading Survey\r\n if (surveyData.loading || (surveyData.surveyTypes?.length === 0 && !surveyData.errorMessage)) {\r\n return ;\r\n }\r\n // State: Confirmation Survey\r\n if (activeView?.surveyTypeId === confirmationSurveyCode) {\r\n return ;\r\n }\r\n // State: Error Mock Survey\r\n if (surveyData?.errorMessage) {\r\n return ;\r\n }\r\n\r\n // State: Single or Multiple Survey\r\n return (\r\n <>\r\n
    \r\n {surveyData.surveyTypes.length === 1 ?\r\n \r\n : \r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default SurveyContainer;\r\n","import React from 'react';\r\nimport {NavigationContent} from 'arag-ui-lib';\r\nimport ClaimCommunicatorContainer from '../containers/claimCommunicator/claimCommunicatorContainer';\r\nimport ClaimDetailsContainer from '../containers/claimDetails/claimDetailsContainer';\r\nimport {BANK_DETAILS_TAB, SURVEY_TAB, TABS} from '../utils/constants/tabs';\r\nimport ClaimBankDetailsContainer from '../containers/claimBankDetails/claimBankDetailsContainer';\r\nimport ClaimDocumentContainer from '../containers/claimDocuments/claimDocumentContainer';\r\nimport SurveyContainer from '../containers/surveyContainer/surveyContainer';\r\n\r\n\r\nconst TABS_MAPPING = {\r\n [TABS.communication.key]: ClaimCommunicatorContainer,\r\n [TABS.claimDetails.key]: ClaimDetailsContainer,\r\n [BANK_DETAILS_TAB.key]: ClaimBankDetailsContainer,\r\n [TABS.documents.key]:ClaimDocumentContainer,\r\n [SURVEY_TAB.key]:SurveyContainer,\r\n};\r\n\r\nconst TabRouter = (props) => {\r\n const {activeTab, claimApplication} = props;\r\n const Tab = TABS_MAPPING[activeTab];\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TabRouter;","import React, {useEffect, useState} from 'react';\r\nimport ClaimTabs from '../claimTabs/claimtabs';\r\nimport TabRouter from '../../routers/tabRouter';\r\nimport {BANK_DETAILS_TAB, SURVEY_TAB, TABS} from '../../utils/constants/tabs';\r\nimport {useHistory, useLocation, useParams} from 'react-router-dom';\r\nimport {ClaimApplicationProjections} from '../../actions/claimApplication';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst ClaimTabArea = (props: { claimApplication: Partial; }): JSX.Element => {\r\n const {claimApplication} = props;\r\n let {path}: any = useParams();\r\n const {t} = useTranslation();\r\n const [activeTabs, setActiveTabs] = useState(TABS);\r\n const [activeTab, setActiveTab] = useState(TABS.communication.key);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n let activeTabDisplayed = {\r\n ...activeTabs,\r\n } as any;\r\n let transformedTabs = {} as any;\r\n if (claimApplication.isBankDetailsVisible) {\r\n activeTabDisplayed = {\r\n ...activeTabDisplayed,\r\n BANK_DETAILS_TAB,\r\n };\r\n }\r\n if (claimApplication.isSurveyTabVisible) {\r\n activeTabDisplayed = {\r\n ...activeTabDisplayed,\r\n SURVEY_TAB,\r\n };\r\n }\r\n for (const key in activeTabDisplayed) {\r\n if (activeTabDisplayed.hasOwnProperty(key)) {\r\n transformedTabs[key] = {\r\n ...activeTabDisplayed[key],\r\n label: ` ${t(activeTabDisplayed[key].label)}`\r\n };\r\n }\r\n }\r\n\r\n setActiveTabs(transformedTabs);\r\n }, [claimApplication.isBankDetailsVisible, claimApplication.isSurveyTabVisible]);\r\n\r\n\r\n useEffect(() => {\r\n if (path !== '' && path !== undefined && path === 'claim-details') {\r\n setActiveTab(TABS.claimDetails.key);\r\n } else {\r\n setActiveTab(TABS.communication.key);\r\n }\r\n }, [path]);\r\n\r\n useEffect(() => {\r\n let query = new URLSearchParams(location.search) as any;\r\n if ((!GENERAL_FUNCTIONS.findActiveTabToClaimTabArea(query.get('tab')) ||\r\n !query.get('tab') ||\r\n (!claimApplication.isBankDetailsVisible && query.get('tab') === BANK_DETAILS_TAB.key) ||\r\n (!claimApplication.isSurveyTabVisible && query.get('tab') === SURVEY_TAB.key)\r\n ) && !path) {\r\n history.replace({\r\n pathname: history.location.pathname,\r\n search: '?' + new URLSearchParams({tab: 'claimDetails'}).toString(),\r\n });\r\n }\r\n setActiveTab(query.get('tab'));\r\n }, [location.search]);\r\n\r\n const handleTabClick = (tab: string) => {\r\n history.push({\r\n pathname: history.location.pathname,\r\n search: '?' + new URLSearchParams({tab: tab}).toString(),\r\n });\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default ClaimTabArea;","import React from 'react';\r\nimport GenericFormWithChildQuestions from \"../genericFormWithChildrenQuestions/genericFormWithChildQuestion\";\r\nimport {ObjectOfAny, QuestionSchema} from \"../../reducers/types\";\r\nimport GenericParentQuestion from \"../genericFormWithChildrenQuestions/genericParentQuestion\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nconst WithdrawClaimApplicationForm = (props: { questionTypes: any; withDrawQuestions: any;claimReference?:string }):JSX.Element => {\r\n const {\r\n questionTypes,\r\n withDrawQuestions,\r\n } = props;\r\n const {t} = useTranslation();\r\n return (\r\n
    \r\n
    {t('withdrawClaimApplicationTitle')}
    \r\n \r\n {withDrawQuestions.map((question: QuestionSchema | any, index: number, accQuestions: QuestionSchema[]) => {\r\n if (question.isParent) {\r\n return (\r\n <>\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};\r\n\r\nexport default WithdrawClaimApplicationForm;","import React from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props={\r\n claimReference:string\r\n}\r\n\r\nconst WithdrawnClaimApplicationBody = (props:Props) => {\r\n const {claimReference } = props;\r\n const {t} = useTranslation();\r\n return (\r\n
    \r\n
    \r\n {t('withdrawClaimApplicationSuccess').replace(t('claimReferenceCode'),claimReference )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default WithdrawnClaimApplicationBody;","import React from 'react';\r\n// @ts-ignore\r\nimport {Button, Modal, ModalBody, ModalContent, ModalDialog, ModalHeader, ModalFooter, Link, Loader} from 'arag-ui-lib';\r\nimport WithdrawClaimApplicationForm from '../withdrawClaimApplicationForm/withdrawClaimApplicationForm';\r\nimport WithdrawnClaimApplicationBody from '../withdrawnClaimApplicationBody/withdrawnClaimApplicationBody';\r\nimport {PrimaryButton, SecondaryButton, SmallModal} from '../../hosc/modals/modals';\r\nimport generalStyles from '../../assets/styles/generalStyle.module.scss';\r\nimport {Form, Formik} from 'formik';\r\nimport {useTranslation} from \"react-i18next\";\r\ntype Props={\r\n isWithdrawnModalOpen: boolean;\r\n closeWithdrawModal: ()=>void;\r\n claimApplication: {claimReference:string,withdrawn:boolean};\r\n submittingWithdrawnClaim: boolean;\r\n withDrawQuestions: any;\r\n questionTypes: any;\r\n onSubmitWithDrawnClaimApplication: any;\r\n}\r\nconst WithdrawClaimApplicationModal = (props: Props):JSX.Element => {\r\n const {\r\n isWithdrawnModalOpen,\r\n closeWithdrawModal,\r\n claimApplication,\r\n submittingWithdrawnClaim,\r\n withDrawQuestions,\r\n questionTypes,\r\n onSubmitWithDrawnClaimApplication,\r\n } = props;\r\n const {t} = useTranslation();\r\n return (\r\n \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n {(formikProps) => {\r\n return (\r\n \r\n \r\n {!claimApplication.withdrawn ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {!claimApplication.withdrawn ?\r\n
    \r\n \r\n {submittingWithdrawnClaim &&\r\n }\r\n
    \r\n\r\n :\r\n \r\n }\r\n
    \r\n \r\n {!claimApplication.withdrawn ?\r\n item!=='').length===0 }\r\n /> : null}\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 WithdrawClaimApplicationModal;","import React from 'react';\r\n// @ts-ignore\r\nimport {Modal, ModalBody, ModalContent, ModalDialog, ModalHeader} from 'arag-ui-lib';\r\nimport {useTranslation} from \"react-i18next\";\r\ntype Props={ openDocumentModal: boolean; onCloseDocumentModal: ()=>void; claimApplicationTemplate: any; }\r\n\r\nconst DisplayDocumentClickedByEmailLink= (props: Props)=>{\r\n const {openDocumentModal, onCloseDocumentModal,claimApplicationTemplate}=props;\r\n const {t} = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n onCloseDocumentModal()}\r\n />\r\n \r\n {claimApplicationTemplate && claimApplicationTemplate.content ?\r\n
    \r\n // @ts-ignore\r\n :

    {t('recordsNotExist')}

    \r\n }\r\n \r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\n\r\nexport default DisplayDocumentClickedByEmailLink;","import React from 'react';\r\n// @ts-ignore\r\nimport {Heading, HorizontalRule, Loader} from 'arag-ui-lib';\r\nimport ClaimOverview from '../claimOverview/claimOverview';\r\nimport ClaimTabArea from '../claimTabArea/claimTabArea';\r\nimport WithdrawClaimApplicationModal from '../withdrawClaimApplicationModal/withdrawClaimApplicationModal';\r\nimport DisplayDocumentClickedByEmailLink from '../displayDocumentClickedByEmailLink/displayDocumentClickedByEmailLink';\r\n\r\ntype Props = {\r\n claimApplication: any;\r\n fetchingClaim: boolean;\r\n openWithdrawModal: () => void;\r\n closeWithdrawModal: () => void;\r\n isWithdrawnModalOpen: boolean;\r\n withDrawQuestions: Array;\r\n submittingWithdrawnClaim: boolean;\r\n questionTypes: { [id: string]: any } | null;\r\n onSubmitWithDrawnClaimApplication: (formAnswers: any) => void;\r\n openDocumentModal: boolean;\r\n onCloseDocumentModal: () => void;\r\n claimApplicationTemplate: { content: string } | null;\r\n}\r\n\r\nconst ExistingClaim = (props: Props): JSX.Element | null => {\r\n const {\r\n claimApplication,\r\n fetchingClaim,\r\n openWithdrawModal,\r\n closeWithdrawModal,\r\n isWithdrawnModalOpen,\r\n withDrawQuestions,\r\n submittingWithdrawnClaim,\r\n questionTypes,\r\n onSubmitWithDrawnClaimApplication,\r\n openDocumentModal,\r\n onCloseDocumentModal,\r\n claimApplicationTemplate,\r\n } = props;\r\n\r\n if (fetchingClaim) {\r\n return ();\r\n }\r\n\r\n if (!claimApplication) {\r\n return null;\r\n }\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\nexport default ExistingClaim;","import React, { useCallback, useEffect, useState } from 'react';\r\nimport * as actions from '../../actions/index';\r\nimport { useHistory, useParams} from 'react-router-dom';\r\nimport claimApplicationProjections from '../../projections/claimApplication';\r\nimport ExistingClaim from '../../components/existingClaim/existingClaim';\r\nimport questionProjections from '../../projections/question';\r\nimport ids from '../../utils/constants/ids';\r\nimport _ from 'lodash';\r\nimport questionFunctions from '../../utils/functions/question';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport {useAppSelector,useAppDispatch} from '../../hooks/hooks';\r\nimport codes from \"../../utils/constants/codes\";\r\nimport currencyProjections from '../../projections/currency';\r\n\r\nconst ExistingClaimContainer = ():JSX.Element => {\r\n const dispatch = useAppDispatch();\r\n let { id,templateId }:{id:string,templateId:string} = useParams();\r\n const history = useHistory();\r\n const currencyOptions : actions.CurrencySchema[] | null = useAppSelector(currencyProjections.currencies);\r\n const claimApplication = useAppSelector(claimApplicationProjections.claimApplication(id));\r\n const fetchingClaim = useAppSelector(state => state.claimApplication.loading);\r\n const questions = useAppSelector(state => state.question.question.byId);\r\n const questionTypes = useAppSelector(state => state.questionType.questionType.byId);\r\n const withDrawQuestions = useAppSelector(questionProjections.filterQuestionsByGroupCode(codes.updateWithdrawnDetailsGroupCode));\r\n const submittingWithdrawnClaim = useAppSelector(state => state.claimApplication.submitting);\r\n const [isWithdrawnModalOpen, setWithdrawnModalOpen] = useState(false);\r\n const [openDocumentModal,setOpenDocumentModal]=useState(false);\r\n const claimApplicationTemplate=useAppSelector(claimApplicationProjections.claimApplicationTemplate(id));\r\n\r\n\r\n const fetchClaimApplicationAction = useCallback(\r\n (payload: actions.fetchClaimApplicationByIdAction | string) => dispatch(actions.fetchClaimApplicationById(payload)),\r\n [dispatch],\r\n )\r\n\r\n const fetchQuestionsByGroupAction = useCallback(\r\n (payload: any) => dispatch(actions.fetchQuestionsByGroup(payload as any)),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionTypeAction = useCallback(\r\n () => dispatch(actions.fetchQuestionTypes()),\r\n [dispatch],\r\n );\r\n\r\n const fetchQuestionValidationRuleAction = useCallback(\r\n () => dispatch(actions.fetchQuestionValidationRule()),\r\n [dispatch],\r\n );\r\n\r\n const createWithdrawnClaimApplicationAction = useCallback(\r\n (payload: actions.createWithdrawnClaimApplicationAction) => dispatch(actions.createWithdrawnClaimApplication(payload)),\r\n [dispatch],\r\n );\r\n \r\n const fetchCurrenciesAction = useCallback(\r\n () => dispatch(actions.fetchCurrencies()),\r\n [dispatch],\r\n );\r\n\r\n const fetchClaimApplicationTemplateAction=useCallback(\r\n (payload: actions.fetchClaimApplicationTemplateAction)=>dispatch(actions.fetchClaimApplicationTemplate(payload)),\r\n [dispatch]);\r\n\r\n useEffect(() => {\r\n fetchQuestionTypeAction();\r\n }, []);\r\n\r\n // fetch claim application on mount\r\n useEffect(\r\n () => {\r\n fetchClaimApplicationAction(id);\r\n },\r\n [],\r\n );\r\n\r\n useEffect(() => {\r\n if (currencyOptions === null){\r\n fetchCurrenciesAction();\r\n }\r\n }, [currencyOptions, fetchCurrenciesAction]);\r\n\r\n useEffect(() => {\r\n fetchQuestionValidationRuleAction();\r\n }, [fetchQuestionValidationRuleAction]);\r\n\r\n useEffect(\r\n () => {\r\n fetchQuestionsByGroupAction({\r\n claimApplicationId: id,\r\n groupCode: codes.updateWithdrawnDetailsGroupCode,\r\n });\r\n },\r\n [fetchQuestionsByGroupAction],\r\n );\r\n\r\n const openWithdrawModal = () => {\r\n setWithdrawnModalOpen(true);\r\n };\r\n\r\n const closeWithdrawModal = () => {\r\n if(claimApplication?.withdrawn){\r\n history.push('/claims/list');\r\n }else{\r\n setWithdrawnModalOpen(false);\r\n }\r\n };\r\n\r\n\r\n useEffect(()=>{\r\n if(templateId) {\r\n fetchClaimApplicationTemplateAction({\r\n templateId:templateId,\r\n claimApplicationId:id,\r\n });\r\n setOpenDocumentModal(true);\r\n }\r\n },[templateId]);\r\n\r\n\r\n\r\n const onCloseDocumentModal=()=>{\r\n setOpenDocumentModal(false);\r\n history.replace(`/claims/${id}?tab=communication`);\r\n };\r\n\r\n const onSubmitWithDrawnClaimApplication = (formAnswers: any) => {\r\n let filteredQuestions = GENERAL_FUNCTIONS.filterObjectBy(questions, (q: { groupCode: string; })=> q.groupCode === codes.updateWithdrawnDetailsGroupCode);\r\n const answers = questionFunctions.constructAnswersDTO(\r\n filteredQuestions,\r\n questionTypes,\r\n _.pickBy(formAnswers, (val, key) => !!filteredQuestions[key]),\r\n null,\r\n [],\r\n );\r\n\r\n createWithdrawnClaimApplicationAction({\r\n data:{Answers:answers},\r\n claimApplicationId: claimApplication?.id,\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ExistingClaimContainer;\r\n","import React from 'react';\r\nimport { Redirect, Route, Switch } from 'react-router-dom';\r\nimport ClaimContainer from '../containers/claim/claimContainer';\r\nimport SubmittedClaimContainer from '../containers/submittedClaimContainer/submittedClaimContainer';\r\nimport ClaimsListContainer from '../containers/claimsListContainer/claimsListContainer';\r\nimport ExistingClaimContainer from '../containers/existingClaim/existingClaimContainer';\r\nimport withAuthentication from '../hocs/withAuthentication';\r\n\r\nconst AuthenticatedUserRouter = (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\nexport default withAuthentication(AuthenticatedUserRouter);","import React, { useCallback, useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport authentication from '../utils/auth/react-azure-adb2c';\r\nimport * as actions from '../actions';\r\n\r\nconst withAuthentication = WrappedComponent => props => {\r\n\r\n const dispatch = useDispatch();\r\n const accessToken = useSelector(state => state.applicationUser.accessToken);\r\n const accessTokenFromAuthentication = authentication.getAccessToken();\r\n\r\n const loginSucceededAction = useCallback(\r\n (payload) => {\r\n dispatch(actions.loginSucceeded(payload));\r\n }, [dispatch]);\r\n\r\n const updateTokenAction = useCallback(\r\n (payload) => {\r\n dispatch(actions.updateToken(payload));\r\n }, [dispatch]);\r\n\r\n\r\n useEffect(() => {\r\n if (!accessToken) {\r\n loginSucceededAction({ accessTokenFromAuthentication });\r\n } else {\r\n updateTokenAction({ accessTokenFromAuthentication });\r\n }\r\n }, [accessTokenFromAuthentication]);\r\n\r\n\r\n\r\n return (\r\n \r\n );\r\n\r\n};\r\n\r\nexport default withAuthentication;","import React from 'react';\r\nimport { Redirect, Route, Switch } from 'react-router-dom';\r\nimport usePageTracking from '../hooks/usePageTracking';\r\nimport PolicyHolderReviewClaimContainer from '../containers/policyHolderReviewClaim/policyHolderReviewClaimContainer';\r\nimport AuthenticatedUserRouter from './authenticatedUserRouter';\r\n\r\nconst ContentRouter = (props) => {\r\n usePageTracking();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentRouter;","import React from 'react';\r\nimport ContentRouter from '../../routers/contentRouter';\r\n\r\n\r\nconst Content = props => {\r\n return ();\r\n};\r\n\r\nexport default Content;\r\n","import React, { useCallback } from 'react';\r\n// @ts-ignore\r\nimport {NotificationsList} from 'arag-ui-lib';\r\nimport messageProjections from '../../projections/message';\r\nimport * as actions from '../../actions';\r\nimport { useAppDispatch, useAppSelector } from '../../hooks/hooks';\r\n\r\nconst ApplicationMessages = () => {\r\n const dispatch = useAppDispatch();\r\n const removeMessageAction = useCallback(\r\n (payload: actions.removeMessageAction) => dispatch(actions.removeMessage(payload)),\r\n [dispatch],\r\n );\r\n\r\n const handleMessageRemove = (message: { key: string; }) => {\r\n removeMessageAction({\r\n uuid: message.key,\r\n });\r\n };\r\n const applicationMessageList = useAppSelector(messageProjections.applicationMessageList(handleMessageRemove));\r\n return (\r\n <>\r\n {applicationMessageList && applicationMessageList.length > 0 ?\r\n : null}\r\n \r\n );\r\n};\r\n\r\nexport default ApplicationMessages;","import React, { useEffect, useState } from 'react';\r\n\r\nconst useWindowSize=()=> {\r\n const isClient = typeof window === 'object';\r\n\r\n const getSize=()=> {\r\n return {\r\n width: isClient ? window.innerWidth : undefined,\r\n height: isClient ? window.innerHeight : undefined\r\n };\r\n };\r\n\r\n const [windowSize, setWindowSize] = useState(getSize);\r\n\r\n useEffect(() => {\r\n if (!isClient) {\r\n return false;\r\n }\r\n\r\n const handleResize=()=> {\r\n setWindowSize(getSize());\r\n };\r\n\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n }, []); // Empty array ensures that effect is only run on mount and unmount\r\n\r\n return windowSize;\r\n};\r\n\r\nexport default useWindowSize","import { createSelector } from '@reduxjs/toolkit';\r\nimport { ObjectOfAny } from '../reducers/types';\r\nimport { RootState } from '../store/store';\r\n\r\nconst applicationUserProjections = {} as ObjectOfAny;\r\n\r\napplicationUserProjections.applicationUserFullName = createSelector(\r\n (state: RootState) => state.applicationUser.applicationUserDetails,\r\n applicationUserDetails => {\r\n return (applicationUserDetails && applicationUserDetails.fullName)\r\n ? applicationUserDetails.fullName\r\n : '';\r\n },\r\n);\r\n\r\napplicationUserProjections.selectIsModalOpen = createSelector(\r\n (state: RootState) => state.applicationUser,\r\n applicationUser => {\r\n const { updateConsent, requestHasFailed } = applicationUser;\r\n\r\n if (!updateConsent && !requestHasFailed) {\r\n return true;\r\n } else if (!updateConsent && requestHasFailed) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n);\r\n\r\napplicationUserProjections.selectAreTermsConsented = createSelector(\r\n (state: RootState) => state.applicationUser.applicationUserDetails,\r\n applicationUserDetails => {\r\n return (applicationUserDetails && applicationUserDetails.areTermsConsented)\r\n ? applicationUserDetails.areTermsConsented\r\n : '';\r\n },\r\n);\r\nexport default applicationUserProjections;","import React from \"react\";\r\n\r\nconst LanguageIcon = ({ width = 24, height = 24, stroke = \"#000\", strokeWidth = 1, ...props }) => (\r\n \r\n Language\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default LanguageIcon;\r\n","import React, { useCallback } from 'react';\r\nimport { Header } from 'arag-ui-lib';\r\nimport _ from 'lodash';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport questionProjections from '../../../projections/question';\r\nimport { Layout, Button } from 'arag-ui-lib';\r\nimport styles from './headerContent.module.scss';\r\nimport { useHistory } from 'react-router-dom';\r\nimport useWindowSize from '../../../hooks/useWindowSize';\r\nimport authentication from '../../../utils/auth/react-azure-adb2c';\r\nimport applicationUserProjections from '../../../projections/applicationUser';\r\nimport * as actions from '../../../actions';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport LanguageIcon from \"../../icons/languageIcon\";\r\nimport * as action from \"../../../actions\";\r\n\r\n\r\nconst HeaderContent = () => {\r\n const dispatch = useDispatch();\r\n const apiApplicationSettings = useSelector(state => state.applicationSettings.apiApplicationSettings);\r\n const questionsExists = useSelector(questionProjections.questionsExists);\r\n const applicationUserFullName = useSelector(applicationUserProjections.applicationUserFullName);\r\n const applicationUser = useSelector(state => state.applicationUser.applicationUserDetails);\r\n const unAuthorisedDetails = useSelector(state => state.applicationUser.unAuthorisedDetails);\r\n const accessToken = useSelector(state => state.applicationUser.accessToken);\r\n const history = useHistory();\r\n const size = useWindowSize();\r\n const { t, i18n } = useTranslation();\r\n const menuItems =\r\n applicationUserFullName && !apiApplicationSettings.isSwitchingLanguageEnabled ?\r\n [\r\n {\r\n key: 'username',\r\n label: applicationUserFullName,\r\n options: [\r\n {\r\n key: 'first',\r\n label: t('editProfile'),\r\n onClick: () => authentication.editProfile(),\r\n },\r\n {\r\n key: 'second',\r\n label: t('signOut'),\r\n divided: true,\r\n onClick: () => handleLogout(),\r\n },\r\n ],\r\n },\r\n ] : apiApplicationSettings.isSwitchingLanguageEnabled && applicationUserFullName && apiApplicationSettings.languages?.length > 1 ? [\r\n {\r\n key: 'language',\r\n label: [
    {apiApplicationSettings?.languages?.find(x => x.id === applicationUser?.languageId)?.isO6391}
    ],\r\n options: apiApplicationSettings.languages.map((language) => ({\r\n key: language.code,\r\n label: language.isO6391,\r\n onClick: () => updateLanguageApplicationUserAction({ languageId: language.id })\r\n }))\r\n },\r\n {\r\n key: 'username',\r\n label: applicationUserFullName,\r\n options: [\r\n {\r\n key: 'first',\r\n label: t('editProfile'),\r\n onClick: () => authentication.editProfile(),\r\n },\r\n {\r\n key: 'second',\r\n label: t('signOut'),\r\n divided: true,\r\n onClick: () => handleLogout(),\r\n },\r\n ],\r\n },\r\n ] : apiApplicationSettings.isSwitchingLanguageEnabled &&\r\n apiApplicationSettings.languages?.length > 1 && unAuthorisedDetails?.languageId ?\r\n [\r\n {\r\n key: 'language',\r\n label: [
    {apiApplicationSettings?.languages?.find(x => x.id === unAuthorisedDetails?.languageId)?.isO6391}
    ],\r\n options: apiApplicationSettings.languages.map((language) => ({\r\n key: language.code,\r\n label: language.isO6391,\r\n onClick: () => fetchUnauthorisedUserWordingsAction({ payload: { languageId: language.id } })\r\n }))\r\n }\r\n ]\r\n : null;\r\n\r\n\r\n const fetchUnauthorisedUserWordingsAction = useCallback(\r\n (payload: action.fetchUnauthorisedWordingsAction) => dispatch(action.fetchUnauthorisedUserWordings(payload)),\r\n [dispatch],\r\n );\r\n\r\n const updateLanguageApplicationUserAction = useCallback(\r\n (payload) => dispatch(actions.updateLanguageApplicationUser(payload)),\r\n [dispatch],\r\n );\r\n\r\n const logoutAction = useCallback(\r\n (payload) => dispatch(actions.logout()),\r\n [dispatch],\r\n );\r\n\r\n const handleLogout = () => {\r\n authentication.signOut();\r\n logoutAction();\r\n };\r\n\r\n if (!apiApplicationSettings || _.isEmpty(apiApplicationSettings)) {\r\n return null;\r\n }\r\n\r\n const goToLocation = (location) => {\r\n window.open(location, '_blank');\r\n };\r\n\r\n const buttons = i18n.exists('aragButtons') ? accessToken ?\r\n JSON.parse(t('aragButtons', { returnObjects: true })) :\r\n JSON.parse(t('aragButtons', { returnObjects: true })).filter(x => x.code !== 'claimsList') : null\r\n\r\n return (\r\n \r\n history.push('/')}\r\n menuItems={menuItems}\r\n />\r\n {Array.isArray(buttons) ? !questionsExists ?\r\n \r\n
    \r\n {buttons?.map((button, index) =>\r\n apiApplicationSettings.mobileScreenSizeWidth\r\n ? button.titleForBigScreens : button.titleForSmallScreens}\r\n onClick={button.isExternal ?\r\n () => goToLocation(button.url) :\r\n () => history.push(button.url)}\r\n />,\r\n )}\r\n
    \r\n
    :\r\n
    \r\n
    \r\n {Array.isArray(buttons) && buttons?.map((button, index) =>\r\n apiApplicationSettings.mobileScreenSizeWidth\r\n ? button.titleForBigScreens : button.titleForSmallScreens}\r\n onClick={button.isExternal ?\r\n () => goToLocation(button.url) :\r\n () => history.push(button.url)}\r\n />,\r\n )}\r\n
    \r\n
    : null\r\n }\r\n
    \r\n );\r\n}\r\n ;\r\n\r\n\r\nexport default HeaderContent;\r\n","import { Modal, ModalBody, ModalContent, ModalDialog, ModalHeader, Button, Loader } from 'arag-ui-lib';\r\nimport { useTermsAndConditions } from '../../hooks/useTermsAndConditions';\r\nimport styles from './termsAndConditionsModal.module.scss';\r\nimport { RootState } from '../../store/store';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { useCallback, useState } from 'react';\r\nimport * as actions from '../../actions';\r\ntype Props = {\r\n areTermsConsented: boolean;\r\n isModalOpen: boolean;\r\n}\r\nconst TermsAndConditionsModal = (props: Props): JSX.Element => {\r\n const { isModalOpen, areTermsConsented } = props;\r\n const dispatch = useDispatch();\r\n const [userHasReviewed, setUserHasReviewed] = useState(false);\r\n const currentCountry = useSelector((state: RootState) => state.applicationSettings.apiApplicationSettings.currentCountryCode);\r\n const { data: termsAndConditions } = useTermsAndConditions(areTermsConsented, currentCountry);\r\n const userId = useSelector((state: RootState) => state.applicationUser.applicationUserDetails.id);\r\n\r\n const updateApplicationTermsAndConditionsTermsConsentedAction = useCallback(\r\n (payload: any) => dispatch(actions.updateApplicationTermsAndConditionsTermsConsented(payload)),\r\n [dispatch]\r\n );\r\n\r\n const scrollTracker = (event: any) => {\r\n const { scrollTop, scrollHeight, clientHeight } = event.target;\r\n const position = Math.ceil((scrollTop / (scrollHeight - clientHeight)) * 100);\r\n\r\n if (position === 100) {\r\n setUserHasReviewed(true);\r\n }\r\n else {\r\n setUserHasReviewed(false);\r\n }\r\n };\r\n\r\n const handleAgreeClick = () => {\r\n updateApplicationTermsAndConditionsTermsConsentedAction({ userId: userId });\r\n };\r\n\r\n return (\r\n <>\r\n {termsAndConditions ? (\r\n <>\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {!termsAndConditions ? null : (\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 ) : null}\r\n \r\n );\r\n\r\n};\r\n\r\nexport default TermsAndConditionsModal;","import {useQuery} from 'react-query';\r\nimport GENERAL_FUNCTIONS from '../utils/functions/functions';\r\nimport codes from '../utils/constants/codes';\r\n\r\nexport const useTermsAndConditions=(areTermsConsented :any, currentCountry :any)=> { \r\n return useQuery({\r\n queryKey:['termsAndCondition'],\r\n queryFn:async ()=> {\r\n let respone = await GENERAL_FUNCTIONS.fetchTermsAndConditions();;\r\n return respone.data;\r\n }, \r\n enabled: !areTermsConsented && currentCountry == codes.canadaCode,\r\n });\r\n};\r\n\r\n\r\n","import React, { useEffect, useRef } from 'react';\r\nimport Content from '../content/content';\r\nimport ApplicationMessages from '../applicationMessages/applicationMessages';\r\n// @ts-ignore\r\nimport { Footer, Link, EnvironmentIndicator } from 'arag-ui-lib';\r\nimport HeaderContent from '../general/headerContent/headerContent';\r\nimport style from './layout.module.scss';\r\nimport GENERAL_FUNCTIONS from '../../utils/functions/functions';\r\nimport { useAppSelector } from '../../hooks/hooks';\r\nimport applicationSettingsProjections from '../../projections/applicationSettings';\r\nimport TermsAndConditionsModal from '../termsAndConditionsModal/termsAndConditionsModal';\r\nimport applicationUserProjections from '../../projections/applicationUser';\r\nimport codes from '../../utils/constants/codes';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\ntype Props = {\r\n postApplicationCustomerFeedbackAction?: (e: React.SyntheticEvent) => void;\r\n customerFeedback?: null | string | boolean;\r\n}\r\n\r\nconst Layout = (props: Props): JSX.Element => {\r\n const currentCountryCode: string | null = useAppSelector(applicationSettingsProjections.getCountry) ?? 'Unknown';\r\n const aragSocialMediaImages: any = useAppSelector(applicationSettingsProjections.getAragSocialMediaImages)\r\n const {t, i18n} = useTranslation()\r\n const footerRef = useRef(null);\r\n const socialArray: any = i18n.exists('aragSocialMedia') ? JSON.parse(t('aragSocialMedia',{ returnObjects: true })) : null\r\n const areTermsConsented: any = useAppSelector(applicationUserProjections.selectAreTermsConsented);\r\n const isModalOpen: any = useAppSelector(applicationUserProjections.selectIsModalOpen);\r\n\r\n useEffect(() => {\r\n if (Array.isArray(socialArray) ){\r\n document.documentElement.style.setProperty('--sprite-url', `url(${aragSocialMediaImages})`);\r\n }\r\n }, [socialArray]);\r\n\r\n useEffect(() => {\r\n if (footerRef.current) {\r\n const contentHeight = footerRef.current.offsetHeight;\r\n document.documentElement.style.setProperty('--footer-height', `${contentHeight}px`);\r\n }\r\n }, []);\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n {( codes.enviromentsForIndicator as any)[process.env.REACT_APP_ENV_NAME as any] &&\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Layout;\r\n","export default __webpack_public_path__ + \"static/media/warning.1f016e5c.png\";","import React from 'react';\r\nimport Icon from './icon';\r\n\r\n\r\nconst CopyPasteIcon = (props) => {\r\n const {id, className} = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n\r\nexport default CopyPasteIcon;\r\n","import React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst CheckedIcon = (props) => {\r\n const {id, className} = props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n\r\nexport default CheckedIcon;\r\n","\r\nimport React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst PhoneNoFillIcon = (props) => {\r\n const { id, className } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default PhoneNoFillIcon;","import React from 'react';\r\nimport Icon from './icon';\r\n\r\nconst EmailIcon = (props) => {\r\n const { id, className } = 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\nexport default EmailIcon;","import React, {useEffect, useState} from 'react';\r\nimport codes from '../../../utils/constants/codes';\r\n// @ts-ignore\r\nimport internalErrors from './internalErrorsPage.module.scss';\r\n// @ts-ignore\r\nimport warning from '../../../assets/images/warning.png';\r\nimport CopyPasteIcon from '../../icons/copyPasteIcon';\r\nimport CheckedIcon from '../../icons/checkedIcon';\r\nimport PhoneNoFillIcon from '../../icons/phoneNoFillIcon';\r\nimport EmailIcon from '../../icons/emailIcon';\r\nimport {store} from '../../../store/store';\r\n\r\n\r\nfunction InternalErrorsPage() {\r\n const [copied, setCopied] = useState(false);\r\n\r\n useEffect(() => {\r\n setTimeout(() => setCopied(false), 3000);\r\n }, [copied]);\r\n\r\n const copy = (item) => {\r\n const el = document.createElement('input');\r\n el.value = item;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopied(true);\r\n };\r\n const currentCountryCode = store.getState().applicationSettings.apiApplicationSettings?.currentCountryCode.toUpperCase(); \r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n

    {codes.blankPage}

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

    {codes.contactIT}

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

    \r\n {codes[`emailContactNumber${currentCountryCode}`] || 'Unknown'}\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 InternalErrorsPage;","export default \"data:image/png;base64,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\"","// eslint-disable-next-line no-unused-vars\r\nimport React,{useEffect,useState} from 'react';\r\nimport error from '../assets/images/wrencher-min.png';\r\nimport logo from '../assets/images/araglogo3@2x.png';\r\nconst getOnlineStatus=()=> {\r\n return typeof navigator !== 'undefined' &&\r\n typeof navigator.onLine === 'boolean'\r\n ? navigator.onLine\r\n : true;\r\n};\r\n const useOnlineStatus=()=> {\r\n let [onlineStatus, setOnlineStatus] = useState(getOnlineStatus());\r\n let [offlineImage,setOfflineImage] = useState({error:error,logo:logo});\r\n\r\n function goOnline() {\r\n setOnlineStatus(true);\r\n }\r\n function goOffline() {\r\n setOnlineStatus(false);\r\n }\r\n useEffect(() => {\r\n setOfflineImage({error:error,logo:logo});\r\n window.addEventListener('online', goOnline);\r\n window.addEventListener('offline', goOffline);\r\n return () => {\r\n window.removeEventListener('online', goOnline);\r\n window.removeEventListener('offline', goOffline);\r\n };\r\n }, []);\r\n\r\n return {\r\n onlineStatus:onlineStatus,\r\n offlineImage:offlineImage,\r\n };\r\n};\r\n\r\nexport default useOnlineStatus;\r\n","import React, {useEffect, useState} from 'react';\r\nimport codes from '../../../utils/constants/codes';\r\n// @ts-ignore\r\nimport unavailableErrors from './unvailabeWebAppPage.module.scss';\r\nimport PhoneNoFillIcon from '../../icons/phoneNoFillIcon';\r\nimport EmailIcon from '../../icons/emailIcon';\r\nimport CopyPasteIcon from '../../icons/copyPasteIcon';\r\nimport CheckedIcon from '../../icons/checkedIcon';\r\nimport {store} from '../../../store/store';\r\n\r\nconst UnavailableWebAppPage = (props) => {\r\n const {errorImage} = props;\r\n const [copied, setCopied] = useState(false);\r\n\r\n useEffect(() => {\r\n setTimeout(() => setCopied(false), 3000);\r\n }, [copied]);\r\n\r\n const copy = (item) => {\r\n const el = document.createElement('input');\r\n el.value = item;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopied(true);\r\n };\r\n const currentCountryCode = store.getState().applicationSettings.apiApplicationSettings?.currentCountryCode.toUpperCase(); \r\n return (\r\n
    \r\n
    \r\n {'wrencher'}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {codes.unavailableBlankPage}

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

    {codes.unavailableContantIT}

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

    {codes[`emailContactNumber${currentCountryCode}`] || 'Unknown'}

    \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 UnavailableWebAppPage;","import React, {useCallback, useEffect, useTransition} from 'react';\r\nimport Layout from '../../components/layout/layout';\r\nimport * as actions from '../../actions';\r\n// @ts-ignore\r\nimport {Loader} from 'arag-ui-lib';\r\nimport style from '../../components/layout/layout.module.scss';\r\nimport authentication from '../../utils/auth/react-azure-adb2c';\r\nimport InternalErrorsPage from '../../components/general/intermalErrorsPage/internalErrorsPage';\r\nimport useOnlineStatus from '../../hooks/useOnlineStatus';\r\nimport UnavailableWebAppPage from '../../components/general/unavailableWebAppPage/unavailableWebAppPage';\r\nimport {useAppSelector,useAppDispatch} from '../../hooks/hooks';\r\nimport {useIdleTimer} from 'react-idle-timer';\r\n\r\nconst LayoutContainer = () => {\r\n const dispatch = useAppDispatch();\r\n\r\n const apiApplicationSettings = useAppSelector(state => state.applicationSettings.apiApplicationSettings);\r\n const accessToken=useAppSelector(state=>state.applicationUser.accessToken);\r\n const loading=useAppSelector(state=>state.applicationUser.loading);\r\n const serviceErrors = useAppSelector(state => state.message.serviceErrors);\r\n const internalErrors = useAppSelector(state => state.message.internalErrors);\r\n const onlineStatus = useOnlineStatus();\r\n //after 30 minutes check if user is active or inactive\r\n useIdleTimer({timeout: 1800000, onIdle:()=> authentication.checkTokenLogoutRedirection()});\r\n\r\n const fetchApplicationSettingsAction = useCallback(\r\n (payload: actions.fetchApplicationSettingsAction) => {\r\n dispatch(actions.fetchApplicationSettings(payload as any));\r\n }, [dispatch]);\r\n\r\n const fetchApplicationUserWordingsAction = useCallback(\r\n () => {\r\n dispatch(actions.fetchApplicationUserWordings());\r\n }, [dispatch]);\r\n\r\n const fetchApplicationCustomerFeedbackAction= useCallback(\r\n (payload: actions.fetchApplicationCustomerFeedbackAction) => {\r\n dispatch(actions.fetchApplicationCustomerFeedback(payload));\r\n\r\n }, [dispatch]);\r\n\r\n\r\n useEffect(() => {\r\n fetchApplicationSettingsAction({});\r\n }, [fetchApplicationSettingsAction]);\r\n\r\n useEffect(() => {\r\n if(accessToken) {\r\n fetchApplicationCustomerFeedbackAction({});\r\n fetchApplicationUserWordingsAction();\r\n }\r\n }, [accessToken]);\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n authentication.checkToRenewToken();\r\n }, 200000);\r\n return () => clearInterval(interval);\r\n }, []);\r\n\r\n\r\n if(loading){\r\n return null\r\n }\r\n\r\n if(internalErrors){\r\n return ;\r\n }\r\n\r\n if(!onlineStatus?.onlineStatus || serviceErrors){\r\n return ;\r\n }\r\n\r\n if (Object.keys(apiApplicationSettings).length === 0) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return ();\r\n};\r\n\r\nexport default LayoutContainer;\r\n","import { useEffect } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst ScrollToTop=()=> {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n return null;\r\n};\r\n\r\nexport default ScrollToTop;","import React from 'react';\r\nimport { history } from '../store/store';\r\nimport { Router} from 'react-router-dom';\r\nimport LayoutContainer from '../containers/layout/layoutContainer';\r\nimport ScrollToTop from \"../components/scrollToTop/scrollToTop\";\r\nconst MainRouter = props => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MainRouter;\r\n","import React, {useEffect, useState} from 'react';\r\nimport codes from '../../../utils/constants/codes';\r\nimport refreshPage from './refreshPage.module.scss';\r\nimport CheckedIcon from '../../icons/checkedIcon';\r\nimport {Button} from 'arag-ui-lib';\r\nimport warning from '../../../assets/images/warning.png';\r\nimport {store} from '../../../store/store';\r\nimport PhoneNoFillIcon from '../../icons/phoneNoFillIcon';\r\nimport EmailIcon from '../../icons/emailIcon';\r\nimport CopyPasteIcon from '../../icons/copyPasteIcon';\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\n\r\nfunction RefreshPage() {\r\n const [copied, setCopied] = useState(false);\r\n\r\n useEffect(() => {\r\n setTimeout(() => setCopied(false), 3000);\r\n }, [copied]);\r\n\r\n const copy = (item) => {\r\n const el = document.createElement('input');\r\n el.value = item;\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n setCopied(true);\r\n };\r\n const currentCountryCode = store.getState().applicationSettings.apiApplicationSettings?.currentCountryCode.toUpperCase();\r\n const {t} = useTranslation();\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n

    \r\n {codes.blankPage}\r\n

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

    \r\n {codes.refreshPage}\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 RefreshPage;","import React from 'react';\r\nimport config from '../../../utils/constants/config';\r\nimport Elmahio from 'elmah.io.javascript/dist/elmahio';\r\nimport GENERAL_FUNCTIONS from '../../../utils/functions/functions';\r\nimport RefreshPage from '../refreshPage/refreshPage';\r\n\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n this.log = new Elmahio({\r\n application: `Claims.WEB.ReactJS.${config.ENV_NAME}`,\r\n });\r\n }\r\n\r\n callToApi = async (props) => {\r\n\r\n\r\n let call = await fetch(GENERAL_FUNCTIONS.getBaseURL() + 'api/Services/elmah/message' ,{\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n\r\n },\r\n body: JSON.stringify(props),\r\n });\r\n let body = await call.json();\r\n\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n async componentDidCatch(error, errorInfo) {\r\n // You can also log the error to an error reporting service\r\n var msg = this.log.message(error); // Get a prefilled message\r\n msg.title = error.message;\r\n msg.queryString={};\r\n msg.severity = 'Error';\r\n msg.type=error.name;\r\n msg.detail=error.stack;\r\n await this.callToApi(msg);\r\n }\r\n\r\n render() {\r\n\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return ;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default ErrorBoundary;","import React from 'react';\r\nimport {Provider} from 'react-redux';\r\nimport {TranslationsProvider} from 'arag-ui-lib';\r\nimport {store, persistor} from './store/store';\r\nimport MainRouter from './routers/mainRouter';\r\nimport './assets/styles/uiLibOverwrites.css';\r\nimport ErrorBoundary from './components/general/errorBoundary/errorBoundary';\r\nimport {PersistGate} from 'redux-persist/integration/react';\r\nimport i18n from \"./i18n/i18n\";\r\nimport {QueryClient, QueryClientProvider} from 'react-query';\r\n\r\nfunction App() {\r\n const queryClientConfig: any = {\r\n defaultOptions: {\r\n queries: {\r\n retry: 1,\r\n staleTime: 'Infinity',\r\n refetchOnMount: true,\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: 'false',\r\n },\r\n },\r\n };\r\n const queryClient: QueryClient = new QueryClient(queryClientConfig);\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\nexport default App;\r\n","// This must be the first line in src/index.js\r\nimport 'react-app-polyfill/ie9';\r\nimport 'react-app-polyfill/stable';\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport authentication from './utils/auth/react-azure-adb2c';\r\nimport { AUTH } from './utils/auth/authConstants';\r\nimport config from './utils/constants/config';\r\n\r\nauthentication.initialize({\r\n // optional, will default to this\r\n instance: config.AUTH_TENANT_INSTANCE,\r\n // your B2C tenant\r\n tenant: config.AUTH_TENANT_NAME,\r\n // the policy to use to sign in, can also be a sign up or sign in policy\r\n signInPolicy: 'B2C_1_PolicyHolders_SignUpAndSignIn',\r\n // the policy to use for password reset\r\n resetPolicy: 'B2C_1_PolicyHolders_ResetPassword',\r\n // the policy to use to edit the profile\r\n profilePolicy: 'B2C_1_PolicyHolders_EditProfile',\r\n // the the B2C application you want to authenticate with\r\n clientId: config.AUTH_CLIENT_ID,\r\n // where MSAL will store state - localStorage or sessionStorage\r\n cacheLocation: 'sessionStorage',\r\n // the scopes you want included in the access token\r\n scopes: [config.AUTH_CLIENT_AUDIENCE_URI + '/api_access', config.AUTH_CLIENT_AUDIENCE_URI + '/user_impersonation'],\r\n // optional, the redirect URI - if not specified MSAL will pick up the location from window.href\r\n redirectUri: config.AUTH_REDIRECT_URI,\r\n // optional, the URI to redirect to after logout\r\n postLogoutRedirectUri: config.AUTH_REDIRECT_URI,\r\n}, AUTH.policyTypes.signIn.key);\r\n\r\nauthentication.run(() => {\r\n ReactDOM.render(, document.getElementById('root'));\r\n // registerServiceWorker();\r\n });\r\n","'use strict';\r\n\r\nconst {unauthorizedRegularExpression} = require('../../utils/constants/unauthorizedRegularExpression');\r\n\r\nconst {AUTH} = require('./authConstants');\r\n\r\nObject.defineProperty(exports, '__esModule', {\r\n value: true,\r\n});\r\n\r\nvar _createClass = function () {\r\n function defineProperties(target, props) {\r\n for (var i = 0; i < props.length; i++) {\r\n var descriptor = props[i];\r\n descriptor.enumerable = descriptor.enumerable || false;\r\n descriptor.configurable = true;\r\n if ('value' in descriptor) descriptor.writable = true;\r\n Object.defineProperty(target, descriptor.key, descriptor);\r\n }\r\n }\r\n\r\n return function (Constructor, protoProps, staticProps) {\r\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\r\n if (staticProps) defineProperties(Constructor, staticProps);\r\n return Constructor;\r\n };\r\n}();\r\n\r\nvar _msal = require('msal');\r\n\r\nvar msal = _interopRequireWildcard(_msal);\r\n\r\nvar _react = require('react');\r\n\r\nvar _react2 = _interopRequireDefault(_react);\r\n\r\nvar _authUtils = require('./auth-utils');\r\n\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {default: obj};\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj;\r\n } else {\r\n var newObj = {};\r\n if (obj != null) {\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\r\n }\r\n }\r\n newObj.default = obj;\r\n return newObj;\r\n }\r\n}\r\n\r\nfunction _classCallCheck(instance, Constructor) {\r\n if (!(instance instanceof Constructor)) {\r\n throw new TypeError('Cannot call a class as a function');\r\n }\r\n}\r\n\r\nfunction _possibleConstructorReturn(self, call) {\r\n if (!self) {\r\n throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\r\n }\r\n return call && (typeof call === 'object' || typeof call === 'function') ? call : self;\r\n}\r\n\r\nfunction _inherits(subClass, superClass) {\r\n if (typeof superClass !== 'function' && superClass !== null) {\r\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\r\n }\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true,\r\n },\r\n });\r\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\r\n} // note on window.msal usage. There is little point holding the object constructed by new Msal.UserAgentApplication\r\n// as the constructor for this class will make callbacks to the acquireToken function and these occur before\r\n// any local assignment can take place. Not nice but its how it works.\r\n\r\n\r\nvar LOCAL_STORAGE = 'localStorage';\r\nvar SESSION_STORAGE = 'sessionStorage';\r\nvar AUTHORIZATION_KEY = 'Authorization';\r\n\r\nvar state = {\r\n stopLoopingRedirect: false,\r\n config: {\r\n scopes: [],\r\n cacheLocation: null,\r\n },\r\n launchApp: null,\r\n accessToken: {\r\n expiresOn: null,\r\n },\r\n msalObj: null,\r\n};\r\n\r\nvar msalApp = void 0;\r\n\r\nvar localConfig = null;\r\n\r\nvar localPolicyName = null;\r\n\r\nfunction acquireToken(successCallback) {\r\n var account = msalApp.getAccount();\r\n\r\n if (!account) {\r\n msalApp.loginRedirect(_authUtils.B2C_SCOPES.API_ACCESS);\r\n } else {\r\n msalApp.acquireTokenSilent(_authUtils.B2C_SCOPES.API_ACCESS).then(function (accessToken) {\r\n window.sessionStorage.setItem(AUTHORIZATION_KEY, 'Bearer ' + accessToken);\r\n state.accessToken = accessToken;\r\n if (state.launchApp) {\r\n state.launchApp();\r\n }\r\n if (successCallback) {\r\n successCallback();\r\n }\r\n }, function (error) {\r\n if (error) {\r\n var errorMessage = error.errorMessage ? error.errorMessage : 'Unable to acquire access token.';\r\n // alert(errorMessage);\r\n var isEditProfile = (\r\n msalApp\r\n && msalApp.redirectResponse\r\n && msalApp.redirectResponse.idTokenClaims\r\n && msalApp.redirectResponse.idTokenClaims.tfp\r\n && msalApp.redirectResponse.idTokenClaims.tfp.toLowerCase().indexOf('edit') > -1\r\n );\r\n var isResetPassword = (\r\n msalApp\r\n && msalApp.redirectResponse\r\n && msalApp.redirectResponse.idTokenClaims\r\n && msalApp.redirectResponse.idTokenClaims.tfp\r\n && msalApp.redirectResponse.idTokenClaims.tfp.toLowerCase().indexOf('reset') > -1\r\n );\r\n if (msalApp.redirectResponse && msalApp.redirectResponse.idTokenClaims && (isEditProfile || isResetPassword)) {\r\n (0, _authUtils.initializeConfig)(localConfig, AUTH.policyTypes.signIn.key);\r\n localConfig = null;\r\n msalApp = new msal.UserAgentApplication(_authUtils.msalAppConfig);\r\n if (isResetPassword) {\r\n authentication.signOut();\r\n }\r\n msalApp.loginRedirect();\r\n }\r\n msalApp.acquireTokenRedirect(_authUtils.B2C_SCOPES.API_ACCESS);\r\n }\r\n });\r\n }\r\n}\r\nvar authentication = {\r\n initialize: function initialize(config, policyName) {\r\n localConfig = config;\r\n localPolicyName = policyName;\r\n (0, _authUtils.initializeConfig)(localConfig, policyName);\r\n msalApp = new msal.UserAgentApplication(_authUtils.msalAppConfig);\r\n },\r\n run: function run(launchApp) {\r\n let currentUlr = window.location.pathname;\r\n state.launchApp = launchApp;\r\n if (RegExp(unauthorizedRegularExpression.claimReview).test(currentUlr) === false) {\r\n msalApp.handleRedirectCallback(function (error) {\r\n if (error) {\r\n var errorMessage = error.errorMessage ? error.errorMessage : 'Unable to acquire access token.';\r\n // alert(errorMessage);\r\n if (errorMessage) {\r\n if (errorMessage.indexOf('AADB2C90118') > -1) {\r\n (0, _authUtils.initializeConfig)(localConfig, AUTH.policyTypes.resetPassword.key);\r\n localConfig = null;\r\n localPolicyName = null;\r\n msalApp = new msal.UserAgentApplication(_authUtils.msalAppConfig);\r\n msalApp.loginRedirect();\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (localPolicyName === AUTH.policyTypes.signIn.key) {\r\n acquireToken();\r\n }\r\n } else {\r\n state.launchApp();\r\n }\r\n },\r\n required: function required(WrappedComponent, renderLoading) {\r\n return function (_React$Component) {\r\n _inherits(_class, _React$Component);\r\n\r\n function _class(props) {\r\n _classCallCheck(this, _class);\r\n\r\n var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, props));\r\n\r\n _this.state = {\r\n signedIn: false,\r\n error: null,\r\n };\r\n return _this;\r\n }\r\n\r\n _createClass(_class, [{\r\n key: 'render',\r\n value: function render() {\r\n if (this.state.signedIn) {\r\n return _react2.default.createElement(WrappedComponent, this.props);\r\n }\r\n return typeof renderLoading === 'function' ? renderLoading() : null;\r\n },\r\n }]);\r\n\r\n return _class;\r\n }(_react2.default.Component);\r\n },\r\n signOut: function signOut() {\r\n return msalApp.logout();\r\n },\r\n getAccessToken: function getAccessToken() {\r\n return state.accessToken;\r\n },\r\n editProfile: function editProfile() {\r\n (0, _authUtils.initializeConfig)(localConfig, AUTH.policyTypes.editProfile.key);\r\n localConfig = null;\r\n localPolicyName = null;\r\n msalApp = new msal.UserAgentApplication(_authUtils.msalAppConfig);\r\n msalApp.loginRedirect();\r\n },\r\n checkTokenLogoutRedirection: function checkToRenewToken() {\r\n return msalApp.logout();\r\n },\r\n checkToRenewToken: function checkToRenewToken() {\r\n acquireToken();\r\n },\r\n};\r\n\r\nexports.default = authentication;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"policyHolderClaimReviewAcceptedRejectedWordings_icon__FUzjv\",\"accepted-wordings\":\"policyHolderClaimReviewAcceptedRejectedWordings_accepted-wordings__1uhXb\"};","export default \"data:image/png;base64,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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"general-label\":\"generalLabels_general-label__HEhd-\",\"search-label\":\"generalLabels_search-label__1CS-M\",\"consistent-text-view\":\"generalLabels_consistent-text-view__3Fnyc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"layout_content__25Ojz\",\"icon\":\"layout_icon__3waQ9\",\"twitter\":\"layout_twitter__30DiR\",\"linkedin\":\"layout_linkedin__25uja\",\"youtube\":\"layout_youtube__CC5C1\"};","const AUTH = {};\r\n\r\nAUTH.policyTypes = {\r\n signIn: {\r\n key: 'SIGN_IN',\r\n },\r\n resetPassword: {\r\n key: 'RESET_PASSWORD',\r\n },\r\n editProfile: {\r\n key: 'EDIT_PROFILE',\r\n },\r\n};\r\n\r\nexport { AUTH };","// extracted by mini-css-extract-plugin\nmodule.exports = {\"progress\":\"progressBar_progress__2FlH8 progress\",\"progress-bar\":\"progressBar_progress-bar__aD1ls progress-bar progress-bar-info progress-bar-striped\",\"progress-bar-initial\":\"progressBar_progress-bar-initial__2RbSi progress-bar progress-bar-info progress-bar-striped\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"surveyConfirmation_container__3Ixyk\",\"primary-button\":\"surveyConfirmation_primary-button__1k-QW\",\"link\":\"surveyConfirmation_link__3nuPU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"display_termsAndCondition_header_close\":\"termsAndConditionsModal_display_termsAndCondition_header_close__1oIIz\",\"modal-footer-button\":\"termsAndConditionsModal_modal-footer-button__1A76T\",\"text\":\"termsAndConditionsModal_text__14TGd\"};","export default __webpack_public_path__ + \"static/media/tick.ffa8f40f.png\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"claim-overview-row\":\"claimOverview_claim-overview-row__ckSRA\",\"edit-claim-btn-wrapper\":\"claimOverview_edit-claim-btn-wrapper__3LLZC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"claim-buttons\":\"claimForm_claim-buttons__2ecoP\",\"claim-submit\":\"claimForm_claim-submit__gw_o3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"info-buttons\":\"headerContent_info-buttons__3EQIh\",\"info-buttons-without-ribbon\":\"headerContent_info-buttons-without-ribbon__1xoLR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"formikFieldWrapper_container__ckKlc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"print-button\":\"policyHolderClaimDetails_print-button__3Ptbc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"policyholderClaimRejectedForm_container__alGOk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"page-not-found\":\"pageNotFount_page-not-found__3P6nf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"claim-tabs-wrapper\":\"claimTabs_claim-tabs-wrapper__2H1oF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"claimCommunicatorForm_container__1I-MN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"relative\":\"claimCommunicatorCommentsDeleteButton_relative__16e_Z\",\"deleteButton\":\"claimCommunicatorCommentsDeleteButton_deleteButton__3So-d\",\"lastDeleteButton\":\"claimCommunicatorCommentsDeleteButton_lastDeleteButton__3ngCZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"circleWrapper\":\"circleWrapper_circleWrapper__2wVPB\",\"rotate\":\"circleWrapper_rotate__3-4H0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"unvailabeWebAppPage_wrapper__wT_ba\",\"image\":\"unvailabeWebAppPage_image__3uACW\",\"content\":\"unvailabeWebAppPage_content__2ErLv\",\"logoText\":\"unvailabeWebAppPage_logoText__386Q4\",\"logo\":\"unvailabeWebAppPage_logo__2Sjrf\",\"text\":\"unvailabeWebAppPage_text__13_cv\",\"mainIcon\":\"unvailabeWebAppPage_mainIcon__3DCgb\",\"secondary-text\":\"unvailabeWebAppPage_secondary-text__vTt9G\",\"email\":\"unvailabeWebAppPage_email__UBo4z\",\"phone\":\"unvailabeWebAppPage_phone__24Lv7\",\"link\":\"unvailabeWebAppPage_link__2Z2rY\",\"btn\":\"unvailabeWebAppPage_btn__3GC43\",\"emailText\":\"unvailabeWebAppPage_emailText__1mGZ8\",\"icon\":\"unvailabeWebAppPage_icon__1mH29\",\"tooltip\":\"unvailabeWebAppPage_tooltip__R5NKZ\",\"tooltipText\":\"unvailabeWebAppPage_tooltipText__1ywm2\",\"cssAnimation\":\"unvailabeWebAppPage_cssAnimation__3BfHw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"refreshPage_content__3bMIg\",\"logoText\":\"refreshPage_logoText__1zUyf\",\"logo\":\"refreshPage_logo__1ImWN\",\"text\":\"refreshPage_text__2uI86\",\"mainIcon\":\"refreshPage_mainIcon__22lC5\",\"secondary-text\":\"refreshPage_secondary-text__2h8Nf\",\"email\":\"refreshPage_email__3I0zs\",\"phone\":\"refreshPage_phone__1T2tG\",\"link\":\"refreshPage_link__2NCwv\",\"btn\":\"refreshPage_btn__2D0bm\",\"emailText\":\"refreshPage_emailText__sRxNv\",\"icon\":\"refreshPage_icon__1QJWZ\",\"tooltip\":\"refreshPage_tooltip__fB0s5\",\"tooltipText\":\"refreshPage_tooltipText__13JL_\",\"cssAnimation\":\"refreshPage_cssAnimation__1ZxAe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content-marginTop-marginBottom\":\"generalStyle_content-marginTop-marginBottom__2qOU3\",\"content-margin-bottom\":\"generalStyle_content-margin-bottom__3AnJn\",\"button-inline-block\":\"generalStyle_button-inline-block__2VUYX\",\"secondary-button\":\"generalStyle_secondary-button__336Js\",\"heading-inside-tab\":\"generalStyle_heading-inside-tab__WYLYU\",\"small-modal-primary\":\"generalStyle_small-modal-primary__377Mp\",\"small-modal-secondary\":\"generalStyle_small-modal-secondary__Uz93_\",\"fit-content-modal\":\"generalStyle_fit-content-modal__1n8DU\",\"tab-button\":\"generalStyle_tab-button__1pjD0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"internalErrorsPage_content__7fc5C\",\"logoText\":\"internalErrorsPage_logoText__3fEVt\",\"logo\":\"internalErrorsPage_logo__2IMdm\",\"text\":\"internalErrorsPage_text__4hzM9\",\"mainIcon\":\"internalErrorsPage_mainIcon__2jRg1\",\"secondary-text\":\"internalErrorsPage_secondary-text__ZzU96\",\"email\":\"internalErrorsPage_email__1IyNd\",\"phone\":\"internalErrorsPage_phone__1hSoh\",\"link\":\"internalErrorsPage_link__1EFIy\",\"btn\":\"internalErrorsPage_btn__3Kb6M\",\"emailText\":\"internalErrorsPage_emailText__1RD_Z\",\"icon\":\"internalErrorsPage_icon__240No\",\"tooltip\":\"internalErrorsPage_tooltip__2DW7j\",\"tooltipText\":\"internalErrorsPage_tooltipText__3ckwx\",\"cssAnimation\":\"internalErrorsPage_cssAnimation__2fkEf\"};"],"sourceRoot":""}